@whispering233/ai-editor-server 0.0.10 → 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.
- package/client-dist/assets/index-DEt_zpEi.css +1 -0
- package/client-dist/assets/index-Dtpwpa0b.js +14 -0
- package/client-dist/index.html +2 -2
- package/dist/routes/entity.js +17 -0
- package/dist/routes/entity.js.map +1 -1
- package/package.json +6 -6
- package/client-dist/assets/index-D0NbGe2h.js +0 -14
- package/client-dist/assets/index-FlLVoNIp.css +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
function sj(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 u=Object.getOwnPropertyDescriptor(a,c);u&&Object.defineProperty(t,c,u.get?u:{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 u of c)if(u.type==="childList")for(const m of u.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&a(m)}).observe(document,{childList:!0,subtree:!0});function o(c){const u={};return c.integrity&&(u.integrity=c.integrity),c.referrerPolicy&&(u.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?u.credentials="include":c.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function a(c){if(c.ep)return;c.ep=!0;const u=o(c);fetch(c.href,u)}})();function Zv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Of={exports:{}},vl={};var Gb;function rj(){if(Gb)return vl;Gb=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(a,c,u){var m=null;if(u!==void 0&&(m=""+u),c.key!==void 0&&(m=""+c.key),"key"in c){u={};for(var g in c)g!=="key"&&(u[g]=c[g])}else u=c;return c=u.ref,{$$typeof:t,type:a,key:m,ref:c!==void 0?c:null,props:u}}return vl.Fragment=r,vl.jsx=o,vl.jsxs=o,vl}var qb;function oj(){return qb||(qb=1,Of.exports=rj()),Of.exports}var i=oj(),kf={exports:{}},ot={};var $b;function aj(){if($b)return ot;$b=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"),u=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 N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,O={};function E(A,B,I){this.props=A,this.context=B,this.refs=O,this.updater=I||N}E.prototype.isReactComponent={},E.prototype.setState=function(A,B){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,B,"setState")},E.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function w(){}w.prototype=E.prototype;function _(A,B,I){this.props=A,this.context=B,this.refs=O,this.updater=I||N}var T=_.prototype=new w;T.constructor=_,k(T,E.prototype),T.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,B,I){var U=I.ref;return{$$typeof:t,type:A,key:B,ref:U!==void 0?U:null,props:I}}function re(A,B){return Z(A.type,B,A.props)}function ie(A){return typeof A=="object"&&A!==null&&A.$$typeof===t}function te(A){var B={"=":"=0",":":"=2"};return"$"+A.replace(/[=:]/g,function(I){return B[I]})}var K=/\/+/g;function ne(A,B){return typeof A=="object"&&A!==null&&A.key!=null?te(""+A.key):B.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(B){A.status==="pending"&&(A.status="fulfilled",A.value=B)},function(B){A.status==="pending"&&(A.status="rejected",A.reason=B)})),A.status){case"fulfilled":return A.value;case"rejected":throw A.reason}}throw A}function D(A,B,I,U,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),B,I,U,G)}}if(he)return G=G(A),he=U===""?"."+ne(A,0):U,V(G)?(I="",he!=null&&(I=he.replace(K,"$&/")+"/"),D(G,B,I,"",function(He){return He})):G!=null&&(ie(G)&&(G=re(G,I+(G.key==null||A&&A.key===G.key?"":(""+G.key).replace(K,"$&/")+"/")+he)),B.push(G)),1;he=0;var le=U===""?".":U+":";if(V(A))for(var de=0;de<A.length;de++)U=A[de],Q=le+ne(U,de),he+=D(U,B,I,Q,G);else if(de=j(A),typeof de=="function")for(A=de.call(A),de=0;!(U=A.next()).done;)U=U.value,Q=le+ne(U,de++),he+=D(U,B,I,Q,G);else if(Q==="object"){if(typeof A.then=="function")return D(W(A),B,I,U,G);throw B=String(A),Error("Objects are not valid as a React child (found: "+(B==="[object Object]"?"object with keys {"+Object.keys(A).join(", ")+"}":B)+"). If you meant to render a collection of children, use an array instead.")}return he}function z(A,B,I){if(A==null)return A;var U=[],G=0;return D(A,U,"","",function(Q){return B.call(I,Q,G++)}),U}function P(A){if(A._status===-1){var B=A._result;B=B(),B.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=B)}if(A._status===1)return A._result.default;throw A._result}var H=typeof reportError=="function"?reportError:function(A){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var B=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(B))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",A);return}console.error(A)},F={map:z,forEach:function(A,B,I){z(A,function(){B.apply(this,arguments)},I)},count:function(A){var B=0;return z(A,function(){B++}),B},toArray:function(A){return z(A,function(B){return B})||[]},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=E,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,B,I){if(A==null)throw Error("The argument must be a React element, but you passed "+A+".");var U=k({},A.props),G=A.key;if(B!=null)for(Q in B.key!==void 0&&(G=""+B.key),B)!C.call(B,Q)||Q==="key"||Q==="__self"||Q==="__source"||Q==="ref"&&B.ref===void 0||(U[Q]=B[Q]);var Q=arguments.length-2;if(Q===1)U.children=I;else if(1<Q){for(var he=Array(Q),le=0;le<Q;le++)he[le]=arguments[le+2];U.children=he}return Z(A.type,G,U)},ot.createContext=function(A){return A={$$typeof:m,_currentValue:A,_currentValue2:A,_threadCount:0,Provider:null,Consumer:null},A.Provider=A,A.Consumer={$$typeof:u,_context:A},A},ot.createElement=function(A,B,I){var U,G={},Q=null;if(B!=null)for(U in B.key!==void 0&&(Q=""+B.key),B)C.call(B,U)&&U!=="key"&&U!=="__self"&&U!=="__source"&&(G[U]=B[U]);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(U in he=A.defaultProps,he)G[U]===void 0&&(G[U]=he[U]);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,B){return{$$typeof:p,type:A,compare:B===void 0?null:B}},ot.startTransition=function(A){var B=L.T,I={};L.T=I;try{var U=A(),G=L.S;G!==null&&G(I,U),typeof U=="object"&&U!==null&&typeof U.then=="function"&&U.then(M,H)}catch(Q){H(Q)}finally{B!==null&&I.types!==null&&(B.types=I.types),L.T=B}},ot.unstable_useCacheRefresh=function(){return L.H.useCacheRefresh()},ot.use=function(A){return L.H.use(A)},ot.useActionState=function(A,B,I){return L.H.useActionState(A,B,I)},ot.useCallback=function(A,B){return L.H.useCallback(A,B)},ot.useContext=function(A){return L.H.useContext(A)},ot.useDebugValue=function(){},ot.useDeferredValue=function(A,B){return L.H.useDeferredValue(A,B)},ot.useEffect=function(A,B){return L.H.useEffect(A,B)},ot.useEffectEvent=function(A){return L.H.useEffectEvent(A)},ot.useId=function(){return L.H.useId()},ot.useImperativeHandle=function(A,B,I){return L.H.useImperativeHandle(A,B,I)},ot.useInsertionEffect=function(A,B){return L.H.useInsertionEffect(A,B)},ot.useLayoutEffect=function(A,B){return L.H.useLayoutEffect(A,B)},ot.useMemo=function(A,B){return L.H.useMemo(A,B)},ot.useOptimistic=function(A,B){return L.H.useOptimistic(A,B)},ot.useReducer=function(A,B,I){return L.H.useReducer(A,B,I)},ot.useRef=function(A){return L.H.useRef(A)},ot.useState=function(A){return L.H.useState(A)},ot.useSyncExternalStore=function(A,B,I){return L.H.useSyncExternalStore(A,B,I)},ot.useTransition=function(){return L.H.useTransition()},ot.version="19.2.8",ot}var Xb;function Xl(){return Xb||(Xb=1,kf.exports=aj()),kf.exports}var h=Xl();const De=Zv(h),lj=sj({__proto__:null,default:De},[h]);var _f={exports:{}},Sl={},Mf={exports:{}},Af={};var Kb;function ij(){return Kb||(Kb=1,(function(t){function r(D,z){var P=D.length;D.push(z);e:for(;0<P;){var H=P-1>>>1,F=D[H];if(0<c(F,z))D[H]=z,D[P]=F,P=H;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 H=0,F=D.length,A=F>>>1;H<A;){var B=2*(H+1)-1,I=D[B],U=B+1,G=D[U];if(0>c(I,P))U<F&&0>c(G,I)?(D[H]=G,D[U]=P,H=U):(D[H]=I,D[B]=P,H=B);else if(U<F&&0>c(G,P))D[H]=G,D[U]=P,H=U;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 u=performance;t.unstable_now=function(){return u.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,N=!1,k=!1,O=!1,E=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function T(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,T(D),!N)if(o(b)!==null)N=!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:{N=!1,k&&(k=!1,w(L),L=-1),j=!0;var P=S;try{t:{for(T(D),x=o(b);x!==null&&!(x.expirationTime>D&&re());){var H=x.callback;if(typeof H=="function"){x.callback=null,S=x.priorityLevel;var F=H(x.expirationTime<=D);if(D=t.unstable_now(),typeof F=="function"){x.callback=F,T(D),z=!0;break t}x===o(b)&&a(b),T(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(){E(ie,0)};function W(D,z){L=E(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 H=t.unstable_now();switch(typeof P=="object"&&P!==null?(P=P.delay,P=typeof P=="number"&&0<P?H+P:H):P=H,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>H?(D.sortIndex=P,r(p,D),o(b)===null&&D===o(p)&&(k?(w(L),L=-1):k=!0,W(V,P-H))):(D.sortIndex=F,r(b,D),N||j||(N=!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}}}})(Af)),Af}var Qb;function cj(){return Qb||(Qb=1,Mf.exports=ij()),Mf.exports}var Df={exports:{}},Sn={};var Zb;function uj(){if(Zb)return Sn;Zb=1;var t=Xl();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 u(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 Sn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,Sn.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 u(b,p,null,y)},Sn.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()}},Sn.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))},Sn.prefetchDNS=function(b){typeof b=="string"&&a.d.D(b)},Sn.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})}},Sn.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)},Sn.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})}},Sn.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)},Sn.requestFormReset=function(b){a.d.r(b)},Sn.unstable_batchedUpdates=function(b,p){return b(p)},Sn.useFormState=function(b,p,y){return m.H.useFormState(b,p,y)},Sn.useFormStatus=function(){return m.H.useHostTransitionStatus()},Sn.version="19.2.8",Sn}var Jb;function Jv(){if(Jb)return Df.exports;Jb=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(),Df.exports=uj(),Df.exports}var Wb;function dj(){if(Wb)return Sl;Wb=1;var t=cj(),r=Xl(),o=Jv();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 u(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(u(e)!==e)throw Error(a(188))}function p(e){var n=e.alternate;if(!n){if(n=u(e),n===null)throw Error(a(188));return n!==e?null:e}for(var s=e,l=n;;){var d=s.return;if(d===null)break;var f=d.alternate;if(f===null){if(l=d.return,l!==null){s=l;continue}break}if(d.child===f.child){for(f=d.child;f;){if(f===s)return b(d),e;if(f===l)return b(d),n;f=f.sibling}throw Error(a(188))}if(s.return!==l.return)s=d,l=f;else{for(var v=!1,R=d.child;R;){if(R===s){v=!0,s=d,l=f;break}if(R===l){v=!0,l=d,s=f;break}R=R.sibling}if(!v){for(R=f.child;R;){if(R===s){v=!0,s=f,l=d;break}if(R===l){v=!0,l=f,s=d;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"),N=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),_=Symbol.for("react.context"),T=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 E: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 N:return"Portal";case _:return e.displayName||"Context";case w:return(e._context.displayName||"Context")+".Consumer";case T: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},H=[],F=-1;function A(e){return{current:e}}function B(e){0>F||(e.current=H[F],H[F]=null,F--)}function I(e,n){F++,H[F]=e.current,e.current=n}var U=A(null),G=A(null),Q=A(null),he=A(null);function le(e,n){switch(I(Q,n),I(G,e),I(U,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?pb(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=pb(n),e=hb(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(U),I(U,e)}function de(){B(U),B(G),B(Q)}function He(e){e.memoizedState!==null&&I(he,e);var n=U.current,s=hb(n,e.type);n!==s&&(I(G,e),I(U,s))}function ze(e){G.current===e&&(B(U),B(G)),he.current===e&&(B(he),gl._currentValue=P)}var we,Ie;function ge(e){if(we===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);we=n&&n[1]||"",Ie=-1<s.stack.indexOf(`
|
|
2
|
-
at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
3
|
-
`+we+e+Ie}var q=!1;function _e(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 Ne=function(){throw Error()};if(Object.defineProperty(Ne.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ne,[])}catch(pe){var fe=pe}Reflect.construct(e,[],Ne)}else{try{Ne.call()}catch(pe){fe=pe}e.call(Ne.prototype)}}else{try{throw Error()}catch(pe){fe=pe}(Ne=e())&&typeof Ne.catch=="function"&&Ne.catch(function(){})}}catch(pe){if(pe&&fe&&typeof pe.stack=="string")return[pe.stack,fe.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");d&&d.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(d=l=0;l<X.length&&!X[l].includes("DetermineComponentFrameRoot");)l++;for(;d<ue.length&&!ue[d].includes("DetermineComponentFrameRoot");)d++;if(l===X.length||d===ue.length)for(l=X.length-1,d=ue.length-1;1<=l&&0<=d&&X[l]!==ue[d];)d--;for(;1<=l&&0<=d;l--,d--)if(X[l]!==ue[d]){if(l!==1||d!==1)do if(l--,d--,0>d||X[l]!==ue[d]){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<=d);break}}}finally{q=!1,Error.prepareStackTrace=s}return(s=e?e.displayName||e.name:"")?ge(s):""}function Re(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 _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return ge("Activity");default:return""}}function ke(e){try{var n="",s=null;do n+=Re(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,Le=t.unstable_scheduleCallback,Ye=t.unstable_cancelCallback,Ue=t.unstable_shouldYield,ee=t.unstable_requestPaint,Y=t.unstable_now,$=t.unstable_getCurrentPriorityLevel,je=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,ae=t.unstable_NormalPriority,Oe=t.unstable_LowPriority,Pe=t.unstable_IdlePriority,We=t.log,pt=t.unstable_setDisableYieldValue,Mt=null,mt=null;function wt(e){if(typeof We=="function"&&pt(e),mt&&typeof mt.setStrictMode=="function")try{mt.setStrictMode(Mt,e)}catch{}}var Rt=Math.clz32?Math.clz32:Se,zt=Math.log,Te=Math.LN2;function Se(e){return e>>>=0,e===0?32:31-(zt(e)/Te|0)|0}var Fe=256,Ot=262144,Pt=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 d=0,f=e.suspendedLanes,v=e.pingedLanes;e=e.warmLanes;var R=l&134217727;return R!==0?(l=R&~f,l!==0?d=se(l):(v&=R,v!==0?d=se(v):s||(s=R&~e,s!==0&&(d=se(s))))):(R=l&~f,R!==0?d=se(R):v!==0?d=se(v):s||(s=l&~e,s!==0&&(d=se(s)))),d===0?0:n!==0&&n!==d&&(n&f)===0&&(f=d&-d,s=n&-n,f>=s||f===32&&(s&4194048)!==0)?n:d}function Ae(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=Pt;return Pt<<=1,(Pt&62914560)===0&&(Pt=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 qt(e,n,s,l,d,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),Ne=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&=~Ne}l!==0&&Xn(e,l,0),f!==0&&d===0&&e.tag!==0&&(e.suspendedLanes|=f&~(v&~n))}function Xn(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 Zt(e,n){var s=e.entangledLanes|=n;for(e=e.entanglements;s;){var l=31-Rt(s),d=1<<l;d&n|e[l]&n&&(e[l]|=n),s&=~d}}function hn(e,n){var s=n&-n;return s=(s&42)!==0?1:dr(s),(s&(e.suspendedLanes|n))!==0?0:s}function dr(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 In(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function As(){var e=z.p;return e!==0?e:(e=window.event,e===void 0?32:Bb(e.type))}function ni(e,n){var s=z.p;try{return z.p=e,n()}finally{z.p=s}}var ps=Math.random().toString(36).slice(2),rn="__reactFiber$"+ps,Cn="__reactProps$"+ps,ko="__reactContainer$"+ps,yu="__reactEvents$"+ps,qS="__reactListeners$"+ps,$S="__reactHandles$"+ps,th="__reactResources$"+ps,_a="__reactMarker$"+ps;function vu(e){delete e[rn],delete e[Cn],delete e[yu],delete e[qS],delete e[$S]}function _o(e){var n=e[rn];if(n)return n;for(var s=e.parentNode;s;){if(n=s[ko]||s[rn]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(e=Eb(e);e!==null;){if(s=e[rn])return s;e=Eb(e)}return n}e=s,s=e.parentNode}return null}function Mo(e){if(e=e[rn]||e[ko]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function Ma(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(a(33))}function Ao(e){var n=e[th];return n||(n=e[th]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function un(e){e[_a]=!0}var nh=new Set,sh={};function qr(e,n){Do(e,n),Do(e+"Capture",n)}function Do(e,n){for(sh[e]=n,e=0;e<n.length;e++)nh.add(n[e])}var XS=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]*$"),rh={},oh={};function KS(e){return be.call(oh,e)?!0:be.call(rh,e)?!1:XS.test(e)?oh[e]=!0:(rh[e]=!0,!1)}function si(e,n,s){if(KS(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 ri(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 Ds(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 Kn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ah(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function QS(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 d=l.get,f=l.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return d.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 Su(e){if(!e._valueTracker){var n=ah(e)?"checked":"value";e._valueTracker=QS(e,n,""+e[n])}}function lh(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var s=n.getValue(),l="";return e&&(l=ah(e)?e.checked?"true":"false":e.value),e=l,e!==s?(n.setValue(e),!0):!1}function oi(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 ZS=/[\n"\\]/g;function Qn(e){return e.replace(ZS,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function Eu(e,n,s,l,d,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=""+Kn(n)):e.value!==""+Kn(n)&&(e.value=""+Kn(n)):v!=="submit"&&v!=="reset"||e.removeAttribute("value"),n!=null?Nu(e,v,Kn(n)):s!=null?Nu(e,v,Kn(s)):l!=null&&e.removeAttribute("value"),d==null&&f!=null&&(e.defaultChecked=!!f),d!=null&&(e.checked=d&&typeof d!="function"&&typeof d!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?e.name=""+Kn(R):e.removeAttribute("name")}function ih(e,n,s,l,d,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)){Su(e);return}s=s!=null?""+Kn(s):"",n=n!=null?""+Kn(n):s,R||n===e.value||(e.value=n),e.defaultValue=n}l=l??d,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),Su(e)}function Nu(e,n,s){n==="number"&&oi(e.ownerDocument)===e||e.defaultValue===""+s||(e.defaultValue=""+s)}function zo(e,n,s,l){if(e=e.options,n){n={};for(var d=0;d<s.length;d++)n["$"+s[d]]=!0;for(s=0;s<e.length;s++)d=n.hasOwnProperty("$"+e[s].value),e[s].selected!==d&&(e[s].selected=d),d&&l&&(e[s].defaultSelected=!0)}else{for(s=""+Kn(s),n=null,d=0;d<e.length;d++){if(e[d].value===s){e[d].selected=!0,l&&(e[d].defaultSelected=!0);return}n!==null||e[d].disabled||(n=e[d])}n!==null&&(n.selected=!0)}}function ch(e,n,s){if(n!=null&&(n=""+Kn(n),n!==e.value&&(e.value=n),s==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=s!=null?""+Kn(s):""}function uh(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=Kn(n),e.defaultValue=s,l=e.textContent,l===s&&l!==""&&l!==null&&(e.value=l),Su(e)}function Lo(e,n){if(n){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=n;return}}e.textContent=n}var JS=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 dh(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||JS.has(n)?n==="float"?e.cssFloat=s:e[n]=(""+s).trim():e[n]=s+"px"}function fh(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 d in n)l=n[d],n.hasOwnProperty(d)&&s[d]!==l&&dh(e,d,l)}else for(var f in n)n.hasOwnProperty(f)&&dh(e,f,n[f])}function ju(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 WS=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"]]),eE=/^[\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 ai(e){return eE.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function zs(){}var wu=null;function Tu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Io=null,Bo=null;function mh(e){var n=Mo(e);if(n&&(e=n.stateNode)){var s=e[Cn]||null;e:switch(e=n.stateNode,n.type){case"input":if(Eu(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="'+Qn(""+n)+'"][type="radio"]'),n=0;n<s.length;n++){var l=s[n];if(l!==e&&l.form===e.form){var d=l[Cn]||null;if(!d)throw Error(a(90));Eu(l,d.value,d.defaultValue,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name)}}for(n=0;n<s.length;n++)l=s[n],l.form===e.form&&lh(l)}break e;case"textarea":ch(e,s.value,s.defaultValue);break e;case"select":n=s.value,n!=null&&zo(e,!!s.multiple,n,!1)}}}var Cu=!1;function ph(e,n,s){if(Cu)return e(n,s);Cu=!0;try{var l=e(n);return l}finally{if(Cu=!1,(Io!==null||Bo!==null)&&($i(),Io&&(n=Io,e=Bo,Bo=Io=null,mh(n),e)))for(n=0;n<e.length;n++)mh(e[n])}}function Aa(e,n){var s=e.stateNode;if(s===null)return null;var l=s[Cn]||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 Ls=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ru=!1;if(Ls)try{var Da={};Object.defineProperty(Da,"passive",{get:function(){Ru=!0}}),window.addEventListener("test",Da,Da),window.removeEventListener("test",Da,Da)}catch{Ru=!1}var fr=null,Ou=null,li=null;function hh(){if(li)return li;var e,n=Ou,s=n.length,l,d="value"in fr?fr.value:fr.textContent,f=d.length;for(e=0;e<s&&n[e]===d[e];e++);var v=s-e;for(l=1;l<=v&&n[s-l]===d[f-l];l++);return li=d.slice(e,1<l?1-l:void 0)}function ii(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 ci(){return!0}function gh(){return!1}function Rn(e){function n(s,l,d,f,v){this._reactName=s,this._targetInst=d,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)?ci:gh,this.isPropagationStopped=gh,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=ci)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=ci)},persist:function(){},isPersistent:ci}),n}var $r={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ui=Rn($r),za=x({},$r,{view:0,detail:0}),tE=Rn(za),ku,_u,La,di=x({},za,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Au,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!==La&&(La&&e.type==="mousemove"?(ku=e.screenX-La.screenX,_u=e.screenY-La.screenY):_u=ku=0,La=e),ku)},movementY:function(e){return"movementY"in e?e.movementY:_u}}),xh=Rn(di),nE=x({},di,{dataTransfer:0}),sE=Rn(nE),rE=x({},za,{relatedTarget:0}),Mu=Rn(rE),oE=x({},$r,{animationName:0,elapsedTime:0,pseudoElement:0}),aE=Rn(oE),lE=x({},$r,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),iE=Rn(lE),cE=x({},$r,{data:0}),bh=Rn(cE),uE={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},dE={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"},fE={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function mE(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=fE[e])?!!n[e]:!1}function Au(){return mE}var pE=x({},za,{key:function(e){if(e.key){var n=uE[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=ii(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?dE[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Au,charCode:function(e){return e.type==="keypress"?ii(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ii(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),hE=Rn(pE),gE=x({},di,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),yh=Rn(gE),xE=x({},za,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Au}),bE=Rn(xE),yE=x({},$r,{propertyName:0,elapsedTime:0,pseudoElement:0}),vE=Rn(yE),SE=x({},di,{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}),EE=Rn(SE),NE=x({},$r,{newState:0,oldState:0}),jE=Rn(NE),wE=[9,13,27,32],Du=Ls&&"CompositionEvent"in window,Ia=null;Ls&&"documentMode"in document&&(Ia=document.documentMode);var TE=Ls&&"TextEvent"in window&&!Ia,vh=Ls&&(!Du||Ia&&8<Ia&&11>=Ia),Sh=" ",Eh=!1;function Nh(e,n){switch(e){case"keyup":return wE.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ho=!1;function CE(e,n){switch(e){case"compositionend":return jh(n);case"keypress":return n.which!==32?null:(Eh=!0,Sh);case"textInput":return e=n.data,e===Sh&&Eh?null:e;default:return null}}function RE(e,n){if(Ho)return e==="compositionend"||!Du&&Nh(e,n)?(e=hh(),li=Ou=fr=null,Ho=!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 vh&&n.locale!=="ko"?null:n.data;default:return null}}var OE={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 wh(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!OE[e.type]:n==="textarea"}function Th(e,n,s,l){Io?Bo?Bo.push(l):Bo=[l]:Io=l,n=ec(n,"onChange"),0<n.length&&(s=new ui("onChange","change",null,s,l),e.push({event:s,listeners:n}))}var Ba=null,Ha=null;function kE(e){ib(e,0)}function fi(e){var n=Ma(e);if(lh(n))return e}function Ch(e,n){if(e==="change")return n}var Rh=!1;if(Ls){var zu;if(Ls){var Lu="oninput"in document;if(!Lu){var Oh=document.createElement("div");Oh.setAttribute("oninput","return;"),Lu=typeof Oh.oninput=="function"}zu=Lu}else zu=!1;Rh=zu&&(!document.documentMode||9<document.documentMode)}function kh(){Ba&&(Ba.detachEvent("onpropertychange",_h),Ha=Ba=null)}function _h(e){if(e.propertyName==="value"&&fi(Ha)){var n=[];Th(n,Ha,e,Tu(e)),ph(kE,n)}}function _E(e,n,s){e==="focusin"?(kh(),Ba=n,Ha=s,Ba.attachEvent("onpropertychange",_h)):e==="focusout"&&kh()}function ME(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return fi(Ha)}function AE(e,n){if(e==="click")return fi(n)}function DE(e,n){if(e==="input"||e==="change")return fi(n)}function zE(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Bn=typeof Object.is=="function"?Object.is:zE;function Ua(e,n){if(Bn(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 d=s[l];if(!be.call(n,d)||!Bn(e[d],n[d]))return!1}return!0}function Mh(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ah(e,n){var s=Mh(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=Mh(s)}}function Dh(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Dh(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function zh(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=oi(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=oi(e.document)}return n}function Iu(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 LE=Ls&&"documentMode"in document&&11>=document.documentMode,Uo=null,Bu=null,Pa=null,Hu=!1;function Lh(e,n,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Hu||Uo==null||Uo!==oi(l)||(l=Uo,"selectionStart"in l&&Iu(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}),Pa&&Ua(Pa,l)||(Pa=l,l=ec(Bu,"onSelect"),0<l.length&&(n=new ui("onSelect","select",null,n,s),e.push({event:n,listeners:l}),n.target=Uo)))}function Xr(e,n){var s={};return s[e.toLowerCase()]=n.toLowerCase(),s["Webkit"+e]="webkit"+n,s["Moz"+e]="moz"+n,s}var Po={animationend:Xr("Animation","AnimationEnd"),animationiteration:Xr("Animation","AnimationIteration"),animationstart:Xr("Animation","AnimationStart"),transitionrun:Xr("Transition","TransitionRun"),transitionstart:Xr("Transition","TransitionStart"),transitioncancel:Xr("Transition","TransitionCancel"),transitionend:Xr("Transition","TransitionEnd")},Uu={},Ih={};Ls&&(Ih=document.createElement("div").style,"AnimationEvent"in window||(delete Po.animationend.animation,delete Po.animationiteration.animation,delete Po.animationstart.animation),"TransitionEvent"in window||delete Po.transitionend.transition);function Kr(e){if(Uu[e])return Uu[e];if(!Po[e])return e;var n=Po[e],s;for(s in n)if(n.hasOwnProperty(s)&&s in Ih)return Uu[e]=n[s];return e}var Bh=Kr("animationend"),Hh=Kr("animationiteration"),Uh=Kr("animationstart"),IE=Kr("transitionrun"),BE=Kr("transitionstart"),HE=Kr("transitioncancel"),Ph=Kr("transitionend"),Yh=new Map,Pu="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(" ");Pu.push("scrollEnd");function cs(e,n){Yh.set(e,n),qr(n,[e])}var mi=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)},Zn=[],Yo=0,Yu=0;function pi(){for(var e=Yo,n=Yu=Yo=0;n<e;){var s=Zn[n];Zn[n++]=null;var l=Zn[n];Zn[n++]=null;var d=Zn[n];Zn[n++]=null;var f=Zn[n];if(Zn[n++]=null,l!==null&&d!==null){var v=l.pending;v===null?d.next=d:(d.next=v.next,v.next=d),l.pending=d}f!==0&&Vh(s,d,f)}}function hi(e,n,s,l){Zn[Yo++]=e,Zn[Yo++]=n,Zn[Yo++]=s,Zn[Yo++]=l,Yu|=l,e.lanes|=l,e=e.alternate,e!==null&&(e.lanes|=l)}function Vu(e,n,s,l){return hi(e,n,s,l),gi(e)}function Qr(e,n){return hi(e,null,null,n),gi(e)}function Vh(e,n,s){e.lanes|=s;var l=e.alternate;l!==null&&(l.lanes|=s);for(var d=!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||(d=!0)),e=f,f=f.return;return e.tag===3?(f=e.stateNode,d&&n!==null&&(d=31-Rt(s),e=f.hiddenUpdates,l=e[d],l===null?e[d]=[n]:l.push(n),n.lane=s|536870912),f):null}function gi(e){if(50<cl)throw cl=0,Jd=null,Error(a(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var Vo={};function UE(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 Hn(e,n,s,l){return new UE(e,n,s,l)}function Fu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Is(e,n){var s=e.alternate;return s===null?(s=Hn(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 Fh(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 xi(e,n,s,l,d,f){var v=0;if(l=e,typeof e=="function")Fu(e)&&(v=1);else if(typeof e=="string")v=GN(e,s,U.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case Z:return e=Hn(31,s,n,d),e.elementType=Z,e.lanes=f,e;case k:return Zr(s.children,d,f,n);case O:v=8,d|=24;break;case E:return e=Hn(12,s,n,d|2),e.elementType=E,e.lanes=f,e;case V:return e=Hn(13,s,n,d),e.elementType=V,e.lanes=f,e;case M:return e=Hn(19,s,n,d),e.elementType=M,e.lanes=f,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _:v=10;break e;case w:v=9;break e;case T: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=Hn(v,s,n,d),n.elementType=e,n.type=l,n.lanes=f,n}function Zr(e,n,s,l){return e=Hn(7,e,l,n),e.lanes=s,e}function Gu(e,n,s){return e=Hn(6,e,null,n),e.lanes=s,e}function Gh(e){var n=Hn(18,null,null,0);return n.stateNode=e,n}function qu(e,n,s){return n=Hn(4,e.children!==null?e.children:[],e.key,n),n.lanes=s,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var qh=new WeakMap;function Jn(e,n){if(typeof e=="object"&&e!==null){var s=qh.get(e);return s!==void 0?s:(n={value:e,source:n,stack:ke(n)},qh.set(e,n),n)}return{value:e,source:n,stack:ke(n)}}var Fo=[],Go=0,bi=null,Ya=0,Wn=[],es=0,mr=null,hs=1,gs="";function Bs(e,n){Fo[Go++]=Ya,Fo[Go++]=bi,bi=e,Ya=n}function $h(e,n,s){Wn[es++]=hs,Wn[es++]=gs,Wn[es++]=mr,mr=e;var l=hs;e=gs;var d=32-Rt(l)-1;l&=~(1<<d),s+=1;var f=32-Rt(n)+d;if(30<f){var v=d-d%5;f=(l&(1<<v)-1).toString(32),l>>=v,d-=v,hs=1<<32-Rt(n)+d|s<<d|l,gs=f+e}else hs=1<<f|s<<d|l,gs=e}function $u(e){e.return!==null&&(Bs(e,1),$h(e,1,0))}function Xu(e){for(;e===bi;)bi=Fo[--Go],Fo[Go]=null,Ya=Fo[--Go],Fo[Go]=null;for(;e===mr;)mr=Wn[--es],Wn[es]=null,gs=Wn[--es],Wn[es]=null,hs=Wn[--es],Wn[es]=null}function Xh(e,n){Wn[es++]=hs,Wn[es++]=gs,Wn[es++]=mr,hs=n.id,gs=n.overflow,mr=e}var gn=null,Ft=null,Et=!1,pr=null,ts=!1,Ku=Error(a(519));function hr(e){var n=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Va(Jn(n,e)),Ku}function Kh(e){var n=e.stateNode,s=e.type,l=e.memoizedProps;switch(n[rn]=e,n[Cn]=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<dl.length;s++)gt(dl[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),ih(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),uh(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||fb(n.textContent,s)?(l.popover!=null&&(gt("beforetoggle",n),gt("toggle",n)),l.onScroll!=null&>("scroll",n),l.onScrollEnd!=null&>("scrollend",n),l.onClick!=null&&(n.onclick=zs),n=!0):n=!1,n||hr(e,!0)}function Qh(e){for(gn=e.return;gn;)switch(gn.tag){case 5:case 31:case 13:ts=!1;return;case 27:case 3:ts=!0;return;default:gn=gn.return}}function qo(e){if(e!==gn)return!1;if(!Et)return Qh(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")||pf(e.type,e.memoizedProps)),s=!s),s&&Ft&&hr(e),Qh(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Ft=Sb(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Ft=Sb(e)}else n===27?(n=Ft,Or(e.type)?(e=yf,yf=null,Ft=e):Ft=n):Ft=gn?ss(e.stateNode.nextSibling):null;return!0}function Jr(){Ft=gn=null,Et=!1}function Qu(){var e=pr;return e!==null&&(Mn===null?Mn=e:Mn.push.apply(Mn,e),pr=null),e}function Va(e){pr===null?pr=[e]:pr.push(e)}var Zu=A(null),Wr=null,Hs=null;function gr(e,n,s){I(Zu,n._currentValue),n._currentValue=s}function Us(e){e._currentValue=Zu.current,B(Zu)}function Ju(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 Wu(e,n,s,l){var d=e.child;for(d!==null&&(d.return=e);d!==null;){var f=d.dependencies;if(f!==null){var v=d.child;f=f.firstContext;e:for(;f!==null;){var R=f;f=d;for(var X=0;X<n.length;X++)if(R.context===n[X]){f.lanes|=s,R=f.alternate,R!==null&&(R.lanes|=s),Ju(f.return,s,e),l||(v=null);break e}f=R.next}}else if(d.tag===18){if(v=d.return,v===null)throw Error(a(341));v.lanes|=s,f=v.alternate,f!==null&&(f.lanes|=s),Ju(v,s,e),v=null}else v=d.child;if(v!==null)v.return=d;else for(v=d;v!==null;){if(v===e){v=null;break}if(d=v.sibling,d!==null){d.return=v.return,v=d;break}v=v.return}d=v}}function $o(e,n,s,l){e=null;for(var d=n,f=!1;d!==null;){if(!f){if((d.flags&524288)!==0)f=!0;else if((d.flags&262144)!==0)break}if(d.tag===10){var v=d.alternate;if(v===null)throw Error(a(387));if(v=v.memoizedProps,v!==null){var R=d.type;Bn(d.pendingProps.value,v.value)||(e!==null?e.push(R):e=[R])}}else if(d===he.current){if(v=d.alternate,v===null)throw Error(a(387));v.memoizedState.memoizedState!==d.memoizedState.memoizedState&&(e!==null?e.push(gl):e=[gl])}d=d.return}e!==null&&Wu(n,e,s,l),n.flags|=262144}function yi(e){for(e=e.firstContext;e!==null;){if(!Bn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function eo(e){Wr=e,Hs=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function xn(e){return Zh(Wr,e)}function vi(e,n){return Wr===null&&eo(e),Zh(e,n)}function Zh(e,n){var s=n._currentValue;if(n={context:n,memoizedValue:s,next:null},Hs===null){if(e===null)throw Error(a(308));Hs=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else Hs=Hs.next=n;return s}var PE=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()})}},YE=t.unstable_scheduleCallback,VE=t.unstable_NormalPriority,en={$$typeof:_,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ed(){return{controller:new PE,data:new Map,refCount:0}}function Fa(e){e.refCount--,e.refCount===0&&YE(VE,function(){e.controller.abort()})}var Ga=null,td=0,Xo=0,Ko=null;function FE(e,n){if(Ga===null){var s=Ga=[];td=0,Xo=rf(),Ko={status:"pending",value:void 0,then:function(l){s.push(l)}}}return td++,n.then(Jh,Jh),n}function Jh(){if(--td===0&&Ga!==null){Ko!==null&&(Ko.status="fulfilled");var e=Ga;Ga=null,Xo=0,Ko=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function GE(e,n){var s=[],l={status:"pending",value:null,reason:null,then:function(d){s.push(d)}};return e.then(function(){l.status="fulfilled",l.value=n;for(var d=0;d<s.length;d++)(0,s[d])(n)},function(d){for(l.status="rejected",l.reason=d,d=0;d<s.length;d++)(0,s[d])(void 0)}),l}var Wh=D.S;D.S=function(e,n){Lx=Y(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&FE(e,n),Wh!==null&&Wh(e,n)};var to=A(null);function nd(){var e=to.current;return e!==null?e:Ut.pooledCache}function Si(e,n){n===null?I(to,to.current):I(to,n.pool)}function eg(){var e=nd();return e===null?null:{parent:en._currentValue,pool:e}}var Qo=Error(a(460)),sd=Error(a(474)),Ei=Error(a(542)),Ni={then:function(){}};function tg(e){return e=e.status,e==="fulfilled"||e==="rejected"}function ng(e,n,s){switch(s=e[s],s===void 0?e.push(n):s!==n&&(n.then(zs,zs),n=s),n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,rg(e),e;default:if(typeof n.status=="string")n.then(zs,zs);else{if(e=Ut,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=n,e.status="pending",e.then(function(l){if(n.status==="pending"){var d=n;d.status="fulfilled",d.value=l}},function(l){if(n.status==="pending"){var d=n;d.status="rejected",d.reason=l}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,rg(e),e}throw so=n,Qo}}function no(e){try{var n=e._init;return n(e._payload)}catch(s){throw s!==null&&typeof s=="object"&&typeof s.then=="function"?(so=s,Qo):s}}var so=null;function sg(){if(so===null)throw Error(a(459));var e=so;return so=null,e}function rg(e){if(e===Qo||e===Ei)throw Error(a(483))}var Zo=null,qa=0;function ji(e){var n=qa;return qa+=1,Zo===null&&(Zo=[]),ng(Zo,e,n)}function $a(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function wi(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 og(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 d(oe,J){return oe=Is(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,Ee){return J===null||J.tag!==6?(J=Gu(ce,oe.mode,Ee),J.return=oe,J):(J=d(J,ce),J.return=oe,J)}function X(oe,J,ce,Ee){var Je=ce.type;return Je===k?ve(oe,J,ce.props.children,Ee,ce.key):J!==null&&(J.elementType===Je||typeof Je=="object"&&Je!==null&&Je.$$typeof===C&&no(Je)===J.type)?(J=d(J,ce.props),$a(J,ce),J.return=oe,J):(J=xi(ce.type,ce.key,ce.props,null,oe.mode,Ee),$a(J,ce),J.return=oe,J)}function ue(oe,J,ce,Ee){return J===null||J.tag!==4||J.stateNode.containerInfo!==ce.containerInfo||J.stateNode.implementation!==ce.implementation?(J=qu(ce,oe.mode,Ee),J.return=oe,J):(J=d(J,ce.children||[]),J.return=oe,J)}function ve(oe,J,ce,Ee,Je){return J===null||J.tag!==7?(J=Zr(ce,oe.mode,Ee,Je),J.return=oe,J):(J=d(J,ce),J.return=oe,J)}function Ne(oe,J,ce){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return J=Gu(""+J,oe.mode,ce),J.return=oe,J;if(typeof J=="object"&&J!==null){switch(J.$$typeof){case j:return ce=xi(J.type,J.key,J.props,null,oe.mode,ce),$a(ce,J),ce.return=oe,ce;case N:return J=qu(J,oe.mode,ce),J.return=oe,J;case C:return J=no(J),Ne(oe,J,ce)}if(W(J)||te(J))return J=Zr(J,oe.mode,ce,null),J.return=oe,J;if(typeof J.then=="function")return Ne(oe,ji(J),ce);if(J.$$typeof===_)return Ne(oe,vi(oe,J),ce);wi(oe,J)}return null}function fe(oe,J,ce,Ee){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,Ee);if(typeof ce=="object"&&ce!==null){switch(ce.$$typeof){case j:return ce.key===Je?X(oe,J,ce,Ee):null;case N:return ce.key===Je?ue(oe,J,ce,Ee):null;case C:return ce=no(ce),fe(oe,J,ce,Ee)}if(W(ce)||te(ce))return Je!==null?null:ve(oe,J,ce,Ee,null);if(typeof ce.then=="function")return fe(oe,J,ji(ce),Ee);if(ce.$$typeof===_)return fe(oe,J,vi(oe,ce),Ee);wi(oe,ce)}return null}function pe(oe,J,ce,Ee,Je){if(typeof Ee=="string"&&Ee!==""||typeof Ee=="number"||typeof Ee=="bigint")return oe=oe.get(ce)||null,R(J,oe,""+Ee,Je);if(typeof Ee=="object"&&Ee!==null){switch(Ee.$$typeof){case j:return oe=oe.get(Ee.key===null?ce:Ee.key)||null,X(J,oe,Ee,Je);case N:return oe=oe.get(Ee.key===null?ce:Ee.key)||null,ue(J,oe,Ee,Je);case C:return Ee=no(Ee),pe(oe,J,ce,Ee,Je)}if(W(Ee)||te(Ee))return oe=oe.get(ce)||null,ve(J,oe,Ee,Je,null);if(typeof Ee.then=="function")return pe(oe,J,ce,ji(Ee),Je);if(Ee.$$typeof===_)return pe(oe,J,ce,vi(J,Ee),Je);wi(J,Ee)}return null}function Xe(oe,J,ce,Ee){for(var Je=null,Tt=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],Ee);if(Ct===null){Ke===null&&(Ke=yt);break}e&&Ke&&Ct.alternate===null&&n(oe,Ke),J=f(Ct,J,dt),Tt===null?Je=Ct:Tt.sibling=Ct,Tt=Ct,Ke=yt}if(dt===ce.length)return s(oe,Ke),Et&&Bs(oe,dt),Je;if(Ke===null){for(;dt<ce.length;dt++)Ke=Ne(oe,ce[dt],Ee),Ke!==null&&(J=f(Ke,J,dt),Tt===null?Je=Ke:Tt.sibling=Ke,Tt=Ke);return Et&&Bs(oe,dt),Je}for(Ke=l(Ke);dt<ce.length;dt++)yt=pe(Ke,oe,dt,ce[dt],Ee),yt!==null&&(e&&yt.alternate!==null&&Ke.delete(yt.key===null?dt:yt.key),J=f(yt,J,dt),Tt===null?Je=yt:Tt.sibling=yt,Tt=yt);return e&&Ke.forEach(function(Dr){return n(oe,Dr)}),Et&&Bs(oe,dt),Je}function et(oe,J,ce,Ee){if(ce==null)throw Error(a(151));for(var Je=null,Tt=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 Dr=fe(oe,Ke,Ct.value,Ee);if(Dr===null){Ke===null&&(Ke=yt);break}e&&Ke&&Dr.alternate===null&&n(oe,Ke),J=f(Dr,J,dt),Tt===null?Je=Dr:Tt.sibling=Dr,Tt=Dr,Ke=yt}if(Ct.done)return s(oe,Ke),Et&&Bs(oe,dt),Je;if(Ke===null){for(;!Ct.done;dt++,Ct=ce.next())Ct=Ne(oe,Ct.value,Ee),Ct!==null&&(J=f(Ct,J,dt),Tt===null?Je=Ct:Tt.sibling=Ct,Tt=Ct);return Et&&Bs(oe,dt),Je}for(Ke=l(Ke);!Ct.done;dt++,Ct=ce.next())Ct=pe(Ke,oe,dt,Ct.value,Ee),Ct!==null&&(e&&Ct.alternate!==null&&Ke.delete(Ct.key===null?dt:Ct.key),J=f(Ct,J,dt),Tt===null?Je=Ct:Tt.sibling=Ct,Tt=Ct);return e&&Ke.forEach(function(nj){return n(oe,nj)}),Et&&Bs(oe,dt),Je}function Bt(oe,J,ce,Ee){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),Ee=d(J,ce.props.children),Ee.return=oe,oe=Ee;break e}}else if(J.elementType===Je||typeof Je=="object"&&Je!==null&&Je.$$typeof===C&&no(Je)===J.type){s(oe,J.sibling),Ee=d(J,ce.props),$a(Ee,ce),Ee.return=oe,oe=Ee;break e}s(oe,J);break}else n(oe,J);J=J.sibling}ce.type===k?(Ee=Zr(ce.props.children,oe.mode,Ee,ce.key),Ee.return=oe,oe=Ee):(Ee=xi(ce.type,ce.key,ce.props,null,oe.mode,Ee),$a(Ee,ce),Ee.return=oe,oe=Ee)}return v(oe);case N: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),Ee=d(J,ce.children||[]),Ee.return=oe,oe=Ee;break e}else{s(oe,J);break}else n(oe,J);J=J.sibling}Ee=qu(ce,oe.mode,Ee),Ee.return=oe,oe=Ee}return v(oe);case C:return ce=no(ce),Bt(oe,J,ce,Ee)}if(W(ce))return Xe(oe,J,ce,Ee);if(te(ce)){if(Je=te(ce),typeof Je!="function")throw Error(a(150));return ce=Je.call(ce),et(oe,J,ce,Ee)}if(typeof ce.then=="function")return Bt(oe,J,ji(ce),Ee);if(ce.$$typeof===_)return Bt(oe,J,vi(oe,ce),Ee);wi(oe,ce)}return typeof ce=="string"&&ce!==""||typeof ce=="number"||typeof ce=="bigint"?(ce=""+ce,J!==null&&J.tag===6?(s(oe,J.sibling),Ee=d(J,ce),Ee.return=oe,oe=Ee):(s(oe,J),Ee=Gu(ce,oe.mode,Ee),Ee.return=oe,oe=Ee),v(oe)):s(oe,J)}return function(oe,J,ce,Ee){try{qa=0;var Je=Bt(oe,J,ce,Ee);return Zo=null,Je}catch(Ke){if(Ke===Qo||Ke===Ei)throw Ke;var Tt=Hn(29,Ke,null,oe.mode);return Tt.lanes=Ee,Tt.return=oe,Tt}}}var ro=og(!0),ag=og(!1),xr=!1;function rd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function od(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 br(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function yr(e,n,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(kt&2)!==0){var d=l.pending;return d===null?n.next=n:(n.next=d.next,d.next=n),l.pending=n,n=gi(e),Vh(e,null,s),n}return hi(e,l,n,s),gi(e)}function Xa(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,Zt(e,s)}}function ad(e,n){var s=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var d=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?d=f=v:f=f.next=v,s=s.next}while(s!==null);f===null?d=f=n:f=f.next=n}else d=f=n;s={baseState:l.baseState,firstBaseUpdate:d,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 ld=!1;function Ka(){if(ld){var e=Ko;if(e!==null)throw e}}function Qa(e,n,s,l){ld=!1;var d=e.updateQueue;xr=!1;var f=d.firstBaseUpdate,v=d.lastBaseUpdate,R=d.shared.pending;if(R!==null){d.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 Ne=d.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===Xo&&(ld=!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 Bt=s;switch(et.tag){case 1:if(Xe=et.payload,typeof Xe=="function"){Ne=Xe.call(Bt,Ne,fe);break e}Ne=Xe;break e;case 3:Xe.flags=Xe.flags&-65537|128;case 0:if(Xe=et.payload,fe=typeof Xe=="function"?Xe.call(Bt,Ne,fe):Xe,fe==null)break e;Ne=x({},Ne,fe);break e;case 2:xr=!0}}fe=R.callback,fe!==null&&(e.flags|=64,pe&&(e.flags|=8192),pe=d.callbacks,pe===null?d.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=Ne):ve=ve.next=pe,v|=fe;if(R=R.next,R===null){if(R=d.shared.pending,R===null)break;pe=R,R=pe.next,pe.next=null,d.lastBaseUpdate=pe,d.shared.pending=null}}while(!0);ve===null&&(X=Ne),d.baseState=X,d.firstBaseUpdate=ue,d.lastBaseUpdate=ve,f===null&&(d.shared.lanes=0),jr|=v,e.lanes=v,e.memoizedState=Ne}}function lg(e,n){if(typeof e!="function")throw Error(a(191,e));e.call(n)}function ig(e,n){var s=e.callbacks;if(s!==null)for(e.callbacks=null,e=0;e<s.length;e++)lg(s[e],n)}var Jo=A(null),Ti=A(0);function cg(e,n){e=Ks,I(Ti,e),I(Jo,n),Ks=e|n.baseLanes}function id(){I(Ti,Ks),I(Jo,Jo.current)}function cd(){Ks=Ti.current,B(Jo),B(Ti)}var Un=A(null),ns=null;function vr(e){var n=e.alternate;I(Jt,Jt.current&1),I(Un,e),ns===null&&(n===null||Jo.current!==null||n.memoizedState!==null)&&(ns=e)}function ud(e){I(Jt,Jt.current),I(Un,e),ns===null&&(ns=e)}function ug(e){e.tag===22?(I(Jt,Jt.current),I(Un,e),ns===null&&(ns=e)):Sr()}function Sr(){I(Jt,Jt.current),I(Un,Un.current)}function Pn(e){B(Un),ns===e&&(ns=null),B(Jt)}var Jt=A(0);function Ci(e){for(var n=e;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||xf(s)||bf(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 Ps=0,ct=null,Lt=null,tn=null,Ri=!1,Wo=!1,oo=!1,Oi=0,Za=0,ea=null,qE=0;function Xt(){throw Error(a(321))}function dd(e,n){if(n===null)return!1;for(var s=0;s<n.length&&s<e.length;s++)if(!Bn(e[s],n[s]))return!1;return!0}function fd(e,n,s,l,d,f){return Ps=f,ct=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,D.H=e===null||e.memoizedState===null?$g:Cd,oo=!1,f=s(l,d),oo=!1,Wo&&(f=fg(n,s,l,d)),dg(e),f}function dg(e){D.H=el;var n=Lt!==null&&Lt.next!==null;if(Ps=0,tn=Lt=ct=null,Ri=!1,Za=0,ea=null,n)throw Error(a(300));e===null||nn||(e=e.dependencies,e!==null&&yi(e)&&(nn=!0))}function fg(e,n,s,l){ct=e;var d=0;do{if(Wo&&(ea=null),Za=0,Wo=!1,25<=d)throw Error(a(301));if(d+=1,tn=Lt=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=Xg,f=n(s,l)}while(Wo);return f}function $E(){var e=D.H,n=e.useState()[0];return n=typeof n.then=="function"?Ja(n):n,e=e.useState()[0],(Lt!==null?Lt.memoizedState:null)!==e&&(ct.flags|=1024),n}function md(){var e=Oi!==0;return Oi=0,e}function pd(e,n,s){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~s}function hd(e){if(Ri){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Ri=!1}Ps=0,tn=Lt=ct=null,Wo=!1,Za=Oi=0,ea=null}function wn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return tn===null?ct.memoizedState=tn=e:tn=tn.next=e,tn}function Wt(){if(Lt===null){var e=ct.alternate;e=e!==null?e.memoizedState:null}else e=Lt.next;var n=tn===null?ct.memoizedState:tn.next;if(n!==null)tn=n,Lt=e;else{if(e===null)throw ct.alternate===null?Error(a(467)):Error(a(310));Lt=e,e={memoizedState:Lt.memoizedState,baseState:Lt.baseState,baseQueue:Lt.baseQueue,queue:Lt.queue,next:null},tn===null?ct.memoizedState=tn=e:tn=tn.next=e}return tn}function ki(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ja(e){var n=Za;return Za+=1,ea===null&&(ea=[]),e=ng(ea,e,n),n=ct,(tn===null?n.memoizedState:tn.next)===null&&(n=n.alternate,D.H=n===null||n.memoizedState===null?$g:Cd),e}function _i(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Ja(e);if(e.$$typeof===_)return xn(e)}throw Error(a(438,String(e)))}function gd(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(d){return d.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),s===null&&(s=ki(),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 Ys(e,n){return typeof n=="function"?n(e):n}function Mi(e){var n=Wt();return xd(n,Lt,e)}function xd(e,n,s){var l=e.queue;if(l===null)throw Error(a(311));l.lastRenderedReducer=s;var d=e.baseQueue,f=l.pending;if(f!==null){if(d!==null){var v=d.next;d.next=f.next,f.next=v}n.baseQueue=d=f,l.pending=null}if(f=e.baseState,d===null)e.memoizedState=f;else{n=d.next;var R=v=null,X=null,ue=n,ve=!1;do{var Ne=ue.lane&-536870913;if(Ne!==ue.lane?(bt&Ne)===Ne:(Ps&Ne)===Ne){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}),Ne===Xo&&(ve=!0);else if((Ps&fe)===fe){ue=ue.next,fe===Xo&&(ve=!0);continue}else Ne={lane:0,revertLane:ue.revertLane,gesture:null,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null},X===null?(R=X=Ne,v=f):X=X.next=Ne,ct.lanes|=fe,jr|=fe;Ne=ue.action,oo&&s(f,Ne),f=ue.hasEagerState?ue.eagerState:s(f,Ne)}else fe={lane:Ne,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|=Ne,jr|=Ne;ue=ue.next}while(ue!==null&&ue!==n);if(X===null?v=f:X.next=R,!Bn(f,e.memoizedState)&&(nn=!0,ve&&(s=Ko,s!==null)))throw s;e.memoizedState=f,e.baseState=v,e.baseQueue=X,l.lastRenderedState=f}return d===null&&(l.lanes=0),[e.memoizedState,l.dispatch]}function bd(e){var n=Wt(),s=n.queue;if(s===null)throw Error(a(311));s.lastRenderedReducer=e;var l=s.dispatch,d=s.pending,f=n.memoizedState;if(d!==null){s.pending=null;var v=d=d.next;do f=e(f,v.action),v=v.next;while(v!==d);Bn(f,n.memoizedState)||(nn=!0),n.memoizedState=f,n.baseQueue===null&&(n.baseState=f),s.lastRenderedState=f}return[f,l]}function mg(e,n,s){var l=ct,d=Wt(),f=Et;if(f){if(s===void 0)throw Error(a(407));s=s()}else s=n();var v=!Bn((Lt||d).memoizedState,s);if(v&&(d.memoizedState=s,nn=!0),d=d.queue,Sd(gg.bind(null,l,d,e),[e]),d.getSnapshot!==n||v||tn!==null&&tn.memoizedState.tag&1){if(l.flags|=2048,ta(9,{destroy:void 0},hg.bind(null,l,d,s,n),null),Ut===null)throw Error(a(349));f||(Ps&127)!==0||pg(l,n,s)}return s}function pg(e,n,s){e.flags|=16384,e={getSnapshot:n,value:s},n=ct.updateQueue,n===null?(n=ki(),ct.updateQueue=n,n.stores=[e]):(s=n.stores,s===null?n.stores=[e]:s.push(e))}function hg(e,n,s,l){n.value=s,n.getSnapshot=l,xg(n)&&bg(e)}function gg(e,n,s){return s(function(){xg(n)&&bg(e)})}function xg(e){var n=e.getSnapshot;e=e.value;try{var s=n();return!Bn(e,s)}catch{return!0}}function bg(e){var n=Qr(e,2);n!==null&&An(n,e,2)}function yd(e){var n=wn();if(typeof e=="function"){var s=e;if(e=s(),oo){wt(!0);try{s()}finally{wt(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ys,lastRenderedState:e},n}function yg(e,n,s,l){return e.baseState=s,xd(e,Lt,typeof l=="function"?l:Ys)}function XE(e,n,s,l,d){if(zi(e))throw Error(a(485));if(e=n.action,e!==null){var f={payload:d,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,vg(n,f)):(f.next=s.next,n.pending=s.next=f)}}function vg(e,n){var s=n.action,l=n.payload,d=e.state;if(n.isTransition){var f=D.T,v={};D.T=v;try{var R=s(d,l),X=D.S;X!==null&&X(v,R),Sg(e,n,R)}catch(ue){vd(e,n,ue)}finally{f!==null&&v.types!==null&&(f.types=v.types),D.T=f}}else try{f=s(d,l),Sg(e,n,f)}catch(ue){vd(e,n,ue)}}function Sg(e,n,s){s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(function(l){Eg(e,n,l)},function(l){return vd(e,n,l)}):Eg(e,n,s)}function Eg(e,n,s){n.status="fulfilled",n.value=s,Ng(n),e.state=s,n=e.pending,n!==null&&(s=n.next,s===n?e.pending=null:(s=s.next,n.next=s,vg(e,s)))}function vd(e,n,s){var l=e.pending;if(e.pending=null,l!==null){l=l.next;do n.status="rejected",n.reason=s,Ng(n),n=n.next;while(n!==l)}e.action=null}function Ng(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function jg(e,n){return n}function wg(e,n){if(Et){var s=Ut.formState;if(s!==null){e:{var l=ct;if(Et){if(Ft){t:{for(var d=Ft,f=ts;d.nodeType!==8;){if(!f){d=null;break t}if(d=ss(d.nextSibling),d===null){d=null;break t}}f=d.data,d=f==="F!"||f==="F"?d:null}if(d){Ft=ss(d.nextSibling),l=d.data==="F!";break e}}hr(l)}l=!1}l&&(n=s[0])}}return s=wn(),s.memoizedState=s.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:jg,lastRenderedState:n},s.queue=l,s=Fg.bind(null,ct,l),l.dispatch=s,l=yd(!1),f=Td.bind(null,ct,!1,l.queue),l=wn(),d={state:n,dispatch:null,action:e,pending:null},l.queue=d,s=XE.bind(null,ct,d,f,s),d.dispatch=s,l.memoizedState=e,[n,s,!1]}function Tg(e){var n=Wt();return Cg(n,Lt,e)}function Cg(e,n,s){if(n=xd(e,n,jg)[0],e=Mi(Ys)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var l=Ja(n)}catch(v){throw v===Qo?Ei:v}else l=n;n=Wt();var d=n.queue,f=d.dispatch;return s!==n.memoizedState&&(ct.flags|=2048,ta(9,{destroy:void 0},KE.bind(null,d,s),null)),[l,f,e]}function KE(e,n){e.action=n}function Rg(e){var n=Wt(),s=Lt;if(s!==null)return Cg(n,s,e);Wt(),n=n.memoizedState,s=Wt();var l=s.queue.dispatch;return s.memoizedState=e,[n,l,!1]}function ta(e,n,s,l){return e={tag:e,create:s,deps:l,inst:n,next:null},n=ct.updateQueue,n===null&&(n=ki(),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 Og(){return Wt().memoizedState}function Ai(e,n,s,l){var d=wn();ct.flags|=e,d.memoizedState=ta(1|n,{destroy:void 0},s,l===void 0?null:l)}function Di(e,n,s,l){var d=Wt();l=l===void 0?null:l;var f=d.memoizedState.inst;Lt!==null&&l!==null&&dd(l,Lt.memoizedState.deps)?d.memoizedState=ta(n,f,s,l):(ct.flags|=e,d.memoizedState=ta(1|n,f,s,l))}function kg(e,n){Ai(8390656,8,e,n)}function Sd(e,n){Di(2048,8,e,n)}function QE(e){ct.flags|=4;var n=ct.updateQueue;if(n===null)n=ki(),ct.updateQueue=n,n.events=[e];else{var s=n.events;s===null?n.events=[e]:s.push(e)}}function _g(e){var n=Wt().memoizedState;return QE({ref:n,nextImpl:e}),function(){if((kt&2)!==0)throw Error(a(440));return n.impl.apply(void 0,arguments)}}function Mg(e,n){return Di(4,2,e,n)}function Ag(e,n){return Di(4,4,e,n)}function Dg(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 zg(e,n,s){s=s!=null?s.concat([e]):null,Di(4,4,Dg.bind(null,n,e),s)}function Ed(){}function Lg(e,n){var s=Wt();n=n===void 0?null:n;var l=s.memoizedState;return n!==null&&dd(n,l[1])?l[0]:(s.memoizedState=[e,n],e)}function Ig(e,n){var s=Wt();n=n===void 0?null:n;var l=s.memoizedState;if(n!==null&&dd(n,l[1]))return l[0];if(l=e(),oo){wt(!0);try{e()}finally{wt(!1)}}return s.memoizedState=[l,n],l}function Nd(e,n,s){return s===void 0||(Ps&1073741824)!==0&&(bt&261930)===0?e.memoizedState=n:(e.memoizedState=s,e=Bx(),ct.lanes|=e,jr|=e,s)}function Bg(e,n,s,l){return Bn(s,n)?s:Jo.current!==null?(e=Nd(e,s,l),Bn(e,n)||(nn=!0),e):(Ps&42)===0||(Ps&1073741824)!==0&&(bt&261930)===0?(nn=!0,e.memoizedState=s):(e=Bx(),ct.lanes|=e,jr|=e,n)}function Hg(e,n,s,l,d){var f=z.p;z.p=f!==0&&8>f?f:8;var v=D.T,R={};D.T=R,Td(e,!1,n,s);try{var X=d(),ue=D.S;if(ue!==null&&ue(R,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var ve=GE(X,l);Wa(e,n,ve,Fn(e))}else Wa(e,n,l,Fn(e))}catch(Ne){Wa(e,n,{then:function(){},status:"rejected",reason:Ne},Fn())}finally{z.p=f,v!==null&&R.types!==null&&(v.types=R.types),D.T=v}}function ZE(){}function jd(e,n,s,l){if(e.tag!==5)throw Error(a(476));var d=Ug(e).queue;Hg(e,d,n,P,s===null?ZE:function(){return Pg(e),s(l)})}function Ug(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:Ys,lastRenderedState:P},next:null};var s={};return n.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ys,lastRenderedState:s},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function Pg(e){var n=Ug(e);n.next===null&&(n=e.alternate.memoizedState),Wa(e,n.next.queue,{},Fn())}function wd(){return xn(gl)}function Yg(){return Wt().memoizedState}function Vg(){return Wt().memoizedState}function JE(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var s=Fn();e=br(s);var l=yr(n,e,s);l!==null&&(An(l,n,s),Xa(l,n,s)),n={cache:ed()},e.payload=n;return}n=n.return}}function WE(e,n,s){var l=Fn();s={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},zi(e)?Gg(n,s):(s=Vu(e,n,s,l),s!==null&&(An(s,e,l),qg(s,n,l)))}function Fg(e,n,s){var l=Fn();Wa(e,n,s,l)}function Wa(e,n,s,l){var d={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(zi(e))Gg(n,d);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(d.hasEagerState=!0,d.eagerState=R,Bn(R,v))return hi(e,n,d,0),Ut===null&&pi(),!1}catch{}if(s=Vu(e,n,d,l),s!==null)return An(s,e,l),qg(s,n,l),!0}return!1}function Td(e,n,s,l){if(l={lane:2,revertLane:rf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},zi(e)){if(n)throw Error(a(479))}else n=Vu(e,s,l,2),n!==null&&An(n,e,2)}function zi(e){var n=e.alternate;return e===ct||n!==null&&n===ct}function Gg(e,n){Wo=Ri=!0;var s=e.pending;s===null?n.next=n:(n.next=s.next,s.next=n),e.pending=n}function qg(e,n,s){if((s&4194048)!==0){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Zt(e,s)}}var el={readContext:xn,use:_i,useCallback:Xt,useContext:Xt,useEffect:Xt,useImperativeHandle:Xt,useLayoutEffect:Xt,useInsertionEffect:Xt,useMemo:Xt,useReducer:Xt,useRef:Xt,useState:Xt,useDebugValue:Xt,useDeferredValue:Xt,useTransition:Xt,useSyncExternalStore:Xt,useId:Xt,useHostTransitionStatus:Xt,useFormState:Xt,useActionState:Xt,useOptimistic:Xt,useMemoCache:Xt,useCacheRefresh:Xt};el.useEffectEvent=Xt;var $g={readContext:xn,use:_i,useCallback:function(e,n){return wn().memoizedState=[e,n===void 0?null:n],e},useContext:xn,useEffect:kg,useImperativeHandle:function(e,n,s){s=s!=null?s.concat([e]):null,Ai(4194308,4,Dg.bind(null,n,e),s)},useLayoutEffect:function(e,n){return Ai(4194308,4,e,n)},useInsertionEffect:function(e,n){Ai(4,2,e,n)},useMemo:function(e,n){var s=wn();n=n===void 0?null:n;var l=e();if(oo){wt(!0);try{e()}finally{wt(!1)}}return s.memoizedState=[l,n],l},useReducer:function(e,n,s){var l=wn();if(s!==void 0){var d=s(n);if(oo){wt(!0);try{s(n)}finally{wt(!1)}}}else d=n;return l.memoizedState=l.baseState=d,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:d},l.queue=e,e=e.dispatch=WE.bind(null,ct,e),[l.memoizedState,e]},useRef:function(e){var n=wn();return e={current:e},n.memoizedState=e},useState:function(e){e=yd(e);var n=e.queue,s=Fg.bind(null,ct,n);return n.dispatch=s,[e.memoizedState,s]},useDebugValue:Ed,useDeferredValue:function(e,n){var s=wn();return Nd(s,e,n)},useTransition:function(){var e=yd(!1);return e=Hg.bind(null,ct,e.queue,!0,!1),wn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,s){var l=ct,d=wn();if(Et){if(s===void 0)throw Error(a(407));s=s()}else{if(s=n(),Ut===null)throw Error(a(349));(bt&127)!==0||pg(l,n,s)}d.memoizedState=s;var f={value:s,getSnapshot:n};return d.queue=f,kg(gg.bind(null,l,f,e),[e]),l.flags|=2048,ta(9,{destroy:void 0},hg.bind(null,l,f,s,n),null),s},useId:function(){var e=wn(),n=Ut.identifierPrefix;if(Et){var s=gs,l=hs;s=(l&~(1<<32-Rt(l)-1)).toString(32)+s,n="_"+n+"R_"+s,s=Oi++,0<s&&(n+="H"+s.toString(32)),n+="_"}else s=qE++,n="_"+n+"r_"+s.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:wd,useFormState:wg,useActionState:wg,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=Td.bind(null,ct,!0,s),s.dispatch=n,[e,n]},useMemoCache:gd,useCacheRefresh:function(){return wn().memoizedState=JE.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)}}},Cd={readContext:xn,use:_i,useCallback:Lg,useContext:xn,useEffect:Sd,useImperativeHandle:zg,useInsertionEffect:Mg,useLayoutEffect:Ag,useMemo:Ig,useReducer:Mi,useRef:Og,useState:function(){return Mi(Ys)},useDebugValue:Ed,useDeferredValue:function(e,n){var s=Wt();return Bg(s,Lt.memoizedState,e,n)},useTransition:function(){var e=Mi(Ys)[0],n=Wt().memoizedState;return[typeof e=="boolean"?e:Ja(e),n]},useSyncExternalStore:mg,useId:Yg,useHostTransitionStatus:wd,useFormState:Tg,useActionState:Tg,useOptimistic:function(e,n){var s=Wt();return yg(s,Lt,e,n)},useMemoCache:gd,useCacheRefresh:Vg};Cd.useEffectEvent=_g;var Xg={readContext:xn,use:_i,useCallback:Lg,useContext:xn,useEffect:Sd,useImperativeHandle:zg,useInsertionEffect:Mg,useLayoutEffect:Ag,useMemo:Ig,useReducer:bd,useRef:Og,useState:function(){return bd(Ys)},useDebugValue:Ed,useDeferredValue:function(e,n){var s=Wt();return Lt===null?Nd(s,e,n):Bg(s,Lt.memoizedState,e,n)},useTransition:function(){var e=bd(Ys)[0],n=Wt().memoizedState;return[typeof e=="boolean"?e:Ja(e),n]},useSyncExternalStore:mg,useId:Yg,useHostTransitionStatus:wd,useFormState:Rg,useActionState:Rg,useOptimistic:function(e,n){var s=Wt();return Lt!==null?yg(s,Lt,e,n):(s.baseState=e,[e,s.queue.dispatch])},useMemoCache:gd,useCacheRefresh:Vg};Xg.useEffectEvent=_g;function Rd(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 Od={enqueueSetState:function(e,n,s){e=e._reactInternals;var l=Fn(),d=br(l);d.payload=n,s!=null&&(d.callback=s),n=yr(e,d,l),n!==null&&(An(n,e,l),Xa(n,e,l))},enqueueReplaceState:function(e,n,s){e=e._reactInternals;var l=Fn(),d=br(l);d.tag=1,d.payload=n,s!=null&&(d.callback=s),n=yr(e,d,l),n!==null&&(An(n,e,l),Xa(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var s=Fn(),l=br(s);l.tag=2,n!=null&&(l.callback=n),n=yr(e,l,s),n!==null&&(An(n,e,s),Xa(n,e,s))}};function Kg(e,n,s,l,d,f,v){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,f,v):n.prototype&&n.prototype.isPureReactComponent?!Ua(s,l)||!Ua(d,f):!0}function Qg(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&&Od.enqueueReplaceState(n,n.state,null)}function ao(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 d in e)s[d]===void 0&&(s[d]=e[d])}return s}function Zg(e){mi(e)}function Jg(e){console.error(e)}function Wg(e){mi(e)}function Li(e,n){try{var s=e.onUncaughtError;s(n.value,{componentStack:n.stack})}catch(l){setTimeout(function(){throw l})}}function ex(e,n,s){try{var l=e.onCaughtError;l(s.value,{componentStack:s.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(d){setTimeout(function(){throw d})}}function kd(e,n,s){return s=br(s),s.tag=3,s.payload={element:null},s.callback=function(){Li(e,n)},s}function tx(e){return e=br(e),e.tag=3,e}function nx(e,n,s,l){var d=s.type.getDerivedStateFromError;if(typeof d=="function"){var f=l.value;e.payload=function(){return d(f)},e.callback=function(){ex(n,s,l)}}var v=s.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(e.callback=function(){ex(n,s,l),typeof d!="function"&&(wr===null?wr=new Set([this]):wr.add(this));var R=l.stack;this.componentDidCatch(l.value,{componentStack:R!==null?R:""})})}function eN(e,n,s,l,d){if(s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(n=s.alternate,n!==null&&$o(n,s,d,!0),s=Un.current,s!==null){switch(s.tag){case 31:case 13:return ns===null?Xi():s.alternate===null&&Kt===0&&(Kt=3),s.flags&=-257,s.flags|=65536,s.lanes=d,l===Ni?s.flags|=16384:(n=s.updateQueue,n===null?s.updateQueue=new Set([l]):n.add(l),tf(e,l,d)),!1;case 22:return s.flags|=65536,l===Ni?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)),tf(e,l,d)),!1}throw Error(a(435,s.tag))}return tf(e,l,d),Xi(),!1}if(Et)return n=Un.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=d,l!==Ku&&(e=Error(a(422),{cause:l}),Va(Jn(e,s)))):(l!==Ku&&(n=Error(a(423),{cause:l}),Va(Jn(n,s))),e=e.current.alternate,e.flags|=65536,d&=-d,e.lanes|=d,l=Jn(l,s),d=kd(e.stateNode,l,d),ad(e,d),Kt!==4&&(Kt=2)),!1;var f=Error(a(520),{cause:l});if(f=Jn(f,s),il===null?il=[f]:il.push(f),Kt!==4&&(Kt=2),n===null)return!0;l=Jn(l,s),s=n;do{switch(s.tag){case 3:return s.flags|=65536,e=d&-d,s.lanes|=e,e=kd(s.stateNode,l,e),ad(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"&&(wr===null||!wr.has(f))))return s.flags|=65536,d&=-d,s.lanes|=d,d=tx(d),nx(d,e,s,l),ad(s,d),!1}s=s.return}while(s!==null);return!1}var _d=Error(a(461)),nn=!1;function bn(e,n,s,l){n.child=e===null?ag(n,null,s,l):ro(n,e.child,s,l)}function sx(e,n,s,l,d){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 eo(n),l=fd(e,n,s,v,f,d),R=md(),e!==null&&!nn?(pd(e,n,d),Vs(e,n,d)):(Et&&R&&$u(n),n.flags|=1,bn(e,n,l,d),n.child)}function rx(e,n,s,l,d){if(e===null){var f=s.type;return typeof f=="function"&&!Fu(f)&&f.defaultProps===void 0&&s.compare===null?(n.tag=15,n.type=f,ox(e,n,f,l,d)):(e=xi(s.type,null,l,n,n.mode,d),e.ref=n.ref,e.return=n,n.child=e)}if(f=e.child,!Hd(e,d)){var v=f.memoizedProps;if(s=s.compare,s=s!==null?s:Ua,s(v,l)&&e.ref===n.ref)return Vs(e,n,d)}return n.flags|=1,e=Is(f,l),e.ref=n.ref,e.return=n,n.child=e}function ox(e,n,s,l,d){if(e!==null){var f=e.memoizedProps;if(Ua(f,l)&&e.ref===n.ref)if(nn=!1,n.pendingProps=l=f,Hd(e,d))(e.flags&131072)!==0&&(nn=!0);else return n.lanes=e.lanes,Vs(e,n,d)}return Md(e,n,s,l,d)}function ax(e,n,s,l){var d=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,d=0;l!==null;)d=d|l.lanes|l.childLanes,l=l.sibling;l=d&~f}else l=0,n.child=null;return lx(e,n,f,s,l)}if((s&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&Si(n,f!==null?f.cachePool:null),f!==null?cg(n,f):id(),ug(n);else return l=n.lanes=536870912,lx(e,n,f!==null?f.baseLanes|s:s,s,l)}else f!==null?(Si(n,f.cachePool),cg(n,f),Sr(),n.memoizedState=null):(e!==null&&Si(n,null),id(),Sr());return bn(e,n,d,s),n.child}function tl(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function lx(e,n,s,l,d){var f=nd();return f=f===null?null:{parent:en._currentValue,pool:f},n.memoizedState={baseLanes:s,cachePool:f},e!==null&&Si(n,null),id(),ug(n),e!==null&&$o(e,n,l,!0),n.childLanes=d,null}function Ii(e,n){return n=Hi({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function ix(e,n,s){return ro(n,e.child,null,s),e=Ii(n,n.pendingProps),e.flags|=2,Pn(n),n.memoizedState=null,e}function tN(e,n,s){var l=n.pendingProps,d=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(Et){if(l.mode==="hidden")return e=Ii(n,l),n.lanes=536870912,tl(null,e);if(ud(n),(e=Ft)?(e=vb(e,ts),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:mr!==null?{id:hs,overflow:gs}:null,retryLane:536870912,hydrationErrors:null},s=Gh(e),s.return=n,n.child=s,gn=n,Ft=null)):e=null,e===null)throw hr(n);return n.lanes=536870912,null}return Ii(n,l)}var f=e.memoizedState;if(f!==null){var v=f.dehydrated;if(ud(n),d)if(n.flags&256)n.flags&=-257,n=ix(e,n,s);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(a(558));else if(nn||$o(e,n,s,!1),d=(s&e.childLanes)!==0,nn||d){if(l=Ut,l!==null&&(v=hn(l,s),v!==0&&v!==f.retryLane))throw f.retryLane=v,Qr(e,v),An(l,e,v),_d;Xi(),n=ix(e,n,s)}else e=f.treeContext,Ft=ss(v.nextSibling),gn=n,Et=!0,pr=null,ts=!1,e!==null&&Xh(n,e),n=Ii(n,l),n.flags|=4096;return n}return e=Is(e.child,{mode:l.mode,children:l.children}),e.ref=n.ref,n.child=e,e.return=n,e}function Bi(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 Md(e,n,s,l,d){return eo(n),s=fd(e,n,s,l,void 0,d),l=md(),e!==null&&!nn?(pd(e,n,d),Vs(e,n,d)):(Et&&l&&$u(n),n.flags|=1,bn(e,n,s,d),n.child)}function cx(e,n,s,l,d,f){return eo(n),n.updateQueue=null,s=fg(n,l,s,d),dg(e),l=md(),e!==null&&!nn?(pd(e,n,f),Vs(e,n,f)):(Et&&l&&$u(n),n.flags|=1,bn(e,n,s,f),n.child)}function ux(e,n,s,l,d){if(eo(n),n.stateNode===null){var f=Vo,v=s.contextType;typeof v=="object"&&v!==null&&(f=xn(v)),f=new s(l,f),n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Od,n.stateNode=f,f._reactInternals=n,f=n.stateNode,f.props=l,f.state=n.memoizedState,f.refs={},rd(n),v=s.contextType,f.context=typeof v=="object"&&v!==null?xn(v):Vo,f.state=n.memoizedState,v=s.getDerivedStateFromProps,typeof v=="function"&&(Rd(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&&Od.enqueueReplaceState(f,f.state,null),Qa(n,l,f,d),Ka(),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=ao(s,R);f.props=X;var ue=f.context,ve=s.contextType;v=Vo,typeof ve=="object"&&ve!==null&&(v=xn(ve));var Ne=s.getDerivedStateFromProps;ve=typeof Ne=="function"||typeof f.getSnapshotBeforeUpdate=="function",R=n.pendingProps!==R,ve||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(R||ue!==v)&&Qg(n,f,l,v),xr=!1;var fe=n.memoizedState;f.state=fe,Qa(n,l,f,d),Ka(),ue=n.memoizedState,R||fe!==ue||xr?(typeof Ne=="function"&&(Rd(n,s,Ne,l),ue=n.memoizedState),(X=xr||Kg(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,od(e,n),v=n.memoizedProps,ve=ao(s,v),f.props=ve,Ne=n.pendingProps,fe=f.context,ue=s.contextType,X=Vo,typeof ue=="object"&&ue!==null&&(X=xn(ue)),R=s.getDerivedStateFromProps,(ue=typeof R=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(v!==Ne||fe!==X)&&Qg(n,f,l,X),xr=!1,fe=n.memoizedState,f.state=fe,Qa(n,l,f,d),Ka();var pe=n.memoizedState;v!==Ne||fe!==pe||xr||e!==null&&e.dependencies!==null&&yi(e.dependencies)?(typeof R=="function"&&(Rd(n,s,R,l),pe=n.memoizedState),(ve=xr||Kg(n,s,ve,l,fe,pe,X)||e!==null&&e.dependencies!==null&&yi(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,Bi(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=ro(n,e.child,null,d),n.child=ro(n,null,s,d)):bn(e,n,s,d),n.memoizedState=f.state,e=n.child):e=Vs(e,n,d),e}function dx(e,n,s,l){return Jr(),n.flags|=256,bn(e,n,s,l),n.child}var Ad={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Dd(e){return{baseLanes:e,cachePool:eg()}}function zd(e,n,s){return e=e!==null?e.childLanes&~s:0,n&&(e|=Vn),e}function fx(e,n,s){var l=n.pendingProps,d=!1,f=(n.flags&128)!==0,v;if((v=f)||(v=e!==null&&e.memoizedState===null?!1:(Jt.current&2)!==0),v&&(d=!0,n.flags&=-129),v=(n.flags&32)!==0,n.flags&=-33,e===null){if(Et){if(d?vr(n):Sr(),(e=Ft)?(e=vb(e,ts),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:mr!==null?{id:hs,overflow:gs}:null,retryLane:536870912,hydrationErrors:null},s=Gh(e),s.return=n,n.child=s,gn=n,Ft=null)):e=null,e===null)throw hr(n);return bf(e)?n.lanes=32:n.lanes=536870912,null}var R=l.children;return l=l.fallback,d?(Sr(),d=n.mode,R=Hi({mode:"hidden",children:R},d),l=Zr(l,d,s,null),R.return=n,l.return=n,R.sibling=l,n.child=R,l=n.child,l.memoizedState=Dd(s),l.childLanes=zd(e,v,s),n.memoizedState=Ad,tl(null,l)):(vr(n),Ld(n,R))}var X=e.memoizedState;if(X!==null&&(R=X.dehydrated,R!==null)){if(f)n.flags&256?(vr(n),n.flags&=-257,n=Id(e,n,s)):n.memoizedState!==null?(Sr(),n.child=e.child,n.flags|=128,n=null):(Sr(),R=l.fallback,d=n.mode,l=Hi({mode:"visible",children:l.children},d),R=Zr(R,d,s,null),R.flags|=2,l.return=n,R.return=n,l.sibling=R,n.child=l,ro(n,e.child,null,s),l=n.child,l.memoizedState=Dd(s),l.childLanes=zd(e,v,s),n.memoizedState=Ad,n=tl(null,l));else if(vr(n),bf(R)){if(v=R.nextSibling&&R.nextSibling.dataset,v)var ue=v.dgst;v=ue,l=Error(a(419)),l.stack="",l.digest=v,Va({value:l,source:null,stack:null}),n=Id(e,n,s)}else if(nn||$o(e,n,s,!1),v=(s&e.childLanes)!==0,nn||v){if(v=Ut,v!==null&&(l=hn(v,s),l!==0&&l!==X.retryLane))throw X.retryLane=l,Qr(e,l),An(v,e,l),_d;xf(R)||Xi(),n=Id(e,n,s)}else xf(R)?(n.flags|=192,n.child=e.child,n=null):(e=X.treeContext,Ft=ss(R.nextSibling),gn=n,Et=!0,pr=null,ts=!1,e!==null&&Xh(n,e),n=Ld(n,l.children),n.flags|=4096);return n}return d?(Sr(),R=l.fallback,d=n.mode,X=e.child,ue=X.sibling,l=Is(X,{mode:"hidden",children:l.children}),l.subtreeFlags=X.subtreeFlags&65011712,ue!==null?R=Is(ue,R):(R=Zr(R,d,s,null),R.flags|=2),R.return=n,l.return=n,l.sibling=R,n.child=l,tl(null,l),l=n.child,R=e.child.memoizedState,R===null?R=Dd(s):(d=R.cachePool,d!==null?(X=en._currentValue,d=d.parent!==X?{parent:X,pool:X}:d):d=eg(),R={baseLanes:R.baseLanes|s,cachePool:d}),l.memoizedState=R,l.childLanes=zd(e,v,s),n.memoizedState=Ad,tl(e.child,l)):(vr(n),s=e.child,e=s.sibling,s=Is(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 Ld(e,n){return n=Hi({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function Hi(e,n){return e=Hn(22,e,null,n),e.lanes=0,e}function Id(e,n,s){return ro(n,e.child,null,s),e=Ld(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function mx(e,n,s){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),Ju(e.return,n,s)}function Bd(e,n,s,l,d,f){var v=e.memoizedState;v===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:d,treeForkCount:f}:(v.isBackwards=n,v.rendering=null,v.renderingStartTime=0,v.last=l,v.tail=s,v.tailMode=d,v.treeForkCount=f)}function px(e,n,s){var l=n.pendingProps,d=l.revealOrder,f=l.tail;l=l.children;var v=Jt.current,R=(v&2)!==0;if(R?(v=v&1|2,n.flags|=128):v&=1,I(Jt,v),bn(e,n,l,s),l=Et?Ya:0,!R&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&mx(e,s,n);else if(e.tag===19)mx(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(d){case"forwards":for(s=n.child,d=null;s!==null;)e=s.alternate,e!==null&&Ci(e)===null&&(d=s),s=s.sibling;s=d,s===null?(d=n.child,n.child=null):(d=s.sibling,s.sibling=null),Bd(n,!1,d,s,f,l);break;case"backwards":case"unstable_legacy-backwards":for(s=null,d=n.child,n.child=null;d!==null;){if(e=d.alternate,e!==null&&Ci(e)===null){n.child=d;break}e=d.sibling,d.sibling=s,s=d,d=e}Bd(n,!0,s,null,f,l);break;case"together":Bd(n,!1,null,null,void 0,l);break;default:n.memoizedState=null}return n.child}function Vs(e,n,s){if(e!==null&&(n.dependencies=e.dependencies),jr|=n.lanes,(s&n.childLanes)===0)if(e!==null){if($o(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=Is(e,e.pendingProps),n.child=s,s.return=n;e.sibling!==null;)e=e.sibling,s=s.sibling=Is(e,e.pendingProps),s.return=n;s.sibling=null}return n.child}function Hd(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&yi(e)))}function nN(e,n,s){switch(n.tag){case 3:le(n,n.stateNode.containerInfo),gr(n,en,e.memoizedState.cache),Jr();break;case 27:case 5:He(n);break;case 4:le(n,n.stateNode.containerInfo);break;case 10:gr(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,ud(n),null;break;case 13:var l=n.memoizedState;if(l!==null)return l.dehydrated!==null?(vr(n),n.flags|=128,null):(s&n.child.childLanes)!==0?fx(e,n,s):(vr(n),e=Vs(e,n,s),e!==null?e.sibling:null);vr(n);break;case 19:var d=(e.flags&128)!==0;if(l=(s&n.childLanes)!==0,l||($o(e,n,s,!1),l=(s&n.childLanes)!==0),d){if(l)return px(e,n,s);n.flags|=128}if(d=n.memoizedState,d!==null&&(d.rendering=null,d.tail=null,d.lastEffect=null),I(Jt,Jt.current),l)break;return null;case 22:return n.lanes=0,ax(e,n,s,n.pendingProps);case 24:gr(n,en,e.memoizedState.cache)}return Vs(e,n,s)}function hx(e,n,s){if(e!==null)if(e.memoizedProps!==n.pendingProps)nn=!0;else{if(!Hd(e,s)&&(n.flags&128)===0)return nn=!1,nN(e,n,s);nn=(e.flags&131072)!==0}else nn=!1,Et&&(n.flags&1048576)!==0&&$h(n,Ya,n.index);switch(n.lanes=0,n.tag){case 16:e:{var l=n.pendingProps;if(e=no(n.elementType),n.type=e,typeof e=="function")Fu(e)?(l=ao(e,l),n.tag=1,n=ux(null,n,e,l,s)):(n.tag=0,n=Md(null,n,e,l,s));else{if(e!=null){var d=e.$$typeof;if(d===T){n.tag=11,n=sx(null,n,e,l,s);break e}else if(d===L){n.tag=14,n=rx(null,n,e,l,s);break e}}throw n=ne(e)||e,Error(a(306,n,""))}}return n;case 0:return Md(e,n,n.type,n.pendingProps,s);case 1:return l=n.type,d=ao(l,n.pendingProps),ux(e,n,l,d,s);case 3:e:{if(le(n,n.stateNode.containerInfo),e===null)throw Error(a(387));l=n.pendingProps;var f=n.memoizedState;d=f.element,od(e,n),Qa(n,l,null,s);var v=n.memoizedState;if(l=v.cache,gr(n,en,l),l!==f.cache&&Wu(n,[en],s,!0),Ka(),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=dx(e,n,l,s);break e}else if(l!==d){d=Jn(Error(a(424)),n),Va(d),n=dx(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,Ft=ss(e.firstChild),gn=n,Et=!0,pr=null,ts=!0,s=ag(n,null,l,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(Jr(),l===d){n=Vs(e,n,s);break e}bn(e,n,l,s)}n=n.child}return n;case 26:return Bi(e,n),e===null?(s=Tb(n.type,null,n.pendingProps,null))?n.memoizedState=s:Et||(s=n.type,e=n.pendingProps,l=tc(Q.current).createElement(s),l[rn]=n,l[Cn]=e,yn(l,s,e),un(l),n.stateNode=l):n.memoizedState=Tb(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return He(n),e===null&&Et&&(l=n.stateNode=Nb(n.type,n.pendingProps,Q.current),gn=n,ts=!0,d=Ft,Or(n.type)?(yf=d,Ft=ss(l.firstChild)):Ft=d),bn(e,n,n.pendingProps.children,s),Bi(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&Et&&((d=l=Ft)&&(l=MN(l,n.type,n.pendingProps,ts),l!==null?(n.stateNode=l,gn=n,Ft=ss(l.firstChild),ts=!1,d=!0):d=!1),d||hr(n)),He(n),d=n.type,f=n.pendingProps,v=e!==null?e.memoizedProps:null,l=f.children,pf(d,f)?l=null:v!==null&&pf(d,v)&&(n.flags|=32),n.memoizedState!==null&&(d=fd(e,n,$E,null,null,s),gl._currentValue=d),Bi(e,n),bn(e,n,l,s),n.child;case 6:return e===null&&Et&&((e=s=Ft)&&(s=AN(s,n.pendingProps,ts),s!==null?(n.stateNode=s,gn=n,Ft=null,e=!0):e=!1),e||hr(n)),null;case 13:return fx(e,n,s);case 4:return le(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=ro(n,null,l,s):bn(e,n,l,s),n.child;case 11:return sx(e,n,n.type,n.pendingProps,s);case 7:return bn(e,n,n.pendingProps,s),n.child;case 8:return bn(e,n,n.pendingProps.children,s),n.child;case 12:return bn(e,n,n.pendingProps.children,s),n.child;case 10:return l=n.pendingProps,gr(n,n.type,l.value),bn(e,n,l.children,s),n.child;case 9:return d=n.type._context,l=n.pendingProps.children,eo(n),d=xn(d),l=l(d),n.flags|=1,bn(e,n,l,s),n.child;case 14:return rx(e,n,n.type,n.pendingProps,s);case 15:return ox(e,n,n.type,n.pendingProps,s);case 19:return px(e,n,s);case 31:return tN(e,n,s);case 22:return ax(e,n,s,n.pendingProps);case 24:return eo(n),l=xn(en),e===null?(d=nd(),d===null&&(d=Ut,f=ed(),d.pooledCache=f,f.refCount++,f!==null&&(d.pooledCacheLanes|=s),d=f),n.memoizedState={parent:l,cache:d},rd(n),gr(n,en,d)):((e.lanes&s)!==0&&(od(e,n),Qa(n,null,null,s),Ka()),d=e.memoizedState,f=n.memoizedState,d.parent!==l?(d={parent:l,cache:l},n.memoizedState=d,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=d),gr(n,en,l)):(l=f.cache,gr(n,en,l),l!==d.cache&&Wu(n,[en],s,!0))),bn(e,n,n.pendingProps.children,s),n.child;case 29:throw n.pendingProps}throw Error(a(156,n.tag))}function Fs(e){e.flags|=4}function Ud(e,n,s,l,d){if((n=(e.mode&32)!==0)&&(n=!1),n){if(e.flags|=16777216,(d&335544128)===d)if(e.stateNode.complete)e.flags|=8192;else if(Yx())e.flags|=8192;else throw so=Ni,sd}else e.flags&=-16777217}function gx(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!_b(n))if(Yx())e.flags|=8192;else throw so=Ni,sd}function Ui(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?nt():536870912,e.lanes|=n,oa|=n)}function nl(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 Gt(e){var n=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(n)for(var d=e.child;d!==null;)s|=d.lanes|d.childLanes,l|=d.subtreeFlags&65011712,l|=d.flags&65011712,d.return=e,d=d.sibling;else for(d=e.child;d!==null;)s|=d.lanes|d.childLanes,l|=d.subtreeFlags,l|=d.flags,d.return=e,d=d.sibling;return e.subtreeFlags|=l,e.childLanes=s,n}function sN(e,n,s){var l=n.pendingProps;switch(Xu(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gt(n),null;case 1:return Gt(n),null;case 3:return s=n.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),Us(en),de(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(qo(n)?Fs(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Qu())),Gt(n),null;case 26:var d=n.type,f=n.memoizedState;return e===null?(Fs(n),f!==null?(Gt(n),gx(n,f)):(Gt(n),Ud(n,d,null,l,s))):f?f!==e.memoizedState?(Fs(n),Gt(n),gx(n,f)):(Gt(n),n.flags&=-16777217):(e=e.memoizedProps,e!==l&&Fs(n),Gt(n),Ud(n,d,e,l,s)),null;case 27:if(ze(n),s=Q.current,d=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&Fs(n);else{if(!l){if(n.stateNode===null)throw Error(a(166));return Gt(n),null}e=U.current,qo(n)?Kh(n):(e=Nb(d,l,s),n.stateNode=e,Fs(n))}return Gt(n),null;case 5:if(ze(n),d=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&Fs(n);else{if(!l){if(n.stateNode===null)throw Error(a(166));return Gt(n),null}if(f=U.current,qo(n))Kh(n);else{var v=tc(Q.current);switch(f){case 1:f=v.createElementNS("http://www.w3.org/2000/svg",d);break;case 2:f=v.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;default:switch(d){case"svg":f=v.createElementNS("http://www.w3.org/2000/svg",d);break;case"math":f=v.createElementNS("http://www.w3.org/1998/Math/MathML",d);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(d,{is:l.is}):v.createElement(d)}}f[rn]=n,f[Cn]=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(yn(f,d,l),d){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Fs(n)}}return Gt(n),Ud(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,s),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==l&&Fs(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,d=gn,d!==null)switch(d.tag){case 27:case 5:l=d.memoizedProps}e[rn]=n,e=!!(e.nodeValue===s||l!==null&&l.suppressHydrationWarning===!0||fb(e.nodeValue,s)),e||hr(n,!0)}else e=tc(e).createTextNode(l),e[rn]=n,n.stateNode=e}return Gt(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[rn]=n}else Jr(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Gt(n),e=!1}else s=Qu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),e=!0;if(!e)return n.flags&256?(Pn(n),n):(Pn(n),null);if((n.flags&128)!==0)throw Error(a(558))}return Gt(n),null;case 13:if(l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(d=qo(n),l!==null&&l.dehydrated!==null){if(e===null){if(!d)throw Error(a(318));if(d=n.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(a(317));d[rn]=n}else Jr(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Gt(n),d=!1}else d=Qu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=d),d=!0;if(!d)return n.flags&256?(Pn(n),n):(Pn(n),null)}return Pn(n),(n.flags&128)!==0?(n.lanes=s,n):(s=l!==null,e=e!==null&&e.memoizedState!==null,s&&(l=n.child,d=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(d=l.alternate.memoizedState.cachePool.pool),f=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(f=l.memoizedState.cachePool.pool),f!==d&&(l.flags|=2048)),s!==e&&s&&(n.child.flags|=8192),Ui(n,n.updateQueue),Gt(n),null);case 4:return de(),e===null&&cf(n.stateNode.containerInfo),Gt(n),null;case 10:return Us(n.type),Gt(n),null;case 19:if(B(Jt),l=n.memoizedState,l===null)return Gt(n),null;if(d=(n.flags&128)!==0,f=l.rendering,f===null)if(d)nl(l,!1);else{if(Kt!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(f=Ci(e),f!==null){for(n.flags|=128,nl(l,!1),e=f.updateQueue,n.updateQueue=e,Ui(n,e),n.subtreeFlags=0,e=s,s=n.child;s!==null;)Fh(s,e),s=s.sibling;return I(Jt,Jt.current&1|2),Et&&Bs(n,l.treeForkCount),n.child}e=e.sibling}l.tail!==null&&Y()>Gi&&(n.flags|=128,d=!0,nl(l,!1),n.lanes=4194304)}else{if(!d)if(e=Ci(f),e!==null){if(n.flags|=128,d=!0,e=e.updateQueue,n.updateQueue=e,Ui(n,e),nl(l,!0),l.tail===null&&l.tailMode==="hidden"&&!f.alternate&&!Et)return Gt(n),null}else 2*Y()-l.renderingStartTime>Gi&&s!==536870912&&(n.flags|=128,d=!0,nl(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=Jt.current,I(Jt,d?s&1|2:s&1),Et&&Bs(n,l.treeForkCount),e):(Gt(n),null);case 22:case 23:return Pn(n),cd(),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&&(Gt(n),n.subtreeFlags&6&&(n.flags|=8192)):Gt(n),s=n.updateQueue,s!==null&&Ui(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&&B(to),null;case 24:return s=null,e!==null&&(s=e.memoizedState.cache),n.memoizedState.cache!==s&&(n.flags|=2048),Us(en),Gt(n),null;case 25:return null;case 30:return null}throw Error(a(156,n.tag))}function rN(e,n){switch(Xu(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Us(en),de(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return ze(n),null;case 31:if(n.memoizedState!==null){if(Pn(n),n.alternate===null)throw Error(a(340));Jr()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(Pn(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(a(340));Jr()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return B(Jt),null;case 4:return de(),null;case 10:return Us(n.type),null;case 22:case 23:return Pn(n),cd(),e!==null&&B(to),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Us(en),null;case 25:return null;default:return null}}function xx(e,n){switch(Xu(n),n.tag){case 3:Us(en),de();break;case 26:case 27:case 5:ze(n);break;case 4:de();break;case 31:n.memoizedState!==null&&Pn(n);break;case 13:Pn(n);break;case 19:B(Jt);break;case 10:Us(n.type);break;case 22:case 23:Pn(n),cd(),e!==null&&B(to);break;case 24:Us(en)}}function sl(e,n){try{var s=n.updateQueue,l=s!==null?s.lastEffect:null;if(l!==null){var d=l.next;s=d;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!==d)}}catch(R){Dt(n,n.return,R)}}function Er(e,n,s){try{var l=n.updateQueue,d=l!==null?l.lastEffect:null;if(d!==null){var f=d.next;l=f;do{if((l.tag&e)===e){var v=l.inst,R=v.destroy;if(R!==void 0){v.destroy=void 0,d=n;var X=s,ue=R;try{ue()}catch(ve){Dt(d,X,ve)}}}l=l.next}while(l!==f)}}catch(ve){Dt(n,n.return,ve)}}function bx(e){var n=e.updateQueue;if(n!==null){var s=e.stateNode;try{ig(n,s)}catch(l){Dt(e,e.return,l)}}}function yx(e,n,s){s.props=ao(e.type,e.memoizedProps),s.state=e.memoizedState;try{s.componentWillUnmount()}catch(l){Dt(e,n,l)}}function rl(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(d){Dt(e,n,d)}}function xs(e,n){var s=e.ref,l=e.refCleanup;if(s!==null)if(typeof l=="function")try{l()}catch(d){Dt(e,n,d)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(d){Dt(e,n,d)}else s.current=null}function vx(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(d){Dt(e,e.return,d)}}function Pd(e,n,s){try{var l=e.stateNode;TN(l,e.type,s,n),l[Cn]=n}catch(d){Dt(e,e.return,d)}}function Sx(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Or(e.type)||e.tag===4}function Yd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sx(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&&Or(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 Vd(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=zs));else if(l!==4&&(l===27&&Or(e.type)&&(s=e.stateNode,n=null),e=e.child,e!==null))for(Vd(e,n,s),e=e.sibling;e!==null;)Vd(e,n,s),e=e.sibling}function Pi(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&&Or(e.type)&&(s=e.stateNode),e=e.child,e!==null))for(Pi(e,n,s),e=e.sibling;e!==null;)Pi(e,n,s),e=e.sibling}function Ex(e){var n=e.stateNode,s=e.memoizedProps;try{for(var l=e.type,d=n.attributes;d.length;)n.removeAttributeNode(d[0]);yn(n,l,s),n[rn]=e,n[Cn]=s}catch(f){Dt(e,e.return,f)}}var Gs=!1,sn=!1,Fd=!1,Nx=typeof WeakSet=="function"?WeakSet:Set,dn=null;function oN(e,n){if(e=e.containerInfo,ff=ic,e=zh(e),Iu(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 d=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,Ne=e,fe=null;t:for(;;){for(var pe;Ne!==s||d!==0&&Ne.nodeType!==3||(R=v+d),Ne!==f||l!==0&&Ne.nodeType!==3||(X=v+l),Ne.nodeType===3&&(v+=Ne.nodeValue.length),(pe=Ne.firstChild)!==null;)fe=Ne,Ne=pe;for(;;){if(Ne===e)break t;if(fe===s&&++ue===d&&(R=v),fe===f&&++ve===l&&(X=v),(pe=Ne.nextSibling)!==null)break;Ne=fe,fe=Ne.parentNode}Ne=pe}s=R===-1||X===-1?null:{start:R,end:X}}else s=null}s=s||{start:0,end:0}}else s=null;for(mf={focusedElem:e,selectionRange:s},ic=!1,dn=n;dn!==null;)if(n=dn,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,dn=e;else for(;dn!==null;){switch(n=dn,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++)d=e[s],d.ref.impl=d.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&f!==null){e=void 0,s=n,d=f.memoizedProps,f=f.memoizedState,l=s.stateNode;try{var Xe=ao(s.type,d);e=l.getSnapshotBeforeUpdate(Xe,f),l.__reactInternalSnapshotBeforeUpdate=e}catch(et){Dt(s,s.return,et)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,s=e.nodeType,s===9)gf(e);else if(s===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":gf(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,dn=e;break}dn=n.return}}function jx(e,n,s){var l=s.flags;switch(s.tag){case 0:case 11:case 15:$s(e,s),l&4&&sl(5,s);break;case 1:if($s(e,s),l&4)if(e=s.stateNode,n===null)try{e.componentDidMount()}catch(v){Dt(s,s.return,v)}else{var d=ao(s.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(d,n,e.__reactInternalSnapshotBeforeUpdate)}catch(v){Dt(s,s.return,v)}}l&64&&bx(s),l&512&&rl(s,s.return);break;case 3:if($s(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{ig(e,n)}catch(v){Dt(s,s.return,v)}}break;case 27:n===null&&l&4&&Ex(s);case 26:case 5:$s(e,s),n===null&&l&4&&vx(s),l&512&&rl(s,s.return);break;case 12:$s(e,s);break;case 31:$s(e,s),l&4&&Cx(e,s);break;case 13:$s(e,s),l&4&&Rx(e,s),l&64&&(e=s.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(s=pN.bind(null,s),DN(e,s))));break;case 22:if(l=s.memoizedState!==null||Gs,!l){n=n!==null&&n.memoizedState!==null||sn,d=Gs;var f=sn;Gs=l,(sn=n)&&!f?Xs(e,s,(s.subtreeFlags&8772)!==0):$s(e,s),Gs=d,sn=f}break;case 30:break;default:$s(e,s)}}function wx(e){var n=e.alternate;n!==null&&(e.alternate=null,wx(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&vu(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 $t=null,On=!1;function qs(e,n,s){for(s=s.child;s!==null;)Tx(e,n,s),s=s.sibling}function Tx(e,n,s){if(mt&&typeof mt.onCommitFiberUnmount=="function")try{mt.onCommitFiberUnmount(Mt,s)}catch{}switch(s.tag){case 26:sn||xs(s,n),qs(e,n,s),s.memoizedState?s.memoizedState.count--:s.stateNode&&(s=s.stateNode,s.parentNode.removeChild(s));break;case 27:sn||xs(s,n);var l=$t,d=On;Or(s.type)&&($t=s.stateNode,On=!1),qs(e,n,s),ml(s.stateNode),$t=l,On=d;break;case 5:sn||xs(s,n);case 6:if(l=$t,d=On,$t=null,qs(e,n,s),$t=l,On=d,$t!==null)if(On)try{($t.nodeType===9?$t.body:$t.nodeName==="HTML"?$t.ownerDocument.body:$t).removeChild(s.stateNode)}catch(f){Dt(s,n,f)}else try{$t.removeChild(s.stateNode)}catch(f){Dt(s,n,f)}break;case 18:$t!==null&&(On?(e=$t,bb(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,s.stateNode),ma(e)):bb($t,s.stateNode));break;case 4:l=$t,d=On,$t=s.stateNode.containerInfo,On=!0,qs(e,n,s),$t=l,On=d;break;case 0:case 11:case 14:case 15:Er(2,s,n),sn||Er(4,s,n),qs(e,n,s);break;case 1:sn||(xs(s,n),l=s.stateNode,typeof l.componentWillUnmount=="function"&&yx(s,n,l)),qs(e,n,s);break;case 21:qs(e,n,s);break;case 22:sn=(l=sn)||s.memoizedState!==null,qs(e,n,s),sn=l;break;default:qs(e,n,s)}}function Cx(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{ma(e)}catch(s){Dt(n,n.return,s)}}}function Rx(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{ma(e)}catch(s){Dt(n,n.return,s)}}function aN(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new Nx),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new Nx),n;default:throw Error(a(435,e.tag))}}function Yi(e,n){var s=aN(e);n.forEach(function(l){if(!s.has(l)){s.add(l);var d=hN.bind(null,e,l);l.then(d,d)}})}function kn(e,n){var s=n.deletions;if(s!==null)for(var l=0;l<s.length;l++){var d=s[l],f=e,v=n,R=v;e:for(;R!==null;){switch(R.tag){case 27:if(Or(R.type)){$t=R.stateNode,On=!1;break e}break;case 5:$t=R.stateNode,On=!1;break e;case 3:case 4:$t=R.stateNode.containerInfo,On=!0;break e}R=R.return}if($t===null)throw Error(a(160));Tx(f,v,d),$t=null,On=!1,f=d.alternate,f!==null&&(f.return=null),d.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)Ox(n,e),n=n.sibling}var us=null;function Ox(e,n){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:kn(n,e),_n(e),l&4&&(Er(3,e,e.return),sl(3,e),Er(5,e,e.return));break;case 1:kn(n,e),_n(e),l&512&&(sn||s===null||xs(s,s.return)),l&64&&Gs&&(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 d=us;if(kn(n,e),_n(e),l&512&&(sn||s===null||xs(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,d=d.ownerDocument||d;t:switch(l){case"title":f=d.getElementsByTagName("title")[0],(!f||f[_a]||f[rn]||f.namespaceURI==="http://www.w3.org/2000/svg"||f.hasAttribute("itemprop"))&&(f=d.createElement(l),d.head.insertBefore(f,d.querySelector("head > title"))),yn(f,l,s),f[rn]=e,un(f),l=f;break e;case"link":var v=Ob("link","href",d).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=d.createElement(l),yn(f,l,s),d.head.appendChild(f);break;case"meta":if(v=Ob("meta","content",d).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=d.createElement(l),yn(f,l,s),d.head.appendChild(f);break;default:throw Error(a(468,l))}f[rn]=e,un(f),l=f}e.stateNode=l}else kb(d,e.type,e.stateNode);else e.stateNode=Rb(d,l,e.memoizedProps);else f!==l?(f===null?s.stateNode!==null&&(s=s.stateNode,s.parentNode.removeChild(s)):f.count--,l===null?kb(d,e.type,e.stateNode):Rb(d,l,e.memoizedProps)):l===null&&e.stateNode!==null&&Pd(e,e.memoizedProps,s.memoizedProps)}break;case 27:kn(n,e),_n(e),l&512&&(sn||s===null||xs(s,s.return)),s!==null&&l&4&&Pd(e,e.memoizedProps,s.memoizedProps);break;case 5:if(kn(n,e),_n(e),l&512&&(sn||s===null||xs(s,s.return)),e.flags&32){d=e.stateNode;try{Lo(d,"")}catch(Xe){Dt(e,e.return,Xe)}}l&4&&e.stateNode!=null&&(d=e.memoizedProps,Pd(e,d,s!==null?s.memoizedProps:d)),l&1024&&(Fd=!0);break;case 6:if(kn(n,e),_n(e),l&4){if(e.stateNode===null)throw Error(a(162));l=e.memoizedProps,s=e.stateNode;try{s.nodeValue=l}catch(Xe){Dt(e,e.return,Xe)}}break;case 3:if(rc=null,d=us,us=nc(n.containerInfo),kn(n,e),us=d,_n(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{ma(n.containerInfo)}catch(Xe){Dt(e,e.return,Xe)}Fd&&(Fd=!1,kx(e));break;case 4:l=us,us=nc(e.stateNode.containerInfo),kn(n,e),_n(e),us=l;break;case 12:kn(n,e),_n(e);break;case 31:kn(n,e),_n(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Yi(e,l)));break;case 13:kn(n,e),_n(e),e.child.flags&8192&&e.memoizedState!==null!=(s!==null&&s.memoizedState!==null)&&(Fi=Y()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Yi(e,l)));break;case 22:d=e.memoizedState!==null;var X=s!==null&&s.memoizedState!==null,ue=Gs,ve=sn;if(Gs=ue||d,sn=ve||X,kn(n,e),sn=ve,Gs=ue,_n(e),l&8192)e:for(n=e.stateNode,n._visibility=d?n._visibility&-2:n._visibility|1,d&&(s===null||X||Gs||sn||lo(e)),s=null,n=e;;){if(n.tag===5||n.tag===26){if(s===null){X=s=n;try{if(f=X.stateNode,d)v=f.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{R=X.stateNode;var Ne=X.memoizedProps.style,fe=Ne!=null&&Ne.hasOwnProperty("display")?Ne.display:null;R.style.display=fe==null||typeof fe=="boolean"?"":(""+fe).trim()}}catch(Xe){Dt(X,X.return,Xe)}}}else if(n.tag===6){if(s===null){X=n;try{X.stateNode.nodeValue=d?"":X.memoizedProps}catch(Xe){Dt(X,X.return,Xe)}}}else if(n.tag===18){if(s===null){X=n;try{var pe=X.stateNode;d?yb(pe,!0):yb(X.stateNode,!1)}catch(Xe){Dt(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,Yi(e,s))));break;case 19:kn(n,e),_n(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Yi(e,l)));break;case 30:break;case 21:break;default:kn(n,e),_n(e)}}function _n(e){var n=e.flags;if(n&2){try{for(var s,l=e.return;l!==null;){if(Sx(l)){s=l;break}l=l.return}if(s==null)throw Error(a(160));switch(s.tag){case 27:var d=s.stateNode,f=Yd(e);Pi(e,f,d);break;case 5:var v=s.stateNode;s.flags&32&&(Lo(v,""),s.flags&=-33);var R=Yd(e);Pi(e,R,v);break;case 3:case 4:var X=s.stateNode.containerInfo,ue=Yd(e);Vd(e,ue,X);break;default:throw Error(a(161))}}catch(ve){Dt(e,e.return,ve)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function kx(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;kx(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),e=e.sibling}}function $s(e,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)jx(e,n.alternate,n),n=n.sibling}function lo(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:Er(4,n,n.return),lo(n);break;case 1:xs(n,n.return);var s=n.stateNode;typeof s.componentWillUnmount=="function"&&yx(n,n.return,s),lo(n);break;case 27:ml(n.stateNode);case 26:case 5:xs(n,n.return),lo(n);break;case 22:n.memoizedState===null&&lo(n);break;case 30:lo(n);break;default:lo(n)}e=e.sibling}}function Xs(e,n,s){for(s=s&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var l=n.alternate,d=e,f=n,v=f.flags;switch(f.tag){case 0:case 11:case 15:Xs(d,f,s),sl(4,f);break;case 1:if(Xs(d,f,s),l=f,d=l.stateNode,typeof d.componentDidMount=="function")try{d.componentDidMount()}catch(ue){Dt(l,l.return,ue)}if(l=f,d=l.updateQueue,d!==null){var R=l.stateNode;try{var X=d.shared.hiddenCallbacks;if(X!==null)for(d.shared.hiddenCallbacks=null,d=0;d<X.length;d++)lg(X[d],R)}catch(ue){Dt(l,l.return,ue)}}s&&v&64&&bx(f),rl(f,f.return);break;case 27:Ex(f);case 26:case 5:Xs(d,f,s),s&&l===null&&v&4&&vx(f),rl(f,f.return);break;case 12:Xs(d,f,s);break;case 31:Xs(d,f,s),s&&v&4&&Cx(d,f);break;case 13:Xs(d,f,s),s&&v&4&&Rx(d,f);break;case 22:f.memoizedState===null&&Xs(d,f,s),rl(f,f.return);break;case 30:break;default:Xs(d,f,s)}n=n.sibling}}function Gd(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&&Fa(s))}function qd(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&Fa(e))}function ds(e,n,s,l){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)_x(e,n,s,l),n=n.sibling}function _x(e,n,s,l){var d=n.flags;switch(n.tag){case 0:case 11:case 15:ds(e,n,s,l),d&2048&&sl(9,n);break;case 1:ds(e,n,s,l);break;case 3:ds(e,n,s,l),d&2048&&(e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&Fa(e)));break;case 12:if(d&2048){ds(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){Dt(n,n.return,X)}}else ds(e,n,s,l);break;case 31:ds(e,n,s,l);break;case 13:ds(e,n,s,l);break;case 23:break;case 22:f=n.stateNode,v=n.alternate,n.memoizedState!==null?f._visibility&2?ds(e,n,s,l):ol(e,n):f._visibility&2?ds(e,n,s,l):(f._visibility|=2,na(e,n,s,l,(n.subtreeFlags&10256)!==0||!1)),d&2048&&Gd(v,n);break;case 24:ds(e,n,s,l),d&2048&&qd(n.alternate,n);break;default:ds(e,n,s,l)}}function na(e,n,s,l,d){for(d=d&&((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:na(f,v,R,X,d),sl(8,v);break;case 23:break;case 22:var ve=v.stateNode;v.memoizedState!==null?ve._visibility&2?na(f,v,R,X,d):ol(f,v):(ve._visibility|=2,na(f,v,R,X,d)),d&&ue&2048&&Gd(v.alternate,v);break;case 24:na(f,v,R,X,d),d&&ue&2048&&qd(v.alternate,v);break;default:na(f,v,R,X,d)}n=n.sibling}}function ol(e,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var s=e,l=n,d=l.flags;switch(l.tag){case 22:ol(s,l),d&2048&&Gd(l.alternate,l);break;case 24:ol(s,l),d&2048&&qd(l.alternate,l);break;default:ol(s,l)}n=n.sibling}}var al=8192;function sa(e,n,s){if(e.subtreeFlags&al)for(e=e.child;e!==null;)Mx(e,n,s),e=e.sibling}function Mx(e,n,s){switch(e.tag){case 26:sa(e,n,s),e.flags&al&&e.memoizedState!==null&&qN(s,us,e.memoizedState,e.memoizedProps);break;case 5:sa(e,n,s);break;case 3:case 4:var l=us;us=nc(e.stateNode.containerInfo),sa(e,n,s),us=l;break;case 22:e.memoizedState===null&&(l=e.alternate,l!==null&&l.memoizedState!==null?(l=al,al=16777216,sa(e,n,s),al=l):sa(e,n,s));break;default:sa(e,n,s)}}function Ax(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 ll(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];dn=l,zx(l,e)}Ax(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Dx(e),e=e.sibling}function Dx(e){switch(e.tag){case 0:case 11:case 15:ll(e),e.flags&2048&&Er(9,e,e.return);break;case 3:ll(e);break;case 12:ll(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,Vi(e)):ll(e);break;default:ll(e)}}function Vi(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];dn=l,zx(l,e)}Ax(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:Er(8,n,n.return),Vi(n);break;case 22:s=n.stateNode,s._visibility&2&&(s._visibility&=-3,Vi(n));break;default:Vi(n)}e=e.sibling}}function zx(e,n){for(;dn!==null;){var s=dn;switch(s.tag){case 0:case 11:case 15:Er(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:Fa(s.memoizedState.cache)}if(l=s.child,l!==null)l.return=s,dn=l;else e:for(s=e;dn!==null;){l=dn;var d=l.sibling,f=l.return;if(wx(l),l===s){dn=null;break e}if(d!==null){d.return=f,dn=d;break e}dn=f}}}var lN={getCacheForType:function(e){var n=xn(en),s=n.data.get(e);return s===void 0&&(s=e(),n.data.set(e,s)),s},cacheSignal:function(){return xn(en).controller.signal}},iN=typeof WeakMap=="function"?WeakMap:Map,kt=0,Ut=null,ht=null,bt=0,At=0,Yn=null,Nr=!1,ra=!1,$d=!1,Ks=0,Kt=0,jr=0,io=0,Xd=0,Vn=0,oa=0,il=null,Mn=null,Kd=!1,Fi=0,Lx=0,Gi=1/0,qi=null,wr=null,on=0,Tr=null,aa=null,Qs=0,Qd=0,Zd=null,Ix=null,cl=0,Jd=null;function Fn(){return(kt&2)!==0&&bt!==0?bt&-bt:D.T!==null?rf():As()}function Bx(){if(Vn===0)if((bt&536870912)===0||Et){var e=Ot;Ot<<=1,(Ot&3932160)===0&&(Ot=262144),Vn=e}else Vn=536870912;return e=Un.current,e!==null&&(e.flags|=32),Vn}function An(e,n,s){(e===Ut&&(At===2||At===9)||e.cancelPendingCommit!==null)&&(la(e,0),Cr(e,bt,Vn,!1)),rt(e,s),((kt&2)===0||e!==Ut)&&(e===Ut&&((kt&2)===0&&(io|=s),Kt===4&&Cr(e,bt,Vn,!1)),bs(e))}function Hx(e,n,s){if((kt&6)!==0)throw Error(a(327));var l=!s&&(n&127)===0&&(n&e.expiredLanes)===0||Ae(e,n),d=l?dN(e,n):ef(e,n,!0),f=l;do{if(d===0){ra&&!l&&Cr(e,n,0,!1);break}else{if(s=e.current.alternate,f&&!cN(s)){d=ef(e,n,!1),f=!1;continue}if(d===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;d=il;var X=R.current.memoizedState.isDehydrated;if(X&&(la(R,v).flags|=256),v=ef(R,v,!1),v!==2){if($d&&!X){R.errorRecoveryDisabledLanes|=f,io|=f,d=4;break e}f=Mn,Mn=d,f!==null&&(Mn===null?Mn=f:Mn.push.apply(Mn,f))}d=v}if(f=!1,d!==2)continue}}if(d===1){la(e,0),Cr(e,n,0,!0);break}e:{switch(l=e,f=d,f){case 0:case 1:throw Error(a(345));case 4:if((n&4194048)!==n)break;case 6:Cr(l,n,Vn,!Nr);break e;case 2:Mn=null;break;case 3:case 5:break;default:throw Error(a(329))}if((n&62914560)===n&&(d=Fi+300-Y(),10<d)){if(Cr(l,n,Vn,!Nr),ye(l,0,!0)!==0)break e;Qs=n,l.timeoutHandle=gb(Ux.bind(null,l,s,Mn,qi,Kd,n,Vn,io,oa,Nr,f,"Throttled",-0,0),d);break e}Ux(l,s,Mn,qi,Kd,n,Vn,io,oa,Nr,f,null,-0,0)}}break}while(!0);bs(e)}function Ux(e,n,s,l,d,f,v,R,X,ue,ve,Ne,fe,pe){if(e.timeoutHandle=-1,Ne=n.subtreeFlags,Ne&8192||(Ne&16785408)===16785408){Ne={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:zs},Mx(n,f,Ne);var Xe=(f&62914560)===f?Fi-Y():(f&4194048)===f?Lx-Y():0;if(Xe=$N(Ne,Xe),Xe!==null){Qs=f,e.cancelPendingCommit=Xe(Xx.bind(null,e,n,f,s,l,d,v,R,X,ve,Ne,null,fe,pe)),Cr(e,f,v,!ue);return}}Xx(e,n,f,s,l,d,v,R,X)}function cN(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 d=s[l],f=d.getSnapshot;d=d.value;try{if(!Bn(f(),d))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 Cr(e,n,s,l){n&=~Xd,n&=~io,e.suspendedLanes|=n,e.pingedLanes&=~n,l&&(e.warmLanes|=n),l=e.expirationTimes;for(var d=n;0<d;){var f=31-Rt(d),v=1<<f;l[f]=-1,d&=~v}s!==0&&Xn(e,s,n)}function $i(){return(kt&6)===0?(ul(0),!1):!0}function Wd(){if(ht!==null){if(At===0)var e=ht.return;else e=ht,Hs=Wr=null,hd(e),Zo=null,qa=0,e=ht;for(;e!==null;)xx(e.alternate,e),e=e.return;ht=null}}function la(e,n){var s=e.timeoutHandle;s!==-1&&(e.timeoutHandle=-1,ON(s)),s=e.cancelPendingCommit,s!==null&&(e.cancelPendingCommit=null,s()),Qs=0,Wd(),Ut=e,ht=s=Is(e.current,null),bt=n,At=0,Yn=null,Nr=!1,ra=Ae(e,n),$d=!1,oa=Vn=Xd=io=jr=Kt=0,Mn=il=null,Kd=!1,(n&8)!==0&&(n|=n&32);var l=e.entangledLanes;if(l!==0)for(e=e.entanglements,l&=n;0<l;){var d=31-Rt(l),f=1<<d;n|=e[d],l&=~f}return Ks=n,pi(),s}function Px(e,n){ct=null,D.H=el,n===Qo||n===Ei?(n=sg(),At=3):n===sd?(n=sg(),At=4):At=n===_d?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,Yn=n,ht===null&&(Kt=1,Li(e,Jn(n,e.current)))}function Yx(){var e=Un.current;return e===null?!0:(bt&4194048)===bt?ns===null:(bt&62914560)===bt||(bt&536870912)!==0?e===ns:!1}function Vx(){var e=D.H;return D.H=el,e===null?el:e}function Fx(){var e=D.A;return D.A=lN,e}function Xi(){Kt=4,Nr||(bt&4194048)!==bt&&Un.current!==null||(ra=!0),(jr&134217727)===0&&(io&134217727)===0||Ut===null||Cr(Ut,bt,Vn,!1)}function ef(e,n,s){var l=kt;kt|=2;var d=Vx(),f=Fx();(Ut!==e||bt!==n)&&(qi=null,la(e,n)),n=!1;var v=Kt;e:do try{if(At!==0&&ht!==null){var R=ht,X=Yn;switch(At){case 8:Wd(),v=6;break e;case 3:case 2:case 9:case 6:Un.current===null&&(n=!0);var ue=At;if(At=0,Yn=null,ia(e,R,X,ue),s&&ra){v=0;break e}break;default:ue=At,At=0,Yn=null,ia(e,R,X,ue)}}uN(),v=Kt;break}catch(ve){Px(e,ve)}while(!0);return n&&e.shellSuspendCounter++,Hs=Wr=null,kt=l,D.H=d,D.A=f,ht===null&&(Ut=null,bt=0,pi()),v}function uN(){for(;ht!==null;)Gx(ht)}function dN(e,n){var s=kt;kt|=2;var l=Vx(),d=Fx();Ut!==e||bt!==n?(qi=null,Gi=Y()+500,la(e,n)):ra=Ae(e,n);e:do try{if(At!==0&&ht!==null){n=ht;var f=Yn;t:switch(At){case 1:At=0,Yn=null,ia(e,n,f,1);break;case 2:case 9:if(tg(f)){At=0,Yn=null,qx(n);break}n=function(){At!==2&&At!==9||Ut!==e||(At=7),bs(e)},f.then(n,n);break e;case 3:At=7;break e;case 4:At=5;break e;case 7:tg(f)?(At=0,Yn=null,qx(n)):(At=0,Yn=null,ia(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?_b(v):R.stateNode.complete){At=0,Yn=null;var X=R.sibling;if(X!==null)ht=X;else{var ue=R.return;ue!==null?(ht=ue,Ki(ue)):ht=null}break t}}At=0,Yn=null,ia(e,n,f,5);break;case 6:At=0,Yn=null,ia(e,n,f,6);break;case 8:Wd(),Kt=6;break e;default:throw Error(a(462))}}fN();break}catch(ve){Px(e,ve)}while(!0);return Hs=Wr=null,D.H=l,D.A=d,kt=s,ht!==null?0:(Ut=null,bt=0,pi(),Kt)}function fN(){for(;ht!==null&&!Ue();)Gx(ht)}function Gx(e){var n=hx(e.alternate,e,Ks);e.memoizedProps=e.pendingProps,n===null?Ki(e):ht=n}function qx(e){var n=e,s=n.alternate;switch(n.tag){case 15:case 0:n=cx(s,n,n.pendingProps,n.type,void 0,bt);break;case 11:n=cx(s,n,n.pendingProps,n.type.render,n.ref,bt);break;case 5:hd(n);default:xx(s,n),n=ht=Fh(n,Ks),n=hx(s,n,Ks)}e.memoizedProps=e.pendingProps,n===null?Ki(e):ht=n}function ia(e,n,s,l){Hs=Wr=null,hd(n),Zo=null,qa=0;var d=n.return;try{if(eN(e,d,n,s,bt)){Kt=1,Li(e,Jn(s,e.current)),ht=null;return}}catch(f){if(d!==null)throw ht=d,f;Kt=1,Li(e,Jn(s,e.current)),ht=null;return}n.flags&32768?(Et||l===1?e=!0:ra||(bt&536870912)!==0?e=!1:(Nr=e=!0,(l===2||l===9||l===3||l===6)&&(l=Un.current,l!==null&&l.tag===13&&(l.flags|=16384))),$x(n,e)):Ki(n)}function Ki(e){var n=e;do{if((n.flags&32768)!==0){$x(n,Nr);return}e=n.return;var s=sN(n.alternate,n,Ks);if(s!==null){ht=s;return}if(n=n.sibling,n!==null){ht=n;return}ht=n=e}while(n!==null);Kt===0&&(Kt=5)}function $x(e,n){do{var s=rN(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);Kt=6,ht=null}function Xx(e,n,s,l,d,f,v,R,X){e.cancelPendingCommit=null;do Qi();while(on!==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|=Yu,qt(e,s,f,v,R,X),e===Ut&&(ht=Ut=null,bt=0),aa=n,Tr=e,Qs=s,Qd=f,Zd=d,Ix=l,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,gN(ae,function(){return Wx(),null})):(e.callbackNode=null,e.callbackPriority=0),l=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||l){l=D.T,D.T=null,d=z.p,z.p=2,v=kt,kt|=4;try{oN(e,n,s)}finally{kt=v,z.p=d,D.T=l}}on=1,Kx(),Qx(),Zx()}}function Kx(){if(on===1){on=0;var e=Tr,n=aa,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 d=kt;kt|=4;try{Ox(n,e);var f=mf,v=zh(e.containerInfo),R=f.focusedElem,X=f.selectionRange;if(v!==R&&R&&R.ownerDocument&&Dh(R.ownerDocument.documentElement,R)){if(X!==null&&Iu(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 Ne=R.ownerDocument||document,fe=Ne&&Ne.defaultView||window;if(fe.getSelection){var pe=fe.getSelection(),Xe=R.textContent.length,et=Math.min(X.start,Xe),Bt=X.end===void 0?et:Math.min(X.end,Xe);!pe.extend&&et>Bt&&(v=Bt,Bt=et,et=v);var oe=Ah(R,et),J=Ah(R,Bt);if(oe&&J&&(pe.rangeCount!==1||pe.anchorNode!==oe.node||pe.anchorOffset!==oe.offset||pe.focusNode!==J.node||pe.focusOffset!==J.offset)){var ce=Ne.createRange();ce.setStart(oe.node,oe.offset),pe.removeAllRanges(),et>Bt?(pe.addRange(ce),pe.extend(J.node,J.offset)):(ce.setEnd(J.node,J.offset),pe.addRange(ce))}}}}for(Ne=[],pe=R;pe=pe.parentNode;)pe.nodeType===1&&Ne.push({element:pe,left:pe.scrollLeft,top:pe.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;R<Ne.length;R++){var Ee=Ne[R];Ee.element.scrollLeft=Ee.left,Ee.element.scrollTop=Ee.top}}ic=!!ff,mf=ff=null}finally{kt=d,z.p=l,D.T=s}}e.current=n,on=2}}function Qx(){if(on===2){on=0;var e=Tr,n=aa,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 d=kt;kt|=4;try{jx(e,n.alternate,n)}finally{kt=d,z.p=l,D.T=s}}on=3}}function Zx(){if(on===4||on===3){on=0,ee();var e=Tr,n=aa,s=Qs,l=Ix;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?on=5:(on=0,aa=Tr=null,Jx(e,e.pendingLanes));var d=e.pendingLanes;if(d===0&&(wr=null),In(s),n=n.stateNode,mt&&typeof mt.onCommitFiberRoot=="function")try{mt.onCommitFiberRoot(Mt,n,void 0,(n.current.flags&128)===128)}catch{}if(l!==null){n=D.T,d=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=d}}(Qs&3)!==0&&Qi(),bs(e),d=e.pendingLanes,(s&261930)!==0&&(d&42)!==0?e===Jd?cl++:(cl=0,Jd=e):cl=0,ul(0)}}function Jx(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,Fa(n)))}function Qi(){return Kx(),Qx(),Zx(),Wx()}function Wx(){if(on!==5)return!1;var e=Tr,n=Qd;Qd=0;var s=In(Qs),l=D.T,d=z.p;try{z.p=32>s?32:s,D.T=null,s=Zd,Zd=null;var f=Tr,v=Qs;if(on=0,aa=Tr=null,Qs=0,(kt&6)!==0)throw Error(a(331));var R=kt;if(kt|=4,Dx(f.current),_x(f,f.current,v,s),kt=R,ul(0,!1),mt&&typeof mt.onPostCommitFiberRoot=="function")try{mt.onPostCommitFiberRoot(Mt,f)}catch{}return!0}finally{z.p=d,D.T=l,Jx(e,n)}}function eb(e,n,s){n=Jn(s,n),n=kd(e.stateNode,n,2),e=yr(e,n,2),e!==null&&(rt(e,2),bs(e))}function Dt(e,n,s){if(e.tag===3)eb(e,e,s);else for(;n!==null;){if(n.tag===3){eb(n,e,s);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(wr===null||!wr.has(l))){e=Jn(s,e),s=tx(2),l=yr(n,s,2),l!==null&&(nx(s,l,n,e),rt(l,2),bs(l));break}}n=n.return}}function tf(e,n,s){var l=e.pingCache;if(l===null){l=e.pingCache=new iN;var d=new Set;l.set(n,d)}else d=l.get(n),d===void 0&&(d=new Set,l.set(n,d));d.has(s)||($d=!0,d.add(s),e=mN.bind(null,e,n,s),n.then(e,e))}function mN(e,n,s){var l=e.pingCache;l!==null&&l.delete(n),e.pingedLanes|=e.suspendedLanes&s,e.warmLanes&=~s,Ut===e&&(bt&s)===s&&(Kt===4||Kt===3&&(bt&62914560)===bt&&300>Y()-Fi?(kt&2)===0&&la(e,0):Xd|=s,oa===bt&&(oa=0)),bs(e)}function tb(e,n){n===0&&(n=nt()),e=Qr(e,n),e!==null&&(rt(e,n),bs(e))}function pN(e){var n=e.memoizedState,s=0;n!==null&&(s=n.retryLane),tb(e,s)}function hN(e,n){var s=0;switch(e.tag){case 31:case 13:var l=e.stateNode,d=e.memoizedState;d!==null&&(s=d.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),tb(e,s)}function gN(e,n){return Le(e,n)}var Zi=null,ca=null,nf=!1,Ji=!1,sf=!1,Rr=0;function bs(e){e!==ca&&e.next===null&&(ca===null?Zi=ca=e:ca=ca.next=e),Ji=!0,nf||(nf=!0,bN())}function ul(e,n){if(!sf&&Ji){sf=!0;do for(var s=!1,l=Zi;l!==null;){if(e!==0){var d=l.pendingLanes;if(d===0)var f=0;else{var v=l.suspendedLanes,R=l.pingedLanes;f=(1<<31-Rt(42|e)+1)-1,f&=d&~(v&~R),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(s=!0,ob(l,f))}else f=bt,f=ye(l,l===Ut?f:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(f&3)===0||Ae(l,f)||(s=!0,ob(l,f));l=l.next}while(s);sf=!1}}function xN(){nb()}function nb(){Ji=nf=!1;var e=0;Rr!==0&&RN()&&(e=Rr);for(var n=Y(),s=null,l=Zi;l!==null;){var d=l.next,f=sb(l,n);f===0?(l.next=null,s===null?Zi=d:s.next=d,d===null&&(ca=s)):(s=l,(e!==0||(f&3)!==0)&&(Ji=!0)),l=d}on!==0&&on!==5||ul(e),Rr!==0&&(Rr=0)}function sb(e,n){for(var s=e.suspendedLanes,l=e.pingedLanes,d=e.expirationTimes,f=e.pendingLanes&-62914561;0<f;){var v=31-Rt(f),R=1<<v,X=d[v];X===-1?((R&s)===0||(R&l)!==0)&&(d[v]=Ze(R,n)):X<=n&&(e.expiredLanes|=R),f&=~R}if(n=Ut,s=bt,s=ye(e,e===n?s:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l=e.callbackNode,s===0||e===n&&(At===2||At===9)||e.cancelPendingCommit!==null)return l!==null&&l!==null&&Ye(l),e.callbackNode=null,e.callbackPriority=0;if((s&3)===0||Ae(e,s)){if(n=s&-s,n===e.callbackPriority)return n;switch(l!==null&&Ye(l),In(s)){case 2:case 8:s=xe;break;case 32:s=ae;break;case 268435456:s=Pe;break;default:s=ae}return l=rb.bind(null,e),s=Le(s,l),e.callbackPriority=n,e.callbackNode=s,n}return l!==null&&l!==null&&Ye(l),e.callbackPriority=2,e.callbackNode=null,2}function rb(e,n){if(on!==0&&on!==5)return e.callbackNode=null,e.callbackPriority=0,null;var s=e.callbackNode;if(Qi()&&e.callbackNode!==s)return null;var l=bt;return l=ye(e,e===Ut?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l===0?null:(Hx(e,l,n),sb(e,Y()),e.callbackNode!=null&&e.callbackNode===s?rb.bind(null,e):null)}function ob(e,n){if(Qi())return null;Hx(e,n,!0)}function bN(){kN(function(){(kt&6)!==0?Le(je,xN):nb()})}function rf(){if(Rr===0){var e=Xo;e===0&&(e=Fe,Fe<<=1,(Fe&261888)===0&&(Fe=256)),Rr=e}return Rr}function ab(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:ai(""+e)}function lb(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 yN(e,n,s,l,d){if(n==="submit"&&s&&s.stateNode===d){var f=ab((d[Cn]||null).action),v=l.submitter;v&&(n=(n=v[Cn]||null)?ab(n.formAction):v.getAttribute("formAction"),n!==null&&(f=n,v=null));var R=new ui("action","action",null,l,d);e.push({event:R,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Rr!==0){var X=v?lb(d,v):new FormData(d);jd(s,{pending:!0,data:X,method:d.method,action:f},null,X)}}else typeof f=="function"&&(R.preventDefault(),X=v?lb(d,v):new FormData(d),jd(s,{pending:!0,data:X,method:d.method,action:f},f,X))},currentTarget:d}]})}}for(var of=0;of<Pu.length;of++){var af=Pu[of],vN=af.toLowerCase(),SN=af[0].toUpperCase()+af.slice(1);cs(vN,"on"+SN)}cs(Bh,"onAnimationEnd"),cs(Hh,"onAnimationIteration"),cs(Uh,"onAnimationStart"),cs("dblclick","onDoubleClick"),cs("focusin","onFocus"),cs("focusout","onBlur"),cs(IE,"onTransitionRun"),cs(BE,"onTransitionStart"),cs(HE,"onTransitionCancel"),cs(Ph,"onTransitionEnd"),Do("onMouseEnter",["mouseout","mouseover"]),Do("onMouseLeave",["mouseout","mouseover"]),Do("onPointerEnter",["pointerout","pointerover"]),Do("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 dl="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(" "),EN=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(dl));function ib(e,n){n=(n&4)!==0;for(var s=0;s<e.length;s++){var l=e[s],d=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&&d.isPropagationStopped())break e;f=R,d.currentTarget=ue;try{f(d)}catch(ve){mi(ve)}d.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&&d.isPropagationStopped())break e;f=R,d.currentTarget=ue;try{f(d)}catch(ve){mi(ve)}d.currentTarget=null,f=X}}}}function gt(e,n){var s=n[yu];s===void 0&&(s=n[yu]=new Set);var l=e+"__bubble";s.has(l)||(cb(n,e,2,!1),s.add(l))}function lf(e,n,s){var l=0;n&&(l|=4),cb(s,e,l,n)}var Wi="_reactListening"+Math.random().toString(36).slice(2);function cf(e){if(!e[Wi]){e[Wi]=!0,nh.forEach(function(s){s!=="selectionchange"&&(EN.has(s)||lf(s,!1,e),lf(s,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[Wi]||(n[Wi]=!0,lf("selectionchange",!1,n))}}function cb(e,n,s,l){switch(Bb(n)){case 2:var d=QN;break;case 8:d=ZN;break;default:d=jf}s=d.bind(null,n,s,e),d=void 0,!Ru||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(d=!0),l?d!==void 0?e.addEventListener(n,s,{capture:!0,passive:d}):e.addEventListener(n,s,!0):d!==void 0?e.addEventListener(n,s,{passive:d}):e.addEventListener(n,s,!1)}function uf(e,n,s,l,d){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===d)break;if(v===4)for(v=l.return;v!==null;){var X=v.tag;if((X===3||X===4)&&v.stateNode.containerInfo===d)return;v=v.return}for(;R!==null;){if(v=_o(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}ph(function(){var ue=f,ve=Tu(s),Ne=[];e:{var fe=Yh.get(e);if(fe!==void 0){var pe=ui,Xe=e;switch(e){case"keypress":if(ii(s)===0)break e;case"keydown":case"keyup":pe=hE;break;case"focusin":Xe="focus",pe=Mu;break;case"focusout":Xe="blur",pe=Mu;break;case"beforeblur":case"afterblur":pe=Mu;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=xh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":pe=sE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":pe=bE;break;case Bh:case Hh:case Uh:pe=aE;break;case Ph:pe=vE;break;case"scroll":case"scrollend":pe=tE;break;case"wheel":pe=EE;break;case"copy":case"cut":case"paste":pe=iE;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":pe=yh;break;case"toggle":case"beforetoggle":pe=jE}var et=(n&4)!==0,Bt=!et&&(e==="scroll"||e==="scrollend"),oe=et?fe!==null?fe+"Capture":null:fe;et=[];for(var J=ue,ce;J!==null;){var Ee=J;if(ce=Ee.stateNode,Ee=Ee.tag,Ee!==5&&Ee!==26&&Ee!==27||ce===null||oe===null||(Ee=Aa(J,oe),Ee!=null&&et.push(fl(J,Ee,ce))),Bt)break;J=J.return}0<et.length&&(fe=new pe(fe,Xe,null,s,ve),Ne.push({event:fe,listeners:et}))}}if((n&7)===0){e:{if(fe=e==="mouseover"||e==="pointerover",pe=e==="mouseout"||e==="pointerout",fe&&s!==wu&&(Xe=s.relatedTarget||s.fromElement)&&(_o(Xe)||Xe[ko]))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?_o(Xe):null,Xe!==null&&(Bt=u(Xe),et=Xe.tag,Xe!==Bt||et!==5&&et!==27&&et!==6)&&(Xe=null)):(pe=null,Xe=ue),pe!==Xe)){if(et=xh,Ee="onMouseLeave",oe="onMouseEnter",J="mouse",(e==="pointerout"||e==="pointerover")&&(et=yh,Ee="onPointerLeave",oe="onPointerEnter",J="pointer"),Bt=pe==null?fe:Ma(pe),ce=Xe==null?fe:Ma(Xe),fe=new et(Ee,J+"leave",pe,s,ve),fe.target=Bt,fe.relatedTarget=ce,Ee=null,_o(ve)===ue&&(et=new et(oe,J+"enter",Xe,s,ve),et.target=ce,et.relatedTarget=Bt,Ee=et),Bt=Ee,pe&&Xe)t:{for(et=NN,oe=pe,J=Xe,ce=0,Ee=oe;Ee;Ee=et(Ee))ce++;Ee=0;for(var Je=J;Je;Je=et(Je))Ee++;for(;0<ce-Ee;)oe=et(oe),ce--;for(;0<Ee-ce;)J=et(J),Ee--;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&&ub(Ne,fe,pe,et,!1),Xe!==null&&Bt!==null&&ub(Ne,Bt,Xe,et,!0)}}e:{if(fe=ue?Ma(ue):window,pe=fe.nodeName&&fe.nodeName.toLowerCase(),pe==="select"||pe==="input"&&fe.type==="file")var Tt=Ch;else if(wh(fe))if(Rh)Tt=DE;else{Tt=ME;var Ke=_E}else pe=fe.nodeName,!pe||pe.toLowerCase()!=="input"||fe.type!=="checkbox"&&fe.type!=="radio"?ue&&ju(ue.elementType)&&(Tt=Ch):Tt=AE;if(Tt&&(Tt=Tt(e,ue))){Th(Ne,Tt,s,ve);break e}Ke&&Ke(e,fe,ue),e==="focusout"&&ue&&fe.type==="number"&&ue.memoizedProps.value!=null&&Nu(fe,"number",fe.value)}switch(Ke=ue?Ma(ue):window,e){case"focusin":(wh(Ke)||Ke.contentEditable==="true")&&(Uo=Ke,Bu=ue,Pa=null);break;case"focusout":Pa=Bu=Uo=null;break;case"mousedown":Hu=!0;break;case"contextmenu":case"mouseup":case"dragend":Hu=!1,Lh(Ne,s,ve);break;case"selectionchange":if(LE)break;case"keydown":case"keyup":Lh(Ne,s,ve)}var dt;if(Du)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 Ho?Nh(e,s)&&(yt="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(yt="onCompositionStart");yt&&(vh&&s.locale!=="ko"&&(Ho||yt!=="onCompositionStart"?yt==="onCompositionEnd"&&Ho&&(dt=hh()):(fr=ve,Ou="value"in fr?fr.value:fr.textContent,Ho=!0)),Ke=ec(ue,yt),0<Ke.length&&(yt=new bh(yt,e,null,s,ve),Ne.push({event:yt,listeners:Ke}),dt?yt.data=dt:(dt=jh(s),dt!==null&&(yt.data=dt)))),(dt=TE?CE(e,s):RE(e,s))&&(yt=ec(ue,"onBeforeInput"),0<yt.length&&(Ke=new bh("onBeforeInput","beforeinput",null,s,ve),Ne.push({event:Ke,listeners:yt}),Ke.data=dt)),yN(Ne,e,ue,s,ve)}ib(Ne,n)})}function fl(e,n,s){return{instance:e,listener:n,currentTarget:s}}function ec(e,n){for(var s=n+"Capture",l=[];e!==null;){var d=e,f=d.stateNode;if(d=d.tag,d!==5&&d!==26&&d!==27||f===null||(d=Aa(e,s),d!=null&&l.unshift(fl(e,d,f)),d=Aa(e,n),d!=null&&l.push(fl(e,d,f))),e.tag===3)return l;e=e.return}return[]}function NN(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function ub(e,n,s,l,d){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,d?(ue=Aa(s,f),ue!=null&&v.unshift(fl(s,ue,X))):d||(ue=Aa(s,f),ue!=null&&v.push(fl(s,ue,X)))),s=s.return}v.length!==0&&e.push({event:n,listeners:v})}var jN=/\r\n?/g,wN=/\u0000|\uFFFD/g;function db(e){return(typeof e=="string"?e:""+e).replace(jN,`
|
|
9
|
-
`).replace(wN,"")}function fb(e,n){return n=db(n),db(e)===n}function It(e,n,s,l,d,f){switch(s){case"children":typeof l=="string"?n==="body"||n==="textarea"&&l===""||Lo(e,l):(typeof l=="number"||typeof l=="bigint")&&n!=="body"&&Lo(e,""+l);break;case"className":ri(e,"class",l);break;case"tabIndex":ri(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":ri(e,s,l);break;case"style":fh(e,l,f);break;case"data":if(n!=="object"){ri(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=ai(""+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"&&It(e,n,"name",d.name,d,null),It(e,n,"formEncType",d.formEncType,d,null),It(e,n,"formMethod",d.formMethod,d,null),It(e,n,"formTarget",d.formTarget,d,null)):(It(e,n,"encType",d.encType,d,null),It(e,n,"method",d.method,d,null),It(e,n,"target",d.target,d,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=ai(""+l),e.setAttribute(s,l);break;case"onClick":l!=null&&(e.onclick=zs);break;case"onScroll":l!=null&>("scroll",e);break;case"onScrollEnd":l!=null&>("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(d.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=ai(""+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),si(e,"popover",l);break;case"xlinkActuate":Ds(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Ds(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Ds(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Ds(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Ds(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Ds(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Ds(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Ds(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Ds(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":si(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=WS.get(s)||s,si(e,s,l))}}function df(e,n,s,l,d,f){switch(s){case"style":fh(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(d.children!=null)throw Error(a(60));e.innerHTML=s}}break;case"children":typeof l=="string"?Lo(e,l):(typeof l=="number"||typeof l=="bigint")&&Lo(e,""+l);break;case"onScroll":l!=null&>("scroll",e);break;case"onScrollEnd":l!=null&>("scrollend",e);break;case"onClick":l!=null&&(e.onclick=zs);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!sh.hasOwnProperty(s))e:{if(s[0]==="o"&&s[1]==="n"&&(d=s.endsWith("Capture"),n=s.slice(2,d?s.length-7:void 0),f=e[Cn]||null,f=f!=null?f[s]:null,typeof f=="function"&&e.removeEventListener(n,f,d),typeof l=="function")){typeof f!="function"&&f!==null&&(s in e?e[s]=null:e.hasAttribute(s)&&e.removeAttribute(s)),e.addEventListener(n,l,d);break e}s in e?e[s]=l:l===!0?e.setAttribute(s,""):si(e,s,l)}}}function yn(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,d=!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":d=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,n));default:It(e,n,f,v,s,null)}}d&&It(e,n,"srcSet",s.srcSet,s,null),l&&It(e,n,"src",s.src,s,null);return;case"input":gt("invalid",e);var R=f=v=d=null,X=null,ue=null;for(l in s)if(s.hasOwnProperty(l)){var ve=s[l];if(ve!=null)switch(l){case"name":d=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:It(e,n,l,ve,s,null)}}ih(e,f,R,X,ue,v,d,!1);return;case"select":gt("invalid",e),l=v=f=null;for(d in s)if(s.hasOwnProperty(d)&&(R=s[d],R!=null))switch(d){case"value":f=R;break;case"defaultValue":v=R;break;case"multiple":l=R;default:It(e,n,d,R,s,null)}n=f,s=v,e.multiple=!!l,n!=null?zo(e,!!l,n,!1):s!=null&&zo(e,!!l,s,!0);return;case"textarea":gt("invalid",e),f=d=l=null;for(v in s)if(s.hasOwnProperty(v)&&(R=s[v],R!=null))switch(v){case"value":l=R;break;case"defaultValue":d=R;break;case"children":f=R;break;case"dangerouslySetInnerHTML":if(R!=null)throw Error(a(91));break;default:It(e,n,v,R,s,null)}uh(e,l,d,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":It(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<dl.length;l++)gt(dl[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:It(e,n,ue,l,s,null)}return;default:if(ju(n)){for(ve in s)s.hasOwnProperty(ve)&&(l=s[ve],l!==void 0&&df(e,n,ve,l,s,void 0));return}}for(R in s)s.hasOwnProperty(R)&&(l=s[R],l!=null&&It(e,n,R,l,s,null))}function TN(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 d=null,f=null,v=null,R=null,X=null,ue=null,ve=null;for(pe in s){var Ne=s[pe];if(s.hasOwnProperty(pe)&&Ne!=null)switch(pe){case"checked":break;case"value":break;case"defaultValue":X=Ne;default:l.hasOwnProperty(pe)||It(e,n,pe,null,l,Ne)}}for(var fe in l){var pe=l[fe];if(Ne=s[fe],l.hasOwnProperty(fe)&&(pe!=null||Ne!=null))switch(fe){case"type":f=pe;break;case"name":d=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!==Ne&&It(e,n,fe,pe,l,Ne)}}Eu(e,v,R,X,ue,ve,f,d);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)||It(e,n,f,null,l,X)}for(d in l)if(f=l[d],X=s[d],l.hasOwnProperty(d)&&(f!=null||X!=null))switch(d){case"value":fe=f;break;case"defaultValue":R=f;break;case"multiple":v=f;default:f!==X&&It(e,n,d,f,l,X)}n=R,s=v,l=pe,fe!=null?zo(e,!!s,fe,!1):!!l!=!!s&&(n!=null?zo(e,!!s,n,!0):zo(e,!!s,s?[]:"",!1));return;case"textarea":pe=fe=null;for(R in s)if(d=s[R],s.hasOwnProperty(R)&&d!=null&&!l.hasOwnProperty(R))switch(R){case"value":break;case"children":break;default:It(e,n,R,null,l,d)}for(v in l)if(d=l[v],f=s[v],l.hasOwnProperty(v)&&(d!=null||f!=null))switch(v){case"value":fe=d;break;case"defaultValue":pe=d;break;case"children":break;case"dangerouslySetInnerHTML":if(d!=null)throw Error(a(91));break;default:d!==f&&It(e,n,v,d,l,f)}ch(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:It(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":It(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)&&It(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:It(e,n,ue,fe,l,pe)}return;default:if(ju(n)){for(var Bt in s)fe=s[Bt],s.hasOwnProperty(Bt)&&fe!==void 0&&!l.hasOwnProperty(Bt)&&df(e,n,Bt,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||df(e,n,ve,fe,l,pe);return}}for(var oe in s)fe=s[oe],s.hasOwnProperty(oe)&&fe!=null&&!l.hasOwnProperty(oe)&&It(e,n,oe,null,l,fe);for(Ne in l)fe=l[Ne],pe=s[Ne],!l.hasOwnProperty(Ne)||fe===pe||fe==null&&pe==null||It(e,n,Ne,fe,l,pe)}function mb(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function CN(){if(typeof performance.getEntriesByType=="function"){for(var e=0,n=0,s=performance.getEntriesByType("resource"),l=0;l<s.length;l++){var d=s[l],f=d.transferSize,v=d.initiatorType,R=d.duration;if(f&&R&&mb(v)){for(v=0,R=d.responseEnd,l+=1;l<s.length;l++){var X=s[l],ue=X.startTime;if(ue>R)break;var ve=X.transferSize,Ne=X.initiatorType;ve&&mb(Ne)&&(X=X.responseEnd,v+=ve*(X<R?1:(R-ue)/(X-ue)))}if(--l,n+=8*(f+v)/(d.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 ff=null,mf=null;function tc(e){return e.nodeType===9?e:e.ownerDocument}function pb(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 hb(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 pf(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 hf=null;function RN(){var e=window.event;return e&&e.type==="popstate"?e===hf?!1:(hf=e,!0):(hf=null,!1)}var gb=typeof setTimeout=="function"?setTimeout:void 0,ON=typeof clearTimeout=="function"?clearTimeout:void 0,xb=typeof Promise=="function"?Promise:void 0,kN=typeof queueMicrotask=="function"?queueMicrotask:typeof xb<"u"?function(e){return xb.resolve(null).then(e).catch(_N)}:gb;function _N(e){setTimeout(function(){throw e})}function Or(e){return e==="head"}function bb(e,n){var s=n,l=0;do{var d=s.nextSibling;if(e.removeChild(s),d&&d.nodeType===8)if(s=d.data,s==="/$"||s==="/&"){if(l===0){e.removeChild(d),ma(n);return}l--}else if(s==="$"||s==="$?"||s==="$~"||s==="$!"||s==="&")l++;else if(s==="html")ml(e.ownerDocument.documentElement);else if(s==="head"){s=e.ownerDocument.head,ml(s);for(var f=s.firstChild;f;){var v=f.nextSibling,R=f.nodeName;f[_a]||R==="SCRIPT"||R==="STYLE"||R==="LINK"&&f.rel.toLowerCase()==="stylesheet"||s.removeChild(f),f=v}}else s==="body"&&ml(e.ownerDocument.body);s=d}while(s);ma(n)}function yb(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 gf(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":gf(s),vu(s);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(s.rel.toLowerCase()==="stylesheet")continue}e.removeChild(s)}}function MN(e,n,s,l){for(;e.nodeType===1;){var d=s;if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!l&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(l){if(!e[_a])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!==d.rel||e.getAttribute("href")!==(d.href==null||d.href===""?null:d.href)||e.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin)||e.getAttribute("title")!==(d.title==null?null:d.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(f=e.getAttribute("src"),(f!==(d.src==null?null:d.src)||e.getAttribute("type")!==(d.type==null?null:d.type)||e.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin))&&f&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(n==="input"&&e.type==="hidden"){var f=d.name==null?null:""+d.name;if(d.type==="hidden"&&e.getAttribute("name")===f)return e}else return e;if(e=ss(e.nextSibling),e===null)break}return null}function AN(e,n,s){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!s||(e=ss(e.nextSibling),e===null))return null;return e}function vb(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=ss(e.nextSibling),e===null))return null;return e}function xf(e){return e.data==="$?"||e.data==="$~"}function bf(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function DN(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 ss(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 yf=null;function Sb(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"||s==="/&"){if(n===0)return ss(e.nextSibling);n--}else s!=="$"&&s!=="$!"&&s!=="$?"&&s!=="$~"&&s!=="&"||n++}e=e.nextSibling}return null}function Eb(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 Nb(e,n,s){switch(n=tc(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 ml(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);vu(e)}var rs=new Map,jb=new Set;function nc(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Zs=z.d;z.d={f:zN,r:LN,D:IN,C:BN,L:HN,m:UN,X:YN,S:PN,M:VN};function zN(){var e=Zs.f(),n=$i();return e||n}function LN(e){var n=Mo(e);n!==null&&n.tag===5&&n.type==="form"?Pg(n):Zs.r(e)}var ua=typeof document>"u"?null:document;function wb(e,n,s){var l=ua;if(l&&typeof n=="string"&&n){var d=Qn(n);d='link[rel="'+e+'"][href="'+d+'"]',typeof s=="string"&&(d+='[crossorigin="'+s+'"]'),jb.has(d)||(jb.add(d),e={rel:e,crossOrigin:s,href:n},l.querySelector(d)===null&&(n=l.createElement("link"),yn(n,"link",e),un(n),l.head.appendChild(n)))}}function IN(e){Zs.D(e),wb("dns-prefetch",e,null)}function BN(e,n){Zs.C(e,n),wb("preconnect",e,n)}function HN(e,n,s){Zs.L(e,n,s);var l=ua;if(l&&e&&n){var d='link[rel="preload"][as="'+Qn(n)+'"]';n==="image"&&s&&s.imageSrcSet?(d+='[imagesrcset="'+Qn(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(d+='[imagesizes="'+Qn(s.imageSizes)+'"]')):d+='[href="'+Qn(e)+'"]';var f=d;switch(n){case"style":f=da(e);break;case"script":f=fa(e)}rs.has(f)||(e=x({rel:"preload",href:n==="image"&&s&&s.imageSrcSet?void 0:e,as:n},s),rs.set(f,e),l.querySelector(d)!==null||n==="style"&&l.querySelector(pl(f))||n==="script"&&l.querySelector(hl(f))||(n=l.createElement("link"),yn(n,"link",e),un(n),l.head.appendChild(n)))}}function UN(e,n){Zs.m(e,n);var s=ua;if(s&&e){var l=n&&typeof n.as=="string"?n.as:"script",d='link[rel="modulepreload"][as="'+Qn(l)+'"][href="'+Qn(e)+'"]',f=d;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=fa(e)}if(!rs.has(f)&&(e=x({rel:"modulepreload",href:e},n),rs.set(f,e),s.querySelector(d)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(hl(f)))return}l=s.createElement("link"),yn(l,"link",e),un(l),s.head.appendChild(l)}}}function PN(e,n,s){Zs.S(e,n,s);var l=ua;if(l&&e){var d=Ao(l).hoistableStyles,f=da(e);n=n||"default";var v=d.get(f);if(!v){var R={loading:0,preload:null};if(v=l.querySelector(pl(f)))R.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":n},s),(s=rs.get(f))&&vf(e,s);var X=v=l.createElement("link");un(X),yn(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,sc(v,n,l)}v={type:"stylesheet",instance:v,count:1,state:R},d.set(f,v)}}}function YN(e,n){Zs.X(e,n);var s=ua;if(s&&e){var l=Ao(s).hoistableScripts,d=fa(e),f=l.get(d);f||(f=s.querySelector(hl(d)),f||(e=x({src:e,async:!0},n),(n=rs.get(d))&&Sf(e,n),f=s.createElement("script"),un(f),yn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(d,f))}}function VN(e,n){Zs.M(e,n);var s=ua;if(s&&e){var l=Ao(s).hoistableScripts,d=fa(e),f=l.get(d);f||(f=s.querySelector(hl(d)),f||(e=x({src:e,async:!0,type:"module"},n),(n=rs.get(d))&&Sf(e,n),f=s.createElement("script"),un(f),yn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(d,f))}}function Tb(e,n,s,l){var d=(d=Q.current)?nc(d):null;if(!d)throw Error(a(446));switch(e){case"meta":case"title":return null;case"style":return typeof s.precedence=="string"&&typeof s.href=="string"?(n=da(s.href),s=Ao(d).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=da(s.href);var f=Ao(d).hoistableStyles,v=f.get(e);if(v||(d=d.ownerDocument||d,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(e,v),(f=d.querySelector(pl(e)))&&!f._p&&(v.instance=f,v.state.loading=5),rs.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},rs.set(e,s),f||FN(d,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=fa(s),s=Ao(d).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 da(e){return'href="'+Qn(e)+'"'}function pl(e){return'link[rel="stylesheet"]['+e+"]"}function Cb(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function FN(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}),yn(n,"link",s),un(n),e.head.appendChild(n))}function fa(e){return'[src="'+Qn(e)+'"]'}function hl(e){return"script[async]"+e}function Rb(e,n,s){if(n.count++,n.instance===null)switch(n.type){case"style":var l=e.querySelector('style[data-href~="'+Qn(s.href)+'"]');if(l)return n.instance=l,un(l),l;var d=x({},s,{"data-href":s.href,"data-precedence":s.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),un(l),yn(l,"style",d),sc(l,s.precedence,e),n.instance=l;case"stylesheet":d=da(s.href);var f=e.querySelector(pl(d));if(f)return n.state.loading|=4,n.instance=f,un(f),f;l=Cb(s),(d=rs.get(d))&&vf(l,d),f=(e.ownerDocument||e).createElement("link"),un(f);var v=f;return v._p=new Promise(function(R,X){v.onload=R,v.onerror=X}),yn(f,"link",l),n.state.loading|=4,sc(f,s.precedence,e),n.instance=f;case"script":return f=fa(s.src),(d=e.querySelector(hl(f)))?(n.instance=d,un(d),d):(l=s,(d=rs.get(f))&&(l=x({},s),Sf(l,d)),e=e.ownerDocument||e,d=e.createElement("script"),un(d),yn(d,"link",l),e.head.appendChild(d),n.instance=d);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,sc(l,s.precedence,e));return n.instance}function sc(e,n,s){for(var l=s.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),d=l.length?l[l.length-1]:null,f=d,v=0;v<l.length;v++){var R=l[v];if(R.dataset.precedence===n)f=R;else if(f!==d)break}f?f.parentNode.insertBefore(e,f.nextSibling):(n=s.nodeType===9?s.head:s,n.insertBefore(e,n.firstChild))}function vf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function Sf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var rc=null;function Ob(e,n,s){if(rc===null){var l=new Map,d=rc=new Map;d.set(s,l)}else d=rc,l=d.get(s),l||(l=new Map,d.set(s,l));if(l.has(e))return l;for(l.set(e,null),s=s.getElementsByTagName(e),d=0;d<s.length;d++){var f=s[d];if(!(f[_a]||f[rn]||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 kb(e,n,s){e=e.ownerDocument||e,e.head.insertBefore(s,n==="title"?e.querySelector("head > title"):null)}function GN(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 _b(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function qN(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 d=da(l.href),f=n.querySelector(pl(d));if(f){n=f._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=oc.bind(e),n.then(e,e)),s.state.loading|=4,s.instance=f,un(f);return}f=n.ownerDocument||n,l=Cb(l),(d=rs.get(d))&&vf(l,d),f=f.createElement("link"),un(f);var v=f;v._p=new Promise(function(R,X){v.onload=R,v.onerror=X}),yn(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=oc.bind(e),n.addEventListener("load",s),n.addEventListener("error",s))}}var Ef=0;function $N(e,n){return e.stylesheets&&e.count===0&&lc(e,e.stylesheets),0<e.count||0<e.imgCount?function(s){var l=setTimeout(function(){if(e.stylesheets&&lc(e,e.stylesheets),e.unsuspend){var f=e.unsuspend;e.unsuspend=null,f()}},6e4+n);0<e.imgBytes&&Ef===0&&(Ef=62500*CN());var d=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&lc(e,e.stylesheets),e.unsuspend)){var f=e.unsuspend;e.unsuspend=null,f()}},(e.imgBytes>Ef?50:800)+n);return e.unsuspend=s,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(d)}}:null}function oc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)lc(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ac=null;function lc(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ac=new Map,n.forEach(XN,e),ac=null,oc.call(e))}function XN(e,n){if(!(n.state.loading&4)){var s=ac.get(e);if(s)var l=s.get(null);else{s=new Map,ac.set(e,s);for(var d=e.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f<d.length;f++){var v=d[f];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(s.set(v.dataset.precedence,v),l=v)}l&&s.set(null,l)}d=n.instance,v=d.getAttribute("data-precedence"),f=s.get(v)||l,f===l&&s.set(null,d),s.set(v,d),this.count++,l=oc.bind(this),d.addEventListener("load",l),d.addEventListener("error",l),f?f.parentNode.insertBefore(d,f.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(d,e.firstChild)),n.state.loading|=4}}var gl={$$typeof:_,Provider:null,Consumer:null,_currentValue:P,_currentValue2:P,_threadCount:0};function KN(e,n,s,l,d,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=d,this.onCaughtError=f,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=X,this.incompleteTransitions=new Map}function Mb(e,n,s,l,d,f,v,R,X,ue,ve,Ne){return e=new KN(e,n,s,v,X,ue,ve,Ne,R),n=1,f===!0&&(n|=24),f=Hn(3,null,null,n),e.current=f,f.stateNode=e,n=ed(),n.refCount++,e.pooledCache=n,n.refCount++,f.memoizedState={element:l,isDehydrated:s,cache:n},rd(f),e}function Ab(e){return e?(e=Vo,e):Vo}function Db(e,n,s,l,d,f){d=Ab(d),l.context===null?l.context=d:l.pendingContext=d,l=br(n),l.payload={element:s},f=f===void 0?null:f,f!==null&&(l.callback=f),s=yr(e,l,n),s!==null&&(An(s,e,n),Xa(s,e,n))}function zb(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<n?s:n}}function Nf(e,n){zb(e,n),(e=e.alternate)&&zb(e,n)}function Lb(e){if(e.tag===13||e.tag===31){var n=Qr(e,67108864);n!==null&&An(n,e,67108864),Nf(e,67108864)}}function Ib(e){if(e.tag===13||e.tag===31){var n=Fn();n=dr(n);var s=Qr(e,n);s!==null&&An(s,e,n),Nf(e,n)}}var ic=!0;function QN(e,n,s,l){var d=D.T;D.T=null;var f=z.p;try{z.p=2,jf(e,n,s,l)}finally{z.p=f,D.T=d}}function ZN(e,n,s,l){var d=D.T;D.T=null;var f=z.p;try{z.p=8,jf(e,n,s,l)}finally{z.p=f,D.T=d}}function jf(e,n,s,l){if(ic){var d=wf(l);if(d===null)uf(e,n,l,cc,s),Hb(e,l);else if(WN(d,e,n,s,l))l.stopPropagation();else if(Hb(e,l),n&4&&-1<JN.indexOf(e)){for(;d!==null;){var f=Mo(d);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}bs(f),(kt&6)===0&&(Gi=Y()+500,ul(0))}}break;case 31:case 13:R=Qr(f,2),R!==null&&An(R,f,2),$i(),Nf(f,2)}if(f=wf(l),f===null&&uf(e,n,l,cc,s),f===d)break;d=f}d!==null&&l.stopPropagation()}else uf(e,n,l,null,s)}}function wf(e){return e=Tu(e),Tf(e)}var cc=null;function Tf(e){if(cc=null,e=_o(e),e!==null){var n=u(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 cc=e,null}function Bb(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 je:return 2;case xe:return 8;case ae:case Oe:return 32;case Pe:return 268435456;default:return 32}default:return 32}}var Cf=!1,kr=null,_r=null,Mr=null,xl=new Map,bl=new Map,Ar=[],JN="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 Hb(e,n){switch(e){case"focusin":case"focusout":kr=null;break;case"dragenter":case"dragleave":_r=null;break;case"mouseover":case"mouseout":Mr=null;break;case"pointerover":case"pointerout":xl.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":bl.delete(n.pointerId)}}function yl(e,n,s,l,d,f){return e===null||e.nativeEvent!==f?(e={blockedOn:n,domEventName:s,eventSystemFlags:l,nativeEvent:f,targetContainers:[d]},n!==null&&(n=Mo(n),n!==null&&Lb(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,d!==null&&n.indexOf(d)===-1&&n.push(d),e)}function WN(e,n,s,l,d){switch(n){case"focusin":return kr=yl(kr,e,n,s,l,d),!0;case"dragenter":return _r=yl(_r,e,n,s,l,d),!0;case"mouseover":return Mr=yl(Mr,e,n,s,l,d),!0;case"pointerover":var f=d.pointerId;return xl.set(f,yl(xl.get(f)||null,e,n,s,l,d)),!0;case"gotpointercapture":return f=d.pointerId,bl.set(f,yl(bl.get(f)||null,e,n,s,l,d)),!0}return!1}function Ub(e){var n=_o(e.target);if(n!==null){var s=u(n);if(s!==null){if(n=s.tag,n===13){if(n=m(s),n!==null){e.blockedOn=n,ni(e.priority,function(){Ib(s)});return}}else if(n===31){if(n=g(s),n!==null){e.blockedOn=n,ni(e.priority,function(){Ib(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 uc(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var s=wf(e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);wu=l,s.target.dispatchEvent(l),wu=null}else return n=Mo(s),n!==null&&Lb(n),e.blockedOn=s,!1;n.shift()}return!0}function Pb(e,n,s){uc(e)&&s.delete(n)}function ej(){Cf=!1,kr!==null&&uc(kr)&&(kr=null),_r!==null&&uc(_r)&&(_r=null),Mr!==null&&uc(Mr)&&(Mr=null),xl.forEach(Pb),bl.forEach(Pb)}function dc(e,n){e.blockedOn===n&&(e.blockedOn=null,Cf||(Cf=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,ej)))}var fc=null;function Yb(e){fc!==e&&(fc=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){fc===e&&(fc=null);for(var n=0;n<e.length;n+=3){var s=e[n],l=e[n+1],d=e[n+2];if(typeof l!="function"){if(Tf(l||s)===null)continue;break}var f=Mo(s);f!==null&&(e.splice(n,3),n-=3,jd(f,{pending:!0,data:d,method:s.method,action:l},l,d))}}))}function ma(e){function n(X){return dc(X,e)}kr!==null&&dc(kr,e),_r!==null&&dc(_r,e),Mr!==null&&dc(Mr,e),xl.forEach(n),bl.forEach(n);for(var s=0;s<Ar.length;s++){var l=Ar[s];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Ar.length&&(s=Ar[0],s.blockedOn===null);)Ub(s),s.blockedOn===null&&Ar.shift();if(s=(e.ownerDocument||e).$$reactFormReplay,s!=null)for(l=0;l<s.length;l+=3){var d=s[l],f=s[l+1],v=d[Cn]||null;if(typeof f=="function")v||Yb(s);else if(v){var R=null;if(f&&f.hasAttribute("formAction")){if(d=f,v=f[Cn]||null)R=v.formAction;else if(Tf(d)!==null)continue}else R=v.action;typeof R=="function"?s[l+1]=R:(s.splice(l,3),l-=3),Yb(s)}}}function Vb(){function e(f){f.canIntercept&&f.info==="react-transition"&&f.intercept({handler:function(){return new Promise(function(v){return d=v})},focusReset:"manual",scroll:"manual"})}function n(){d!==null&&(d(),d=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,d=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),d!==null&&(d(),d=null)}}}function Rf(e){this._internalRoot=e}mc.prototype.render=Rf.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(a(409));var s=n.current,l=Fn();Db(s,l,e,n,null,null)},mc.prototype.unmount=Rf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Db(e.current,2,null,e,null,null),$i(),n[ko]=null}};function mc(e){this._internalRoot=e}mc.prototype.unstable_scheduleHydration=function(e){if(e){var n=As();e={blockedOn:null,target:e,priority:n};for(var s=0;s<Ar.length&&n!==0&&n<Ar[s].priority;s++);Ar.splice(s,0,e),s===0&&Ub(e)}};var Fb=r.version;if(Fb!=="19.2.8")throw Error(a(527,Fb,"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 tj={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:D,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var pc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!pc.isDisabled&&pc.supportsFiber)try{Mt=pc.inject(tj),mt=pc}catch{}}return Sl.createRoot=function(e,n){if(!c(e))throw Error(a(299));var s=!1,l="",d=Zg,f=Jg,v=Wg;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(d=n.onUncaughtError),n.onCaughtError!==void 0&&(f=n.onCaughtError),n.onRecoverableError!==void 0&&(v=n.onRecoverableError)),n=Mb(e,1,!1,null,null,s,l,null,d,f,v,Vb),e[ko]=n.current,cf(e),new Rf(n)},Sl.hydrateRoot=function(e,n,s){if(!c(e))throw Error(a(299));var l=!1,d="",f=Zg,v=Jg,R=Wg,X=null;return s!=null&&(s.unstable_strictMode===!0&&(l=!0),s.identifierPrefix!==void 0&&(d=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=Mb(e,1,!0,n,s??null,l,d,X,f,v,R,Vb),n.context=Ab(null),s=n.current,l=Fn(),l=dr(l),d=br(l),d.callback=null,yr(s,d,l),s=l,n.current.lanes=s,rt(n,s),bs(n),e[ko]=n.current,cf(e),new mc(n)},Sl.version="19.2.8",Sl}var ey;function fj(){if(ey)return _f.exports;ey=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(),_f.exports=dj(),_f.exports}var mj=fj();const Ta=["character","setting","location","hook","event","timepoint"],Vm=["belongs_to","owns","masters","ally","rival","mentor","family","kills","appears_in","occurs_at","plot_edge","plants","advances","resolves","depends_on","involves","occurs_in"],pj="plot_edge",ty=["mystery","relationship","item","character_growth","world_building"],Wv=["inner","personal","extra_personal"],hj=[5,10,15,30,60],ny=30;function is(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 bo(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} 天前`:is(t)}const gj=["outline","entities","canvas","hooks","timeline","trash","settings"];function sy(t){const r=t.replace(/^#/,"").replace(/^\/+/,""),o=r===""?[]:r.split("/").filter(c=>c!=="");return o.length>0&&!gj.includes(o[0])?{path:"/",segments:[],isFallback:!0}:{path:`/${o.join("/")}`,segments:o,isFallback:!1}}function xj(){const[t,r]=h.useState(()=>sy(window.location.hash));return h.useEffect(()=>{const o=()=>{const a=sy(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 cn(t){const r=t.startsWith("#")?t:`#${t.startsWith("/")?t:`/${t}`}`;window.location.hash!==r&&(window.location.hash=r)}const e0=(...t)=>t.filter((r,o,a)=>!!r&&r.trim()!==""&&a.indexOf(r)===o).join(" ").trim();const bj=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const yj=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(r,o,a)=>a?a.toUpperCase():o.toLowerCase());const ry=t=>{const r=yj(t);return r.charAt(0).toUpperCase()+r.slice(1)};var zf={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 vj=t=>{for(const r in t)if(r.startsWith("aria-")||r==="role"||r==="title")return!0;return!1},Sj=h.createContext({}),Ej=()=>h.useContext(Sj),Nj=h.forwardRef(({color:t,size:r,strokeWidth:o,absoluteStrokeWidth:a,className:c="",children:u,iconNode:m,...g},b)=>{const{size:p=24,strokeWidth:y=2,absoluteStrokeWidth:x=!1,color:S="currentColor",className:j=""}=Ej()??{},N=a??x?Number(o??y)*24/Number(r??p):o??y;return h.createElement("svg",{ref:b,...zf,width:r??p??zf.width,height:r??p??zf.height,stroke:t??S,strokeWidth:N,className:e0("lucide",j,c),...!u&&!vj(g)&&{"aria-hidden":"true"},...g},[...m.map(([k,O])=>h.createElement(k,O)),...Array.isArray(u)?u:[u]])});const lt=(t,r)=>{const o=h.forwardRef(({className:a,...c},u)=>h.createElement(Nj,{ref:u,iconNode:r,className:e0(`lucide-${bj(ry(t))}`,`lucide-${t}`,a),...c}));return o.displayName=ry(t),o};const jj=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],wj=lt("arrow-up",jj);const Tj=[["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"}]],mm=lt("book-open",Tj);const Cj=[["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"}]],Rj=lt("calendar-clock",Cj);const Oj=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t0=lt("check",Oj);const kj=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],_j=lt("chevron-down",kj);const Mj=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Fm=lt("chevron-right",Mj);const Aj=[["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"}]],Gm=lt("circle-alert",Aj);const Dj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],qm=lt("circle-check",Dj);const zj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Lj=lt("circle",zj);const Ij=[["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"}]],Bj=lt("download",Ij);const Hj=[["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"}]],$m=lt("eye",Hj);const Uj=[["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"}]],Pj=lt("fast-forward",Uj);const Yj=[["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"}]],Xm=lt("grip-vertical",Yj);const Vj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],n0=lt("info",Vj);const Fj=[["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"}]],Gj=lt("layout-grid",Fj);const qj=[["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"}]],$j=lt("list-ordered",qj);const Xj=[["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"}]],Kj=lt("list-tree",Xj);const Qj=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Il=lt("loader-circle",Qj);const Zj=[["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"}]],Bl=lt("message-square",Zj);const Jj=[["path",{d:"M5 12h14",key:"1ays0h"}]],Wj=lt("minus",Jj);const ew=[["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"}]],tw=lt("moon",ew);const nw=[["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"}]],sw=lt("network",nw);const rw=[["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"}]],ow=lt("octagon-x",rw);const aw=[["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"}]],lw=lt("panel-left-close",aw);const iw=[["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"}]],cw=lt("panel-left-open",iw);const uw=[["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"}]],dw=lt("panel-right-close",uw);const fw=[["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"}]],mw=lt("panel-right-open",fw);const pw=[["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"}]],Kl=lt("pencil",pw);const hw=[["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"}]],gw=lt("pin",hw);const xw=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Wc=lt("plus",xw);const bw=[["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"}]],yw=lt("puzzle",bw);const vw=[["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"}]],Sw=lt("refresh-cw",vw);const Ew=[["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"}]],Nw=lt("rotate-ccw",Ew);const jw=[["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"}]],ww=lt("send",jw);const Tw=[["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"}]],Cw=lt("settings",Tw);const Rw=[["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"}]],Ow=lt("shapes",Rw);const kw=[["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"}]],s0=lt("sparkles",kw);const _w=[["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"}]],Mw=lt("sun",_w);const Aw=[["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"}]],Ql=lt("trash-2",Aw);const Dw=[["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"}]],Km=lt("triangle-alert",Dw);const zw=[["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"}]],Lw=lt("upload",zw);const Iw=[["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"}]],Bw=lt("wrench",Iw);const Hw=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],fs=lt("x",Hw);function Qm(t){const[r,o]=h.useState(()=>window.matchMedia(t).matches);return h.useEffect(()=>{const a=window.matchMedia(t),c=u=>o(u.matches);return o(a.matches),a.addEventListener("change",c),()=>a.removeEventListener("change",c)},[t]),r}const Hl=160,Zm=480,Ul=240,Jm=720,Uw=320,r0="ai-editor:panels",oy=1024,pm=1440;function Pl(t,r,o){return Math.round(Math.min(Math.max(t,r),o))}function hc(t){const r=Number.isFinite(t)&&t>0?t:pm;return{sidebarWidth:r<oy?Hl:Pl(r*.1,Hl,Zm),chatWidth:r<oy?Ul:Pl(r*.4,Ul,Jm),collapsedSidebar:!1,collapsedChat:!1}}function Pw(t,r){if(!t)return hc(r);let o;try{o=JSON.parse(t)}catch{return hc(r)}if(typeof o!="object"||o===null||Array.isArray(o))return hc(r);const a=o,c=a.sidebarWidth,u=a.chatWidth;return typeof c!="number"||!Number.isFinite(c)||typeof u!="number"||!Number.isFinite(u)?hc(r):{sidebarWidth:Pl(c,Hl,Zm),chatWidth:Pl(u,Ul,Jm),collapsedSidebar:a.collapsedSidebar===!0,collapsedChat:a.collapsedChat===!0}}function ay(t){return JSON.stringify({sidebarWidth:t.sidebarWidth,chatWidth:t.chatWidth,collapsedSidebar:t.collapsedSidebar,collapsedChat:t.collapsedChat})}function Yw(){if(typeof window>"u")return null;try{return window.localStorage.getItem(r0)}catch{return null}}function ly(t){try{window.localStorage.setItem(r0,t)}catch{}}function Vw(){if(typeof window>"u")return pm;const t=window.innerWidth;return Number.isFinite(t)&&t>0?t:pm}function Fw(){const[t,r]=h.useState(()=>Pw(Yw(),Vw())),[o,a]=h.useState(null),c=Qm("(min-width: 1024px)"),u=h.useRef(null);h.useEffect(()=>{!c&&u.current!==null&&(u.current=null,a(null))},[c]);function m(x){const S=x.lastX-x.startX,[j,N]=x.side==="sidebar"?[Hl,Zm]:[Ul,Jm],k=x.side==="sidebar"?x.startWidth+S:x.startWidth-S;return Pl(k,j,N)}function g(x,S){const j=x==="sidebar"?t.sidebarWidth:t.chatWidth;u.current={side:x,startX:S,startWidth:j,lastX:S},a(x)}function b(x,S){const j=u.current;if(!j||j.side!==x)return;j.lastX=S;const N=m(j);r(k=>({...k,...x==="sidebar"?{sidebarWidth:N}:{chatWidth:N}}))}function p(){const x=u.current;if(!x)return;const S=m(x);u.current=null,a(null),r(j=>{const N={...j,...x.side==="sidebar"?{sidebarWidth:S}:{chatWidth:S}};return ly(ay(N)),N})}function y(x){r(S=>{const j=x==="sidebar"?{...S,collapsedSidebar:!S.collapsedSidebar}:{...S,collapsedChat:!S.collapsedChat};return ly(ay(j)),j})}return{layout:t,isDesktop:c,dragSide:o,toggleCollapse:y,startResize:g,moveResize:b,endResize:p}}function o0(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=o0(t[r]))&&(a&&(a+=" "),a+=o)}else for(o in t)t[o]&&(a&&(a+=" "),a+=o);return a}function a0(){for(var t,r,o=0,a="",c=arguments.length;o<c;o++)(t=arguments[o])&&(r=o0(t))&&(a&&(a+=" "),a+=r);return a}const Gw=(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},qw=(t,r)=>({classGroupId:t,validator:r}),l0=(t=new Map,r=null,o)=>({nextPart:t,validators:r,classGroupId:o}),Hc="-",iy=[],$w="arbitrary..",Xw=t=>{const r=Qw(t),{conflictingClassGroups:o,conflictingClassGroupModifiers:a}=t;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return Kw(m);const g=m.split(Hc),b=g[0]===""&&g.length>1?1:0;return i0(g,b,r)},getConflictingClassGroupIds:(m,g)=>{if(g){const b=a[m],p=o[m];return b?p?Gw(p,b):b:p||iy}return o[m]||iy}}},i0=(t,r,o)=>{if(t.length-r===0)return o.classGroupId;const c=t[r],u=o.nextPart.get(c);if(u){const p=i0(t,r+1,u);if(p)return p}const m=o.validators;if(m===null)return;const g=r===0?t.join(Hc):t.slice(r).join(Hc),b=m.length;for(let p=0;p<b;p++){const y=m[p];if(y.validator(g))return y.classGroupId}},Kw=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?$w+a:void 0})(),Qw=t=>{const{theme:r,classGroups:o}=t;return Zw(o,r)},Zw=(t,r)=>{const o=l0();for(const a in t){const c=t[a];Wm(c,o,a,r)}return o},Wm=(t,r,o,a)=>{const c=t.length;for(let u=0;u<c;u++){const m=t[u];Jw(m,r,o,a)}},Jw=(t,r,o,a)=>{if(typeof t=="string"){Ww(t,r,o);return}if(typeof t=="function"){eT(t,r,o,a);return}tT(t,r,o,a)},Ww=(t,r,o)=>{const a=t===""?r:c0(r,t);a.classGroupId=o},eT=(t,r,o,a)=>{if(nT(t)){Wm(t(a),r,o,a);return}r.validators===null&&(r.validators=[]),r.validators.push(qw(o,t))},tT=(t,r,o,a)=>{const c=Object.entries(t),u=c.length;for(let m=0;m<u;m++){const[g,b]=c[m];Wm(b,c0(r,g),o,a)}},c0=(t,r)=>{let o=t;const a=r.split(Hc),c=a.length;for(let u=0;u<c;u++){const m=a[u];let g=o.nextPart.get(m);g||(g=l0(),o.nextPart.set(m,g)),o=g}return o},nT=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,sT=t=>{if(t<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),a=Object.create(null);const c=(u,m)=>{o[u]=m,r++,r>t&&(r=0,a=o,o=Object.create(null))};return{get(u){let m=o[u];if(m!==void 0)return m;if((m=a[u])!==void 0)return c(u,m),m},set(u,m){u in o?o[u]=m:c(u,m)}}},hm="!",cy=":",rT=[],uy=(t,r,o,a,c)=>({modifiers:t,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:a,isExternal:c}),oT=t=>{const{prefix:r,experimentalParseClassName:o}=t;let a=c=>{const u=[];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===cy){u.push(c.slice(b,k)),b=k+1;continue}if(O==="/"){p=k;continue}}O==="["?m++:O==="]"?m--:O==="("?g++:O===")"&&g--}const x=u.length===0?c:c.slice(b);let S=x,j=!1;x.endsWith(hm)?(S=x.slice(0,-1),j=!0):x.startsWith(hm)&&(S=x.slice(1),j=!0);const N=p&&p>b?p-b:void 0;return uy(u,j,S,N)};if(r){const c=r+cy,u=a;a=m=>m.startsWith(c)?u(m.slice(c.length)):uy(rT,!1,m,void 0,!0)}if(o){const c=a;a=u=>o({className:u,parseClassName:c})}return a},aT=t=>{const r=new Map;return t.orderSensitiveModifiers.forEach((o,a)=>{r.set(o,1e6+a)}),o=>{const a=[];let c=[];for(let u=0;u<o.length;u++){const m=o[u],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}},lT=t=>({cache:sT(t.cacheSize),parseClassName:oT(t),sortModifiers:aT(t),postfixLookupClassGroupIds:iT(t),...Xw(t)}),iT=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},cT=/\s+/,uT=(t,r)=>{const{parseClassName:o,getClassGroupId:a,getConflictingClassGroupIds:c,sortModifiers:u,postfixLookupClassGroupIds:m}=r,g=[],b=t.trim().split(cT);let p="";for(let y=b.length-1;y>=0;y-=1){const x=b[y],{isExternal:S,modifiers:j,hasImportantModifier:N,baseClassName:k,maybePostfixModifierPosition:O}=o(x);if(S){p=x+(p.length>0?" "+p:p);continue}let E=!!O,w;if(E){const L=k.substring(0,O);w=a(L);const C=w&&m[w]?a(k):void 0;C&&C!==w&&(w=C,E=!1)}else w=a(k);if(!w){if(!E){p=x+(p.length>0?" "+p:p);continue}if(w=a(k),!w){p=x+(p.length>0?" "+p:p);continue}E=!1}const _=j.length===0?"":j.length===1?j[0]:u(j).join(":"),T=N?_+hm:_,V=T+w;if(g.indexOf(V)>-1)continue;g.push(V);const M=c(w,E);for(let L=0;L<M.length;++L){const C=M[L];g.push(T+C)}p=x+(p.length>0?" "+p:p)}return p},dT=(...t)=>{let r=0,o,a,c="";for(;r<t.length;)(o=t[r++])&&(a=u0(o))&&(c&&(c+=" "),c+=a);return c},u0=t=>{if(typeof t=="string")return t;let r,o="";for(let a=0;a<t.length;a++)t[a]&&(r=u0(t[a]))&&(o&&(o+=" "),o+=r);return o},fT=(t,...r)=>{let o,a,c,u;const m=b=>{const p=r.reduce((y,x)=>x(y),t());return o=lT(p),a=o.cache.get,c=o.cache.set,u=g,g(b)},g=b=>{const p=a(b);if(p)return p;const y=uT(b,o);return c(b,y),y};return u=m,(...b)=>u(dT(...b))},mT=[],an=t=>{const r=o=>o[t]||mT;return r.isThemeGetter=!0,r},d0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,f0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,pT=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,hT=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,gT=/\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$/,xT=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,bT=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,yT=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,zr=t=>pT.test(t),ft=t=>!!t&&!Number.isNaN(Number(t)),ys=t=>!!t&&Number.isInteger(Number(t)),Lf=t=>t.endsWith("%")&&ft(t.slice(0,-1)),Js=t=>hT.test(t),m0=()=>!0,vT=t=>gT.test(t)&&!xT.test(t),ep=()=>!1,ST=t=>bT.test(t),ET=t=>yT.test(t),NT=t=>!Ve(t)&&!Ge(t),jT=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)),wT=t=>Vr(t,g0,ep),Ve=t=>d0.test(t),co=t=>Vr(t,x0,vT),dy=t=>Vr(t,AT,ft),TT=t=>Vr(t,y0,m0),CT=t=>Vr(t,b0,ep),fy=t=>Vr(t,p0,ep),RT=t=>Vr(t,h0,ET),gc=t=>Vr(t,v0,ST),Ge=t=>f0.test(t),El=t=>jo(t,x0),OT=t=>jo(t,b0),my=t=>jo(t,p0),kT=t=>jo(t,g0),_T=t=>jo(t,h0),xc=t=>jo(t,v0,!0),MT=t=>jo(t,y0,!0),Vr=(t,r,o)=>{const a=d0.exec(t);return a?a[1]?r(a[1]):o(a[2]):!1},jo=(t,r,o=!1)=>{const a=f0.exec(t);return a?a[1]?r(a[1]):o:!1},p0=t=>t==="position"||t==="percentage",h0=t=>t==="image"||t==="url",g0=t=>t==="length"||t==="size"||t==="bg-size",x0=t=>t==="length",AT=t=>t==="number",b0=t=>t==="family-name",y0=t=>t==="number"||t==="weight",v0=t=>t==="shadow",DT=()=>{const t=an("color"),r=an("font"),o=an("text"),a=an("font-weight"),c=an("tracking"),u=an("leading"),m=an("breakpoint"),g=an("container"),b=an("spacing"),p=an("radius"),y=an("shadow"),x=an("inset-shadow"),S=an("text-shadow"),j=an("drop-shadow"),N=an("blur"),k=an("perspective"),O=an("aspect"),E=an("ease"),w=an("animate"),_=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...T(),Ge,Ve],M=()=>["auto","hidden","clip","visible","scroll"],L=()=>["auto","contain","none"],C=()=>[Ge,Ve,b],Z=()=>[zr,"full","auto",...C()],re=()=>[ys,"none","subgrid",Ge,Ve],ie=()=>["auto",{span:["full",ys,Ge,Ve]},ys,Ge,Ve],te=()=>[ys,"auto",Ge,Ve],K=()=>["auto","min","max","fr",Ge,Ve],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=()=>[zr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],P=()=>[zr,"screen","full","dvw","lvw","svw","min","max","fit",...C()],H=()=>[zr,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],F=()=>[t,Ge,Ve],A=()=>[...T(),my,fy,{position:[Ge,Ve]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",kT,wT,{size:[Ge,Ve]}],U=()=>[Lf,El,co],G=()=>["","none","full",p,Ge,Ve],Q=()=>["",ft,El,co],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,Lf,my,fy],He=()=>["","none",N,Ge,Ve],ze=()=>["none",ft,Ge,Ve],we=()=>["none",ft,Ge,Ve],Ie=()=>[ft,Ge,Ve],ge=()=>[zr,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Js],breakpoint:[Js],color:[m0],container:[Js],"drop-shadow":[Js],ease:["in","out","in-out"],font:[NT],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Js],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Js],shadow:[Js],spacing:["px",ft],text:[Js],"text-shadow":[Js],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",zr,Ve,Ge,O]}],container:["container"],"container-type":[{"@container":["","normal","size",Ge,Ve]}],"container-named":[jT],columns:[{columns:[ft,Ve,Ge,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:[ys,"auto",Ge,Ve]}],basis:[{basis:[zr,"full","auto",g,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ft,zr,"auto","initial","none",Ve]}],grow:[{grow:["",ft,Ge,Ve]}],shrink:[{shrink:["",ft,Ge,Ve]}],order:[{order:[ys,"first","last","none",Ge,Ve]}],"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",...H()]}],"min-block-size":[{"min-block":["auto",...H()]}],"max-block-size":[{"max-block":["none",...H()]}],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,El,co]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,MT,TT]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Lf,Ve]}],"font-family":[{font:[OT,CT,r]}],"font-features":[{"font-features":[Ve]}],"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,Ge,Ve]}],"line-clamp":[{"line-clamp":[ft,"none",Ge,dy]}],leading:[{leading:[u,...C()]}],"list-image":[{"list-image":["none",Ge,Ve]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ge,Ve]}],"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",Ge,co]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[ft,"auto",Ge,Ve]}],"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:[ys,Ge,Ve]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ge,Ve]}],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",Ge,Ve]}],"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:B()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ys,Ge,Ve],radial:["",Ge,Ve],conic:[ys,Ge,Ve]},_T,RT]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from:U()}],"gradient-via-pos":[{via:U()}],"gradient-to-pos":[{to:U()}],"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,Ge,Ve]}],"outline-w":[{outline:["",ft,El,co]}],"outline-color":[{outline:F()}],shadow:[{shadow:["","none",y,xc,gc]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":["none",x,xc,gc]}],"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,co]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":Q()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":["none",S,xc,gc]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[ft,Ge,Ve]}],"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":[Ge,Ve]}],"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":T()}],"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:B()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ge,Ve]}],filter:[{filter:["","none",Ge,Ve]}],blur:[{blur:He()}],brightness:[{brightness:[ft,Ge,Ve]}],contrast:[{contrast:[ft,Ge,Ve]}],"drop-shadow":[{"drop-shadow":["","none",j,xc,gc]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:["",ft,Ge,Ve]}],"hue-rotate":[{"hue-rotate":[ft,Ge,Ve]}],invert:[{invert:["",ft,Ge,Ve]}],saturate:[{saturate:[ft,Ge,Ve]}],sepia:[{sepia:["",ft,Ge,Ve]}],"backdrop-filter":[{"backdrop-filter":["","none",Ge,Ve]}],"backdrop-blur":[{"backdrop-blur":He()}],"backdrop-brightness":[{"backdrop-brightness":[ft,Ge,Ve]}],"backdrop-contrast":[{"backdrop-contrast":[ft,Ge,Ve]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ft,Ge,Ve]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ft,Ge,Ve]}],"backdrop-invert":[{"backdrop-invert":["",ft,Ge,Ve]}],"backdrop-opacity":[{"backdrop-opacity":[ft,Ge,Ve]}],"backdrop-saturate":[{"backdrop-saturate":[ft,Ge,Ve]}],"backdrop-sepia":[{"backdrop-sepia":["",ft,Ge,Ve]}],"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",Ge,Ve]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ft,"initial",Ge,Ve]}],ease:[{ease:["linear","initial",E,Ge,Ve]}],delay:[{delay:[ft,Ge,Ve]}],animate:[{animate:["none",w,Ge,Ve]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,Ge,Ve]}],"perspective-origin":[{"perspective-origin":V()}],rotate:[{rotate:ze()}],"rotate-x":[{"rotate-x":ze()}],"rotate-y":[{"rotate-y":ze()}],"rotate-z":[{"rotate-z":ze()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:Ie()}],"skew-x":[{"skew-x":Ie()}],"skew-y":[{"skew-y":Ie()}],transform:[{transform:[Ge,Ve,"","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:[ys,Ge,Ve]}],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",Ge,Ve]}],"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",Ge,Ve]}],fill:[{fill:["none",...F()]}],"stroke-w":[{stroke:[ft,El,co,dy]}],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"]}},zT=fT(DT);function $e(...t){return zT(a0(t))}const py=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},LT=(t=>t?py(t):py),IT=t=>t;function BT(t,r=IT){const o=De.useSyncExternalStore(t.subscribe,De.useCallback(()=>r(t.getState()),[t,r]),De.useCallback(()=>r(t.getInitialState()),[t,r]));return De.useDebugValue(o),o}const hy=t=>{const r=LT(t),o=a=>BT(r,a);return Object.assign(o,r),o},tp=(t=>t?hy(t):hy),HT="/api/v1",ut="CLIENT_NETWORK_ERROR";class Me extends Error{code;constructor(r,o){super(o),this.name="ApiError",this.code=r}}function UT(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 S0(t,r){const o=t.startsWith("/")?t:`/${t}`;return`${HT}${o}${UT(r??{})}`}function PT(t){return typeof t=="object"&&t!==null&&t.success===!0}function E0(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:u,signal:m}=r;let g;try{g=await fetch(S0(t,c),{method:o,headers:a===void 0||a instanceof FormData?u:{"Content-Type":"application/json",...u},body:a===void 0?void 0:a instanceof FormData?a:JSON.stringify(a),signal:m})}catch(p){throw new Me(ut,p instanceof Error?p.message:"网络请求失败")}const b=await g.json().catch(()=>null);if(PT(b))return b.data;throw E0(b)?new Me(b.error.code,b.error.message):new Me(ut,`非预期响应(HTTP ${g.status})`)}function YT(){return it("/project/config")}function VT(t){return it("/project/config",{method:"PUT",body:t})}function FT(){return it("/outline")}function GT(t){return it("/outline",{method:"POST",body:t})}function N0(t,r){return it(`/outline/${t}`,{method:"PUT",body:r})}function gy(t,r){return it(`/outline/${t}/move`,{method:"PUT",body:r})}function qT(t){return it(`/outline/${t}`,{method:"DELETE"})}function $T(){return it("/trash")}function XT(t,r){return it(`/trash/entity/${t}/${r}/restore`,{method:"POST"})}function KT(t,r){return it(`/trash/entity/${t}/${r}`,{method:"DELETE"})}function xy(t){return it(`/trash/outline/${t}/restore`,{method:"POST"})}function QT(t){return it(`/trash/outline/${t}`,{method:"DELETE"})}function Nn(t,r={}){return it(`/entity/${t}`,{query:r})}function po(t,r){return it(`/entity/${t}/${r}`)}function Uc(t,r){return it(`/entity/${t}`,{method:"POST",body:r})}function yo(t,r,o){return it(`/entity/${t}/${r}`,{method:"PUT",body:o})}function eu(t,r){return it(`/entity/${t}/${r}`,{method:"DELETE"})}function ZT(t,r){return it(`/entity/event/${t}/move`,{method:"PUT",body:r})}function JT(t,r){return it(`/entity/timepoint/${t}/move`,{method:"PUT",body:r})}function j0(t,r){return it(`/entity/event/${t}/move_to`,{method:"POST",body:r})}function Ur(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 or(t){return it("/relation",{method:"POST",body:t})}function Na(t){return it(`/relation/${t}`,{method:"DELETE"})}function WT(t,r){return it(`/relation/${t}`,{method:"PUT",body:{metadata:r}})}function e2(t){return it(`/delta/node/${t}`)}function t2(t){return it("/delta/compute",{method:"POST",body:t})}function np(t){return it("/delta",{method:"POST",body:t})}function n2(){return it("/project/list")}function s2(t,r){return it("/project/create",{method:"POST",body:{path:t,...r!==void 0?{config:r}:{}}})}function r2(t){return it("/project/open",{method:"POST",body:{path:t}})}function o2(){return it("/project/close",{method:"POST"})}function a2(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 l2(){let t;try{t=await fetch(S0("/project/export"))}catch(o){throw new Me(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:a2(t.headers.get("content-disposition"))};if(r.includes("application/json")){const o=await t.json().catch(()=>null);if(E0(o))throw new Me(o.error.code,o.error.message)}throw new Me(ut,`非预期响应(HTTP ${t.status})`)}async function i2(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 c2(){return it("/project/backups")}function u2(t){return it("/project/backup",{method:"POST",...t!==void 0?{body:{name:t}}:{}})}function d2(t){return it("/project/backup/restore",{method:"POST",body:{fileName:t}})}function f2(t,r){const o=r?.trim()??"";return it("/project/backup/rename",{method:"POST",body:{fileName:t,name:o}})}function m2(t){return it("/project/rename",{method:"POST",body:{name:t}})}function p2(){return it("/settings/llm")}function If(t){return it("/settings/llm",{method:"PUT",body:t})}function h2(){return it("/chat/sessions").then(t=>t.sessions)}function g2(t){return it(`/chat/sessions/${t}/messages`)}function x2(t){return it(`/proposal/${t}/confirm`,{method:"POST"})}function b2(t){return it(`/proposal/${t}/reject`,{method:"POST"})}const gm=3e3;let y2=0;const Ce=tp((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=++y2;t({toast:{id:c,kind:a,text:o}}),setTimeout(()=>{t(u=>u.toast?.id===c?{toast:null}:{})},gm)},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}))})),Be=tp((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 YT();t({config:o,loadError:null})}catch(o){const a=o instanceof Me?o.code:"CLIENT_NETWORK_ERROR";t({config:null,loadError:a})}finally{t({configLoading:!1})}}},updateConfig:async o=>{await VT(o),await r().loadConfig()},loadOutline:async()=>{if(!r().outlineLoading){t({outlineLoading:!0});try{const o=await FT();t({outline:o})}catch{t({outline:null})}finally{t({outlineLoading:!1})}}},loadBookshelf:async()=>{if(!r().bookshelfLoading){t({bookshelfLoading:!0});try{const o=await n2();t({bookshelf:o,bookshelfError:null})}catch(o){const a=o instanceof Me?o.code:"CLIENT_NETWORK_ERROR";t({bookshelf:null,bookshelfError:a})}finally{t({bookshelfLoading:!1})}}},openProjectAt:async o=>{const a=await r2(o);t({config:a.config,loadError:null}),Ce.getState().clearFocusOutlineNode(),a.rebuilt?Ce.getState().showToast(`项目已按新版本重建${a.fromVersion!==void 0?`(v${a.fromVersion})`:""},备份已保留`):a.migrated&&Ce.getState().showToast(`项目数据已自动升级${a.fromVersion!==void 0?`(v${a.fromVersion} → 当前版本)`:""},快照已保留`),await r().loadOutline()},createProjectAt:async(o,a)=>{await s2(o,a),await r().openProjectAt(o)},closeProject:async()=>{await o2(),t({config:null,loadError:null,outline:null}),Ce.getState().clearFocusOutlineNode()}}));function w0(t,r){if(t.id===r)return t;if("children"in t&&t.children)for(const o of t.children){const a=w0(o,r);if(a)return a}return null}function T0(t,r){if(!t||!r)return null;for(const o of t.children){const a=w0(o,r);if(a)return a.title}return null}function C0(t,r){return`${t.replace(/\/+$/,"")}/books/${r.trim()}`}const v2="[DONE]",S2=6e4;function E2(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 by(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 yy(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 N2(t,r){const{onEvent:o,timeoutMs:a=S2,onTimeout:c,onEnd:u,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,N=!1,k=null;const O=()=>{k!==null&&(clearTimeout(k),k=null)},E=()=>{O(),k=setTimeout(()=>{x||(S=!0,x=!0,c?.(),b.abort())},a)},w=_=>{if(_.data===v2)return!1;let T=_.data;try{T=JSON.parse(_.data)}catch{}return o(_.event,T),_.event!=="error"};return E(),(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=yy(M)?M.error.code:ut,C=yy(M)?M.error.message:`SSE 请求失败(HTTP ${_.status})`;x=!0,N=!0,o("error",{code:L,message:C});return}const T=_.body.getReader(),V=new TextDecoder;for(;!x;){const{done:M,value:L}=await T.read();if(M)break;y=(y+V.decode(L,{stream:!0})).replace(/\r\n/g,`
|
|
14
|
-
`);const{frames:C,rest:Z}=E2(y);y=Z;for(const re of C){const ie=by(re);if(ie){if(!w(ie)){x=!0;break}E()}}}if(!x&&y.trim()!==""){const M=by(y.trim());M&&!w(M)&&(x=!0)}}catch{!S&&!j&&(x=!0,N=!0,o("error",{code:ut,message:"网络请求失败"}))}finally{O(),m&&m.removeEventListener("abort",p),x=!0,!S&&!j&&!N&&u?.()}})(),()=>{x||(j=!0,x=!0,O(),b.abort())}}function j2(t,r){return r.includes("HTTP 404")?"聊天服务暂不可用":t==="CLIENT_NETWORK_ERROR"&&!r.includes("HTTP ")?"连接失败,请确认服务已启动":r}function w2(t,r){switch(t){case"INTERNAL_ERROR":return"提案执行失败,请让 AI 重新生成提案";case"CLIENT_NETWORK_ERROR":return"网络请求失败,请重试";default:return r}}let pa=0,ha=0,vy=0,uo=null,vs=null,ga=null;const St=tp((t,r)=>{const o=async(a,c,u)=>{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:u,processing:!1}:b)})),u==="confirmed"&&Ce.getState().notifyDataChanged()}catch(g){const b=g instanceof Me?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:Ce.getState().showToast(w2(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=++pa;t({sessionsLoading:!0});try{const c=await h2();if(a!==pa)return;t({sessions:c,sessionsError:null}),r().currentSessionId===null&&c.length>0&&r().setCurrentSession(c[0].id)}catch(c){if(a!==pa)return;const u=c instanceof Me?c.code:"CLIENT_NETWORK_ERROR";t({sessions:null,sessionsError:u})}finally{a===pa&&t({sessionsLoading:!1})}},setCurrentSession:a=>{a!==r().currentSessionId&&(ha++,uo?.(),uo=null,vs=null,ga=null,t({currentSessionId:a,messages:[],messagesLoading:!1,streaming:!1,streamError:null,disconnected:!1,focusContext:null,proposals:[],streamTools:[]}),a!==null&&r().loadMessages(a))},newSession:()=>{pa++,r().setCurrentSession(null)},clearSessions:()=>{pa++,ha++,uo?.(),uo=null,vs=null,ga=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=++ha;t({messagesLoading:!0});try{const u=await g2(a);if(c!==ha)return;const m=u.messages.map(g=>({...g,sessionId:u.sessionId}));t({messages:m})}catch{if(c!==ha)return;t({messages:[]})}finally{c===ha&&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:u,currentSessionId:m,focusContext:g}=r(),b=a.trim();if(!b||c||u)return;uo?.(),uo=null;const p=new Date().toISOString(),y=m??"",x=`local-${++vy}`;vs=x,ga=b,t(j=>({messages:[...j.messages,{id:`local-${++vy}`,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),uo=N2("/api/v1/chat",{body:S,onEvent:(j,N)=>{switch(j){case"ping":break;case"text":{const k=N?.delta??"";vs&&t(O=>({messages:O.messages.map(E=>E.id===vs?{...E,content:(E.content??"")+k}:E)}));break}case"tool_call":{const{tool:k,args:O,id:E}=N;if(!E||!k)break;t(w=>({streamTools:[...w.streamTools,{id:E,tool:k,args:O,status:"running"}]}));break}case"tool_result":{const{id:k}=N;if(!k)break;t(O=>({streamTools:O.streamTools.map(E=>E.id===k?{...E,result:N.result,status:"ok"}:E)}));break}case"proposal":{const{proposal_id:k,type:O,preview:E}=N;if(!k||!O)break;t(w=>({proposals:[...w.proposals,{proposalId:k,type:O,preview:E,status:"pending"}]}));break}case"done":{if(vs===null)break;const k=N?.session_id;t({streaming:!1,currentSessionId:k??r().currentSessionId}),k&&r().loadSessions();break}case"error":{const{code:k,message:O}=N;t({streaming:!1,streamError:j2(k??"",O??"")});break}}},onTimeout:()=>{vs===x&&(vs=null,t({streaming:!1,disconnected:!0,proposals:[],streamTools:[]}))},onEnd:()=>{vs===x&&(vs=null,t(j=>j.streaming?{streaming:!1}:{}))}})},resendLast:()=>{const{messages:a,streaming:c}=r();if(c||!ga)return;let u=a;u[u.length-1]?.role==="assistant"&&(u=u.slice(0,-1));const g=u[u.length-1];g?.role==="user"&&g.content===ga&&(u=u.slice(0,-1)),t({messages:u}),r().sendMessage(ga)},confirmProposal:a=>o(a,x2,"confirmed"),rejectProposal:a=>o(a,b2,"rejected")}});let Sy=Be.getState().config?.id??null;Be.subscribe(t=>{const r=t.config?.id??null;r!==Sy&&(Sy=r,St.getState().clearSessions(),r!==null&&St.getState().loadSessions())});function tu(){return typeof window<"u"}function vn(t){return sp(t)?(t.nodeName||"").toLowerCase():"#document"}function Qt(t){var r;return(t==null||(r=t.ownerDocument)==null?void 0:r.defaultView)||window}function cr(t){var r;return(r=(sp(t)?t.ownerDocument:t.document)||window.document)==null?void 0:r.documentElement}function sp(t){return tu()?t instanceof Node||t instanceof Qt(t).Node:!1}function vt(t){return tu()?t instanceof Element||t instanceof Qt(t).Element:!1}function Yt(t){return tu()?t instanceof HTMLElement||t instanceof Qt(t).HTMLElement:!1}function Ca(t){return!tu()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Qt(t).ShadowRoot}function wo(t){const{overflow:r,overflowX:o,overflowY:a,display:c}=qn(t);return/auto|scroll|overlay|hidden|clip/.test(r+a+o)&&c!=="inline"&&c!=="contents"}function T2(t){return/^(table|td|th)$/.test(vn(t))}function nu(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const C2=/transform|translate|scale|rotate|perspective|filter/,R2=/paint|layout|strict|content/,fo=t=>!!t&&t!=="none";let Bf;function rp(t){const r=vt(t)?qn(t):t;return fo(r.transform)||fo(r.translate)||fo(r.scale)||fo(r.rotate)||fo(r.perspective)||!op()&&(fo(r.backdropFilter)||fo(r.filter))||C2.test(r.willChange||"")||R2.test(r.contain||"")}function O2(t){let r=ar(t);for(;Yt(r)&&!er(r);){if(rp(r))return r;if(nu(r))return null;r=ar(r)}return null}function op(){return Bf==null&&(Bf=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Bf}function er(t){return/^(html|body|#document)$/.test(vn(t))}function qn(t){return Qt(t).getComputedStyle(t)}function su(t){return vt(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function ar(t){if(vn(t)==="html")return t;const r=t.assignedSlot||t.parentNode||Ca(t)&&t.host||cr(t);return Ca(r)?r.host:r}function R0(t){const r=ar(t);return er(r)?(t.ownerDocument||t).body:Yt(r)&&wo(r)?r:R0(r)}function Yl(t,r,o){var a;r===void 0&&(r=[]),o===void 0&&(o=!0);const c=R0(t),u=c===((a=t.ownerDocument)==null?void 0:a.body),m=Qt(c);if(u){const g=xm(m);return r.concat(m,m.visualViewport||[],wo(c)?c:[],g&&o?Yl(g):[])}else return r.concat(c,Yl(c,[],o))}function xm(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}const ap={...lj},Ey={};function Ln(t,r){const o=h.useRef(Ey);return o.current===Ey&&(o.current=t(r)),o}const Hf=ap.useInsertionEffect,k2=Hf&&Hf!==ap.useLayoutEffect?Hf:t=>t();function st(t){const r=Ln(_2).current;return r.next=t,k2(r.effect),r.trampoline}function _2(){const t={next:void 0,callback:M2,trampoline:(...r)=>t.callback?.(...r),effect:()=>{t.callback=t.next}};return t}function M2(){}const A2=()=>{},Qe=typeof document<"u"?h.useLayoutEffect:A2;function bm(t,r){if(t&&!r)return t;if(!t&&r)return r;if(t||r)return{...t,...r}}const lp={};function tr(t,r,o,a,c){if(!o&&!a&&!c&&!t)return Pc(r);let u=Pc(t);return r&&(u=_l(u,r)),o&&(u=_l(u,o)),a&&(u=_l(u,a)),c&&(u=_l(u,c)),u}function D2(t){if(t.length===0)return lp;if(t.length===1)return Pc(t[0]);let r=Pc(t[0]);for(let o=1;o<t.length;o+=1)r=_l(r,t[o]);return r}function Pc(t){return ip(t)?{...k0(t,lp)}:z2(t)}function _l(t,r){return ip(r)?k0(r,t):L2(t,r)}function z2(t){const r={...t};for(const o in r){const a=r[o];O0(o,a)&&(r[o]=_0(a))}return r}function L2(t,r){if(!r)return t;for(const o in r){const a=r[o];switch(o){case"style":{t[o]=bm(t.style,a);break}case"className":{t[o]=M0(t.className,a);break}default:O0(o,a)?t[o]=I2(t[o],a):t[o]=a}}return t}function O0(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 ip(t){return typeof t=="function"}function k0(t,r){return ip(t)?t(r):t??lp}function I2(t,r){return r?t?(...o)=>{const a=o[0];if(A0(a)){const u=a;Yc(u);const m=r(...o);return u.baseUIHandlerPrevented||t?.(...o),m}const c=r(...o);return t?.(...o),c}:_0(r):t}function _0(t){return t&&((...r)=>{const o=r[0];return A0(o)&&Yc(o),t(...r)})}function Yc(t){return t.preventBaseUIHandler=()=>{t.baseUIHandlerPrevented=!0},t}function M0(t,r){return r?t?r+" "+t:r:t}function A0(t){return t!=null&&typeof t=="object"&&"nativeEvent"in t}function B2(t,r){return function(a,...c){const u=new URL(t);return u.searchParams.set("code",a.toString()),c.forEach(m=>u.searchParams.append("args[]",m)),`${r} error #${a}; visit ${u} for the full message.`}}const jn=B2("https://base-ui.com/production-error","Base UI"),H2=h.createContext(void 0);function cp(t=!1){const r=h.useContext(H2);if(r===void 0&&!t)throw new Error(jn(16));return r}function U2(t){const{focusableWhenDisabled:r,disabled:o,composite:a=!1,tabIndex:c=0,isNativeButton:u}=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,!u&&o&&(p.tabIndex=r?c:-1)),(u&&(r||m)||!u&&o)&&(p["aria-disabled"]=o),u&&(!r||g)&&(p.disabled=o),p},[a,o,r,m,g,u,c])}}function Zl(t={}){const{disabled:r=!1,focusableWhenDisabled:o,tabIndex:a=0,native:c=!0,composite:u}=t,m=h.useRef(null),g=cp(!0),b=u??g!==void 0,{props:p}=U2({focusableWhenDisabled:o,disabled:r,composite:b,tabIndex:a,isNativeButton:c}),y=h.useCallback(()=>{const j=m.current;Uf(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:N,onMouseDown:k,onKeyUp:O,onKeyDown:E,onPointerDown:w,..._}=j;return tr({onClick(T){if(r){T.preventDefault();return}N?.(T)},onMouseDown(T){r||k?.(T)},onKeyDown(T){if(r||(Yc(T),E?.(T),T.baseUIHandlerPrevented))return;const V=T.target===T.currentTarget,M=T.currentTarget,L=Uf(M),C=!c&&P2(M),Z=V&&(c?L:!C),re=T.key==="Enter",ie=T.key===" ",te=M.getAttribute("role"),K=te?.startsWith("menuitem")||te==="option"||te==="gridcell";if(V&&b&&ie){if(T.defaultPrevented&&K)return;T.preventDefault(),C||c&&L?(M.click(),T.preventBaseUIHandler()):Z&&(N?.(T),T.preventBaseUIHandler());return}Z&&(!c&&(ie||re)&&T.preventDefault(),!c&&re&&N?.(T))},onKeyUp(T){if(!r){if(Yc(T),O?.(T),T.target===T.currentTarget&&c&&b&&Uf(T.currentTarget)&&T.key===" "){T.preventDefault();return}T.baseUIHandlerPrevented||T.target===T.currentTarget&&!c&&!b&&T.key===" "&&N?.(T)}},onPointerDown(T){if(r){T.preventDefault();return}w?.(T)}},c?{type:"button"}:{role:"button"},p,_)},[r,p,b,c]),S=st(j=>{m.current=j,y()});return{getButtonProps:x,buttonRef:S}}function Uf(t){return Yt(t)&&t.tagName==="BUTTON"}function P2(t){return!!(t?.tagName==="A"&&t?.href)}function Ra(t,r,o,a){const c=Ln(D0).current;return V2(c,t,r,o,a)&&z0(c,[t,r,o,a]),c.callback}function Y2(t){const r=Ln(D0).current;return F2(r,t)&&z0(r,t),r.callback}function D0(){return{callback:null,cleanup:null,refs:[]}}function V2(t,r,o,a,c){return t.refs[0]!==r||t.refs[1]!==o||t.refs[2]!==a||t.refs[3]!==c}function F2(t,r){return t.refs.length!==r.length||t.refs.some((o,a)=>o!==r[a])}function z0(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 u=r[c];if(u!=null)switch(typeof u){case"function":{const m=u(o);typeof m=="function"&&(a[c]=m);break}case"object":{u.current=o;break}}}t.cleanup=()=>{for(let c=0;c<r.length;c+=1){const u=r[c];if(u!=null)switch(typeof u){case"function":{const m=a[c];typeof m=="function"?m():u(null);break}case"object":{u.current=null;break}}}}}}}const G2=parseInt(h.version,10);function up(t){return G2>=t}function Ny(t){if(!h.isValidElement(t))return null;const r=t,o=r.props;return(up(19)?o?.ref:r.ref)??null}function fn(){}const Vc=Object.freeze([]),Vt=Object.freeze({});function q2(t,r){const o={};for(const a in t){const c=t[a];if(r?.hasOwnProperty(a)){const u=r[a](c);u!=null&&Object.assign(o,u);continue}c===!0?o[`data-${a.toLowerCase()}`]="":c&&(o[`data-${a.toLowerCase()}`]=c.toString())}return o}function $2(t,r){return typeof t=="function"?t(r):t}function X2(t,r){return typeof t=="function"?t(r):t}function pn(t,r,o={}){const a=r.render,c=K2(r,o);if(o.enabled===!1)return null;const u=o.state??Vt;return J2(t,a,c,u)}function K2(t,r={}){const{className:o,style:a,render:c}=t,{state:u=Vt,ref:m,props:g,stateAttributesMapping:b,enabled:p=!0}=r,y=p?$2(o,u):void 0,x=p?X2(a,u):void 0,S=p?q2(u,b):Vt,j=p&&g?Q2(g):void 0,N=p?bm(S,j)??{}:Vt;return typeof document<"u"&&(p?Array.isArray(m)?N.ref=Y2([N.ref,Ny(c),...m]):N.ref=Ra(N.ref,Ny(c),m):Ra(null,null)),p?(y!==void 0&&(N.className=M0(N.className,y)),x!==void 0&&(N.style=bm(N.style,x)),N):Vt}function Q2(t){return Array.isArray(t)?D2(t):tr(void 0,t)}const Z2=Symbol.for("react.lazy");function J2(t,r,o,a){if(r){if(typeof r=="function")return r(o,a);const c=tr(o,r.props);c.ref=o.ref;let u=r;return u?.$$typeof===Z2&&(u=h.Children.toArray(r)[0]),h.cloneElement(u,c)}if(t&&typeof t=="string")return W2(t,o);throw new Error(jn(8))}function W2(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 eC=h.forwardRef(function(r,o){const{render:a,className:c,disabled:u=!1,focusableWhenDisabled:m=!1,nativeButton:g=!0,style:b,...p}=r,{getButtonProps:y,buttonRef:x}=Zl({disabled:u,focusableWhenDisabled:m,native:g});return pn("button",r,{state:{disabled:u},ref:[o,x],props:[p,y]})}),jy=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,wy=a0,tC=(t,r)=>o=>{var a;if(r?.variants==null)return wy(t,o?.class,o?.className);const{variants:c,defaultVariants:u}=r,m=Object.keys(c).map(p=>{const y=o?.[p],x=u?.[p];if(y===null)return null;const S=jy(y)||jy(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(N=>{let[k,O]=N;return Array.isArray(O)?O.includes({...u,...g}[k]):{...u,...g}[k]===O})?[...p,x,S]:p},[]);return wy(t,m,b,o?.class,o?.className)},ym=tC("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(eC,{"data-slot":"button",className:$e(ym({variant:r,size:o,className:t})),...a})}const L0=h.createContext(void 0);function I0(t){const r=h.useContext(L0);if(r===void 0&&!t)throw new Error(jn(33));return r}const B0=h.createContext(void 0);function To(t){const r=h.useContext(B0);if(r===void 0&&!t)throw new Error(jn(36));return r}let Vl=(function(t){return t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t})({});const nC={[Vl.startingStyle]:""},sC={[Vl.endingStyle]:""},ru={transitionStatus(t){return t==="starting"?nC:t==="ending"?sC:null}};let ho=(function(t){return t.open="data-open",t.closed="data-closed",t[t.startingStyle=Vl.startingStyle]="startingStyle",t[t.endingStyle=Vl.endingStyle]="endingStyle",t.anchorHidden="data-anchor-hidden",t.side="data-side",t.align="data-align",t})({}),vm=(function(t){return t.popupOpen="data-popup-open",t.pressed="data-pressed",t})({});const rC={[vm.popupOpen]:""},oC={[vm.popupOpen]:"",[vm.pressed]:""},aC={[ho.open]:""},lC={[ho.closed]:""},iC={[ho.anchorHidden]:""},cC={open(t){return t?rC:null}},Sm={open(t){return t?oC:null}},Jl={open(t){return t?aC:lC},anchorHidden(t){return t?iC:null}},uC=h.createContext(void 0);function ou(t=!0){const r=h.useContext(uC);if(r===void 0&&!t)throw new Error(jn(25));return r}const H0="none",vo="trigger-press",mn="trigger-hover",Dl="trigger-focus",dp="outside-press",U0="item-press",P0="close-press",So="focus-out",au="escape-key",Em="list-navigation",dC="cancel-open",Ml="sibling-open",fp="imperative-action";function fC({controlled:t,default:r,name:o,state:a="value"}){const{current:c}=h.useRef(t!==void 0),[u,m]=h.useState(r),g=c?t:u,b=h.useCallback(p=>{c||m(p)},[]);return[g,b]}function mC(){return typeof navigator>"u"?{userAgent:"",platform:"",maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??0}}const{userAgent:pC,platform:hC,maxTouchPoints:gC}=mC(),lu=pC.toLowerCase(),Fl=hC.toLowerCase(),iu=/^i(os$|p)/.test(Fl)||Fl==="macintel"&&gC>1,Ty="android",Nm=Fl===Ty||lu.includes(Ty),mp=!iu&&Fl.startsWith("mac");Fl.startsWith("win");const xC=mp||iu,Co=typeof CSS<"u"&&!!CSS.supports?.("-webkit-backdrop-filter:none");!Co&&lu.includes("firefox");!Co&&lu.includes("chrom");const bC=xC,pp=/jsdom|happydom/.test(lu);function yC(t){const{closeOnClick:r,highlighted:o,id:a,nodeId:c,store:u,typingRef:m,itemRef:g,itemMetadata:b}=t,{events:p}=u.useState("floatingTreeRoot"),y=u.useState("open"),x=ou(!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:U0})},onMouseUp(j){if(x){const N=x.initialCursorPointRef.current;if(x.initialCursorPointRef.current=null,S&&N&&Math.abs(j.clientX-N.x)<=1&&Math.abs(j.clientY-N.y)<=1||S&&!mp&&j.button===2)return}g.current&&u.context.allowMouseUpTriggerRef.current&&(!S||j.button===2)&&(!b||b.type==="regular-item")&&g.current.click()}}),[r,o,a,p,c,y,u,m,g,x,S,b])}const vC={type:"regular-item"};function SC(t){const{closeOnClick:r,disabled:o=!1,highlighted:a,id:c,store:u,typingRef:m=u.context.typingRef,nativeButton:g,itemMetadata:b,nodeId:p}=t,y=u.useState("disabled"),x=o||y,S=h.useRef(null),{getButtonProps:j,buttonRef:N}=Zl({disabled:x,focusableWhenDisabled:!0,native:g,composite:!0}),k=yC({closeOnClick:r,highlighted:a,id:c,nodeId:p,store:u,typingRef:m,itemRef:S,itemMetadata:b}),O=h.useCallback(w=>tr(k,{onMouseEnter(){b.type==="submenu-trigger"&&b.setActive()}},w,j),[k,j,b]),E=Ra(S,N);return h.useMemo(()=>({getItemProps:O,itemRef:E}),[O,E])}const Y0=h.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function EC(){return h.useContext(Y0)}let NC=(function(t){return t[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t})({});function V0(t={}){const{label:r,metadata:o,textRef:a,indexGuessBehavior:c,index:u}=t,{register:m,unregister:g,subscribeMapChange:b,elementsRef:p,labelsRef:y,nextIndexRef:x}=EC(),S=h.useRef(-1),[j,N]=h.useState(u??(c===NC.GuessFromOrder?()=>{if(S.current===-1){const E=x.current;x.current+=1,S.current=E}return S.current}:-1)),k=h.useRef(null),O=h.useCallback(E=>{if(k.current=E,j!==-1&&E!==null&&(p.current[j]=E,y)){const w=r!==void 0;y.current[j]=w?r:a?.current?.textContent??E.textContent}},[j,p,y,r,a]);return Qe(()=>{if(u!=null)return;const E=k.current;if(E)return m(E,o),()=>{g(E)}},[u,m,g,o]),Qe(()=>{if(u==null)return b(E=>{const w=k.current?E.get(k.current)?.index:null;w!=null&&N(w)})},[u,b,N]),{ref:O,index:j}}let Cy=0;function jC(t,r="mui"){const[o,a]=h.useState(t),c=t||o;return h.useEffect(()=>{o==null&&(Cy+=1,a(`${r}-${Cy}`))},[o,r]),c}const Ry=ap.useId;function Eo(t,r){if(Ry!==void 0){const o=Ry();return t??(r?`${r}-${o}`:o)}return jC(t,r)}function Ro(t){return Eo(t,"base-ui")}function jt(t,r,o,a){let c=!1,u=!1;const m=Vt;return{reason:t,event:r??new Event("base-ui"),cancel(){c=!0},allowPropagation(){u=!0},get isCanceled(){return c},get isPropagationAllowed(){return u},trigger:o,...m}}const wC=[];function hp(t){h.useEffect(t,wC)}const bc=null;class TC{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 yc=new TC;class Ns{static create(){return new Ns}static request(r){return yc.request(r)}static cancel(r){return yc.cancel(r)}currentId=bc;request(r){this.cancel(),this.currentId=yc.request(()=>{this.currentId=bc,r()})}cancel=()=>{this.currentId!==bc&&(yc.cancel(this.currentId),this.currentId=bc)};disposeEffect=()=>this.cancel}function Gl(){const t=Ln(Ns.create).current;return hp(t.disposeEffect),t}function CC(t,r=!1,o=!1){const[a,c]=h.useState(t&&r?"idle":void 0),[u,m]=h.useState(t);return t&&!u&&(m(!0),c("starting")),!t&&u&&a!=="ending"&&!o&&c("ending"),!t&&!u&&a==="ending"&&c(void 0),Qe(()=>{if(!t&&u&&a!=="ending"&&o){const g=Ns.request(()=>{c("ending")});return()=>{Ns.cancel(g)}}},[t,u,a,o]),Qe(()=>{if(!t||r)return;const g=Ns.request(()=>{c(void 0)});return()=>{Ns.cancel(g)}},[r,t]),Qe(()=>{if(!t||!r)return;t&&u&&a!=="idle"&&c("starting");const g=Ns.request(()=>{c("idle")});return()=>{Ns.cancel(g)}},[r,t,u,a]),{mounted:u,setMounted:m,transitionStatus:a}}var lr=Jv();const RC=Zv(lr);function Ws(t){return t==null?t:"current"in t?t.current:t}function gp(t,r=!1,o=!0){const a=Gl();return st((c,u=null)=>{a.cancel();const m=Ws(t);if(m==null)return;const g=m,b=()=>{lr.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(()=>{u?.aborted||b()}).catch(()=>{if(o){u?.aborted||b();return}const y=g.getAnimations();!u?.aborted&&y.length>0&&y.some(x=>x.pending||x.playState!=="finished")&&p()})}if(r){const y=Vl.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]}),u?.addEventListener("abort",()=>x.disconnect(),{once:!0});return}a.request(p)})}function cu(t){const{enabled:r=!0,open:o,ref:a,onComplete:c}=t,u=st(c),m=gp(a,o,!1);h.useEffect(()=>{if(!r)return;const g=new AbortController;return m(u,g.signal),()=>{g.abort()}},[r,o,u,m])}const F0=h.createContext(void 0);function OC(){const t=h.useContext(F0);if(t===void 0)throw new Error(jn(31));return t}const kC=h.forwardRef(function(r,o){const{render:a,className:c,style:u,...m}=r,[g,b]=h.useState(void 0),p=pn("div",r,{ref:o,props:{role:"group","aria-labelledby":g,...m}});return i.jsx(F0.Provider,{value:b,children:p})}),_C=h.forwardRef(function(r,o){const{render:a,className:c,style:u,id:m,...g}=r,b=Ro(m),p=OC();return Qe(()=>(p(b),()=>{p(void 0)}),[p,b]),pn("div",r,{ref:o,props:{id:b,role:"presentation",...g}})}),MC=h.forwardRef(function(r,o){const{render:a,className:c,id:u,label:m,nativeButton:g=!1,disabled:b=!1,closeOnClick:p=!0,style:y,...x}=r,S=V0({label:m}),j=I0(!0),N=Ro(u),{store:k}=To(),O=k.useState("isActive",S.index),E=k.useState("itemProps"),{getItemProps:w,itemRef:_}=SC({closeOnClick:p,disabled:b,highlighted:O,id:N,store:k,nativeButton:g,nodeId:j?.context.nodeId,itemMetadata:vC});return pn("div",r,{state:{disabled:b,highlighted:O},props:[E,x,w],ref:[_,o,S.ref]})}),Nl=0;class ms{static create(){return new ms}currentId=Nl;start(r,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=Nl,o()},r)}isStarted(){return this.currentId!==Nl}clear=()=>{this.currentId!==Nl&&(clearTimeout(this.currentId),this.currentId=Nl)};disposeEffect=()=>this.clear}function $n(){const t=Ln(ms.create).current;return hp(t.disposeEffect),t}function Es(t){t.preventDefault(),t.stopPropagation()}function AC(t){return"nativeEvent"in t}function G0(t){return t.pointerType===""&&t.isTrusted?!0:Nm&&t.pointerType?t.type==="click"&&t.buttons===1:t.detail===0&&!t.pointerType}function q0(t){return pp?!1:!Nm&&t.width===0&&t.height===0||Nm&&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 ql(t,r){const o=["mouse","pen"];return r||o.push("",void 0),o.includes(t)}function DC(t){const r=t.type;return r==="click"||r==="mousedown"||r==="keydown"||r==="keyup"}const jm="data-base-ui-focusable",$0="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",uu="ArrowLeft",du="ArrowRight",X0="ArrowUp",xp="ArrowDown";function Tn(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&&Ca(o)){let a=r;for(;a;){if(t===a)return!0;a=a.parentNode||a.host}}return!1}function zn(t){return"composedPath"in t?t.composedPath()[0]:t.target}function Fc(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 Pf(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 zC(t){return t.matches("html,body")}function fu(t){return Yt(t)&&t.matches($0)}function LC(t){return t?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${$0}`)!=null}function wm(t){return t?t.getAttribute("role")==="combobox"&&fu(t):!1}function IC(t){if(!t||pp)return!0;try{return t.matches(":focus-visible")}catch{return!0}}function Tm(t){return t?t.hasAttribute(jm)?t:t.querySelector(`[${jm}]`)||t:null}function BC(t,r){return r!=null&&!ql(r)?0:typeof t=="function"?t():t}function Cm(t,r,o){const a=BC(t,o);return typeof a=="number"?a:a?.[r]}function Oy(t){return typeof t=="function"?t():t}function K0(t,r){return r||t==="click"||t==="mousedown"}function HC(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 _s(...t){return()=>{for(let r=0;r<t.length;r+=1){const o=t[r];o&&o()}}}function ln(t){const r=Ln(UC,t).current;return r.next=t,Qe(r.effect),r}function UC(t){const r={current:t,next:t,effect:()=>{r.current=r.next}};return r}function Nt(t){return t?.ownerDocument||document}const PC={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},YC={...PC,position:"fixed",top:0,left:0},Pr=h.forwardRef(function(r,o){const[a,c]=h.useState();Qe(()=>{bC&&Co&&c("button")},[]);const u={tabIndex:0,role:a};return i.jsx("span",{...r,ref:o,style:YC,"aria-hidden":a?void 0:!0,...u,"data-base-ui-focus-guard":""})}),VC=["top","right","bottom","left"],Oa=Math.min,nr=Math.max,Gc=Math.round,vc=Math.floor,sr=t=>({x:t,y:t}),FC={left:"right",right:"left",bottom:"top",top:"bottom"};function Q0(t,r,o){return nr(t,Oa(r,o))}function ir(t,r){return typeof t=="function"?t(r):t}function Gn(t){return t.split("-")[0]}function Fr(t){return t.split("-")[1]}function bp(t){return t==="x"?"y":"x"}function yp(t){return t==="y"?"height":"width"}function ls(t){const r=t[0];return r==="t"||r==="b"?"y":"x"}function vp(t){return bp(ls(t))}function GC(t,r,o){o===void 0&&(o=!1);const a=Fr(t),c=vp(t),u=yp(c);let m=c==="x"?a===(o?"end":"start")?"right":"left":a==="start"?"bottom":"top";return r.reference[u]>r.floating[u]&&(m=qc(m)),[m,qc(m)]}function qC(t){const r=qc(t);return[Rm(t),r,Rm(r)]}function Rm(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const ky=["left","right"],_y=["right","left"],$C=["top","bottom"],XC=["bottom","top"];function KC(t,r,o){switch(t){case"top":case"bottom":return o?r?_y:ky:r?ky:_y;case"left":case"right":return r?$C:XC;default:return[]}}function QC(t,r,o,a){const c=Fr(t);let u=KC(Gn(t),o==="start",a);return c&&(u=u.map(m=>m+"-"+c),r&&(u=u.concat(u.map(Rm)))),u}function qc(t){const r=Gn(t);return FC[r]+t.slice(r.length)}function ZC(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 Z0(t){return typeof t!="number"?ZC(t):{top:t,right:t,bottom:t,left:t}}function $c(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 My(t,r){return r<0||r>=t.length}function Yf(t,r){return Ea(t.current,{disabledIndices:r})}function Ay(t,r){return Ea(t.current,{decrement:!0,startingIndex:t.current.length,disabledIndices:r})}function Ea(t,{startingIndex:r=-1,decrement:o=!1,disabledIndices:a,amount:c=1}={}){let u=r;do u+=o?-c:c;while(u>=0&&u<=t.length-1&&J0(t,u,a));return u}function J0(t,r,o){if(typeof o=="function"?o(r):o?.includes(r)??!1)return!0;const c=t[r];return c?mu(c)?!o&&(c.hasAttribute("disabled")||c.getAttribute("aria-disabled")==="true"):!0:!1}function JC(t){return t.visibility==="hidden"||t.visibility==="collapse"}function mu(t,r=t?qn(t):null){return!t||!t.isConnected||!r||JC(r)?!1:typeof t.checkVisibility=="function"?t.checkVisibility():r.display!=="none"&&r.display!=="contents"}const WC='a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';function eR(t){const r=t.assignedSlot;if(r)return r;if(t.parentElement)return t.parentElement;const o=t.getRootNode();return Ca(o)?o.host:null}function Om(t){for(const r of Array.from(t.children))if(vn(r)==="summary")return r;return null}function tR(t,r){const o=Om(r);return!!o&&(t===o||tt(o,t))}function W0(t){const r=t?vn(t):"";return t!=null&&t.matches(WC)&&(r!=="summary"||t.parentElement!=null&&vn(t.parentElement)==="details"&&Om(t.parentElement)===t)&&(r!=="details"||Om(t)==null)&&(r!=="input"||t.type!=="hidden")}function e1(t){if(!W0(t)||!t.isConnected||t.matches(":disabled"))return!1;for(let r=t;r;r=eR(r)){const o=r!==t,a=vn(r)==="slot";if(r.hasAttribute("inert")||o&&vn(r)==="details"&&!r.open&&!tR(t,r)||r.hasAttribute("hidden")||!a&&!nR(r,o))return!1}return!0}function nR(t,r){const o=qn(t);return r?o.display!=="none":mu(t,o)}function t1(t){const r=t.tabIndex;if(r<0){const o=vn(t);if(o==="details"||o==="audio"||o==="video"||Yt(t)&&t.isContentEditable)return 0}return r}function Vf(t){if(vn(t)!=="input")return null;const r=t;return r.type==="radio"&&r.name!==""?r:null}function sR(t,r){const o=Vf(t);if(!o)return!0;const a=r.find(c=>{const u=Vf(c);return u?.name===o.name&&u.form===o.form&&u.checked});return a?a===o:r.find(c=>{const u=Vf(c);return u?.name===o.name&&u.form===o.form})===o}function n1(t){if(Yt(t)&&vn(t)==="slot"){const r=t.assignedElements({flatten:!0});if(r.length>0)return r}return Yt(t)&&t.shadowRoot?Array.from(t.shadowRoot.children):Array.from(t.children)}function s1(t,r){n1(t).forEach(o=>{W0(o)&&r.push(o),s1(o,r)})}function r1(t,r,o){n1(t).forEach(a=>{Yt(a)&&a.matches(r)&&o.push(a),r1(a,r,o)})}function Sp(t){return e1(t)&&t1(t)>=0}function o1(t){const r=[];return s1(t,r),r.filter(e1)}function Wl(t){const r=o1(t);return r.filter(o=>t1(o)>=0&&sR(o,r))}function a1(t,r){const o=Wl(t),a=o.length;if(a===0)return;const c=Tn(Nt(t)),u=o.indexOf(c),m=u===-1?r===1?0:a-1:u+r;return o[m]}function Ep(t){return a1(Nt(t).body,1)||t}function l1(t){return a1(Nt(t).body,-1)||t}function i1(t,r){if(!t)return null;const o=Wl(Nt(t).body),a=o.length;if(a===0)return null;const c=o.indexOf(t);if(c===-1)return null;const u=(c+r+a)%a;return o[u]}function rR(t){return i1(t,1)}function oR(t){return i1(t,-1)}function ja(t,r){const o=r||t.currentTarget,a=t.relatedTarget;return!a||!tt(o,a)}function aR(t){Wl(t).forEach(o=>{o.dataset.tabindex=o.getAttribute("tabindex")||"",o.setAttribute("tabindex","-1")})}function Dy(t){const r=[];r1(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 Yr(t,r,o=!0){return t.filter(c=>c.parentId===r).flatMap(c=>[...!o||c.context?.open?[c]:[],...Yr(t,c.id,o)])}function zy(t,r){let o=[],a=t.find(c=>c.id===r)?.parentId;for(;a;){const c=t.find(u=>u.id===a);a=c?.parentId,c&&(o=o.concat(c))}return o}function $l(t){return`data-base-ui-${t}`}let Sc=0;function Ac(t,r={}){const{preventScroll:o=!1,sync:a=!1,shouldFocus:c}=r;cancelAnimationFrame(Sc);function u(){c&&!c()||t?.focus({preventScroll:o})}if(a)return u(),fn;const m=requestAnimationFrame(u);return Sc=m,()=>{Sc===m&&(cancelAnimationFrame(m),Sc=0)}}const Ff={inert:new WeakMap,"aria-hidden":new WeakMap},Ly="data-base-ui-inert",km={inert:new WeakSet,"aria-hidden":new WeakSet};let jl=new WeakMap,Gf=0;function lR(t){return km[t]}function c1(t){return t?Ca(t)?t.host:c1(t.parentNode):null}const Iy=(t,r)=>r.map(o=>{if(t.contains(o))return o;const a=c1(o);return t.contains(a)?a:null}).filter(o=>o!=null),By=t=>{const r=new Set;return t.forEach(o=>{let a=o;for(;a&&!r.has(a);)r.add(a),a=a.parentNode}),r},Hy=(t,r,o)=>{const a=[],c=u=>{!u||o.has(u)||Array.from(u.children).forEach(m=>{vn(m)!=="script"&&(r.has(m)?c(m):a.push(m))})};return c(t),a};function iR(t,r,o,a,{mark:c=!0}){let u=null;a?u="inert":o&&(u="aria-hidden");let m=null,g=null;const b=Iy(r,t),p=c?Hy(r,By(b),new Set(b)):[],y=[],x=[];if(u){const S=Ff[u],j=lR(u);g=j,m=S;const N=Iy(r,Array.from(r.querySelectorAll("[aria-live]"))),k=b.concat(N);Hy(r,By(k),new Set(k)).forEach(E=>{const w=E.getAttribute(u),_=w!==null&&w!=="false",T=(S.get(E)||0)+1;S.set(E,T),y.push(E),T===1&&_&&j.add(E),_||E.setAttribute(u,u==="inert"?"":"true")})}return c&&p.forEach(S=>{const j=(jl.get(S)||0)+1;jl.set(S,j),x.push(S),j===1&&S.setAttribute(Ly,"")}),Gf+=1,()=>{m&&y.forEach(S=>{const N=(m.get(S)||0)-1;m.set(S,N),N||(!g?.has(S)&&u&&S.removeAttribute(u),g?.delete(S))}),c&&x.forEach(S=>{const j=(jl.get(S)||0)-1;jl.set(S,j),j||S.removeAttribute(Ly)}),Gf-=1,Gf||(Ff.inert=new WeakMap,Ff["aria-hidden"]=new WeakMap,km.inert=new WeakSet,km["aria-hidden"]=new WeakSet,jl=new WeakMap)}}function Uy(t,r={}){const{ariaHidden:o=!1,inert:a=!1,mark:c=!0}=r,u=Nt(t[0]).body;return iR(t,u,o,a,{mark:c})}const cR=500,u1=500,uR={style:{transition:"none"}},d1="data-base-ui-click-trigger",dR={fallbackAxisSide:"none"},f1={fallbackAxisSide:"end"},fR={clipPath:"inset(50%)",position:"fixed",top:0,left:0},m1=h.createContext(null),p1=()=>h.useContext(m1),mR=$l("portal");function pR(t={}){const{ref:r,container:o,componentProps:a=Vt,elementProps:c}=t,u=Eo(),g=p1()?.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(u==null)return;const O=(o&&(sp(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,u]);const N=pn("div",a,{ref:[r,S],props:[{id:u,[mR]:""},c]});return{portalNode:y,portalSubtree:b&&N?lr.createPortal(N,b):null}}const Np=h.forwardRef(function(r,o){const{render:a,className:c,style:u,children:m,container:g,renderGuards:b,...p}=r,{portalNode:y,portalSubtree:x}=pR({container:g,ref:o,componentProps:r,elementProps:p}),S=h.useRef(null),j=h.useRef(null),N=h.useRef(null),k=h.useRef(null),[O,E]=h.useState(null),w=h.useRef(!1),_=O?.modal,T=O?.open,V=typeof b=="boolean"?b:!!O&&!O.modal&&O.open&&!!y;h.useEffect(()=>{if(!y||_)return;function L(C){y&&C.relatedTarget&&ja(C)&&(C.type==="focusin"?w.current&&(Dy(y),w.current=!1):(aR(y),w.current=!0))}return _s(xt(y,"focusin",L,!0),xt(y,"focusout",L,!0))},[y,_]),Qe(()=>{!y||T!==!0||!w.current||(Dy(y),w.current=!1)},[T,y]);const M=h.useMemo(()=>({beforeOutsideRef:S,afterOutsideRef:j,beforeInsideRef:N,afterInsideRef:k,portalNode:y,setFocusManagerState:E}),[y]);return i.jsxs(h.Fragment,{children:[x,i.jsxs(m1.Provider,{value:M,children:[V&&y&&i.jsx(Pr,{"data-type":"outside",ref:S,onFocus:L=>{if(ja(L,y))N.current?.focus();else{const C=O?O.domReference:null;l1(C)?.focus()}}}),V&&y&&i.jsx("span",{"aria-owns":y.id,style:fR}),y&&lr.createPortal(m,y),V&&y&&i.jsx(Pr,{"data-type":"outside",ref:j,onFocus:L=>{if(ja(L,y))k.current?.focus();else{const C=O?O.domReference:null;Ep(C)?.focus(),O?.closeOnFocusOut&&O?.onOpenChange(!1,jt(So,L.nativeEvent))}}})]})]})});function h1(){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 jp{nodesRef={current:[]};events=h1();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 g1=h.createContext(null),x1=h.createContext(null),ur=()=>h.useContext(g1)?.id||null,Gr=t=>{const r=h.useContext(x1);return t??r};function wp(t){const r=Eo(),o=Gr(t),a=ur();return Qe(()=>{if(!r)return;const c={id:r,parentId:a};return o?.addNode(c),()=>{o?.removeNode(c)}},[o,r,a]),r}function b1(t){const{children:r,id:o}=t,a=ur();return i.jsx(g1.Provider,{value:h.useMemo(()=>({id:o,parentId:a}),[o,a]),children:r})}function y1(t){const{children:r,externalTree:o}=t,a=Ln(()=>o??new jp).current;return i.jsx(x1.Provider,{value:a,children:r})}function hR(t,r){const o=Qt(zn(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 Py=20;let Ir=[];function Tp(){Ir=Ir.filter(t=>t.deref()?.isConnected)}function Yy(t){Tp(),t&&vn(t)!=="body"&&(Ir.push(new WeakRef(t)),Ir.length>Py&&(Ir=Ir.slice(-Py)))}function Vy(){return Tp(),Ir[Ir.length-1]?.deref()}function gR(t){return t?Sp(t)?t:Wl(t)[0]||t:null}function Fy(t){if(t.hasAttribute("tabindex")&&!t.hasAttribute("data-tabindex")||!t.getAttribute("role")?.includes("dialog"))return;const o=o1(t).filter(c=>{const u=c.getAttribute("data-tabindex")||"";return Sp(c)||c.hasAttribute("data-tabindex")&&!u.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 Cp(t){const{context:r,children:o,disabled:a=!1,initialFocus:c=!0,returnFocus:u=!0,restoreFocus:m=!1,modal:g=!0,closeOnFocusOut:b=!0,openInteractionType:p="",nextFocusableElement:y,previousFocusableElement:x,beforeContentFocusGuardRef:S,externalTree:j,getInsideElements:N}=t,k="rootStore"in r?r.rootStore:r,O=k.useState("open"),E=k.useState("domReferenceElement"),w=k.useState("floatingElement"),{events:_,dataRef:T}=k.context,V=st(()=>T.current.floatingContext?.nodeId),M=c===!1,L=wm(E)&&M,C=ln(c),Z=ln(u),re=ln(p),ie=ln(O),te=Gr(j),K=p1(),ne=h.useRef(!1),W=h.useRef(!1),D=h.useRef(!1),z=h.useRef(null),P=h.useRef(""),H=h.useRef(""),F=h.useRef(null),A=h.useRef(null),B=Ra(F,S,K?.beforeInsideRef),I=Ra(A,K?.afterInsideRef),U=$n(),G=$n(),Q=Gl(),he=K!=null,le=Tm(w),de=st((we=le)=>we?Wl(we):[]),He=st(()=>N?.().filter(we=>we!=null)??[]);h.useEffect(()=>{if(a||!g)return;function we(ge){ge.key==="Tab"&&tt(le,Tn(Nt(le)))&&de().length===0&&!L&&Es(ge)}const Ie=Nt(le);return xt(Ie,"keydown",we)},[a,le,g,L,de]),h.useEffect(()=>{if(a||!O)return;const we=Nt(le);function Ie(){D.current=!1}function ge(_e){const Re=zn(_e),ke=He(),be=tt(w,Re)||tt(E,Re)||tt(K?.portalNode,Re)||ke.some(Le=>Le===Re||tt(Le,Re));D.current=!be,H.current=_e.pointerType||"keyboard",Re?.closest(`[${d1}]`)&&(W.current=!0,G.start(0,()=>{W.current=!1}))}function q(){H.current="keyboard"}return _s(xt(we,"pointerdown",ge,!0),xt(we,"pointerup",Ie,!0),xt(we,"pointercancel",Ie,!0),xt(we,"keydown",q,!0),Ie)},[a,w,E,le,O,K,G,He]),h.useEffect(()=>{if(a||!b)return;const we=Nt(le);function Ie(){W.current=!0,G.start(0,()=>{W.current=!1})}function ge(ke){const be=zn(ke);Sp(be)&&(z.current=be)}function q(ke){const be=ke.relatedTarget,Le=ke.currentTarget,Ye=zn(ke);g&&be==null&&Ye!=null&&tt(w,Ye)&&Yy(Ye),queueMicrotask(()=>{const Ue=V(),ee=k.context.triggerElements,Y=He(),$=be?.hasAttribute($l("focus-guard"))&&[F.current,A.current,K?.beforeInsideRef.current,K?.afterInsideRef.current,K?.beforeOutsideRef.current,K?.afterOutsideRef.current,Ws(x),Ws(y)].includes(be),je=!(tt(E,be)||tt(w,be)||tt(be,w)||tt(K?.portalNode,be)||Y.some(xe=>xe===be||tt(xe,be))||be!=null&&ee.hasElement(be)||ee.hasMatchingElement(xe=>tt(xe,be))||$||te&&(Yr(te.nodesRef.current,Ue).find(xe=>tt(xe.context?.elements.floating,be)||tt(xe.context?.elements.domReference,be))||zy(te.nodesRef.current,Ue).find(xe=>[xe.context?.elements.floating,Tm(xe.context?.elements.floating)].includes(be)||xe.context?.elements.domReference===be)));if(Le===E&&le&&Fy(le),m&&Le!==E&&!mu(Ye)&&Tn(we)===we.body){if(Yt(le)&&(le.focus(),m==="popup")){Q.request(()=>{le.focus()});return}const xe=de(),ae=z.current,Oe=(ae&&xe.includes(ae)?ae:null)||xe[xe.length-1]||le;Yt(Oe)&&Oe.focus()}if(T.current.insideReactTree){T.current.insideReactTree=!1;return}(L||!g)&&be&&je&&!W.current&&(L||be!==Vy())&&(ne.current=!0,k.setOpen(!1,jt(So,ke)))})}function _e(){D.current||(T.current.insideReactTree=!0,U.start(0,()=>{T.current.insideReactTree=!1}))}const Re=Yt(E)?E:null;if(!(!w&&!Re))return _s(Re&&xt(Re,"focusout",q),Re&&xt(Re,"pointerdown",Ie),w&&xt(w,"focusin",ge),w&&xt(w,"focusout",q),w&&K&&xt(w,"focusout",_e,!0))},[a,E,w,le,g,te,K,k,b,m,de,L,V,T,U,G,Q,y,x,He]),h.useEffect(()=>{if(a||!w||!O)return;const we=Array.from(K?.portalNode?.querySelectorAll(`[${$l("portal")}]`)||[]),ge=(te?zy(te.nodesRef.current,V()):[]).find(Le=>wm(Le.context?.elements.domReference||null))?.context?.elements.domReference,_e=[...[w,...we,F.current,A.current,K?.beforeOutsideRef.current,K?.afterOutsideRef.current,...He()],ge,Ws(x),Ws(y),L?E:null].filter(Le=>Le!=null),Re=Uy(_e,{ariaHidden:g||L,mark:!1}),ke=[w,...we].filter(Le=>Le!=null),be=Uy(ke);return()=>{be(),Re()}},[O,a,E,w,g,K,L,te,V,y,x,He]),Qe(()=>{if(!O||a||!Yt(le))return;const we=Nt(le),Ie=Tn(we);queueMicrotask(()=>{const ge=C.current,q=typeof ge=="function"?ge(re.current||""):ge;if(q===void 0||q===!1||tt(le,Ie))return;let Re=null;const ke=()=>(Re==null&&(Re=de(le)),Re[0]||le);let be;q===!0||q===null?be=ke():be=Ws(q),be=be||ke();const Le=tt(le,Tn(we));Ac(be,{preventScroll:be===le,shouldFocus(){if(!ie.current)return!1;if(Le)return!0;const Ye=Tn(we);return!(Ye!==be&&tt(le,Ye))}})})},[a,O,le,de,C,re,ie]),Qe(()=>{if(a||!le)return;const we=Nt(le),Ie=Tn(we),ge=re.current==null;Yy(Ie);function q(Re){if(Re.open||(P.current=hR(Re.nativeEvent,H.current)),Re.reason===mn&&Re.nativeEvent.type==="mouseleave"&&(ne.current=!0),Re.reason===dp)if(Re.nested)ne.current=!1;else if(G0(Re.nativeEvent)||q0(Re.nativeEvent))ne.current=!1;else{let ke=!1;Nt(le).createElement("div").focus({get preventScroll(){return ke=!0,!1}}),ke?ne.current=!1:ne.current=!0}}_.on("openchange",q);function _e(){const Re=Z.current;let ke=typeof Re=="function"?Re(P.current):Re;if(ke===void 0||ke===!1)return null;ke===null&&(ke=!0);const be=E?.isConnected?E:null,Le=Ie?.isConnected&&vn(Ie)!=="body"?Ie:null;let Ye=ge?Le||be:be||Le;return Ye||(Ye=Vy()||null),typeof ke=="boolean"?Ye:Ws(ke)||Ye||null}return()=>{_.off("openchange",q);const Re=Tn(we),ke=He(),be=tt(w,Re)||ke.some(Ue=>Ue===Re||tt(Ue,Re))||te&&Yr(te.nodesRef.current,V(),!1).some(Ue=>tt(Ue.context?.elements.floating,Re)),Le=Z.current,Ye=_e();queueMicrotask(()=>{const Ue=gR(Ye),ee=typeof Le!="boolean";Le&&!ne.current&&Yt(Ue)&&(!(!ee&&Ue!==Re&&Re!==we.body)||be)&&Ue.focus({preventScroll:!0}),ne.current=!1})}},[a,w,le,Z,re,_,te,E,V,He]),Qe(()=>{if(!Co||O||!w)return;const we=Tn(Nt(w));!Yt(we)||!fu(we)||tt(w,we)&&we.blur()},[O,w]),Qe(()=>{if(!(a||!K))return K.setFocusManagerState({modal:g,closeOnFocusOut:b,open:O,onOpenChange:k.setOpen,domReference:E}),()=>{K.setFocusManagerState(null)}},[a,K,g,O,k,b,E]),Qe(()=>{if(!(a||!le))return Fy(le),()=>{queueMicrotask(Tp)}},[a,le]);const ze=!a&&(g?!L:!0)&&(he||g);return i.jsxs(h.Fragment,{children:[ze&&i.jsx(Pr,{"data-type":"inside",ref:B,onFocus:we=>{if(g){const Ie=de();Ac(Ie[Ie.length-1])}else K?.portalNode&&(ne.current=!1,ja(we,K.portalNode)?Ep(E)?.focus():Ws(x??K.beforeOutsideRef)?.focus())}}),o,ze&&i.jsx(Pr,{"data-type":"inside",ref:I,onFocus:we=>{g?Ac(de()[0]):K?.portalNode&&(b&&(ne.current=!0),ja(we,K.portalNode)?l1(E)?.focus():Ws(y??K.afterOutsideRef)?.focus())}})]})}function v1(t,r={}){const{enabled:o=!0,event:a="click",toggle:c=!0,ignoreMouse:u=!1,stickIfOpen:m=!0,touchOpenDelay:g=0,reason:b=vo}=r,p="rootStore"in t?t.rootStore:t,y=p.context.dataRef,x=h.useRef(void 0),S=Gl(),j=$n(),N=h.useMemo(()=>{function k(E,w,_,T){const V=jt(b,w,_);E&&T==="touch"&&g>0?j.start(g,()=>{p.setOpen(!0,V)}):p.setOpen(E,V)}function O(E,w,_){const T=y.current.openEvent,V=p.select("domReferenceElement")!==w;return E&&V||!E||!c?!0:T&&m?!_(T.type):!1}return{onPointerDown(E){x.current=E.pointerType},onMouseDown(E){const w=x.current,_=E.nativeEvent,T=p.select("open");if(E.button!==0||a==="click"||ql(w,!0)&&u)return;const V=O(T,E.currentTarget,C=>C==="click"||C==="mousedown"),M=zn(_);if(fu(M)){k(V,_,M,w);return}const L=E.currentTarget;S.request(()=>{k(V,_,L,w)})},onClick(E){if(a==="mousedown-only")return;const w=x.current;if(a==="mousedown"&&w){x.current=void 0;return}if(ql(w,!0)&&u)return;const _=p.select("open"),T=O(_,E.currentTarget,V=>V==="click"||V==="mousedown"||V==="keydown"||V==="keyup");k(T,E.nativeEvent,E.currentTarget,w)},onKeyDown(){x.current=void 0}}},[y,a,u,b,p,m,c,S,j,g]);return h.useMemo(()=>o?{reference:N}:Vt,[o,N])}function xR(){return!1}function bR(t){return{escapeKey:typeof t=="boolean"?t:t?.escapeKey??!1,outsidePress:typeof t=="boolean"?t:t?.outsidePress??!0}}function Rp(t,r={}){const{enabled:o=!0,escapeKey:a=!0,outsidePress:c=!0,outsidePressEvent:u="sloppy",referencePress:m=xR,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=Gr(b),N=st(typeof c=="function"?c:()=>!1),k=typeof c=="function"?N:c,O=k!==!1,E=st(()=>u),{escapeKey:w,outsidePress:_}=bR(g),T=h.useRef(!1),V=h.useRef(!1),M=h.useRef(!1),L=h.useRef(!1),C=h.useRef(""),Z=h.useRef(null),re=$n(),ie=$n(),te=st(()=>{ie.clear(),S.current.insideReactTree=!1}),K=st(B=>{const I=S.current.floatingContext?.nodeId;return(j?Yr(j.nodesRef.current,I):[]).some(G=>G.context?.open&&!G.context.dataRef.current[B])}),ne=st(B=>Pf(B,p.select("floatingElement"))||Pf(B,p.select("domReferenceElement"))),W=st(B=>{m()&&p.setOpen(!1,jt(vo,B.nativeEvent))}),D=st(B=>{if(!y||!o||!a||B.key!=="Escape"||L.current||!w&&K("__escapeKeyBubbles"))return;const I=AC(B)?B.nativeEvent:B,U=jt(au,I);p.setOpen(!1,U),U.isCanceled||B.preventDefault(),!w&&!U.isPropagationAllowed&&B.stopPropagation()}),z=st(()=>{S.current.insideReactTree=!0,ie.start(0,te)}),P=st(B=>{if(!y||!o||B.button!==0)return;const I=zn(B.nativeEvent);tt(p.select("floatingElement"),I)&&(T.current||(T.current=!0,V.current=!1))}),H=st(B=>{!y||!o||(B.defaultPrevented||B.nativeEvent.defaultPrevented)&&T.current&&(V.current=!0)});h.useEffect(()=>{if(!y||!o)return;S.current.__escapeKeyBubbles=w,S.current.__outsidePressBubbles=_;const B=new ms,I=new ms;function U(){B.clear(),L.current=!0}function G(){B.start(Co?5:0,()=>{L.current=!1})}function Q(){M.current=!0,I.start(0,()=>{M.current=!1})}function he(){T.current=!1,V.current=!1}function le(){const Y=C.current,$=Y==="pen"||!Y?"mouse":Y,je=E(),xe=typeof je=="function"?je():je;return typeof xe=="string"?xe:xe[$]}function de(Y){const $=le();return $==="intentional"&&Y.type!=="click"||$==="sloppy"&&Y.type==="click"}function He(Y){const $=S.current.floatingContext?.nodeId,je=j&&Yr(j.nodesRef.current,$).some(xe=>Pf(Y,xe.context?.elements.floating));return ne(Y)||je}function ze(Y){if(de(Y)){Y.type!=="click"&&!ne(Y)&&(I.clear(),M.current=!1),te();return}if(S.current.insideReactTree){te();return}const $=zn(Y),je=`[${$l("inert")}]`,xe=vt($)?$.getRootNode():null,ae=Array.from((Ca(xe)?xe:Nt(p.select("floatingElement"))).querySelectorAll(je)),Oe=p.context.triggerElements;if($&&(Oe.hasElement($)||Oe.hasMatchingElement(We=>tt(We,$))))return;let Pe=vt($)?$:null;for(;Pe&&!er(Pe);){const We=ar(Pe);if(er(We)||!vt(We))break;Pe=We}if(!(ae.length&&vt($)&&!zC($)&&!tt($,p.select("floatingElement"))&&ae.every(We=>!tt(Pe,We)))){if(Yt($)&&!("touches"in Y)){const We=er($),pt=qn($),Mt=/auto|scroll/,mt=We||Mt.test(pt.overflowX),wt=We||Mt.test(pt.overflowY),Rt=mt&&$.clientWidth>0&&$.scrollWidth>$.clientWidth,zt=wt&&$.clientHeight>0&&$.scrollHeight>$.clientHeight,Te=pt.direction==="rtl",Se=zt&&(Te?Y.offsetX<=$.offsetWidth-$.clientWidth:Y.offsetX>$.clientWidth),Fe=Rt&&Y.offsetY>$.clientHeight;if(Se||Fe)return}if(!He(Y)){if(le()==="intentional"&&M.current){I.clear(),M.current=!1;return}typeof k=="function"&&!k(Y)||K("__outsidePressBubbles")||(p.setOpen(!1,jt(dp,Y)),te())}}}function we(Y){le()!=="sloppy"||Y.pointerType==="touch"||!p.select("open")||!o||ne(Y)||ze(Y)}function Ie(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 je=zn(Y);if(!je)return;const xe=xt(je,Y.type,()=>{$(Y),xe()})}function q(Y){C.current="touch",ge(Y,Ie)}function _e(Y){re.clear(),Y.type==="pointerdown"&&(C.current=Y.pointerType),!(Y.type==="mousedown"&&Z.current&&!Z.current.dismissOnMouseDown)&&ge(Y,$=>{$.type==="pointerdown"?we($):ze($)})}function Re(Y){if(!T.current)return;const $=V.current;if(he(),le()==="intentional"){if(Y.type==="pointercancel"){$&&Q();return}if(!He(Y)){if($){Q();return}typeof k=="function"&&!k(Y)||(I.clear(),M.current=!0,te())}}}function ke(Y){if(le()!=="sloppy"||!Z.current||ne(Y))return;const $=Y.touches[0];if(!$)return;const je=Math.abs($.clientX-Z.current.startX),xe=Math.abs($.clientY-Z.current.startY),ae=Math.sqrt(je*je+xe*xe);ae>5&&(Z.current.dismissOnTouchEnd=!0),ae>10&&(ze(Y),re.clear(),Z.current=null)}function be(Y){ge(Y,ke)}function Le(Y){le()!=="sloppy"||!Z.current||ne(Y)||(Z.current.dismissOnTouchEnd&&ze(Y),re.clear(),Z.current=null)}function Ye(Y){ge(Y,Le)}const Ue=Nt(x),ee=_s(a&&_s(xt(Ue,"keydown",D),xt(Ue,"compositionstart",U),xt(Ue,"compositionend",G)),O&&_s(xt(Ue,"click",_e,!0),xt(Ue,"pointerdown",_e,!0),xt(Ue,"pointerup",Re,!0),xt(Ue,"pointercancel",Re,!0),xt(Ue,"mousedown",_e,!0),xt(Ue,"mouseup",Re,!0),xt(Ue,"touchstart",q,!0),xt(Ue,"touchmove",be,!0),xt(Ue,"touchend",Ye,!0)));return()=>{ee(),B.clear(),I.clear(),he(),M.current=!1}},[S,x,a,O,k,y,o,w,_,D,te,E,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:H,onMouseDown:H,onClickCapture:z,onMouseDownCapture(B){z(),P(B)},onPointerDownCapture(B){z(),P(B)},onMouseUpCapture:z,onTouchEndCapture:z,onTouchMoveCapture:z}),[D,z,P,H]);return h.useMemo(()=>o?{reference:F,floating:A,trigger:F}:{},[o,F,A])}function Gy(t,r,o){let{reference:a,floating:c}=t;const u=ls(r),m=vp(r),g=yp(m),b=Gn(r),p=u==="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 N=Fr(r);return N&&(j[m]+=S*(N==="end"?1:-1)*(o&&p?-1:1)),j}async function yR(t,r){var o;r===void 0&&(r={});const{x:a,y:c,platform:u,rects:m,elements:g,strategy:b}=t,{boundary:p="clippingAncestors",rootBoundary:y="viewport",elementContext:x="floating",altBoundary:S=!1,padding:j=0}=ir(r,t),N=Z0(j),O=g[S?x==="floating"?"reference":"floating":x],E=$c(await u.getClippingRect({element:(o=await(u.isElement==null?void 0:u.isElement(O)))==null||o?O:O.contextElement||await(u.getDocumentElement==null?void 0:u.getDocumentElement(g.floating)),boundary:p,rootBoundary:y,strategy:b})),w=x==="floating"?{x:a,y:c,width:m.floating.width,height:m.floating.height}:m.reference,_=await(u.getOffsetParent==null?void 0:u.getOffsetParent(g.floating)),T=await(u.isElement==null?void 0:u.isElement(_))&&await(u.getScale==null?void 0:u.getScale(_))||{x:1,y:1},V=$c(u.convertOffsetParentRelativeRectToViewportRelativeRect?await u.convertOffsetParentRelativeRectToViewportRelativeRect({elements:g,rect:w,offsetParent:_,strategy:b}):w);return{top:(E.top-V.top+N.top)/T.y,bottom:(V.bottom-E.bottom+N.bottom)/T.y,left:(E.left-V.left+N.left)/T.x,right:(V.right-E.right+N.right)/T.x}}const vR=50,SR=async(t,r,o)=>{const{placement:a="bottom",strategy:c="absolute",middleware:u=[],platform:m}=o,g=m.detectOverflow?m:{...m,detectOverflow:yR},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}=Gy(p,a,b),S=a,j=0;const N={};for(let k=0;k<u.length;k++){const O=u[k];if(!O)continue;const{name:E,fn:w}=O,{x:_,y:T,data:V,reset:M}=await w({x:y,y:x,initialPlacement:a,placement:S,strategy:c,middlewareData:N,rects:p,platform:g,elements:{reference:t,floating:r}});y=_??y,x=T??x,N[E]={...N[E],...V},M&&j<vR&&(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}=Gy(p,S,b)),k=-1)}return{x:y,y:x,placement:S,strategy:c,middlewareData:N}},ER=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(r){var o,a;const{placement:c,middlewareData:u,rects:m,initialPlacement:g,platform:b,elements:p}=r,{mainAxis:y=!0,crossAxis:x=!0,fallbackPlacements:S,fallbackStrategy:j="bestFit",fallbackAxisSideDirection:N="none",flipAlignment:k=!0,...O}=ir(t,r);if((o=u.arrow)!=null&&o.alignmentOffset)return{};const E=Gn(c),w=ls(g),_=Gn(g)===g,T=await(b.isRTL==null?void 0:b.isRTL(p.floating)),V=S||(_||!k?[qc(g)]:qC(g)),M=N!=="none";!S&&M&&V.push(...QC(g,k,N,T));const L=[g,...V],C=await b.detectOverflow(r,O),Z=[];let re=((a=u.flip)==null?void 0:a.overflows)||[];if(y&&Z.push(C[E]),x){const ne=GC(c,m,T);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=u.flip)==null?void 0:ie.index)||0)+1,W=L[ne];if(W&&(!(x==="alignment"?w!==ls(W):!1)||re.every(P=>ls(P.placement)===w?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 H=ls(P.placement);return H===w||H==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(H=>H>0).reduce((H,F)=>H+F,0)]).sort((P,H)=>P[1]-H[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 qy(t,r){return{top:t.top-r.height,right:t.right-r.width,bottom:t.bottom-r.height,left:t.left-r.width}}function $y(t){return VC.some(r=>t[r]>=0)}const NR=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(r){const{rects:o,platform:a}=r,{strategy:c="referenceHidden",...u}=ir(t,r);switch(c){case"referenceHidden":{const m=await a.detectOverflow(r,{...u,elementContext:"reference"}),g=qy(m,o.reference);return{data:{referenceHiddenOffsets:g,referenceHidden:$y(g)}}}case"escaped":{const m=await a.detectOverflow(r,{...u,altBoundary:!0}),g=qy(m,o.floating);return{data:{escapedOffsets:g,escaped:$y(g)}}}default:return{}}}}},S1=new Set(["left","top"]);async function jR(t,r){const{placement:o,platform:a,elements:c}=t,u=await(a.isRTL==null?void 0:a.isRTL(c.floating)),m=Gn(o),g=Fr(o),b=ls(o)==="y",p=S1.has(m)?-1:1,y=u&&b?-1:1,x=ir(r,t);let{mainAxis:S,crossAxis:j,alignmentAxis:N}=typeof x=="number"?{mainAxis:x,crossAxis:0,alignmentAxis:null}:{mainAxis:x.mainAxis||0,crossAxis:x.crossAxis||0,alignmentAxis:x.alignmentAxis};return g&&typeof N=="number"&&(j=g==="end"?N*-1:N),b?{x:j*y,y:S*p}:{x:S*p,y:j*y}}const wR=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(r){var o,a;const{x:c,y:u,placement:m,middlewareData:g}=r,b=await jR(r,t);return m===((o=g.offset)==null?void 0:o.placement)&&(a=g.arrow)!=null&&a.alignmentOffset?{}:{x:c+b.x,y:u+b.y,data:{...b,placement:m}}}}},TR=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(r){const{x:o,y:a,placement:c,platform:u}=r,{mainAxis:m=!0,crossAxis:g=!1,limiter:b={fn:w=>{let{x:_,y:T}=w;return{x:_,y:T}}},...p}=ir(t,r),y={x:o,y:a},x=await u.detectOverflow(r,p),S=ls(c),j=bp(S);let N=y[j],k=y[S];const O=(w,_)=>Q0(_+x[w==="y"?"top":"left"],_,_-x[w==="y"?"bottom":"right"]);m&&(N=O(j,N)),g&&(k=O(S,k));const E=b.fn({...r,[j]:N,[S]:k});return{...E,data:{x:E.x-o,y:E.y-a,enabled:{[j]:m,[S]:g}}}}}},CR=function(t){return t===void 0&&(t={}),{options:t,fn(r){var o,a;const{x:c,y:u,placement:m,rects:g,middlewareData:b}=r,{offset:p=0,mainAxis:y=!0,crossAxis:x=!0}=ir(t,r),S={x:c,y:u},j=ls(m),N=bp(j);let k=S[N],O=S[j];const E=ir(p,r),w=typeof E=="number"?{mainAxis:E,crossAxis:0}:{mainAxis:(o=E.mainAxis)!=null?o:0,crossAxis:(a=E.crossAxis)!=null?a:0};if(y){const V=N==="y"?"height":"width",M=g.reference[N]-g.floating[V]+w.mainAxis,L=g.reference[N]+g.reference[V]-w.mainAxis;k<M?k=M:k>L&&(k=L)}if(x){var _,T;const V=N==="y"?"width":"height",M=S1.has(Gn(m)),L=g.reference[j]-g.floating[V]+(M&&((_=b.offset)==null?void 0:_[j])||0)+(M?0:w.crossAxis),C=g.reference[j]+g.reference[V]+(M?0:((T=b.offset)==null?void 0:T[j])||0)-(M?w.crossAxis:0);O<L?O=L:O>C&&(O=C)}return{[N]:k,[j]:O}}}},RR=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(r){const{placement:o,rects:a,platform:c,elements:u}=r,{apply:m=()=>{},...g}=ir(t,r),b=await c.detectOverflow(r,g),p=Gn(o),y=Fr(o),x=ls(o)==="y",{width:S,height:j}=a.floating;let N,k;p==="top"||p==="bottom"?(N=p,k=y===(await(c.isRTL==null?void 0:c.isRTL(u.floating))?"start":"end")?"left":"right"):(k=p,N=y==="end"?"top":"bottom");const O=j-b.top-b.bottom,E=S-b.left-b.right,w=Oa(j-b[N],O),_=Oa(S-b[k],E),T=r.middlewareData.shift,V=!T;let M=w,L=_;T!=null&&T.enabled.x&&(L=E),T!=null&&T.enabled.y&&(M=O),V&&!y&&(x?L=S-2*nr(b.left,b.right):M=j-2*nr(b.top,b.bottom)),await m({...r,availableWidth:L,availableHeight:M});const C=await c.getDimensions(u.floating);return S!==C.width||j!==C.height?{reset:{rects:!0}}:{}}}};function E1(t){const r=qn(t);let o=parseFloat(r.width)||0,a=parseFloat(r.height)||0;const c=Yt(t),u=c?t.offsetWidth:o,m=c?t.offsetHeight:a,g=Gc(o)!==u||Gc(a)!==m;return g&&(o=u,a=m),{width:o,height:a,$:g}}function Op(t){return vt(t)?t:t.contextElement}function wa(t){const r=Op(t);if(!Yt(r))return sr(1);const o=r.getBoundingClientRect(),{width:a,height:c,$:u}=E1(r);let m=(u?Gc(o.width):o.width)/a,g=(u?Gc(o.height):o.height)/c;return(!m||!Number.isFinite(m))&&(m=1),(!g||!Number.isFinite(g))&&(g=1),{x:m,y:g}}const OR=sr(0);function N1(t){const r=Qt(t);return!op()||!r.visualViewport?OR:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function kR(t,r,o){return r===void 0&&(r=!1),!!o&&r&&o===Qt(t)}function No(t,r,o,a){r===void 0&&(r=!1),o===void 0&&(o=!1);const c=t.getBoundingClientRect(),u=Op(t);let m=sr(1);r&&(a?vt(a)&&(m=wa(a)):m=wa(t));const g=kR(u,o,a)?N1(u):sr(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(u&&a){const S=Qt(u),j=vt(a)?Qt(a):a;let N=S,k=xm(N);for(;k&&j!==N;){const O=wa(k),E=k.getBoundingClientRect(),w=qn(k),_=E.left+(k.clientLeft+parseFloat(w.paddingLeft))*O.x,T=E.top+(k.clientTop+parseFloat(w.paddingTop))*O.y;b*=O.x,p*=O.y,y*=O.x,x*=O.y,b+=_,p+=T,N=Qt(k),k=xm(N)}}return $c({width:y,height:x,x:b,y:p})}function pu(t,r){const o=su(t).scrollLeft;return r?r.left+o:No(cr(t)).left+o}function j1(t,r){const o=t.getBoundingClientRect(),a=o.left+r.scrollLeft-pu(t,o),c=o.top+r.scrollTop;return{x:a,y:c}}function _R(t){let{elements:r,rect:o,offsetParent:a,strategy:c}=t;const u=c==="fixed",m=cr(a),g=r?nu(r.floating):!1;if(a===m||g&&u)return o;let b={scrollLeft:0,scrollTop:0},p=sr(1);const y=sr(0),x=Yt(a);if((x||!u)&&((vn(a)!=="body"||wo(m))&&(b=su(a)),x)){const j=No(a);p=wa(a),y.x=j.x+a.clientLeft,y.y=j.y+a.clientTop}const S=m&&!x&&!u?j1(m,b):sr(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 MR(t){return t.getClientRects?Array.from(t.getClientRects()):[]}function AR(t){const r=su(t),o=t.ownerDocument.body,a=nr(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),c=nr(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let u=-r.scrollLeft+pu(t);const m=-r.scrollTop;return qn(o).direction==="rtl"&&(u+=nr(t.clientWidth,o.clientWidth)-a),{width:a,height:c,x:u,y:m}}const DR=25;function zR(t,r,o){o===void 0&&(o="viewport");const a=o==="layoutViewport",c=Qt(t),u=cr(t),m=c.visualViewport;let g=u.clientWidth,b=u.clientHeight,p=0,y=0;if(m){const S=!op()||r==="fixed";a?S||(p=-m.offsetLeft,y=-m.offsetTop):(g=m.width,b=m.height,S&&(p=m.offsetLeft,y=m.offsetTop))}if(pu(u)<=0){const S=u.ownerDocument,j=S.body,N=getComputedStyle(j),k=S.compatMode==="CSS1Compat"&&parseFloat(N.marginLeft)+parseFloat(N.marginRight)||0,O=Math.abs(u.clientWidth-j.clientWidth-k),E=getComputedStyle(u).scrollbarGutter==="stable both-edges"?O/2:O;E<=DR&&(g-=E)}return{width:g,height:b,x:p,y}}function LR(t,r){const o=No(t,!0,r==="fixed"),a=o.top+t.clientTop,c=o.left+t.clientLeft,u=wa(t),m=t.clientWidth*u.x,g=t.clientHeight*u.y,b=c*u.x,p=a*u.y;return{width:m,height:g,x:b,y:p}}function Xy(t,r,o){let a;if(r==="viewport"||r==="layoutViewport")a=zR(t,o,r);else if(r==="document")a=AR(cr(t));else if(vt(r))a=LR(r,o);else{const c=N1(t);a={x:r.x-c.x,y:r.y-c.y,width:r.width,height:r.height}}return $c(a)}function IR(t,r){const o=r.get(t);if(o)return o;let a=Yl(t,[],!1).filter(g=>vt(g)&&vn(g)!=="body"),c=null;const u=qn(t).position==="fixed";let m=u?ar(t):t;for(;vt(m)&&!er(m);){const g=qn(m),b=rp(m),p=c?c.position:u?"fixed":"";!b&&(p==="fixed"||p==="absolute"&&g.position==="static")?a=a.filter(x=>x!==m):c=g,m=ar(m)}return r.set(t,a),a}function BR(t){let{element:r,boundary:o,rootBoundary:a,strategy:c}=t;const m=[...o==="clippingAncestors"?nu(r)?[]:IR(r,this._c):[].concat(o),a],g=Xy(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=Xy(r,m[S],c);b=nr(j.top,b),p=Oa(j.right,p),y=Oa(j.bottom,y),x=nr(j.left,x)}return{width:p-x,height:y-b,x,y:b}}function HR(t){const{width:r,height:o}=E1(t);return{width:r,height:o}}function UR(t,r,o){const a=Yt(r),c=cr(r),u=o==="fixed",m=No(t,!0,u,r);let g={scrollLeft:0,scrollTop:0};const b=sr(0);if((a||!u)&&((vn(r)!=="body"||wo(c))&&(g=su(r)),a)){const S=No(r,!0,u,r);b.x=S.x+r.clientLeft,b.y=S.y+r.clientTop}!a&&c&&(b.x=pu(c));const p=c&&!a&&!u?j1(c,g):sr(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 qf(t){return qn(t).position==="static"}function Ky(t,r){if(!Yt(t)||qn(t).position==="fixed")return null;if(r)return r(t);let o=t.offsetParent;return cr(t)===o&&(o=o.ownerDocument.body),o}function w1(t,r){const o=Qt(t);if(nu(t))return o;if(!Yt(t)){let c=ar(t);for(;c&&!er(c);){if(vt(c)&&!qf(c))return c;c=ar(c)}return o}let a=Ky(t,r);for(;a&&T2(a)&&qf(a);)a=Ky(a,r);return a&&er(a)&&qf(a)&&!rp(a)?o:a||O2(t)||o}const PR=async function(t){const r=this.getOffsetParent||w1,o=this.getDimensions,a=await o(t.floating);return{reference:UR(t.reference,await r(t.floating),t.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function YR(t){return qn(t).direction==="rtl"}const VR={convertOffsetParentRelativeRectToViewportRelativeRect:_R,getDocumentElement:cr,getClippingRect:BR,getOffsetParent:w1,getElementRects:PR,getClientRects:MR,getDimensions:HR,getScale:wa,isElement:vt,isRTL:YR};function T1(t,r){return t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height}function FR(t,r,o){let a=null,c;const u=cr(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:N,width:k,height:O}=S;if(y||r(),!k||!O)return;const E=vc(N),w=vc(u.clientWidth-(j+k)),_=vc(u.clientHeight-(N+O)),T=vc(j),M={rootMargin:-E+"px "+-w+"px "+-_+"px "+-T+"px",threshold:nr(0,Oa(1,x))||1};let L=!0;function C(Z){const re=Z[0].intersectionRatio;if(!T1(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:u.ownerDocument})}catch{a=new IntersectionObserver(C,M)}a.observe(t)}const b=Qt(t),p=()=>g(o);return b.addEventListener("resize",p),g(!0),()=>{b.removeEventListener("resize",p),m()}}function Qy(t,r,o,a){a===void 0&&(a={});const{ancestorScroll:c=!0,ancestorResize:u=!0,elementResize:m=typeof ResizeObserver=="function",layoutShift:g=typeof IntersectionObserver=="function",animationFrame:b=!1}=a,p=Op(t),y=c||u?[...p?Yl(p):[],...r?Yl(r):[]]:[];y.forEach(E=>{c&&E.addEventListener("scroll",o),u&&E.addEventListener("resize",o)});const x=p&&g?FR(p,o,u):null;let S=-1,j=null;m&&(j=new ResizeObserver(E=>{let[w]=E;w&&w.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 N,k=b?No(t):null;b&&O();function O(){const E=No(t);k&&!T1(k,E)&&o(),k=E,N=requestAnimationFrame(O)}return o(),()=>{var E;y.forEach(w=>{c&&w.removeEventListener("scroll",o),u&&w.removeEventListener("resize",o)}),x?.(),(E=j)==null||E.disconnect(),j=null,b&&cancelAnimationFrame(N)}}const GR=wR,qR=TR,$R=ER,XR=RR,KR=NR,QR=CR,ZR=(t,r,o)=>{const a=new Map,c=o??{},u={...VR,...c.platform,_c:a};return SR(t,r,{...c,platform:u})};var JR=typeof document<"u",WR=function(){},Dc=JR?h.useLayoutEffect:WR;function Xc(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(!Xc(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 u=c[a];if(!(u==="_owner"&&t.$$typeof)&&!Xc(t[u],r[u]))return!1}return!0}return t!==t&&r!==r}function C1(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Zy(t,r){const o=C1(t);return Math.round(r*o)/o}function $f(t){const r=h.useRef(t);return Dc(()=>{r.current=t}),r}function eO(t){t===void 0&&(t={});const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:c,elements:{reference:u,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);Xc(S,a)||j(a);const[N,k]=h.useState(null),[O,E]=h.useState(null),w=h.useCallback(P=>{P!==M.current&&(M.current=P,k(P))},[]),_=h.useCallback(P=>{P!==L.current&&(L.current=P,E(P))},[]),T=u||N,V=m||O,M=h.useRef(null),L=h.useRef(null),C=h.useRef(y),Z=b!=null,re=$f(b),ie=$f(c),te=$f(p),K=h.useCallback(()=>{if(!M.current||!L.current)return;const P={placement:r,strategy:o,middleware:S};ie.current&&(P.platform=ie.current),ZR(M.current,L.current,P).then(H=>{const F={...H,isPositioned:te.current!==!1};ne.current&&!Xc(C.current,F)&&(C.current=F,lr.flushSync(()=>{x(F)}))})},[S,r,o,ie,te]);Dc(()=>{p===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,x(P=>({...P,isPositioned:!1})))},[p]);const ne=h.useRef(!1);Dc(()=>(ne.current=!0,()=>{ne.current=!1}),[]),Dc(()=>{if(T&&(M.current=T),V&&(L.current=V),T&&V){if(re.current)return re.current(T,V,K);K()}},[T,V,K,re,Z]);const W=h.useMemo(()=>({reference:M,floating:L,setReference:w,setFloating:_}),[w,_]),D=h.useMemo(()=>({reference:T,floating:V}),[T,V]),z=h.useMemo(()=>{const P={position:o,left:0,top:0};if(!D.floating)return P;const H=Zy(D.floating,y.x),F=Zy(D.floating,y.y);return g?{...P,transform:"translate("+H+"px, "+F+"px)",...C1(D.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:H,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 tO=(t,r)=>{const o=GR(t);return{name:o.name,fn:o.fn,options:[t,r]}},nO=(t,r)=>{const o=qR(t);return{name:o.name,fn:o.fn,options:[t,r]}},sO=(t,r)=>({fn:QR(t).fn,options:[t,r]}),rO=(t,r)=>{const o=$R(t);return{name:o.name,fn:o.fn,options:[t,r]}},oO=(t,r)=>{const o=XR(t);return{name:o.name,fn:o.fn,options:[t,r]}},aO=(t,r)=>{const o=KR(t);return{name:o.name,fn:o.fn,options:[t,r]}};function R1(t){const r=h.useRef(!0);r.current&&(r.current=!1,t())}const qe=(t,r,o,a,c,u,...m)=>{if(m.length>0)throw new Error(jn(1));let g;if(t)g=t;else throw new Error("Missing arguments");return g};var Xf={exports:{}},Kf={};var Jy;function lO(){if(Jy)return Kf;Jy=1;var t=Xl();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,u=t.useLayoutEffect,m=t.useDebugValue;function g(x,S){var j=S(),N=a({inst:{value:j,getSnapshot:S}}),k=N[0].inst,O=N[1];return u(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 Kf.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:y,Kf}var Wy;function O1(){return Wy||(Wy=1,Xf.exports=lO()),Xf.exports}var k1=O1(),Qf={exports:{}},Zf={};var ev;function iO(){if(ev)return Zf;ev=1;var t=Xl(),r=O1();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,u=t.useRef,m=t.useEffect,g=t.useMemo,b=t.useDebugValue;return Zf.useSyncExternalStoreWithSelector=function(p,y,x,S,j){var N=u(null);if(N.current===null){var k={hasValue:!1,value:null};N.current=k}else k=N.current;N=g(function(){function E(M){if(!w){if(w=!0,_=M,M=S(M),j!==void 0&&k.hasValue){var L=k.value;if(j(L,M))return T=L}return T=M}if(L=T,a(_,M))return L;var C=S(M);return j!==void 0&&j(L,C)?(_=M,L):(_=M,T=C)}var w=!1,_,T,V=x===void 0?null:x;return[function(){return E(y())},V===null?void 0:function(){return E(V())}]},[y,x,S,j]);var O=c(p,N[0],N[1]);return m(function(){k.hasValue=!0,k.value=O},[O]),b(O),O},Zf}var tv;function cO(){return tv||(tv=1,Qf.exports=iO()),Qf.exports}var uO=cO();const _m=[];let Mm;function dO(){return Mm}function fO(t){_m.push(t)}function _1(t){const r=(o,a)=>{const c=Ln(pO).current;let u;try{Mm=c;for(const m of _m)m.before(c);u=t(o,a);for(const m of _m)m.after(c);c.didInitialize=!0}finally{Mm=void 0}return u};return r.displayName=t.displayName||t.name,r}function mO(t){return h.forwardRef(_1(t))}function pO(){return{didInitialize:!1}}const hO=up(19),gO=hO?bO:yO;function M1(t,r,o,a,c){return gO(t,r,o,a,c)}function xO(t,r,o,a,c){const u=h.useCallback(()=>r(t.getSnapshot(),o,a,c),[t,r,o,a,c]);return k1.useSyncExternalStore(t.subscribe,u,u)}fO({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()}}),k1.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot))}});function bO(t,r,o,a,c){const u=dO();if(!u)return xO(t,r,o,a,c);const m=u.syncIndex;u.syncIndex+=1;let g;return u.didInitialize?(g=u.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&&(u.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)},u.syncHooks.push(g)),g.value}function yO(t,r,o,a,c){return uO.useSyncExternalStoreWithSelector(t.subscribe,t.getSnapshot,t.getSnapshot,u=>r(u,o,a,c))}class vO{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 M1(this,r,o,a,c)}}class hu extends vO{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 u=this.selectors[r];return u(this.state,o,a,c)}useState(r,o,a,c){return h.useDebugValue(r),M1(this,this.selectors[r],o,a,c)}useContextCallback(r,o){h.useDebugValue(r);const a=st(o??fn);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(u=>{const m=a(u);if(!Object.is(c,m)){const g=c;c=m,o(m,g,this)}})}}const SO={open:qe(t=>t.open),transitionStatus:qe(t=>t.transitionStatus),domReferenceElement:qe(t=>t.domReferenceElement),referenceElement:qe(t=>t.positionReference??t.referenceElement),floatingElement:qe(t=>t.floatingElement),floatingId:qe(t=>t.floatingId)};class gu extends hu{constructor(r){const{syncOnly:o,nested:a,onOpenChange:c,triggerElements:u,...m}=r;super({...m,positionReference:m.referenceElement,domReferenceElement:m.referenceElement},{onOpenChange:c,dataRef:{current:{}},events:h1(),nested:a,triggerElements:u},SO),this.syncOnly=o}syncOpenEvent=(r,o)=>{(!r||!this.state.open||o!=null&&DC(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 A1(t){const{popupStore:r,treatPopupAsFloatingElement:o=!1,floatingRootContext:a,floatingId:c,nested:u,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 gu({open:g,transitionStatus:void 0,referenceElement:b,floatingElement:p,triggerElements:y,onOpenChange:x,floatingId:c,syncOnly:!0,nested:u}));const j=a??S.current;return r.useSyncedValue("floatingId",c),Qe(()=>{const N={open:g,floatingId:c,referenceElement:b,floatingElement:p};vt(b)&&(N.domReferenceElement=b),j.state.positionReference===j.state.referenceElement&&(N.positionReference=b),j.update(N)},[g,c,b,p,j]),j.context.onOpenChange=x,j.context.nested=u,j}const xu={tabIndex:-1,[jm]:""};function D1(t){return r=>r==="touch"?t.current:!0}function z1(t,r,o=!1){const a=Eo(),c=ur()!=null,u=h.useRef(null);t===void 0&&u.current===null&&(u.current=r(a,c));const m=t??u.current;return A1({popupStore:m,treatPopupAsFloatingElement:o,floatingRootContext:m.state.floatingRootContext,floatingId:a,nested:c,onOpenChange:m.setOpen}),{store:m,internalStore:u.current}}function EO(t,r){const o=h.useRef(null),a=h.useRef(null);return h.useCallback(c=>{if(t===void 0)return;let u=!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),u=!0),o.current=null,a.current=null}if(c!==null&&(o.current=t,a.current=c,r.context.triggerElements.add(t,c),u=!0),u){const m=r.context.triggerElements.size;r.select("open")&&r.state.triggerCount!==m&&r.set("triggerCount",m)}},[r,t])}function kp(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 L1(t){let r=!1;return t.preventUnmountOnClose=()=>{r=!0},()=>r}function I1(t,r,o,a){R1(()=>{r===void 0&&t.state.open===!1&&o&&(t.state={...t.state,open:!0,activeTriggerId:a,preventUnmountingOnClose:!1})})}function B1(t,r,o,a){const c=o.useState("isMountedByTrigger",t),u=EO(t,o),m=st(g=>{if(u(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 _p(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 u=t.context.triggerElements.size,m={};t.state.triggerCount!==u&&(m.triggerCount=u);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&&u===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(H0);t.setOpen(!1,p),p.isCanceled||t.update({activeTriggerId:null,activeTriggerElement:null})}})},[a,t,c,o])}function Mp(t,r,o){const{mounted:a,setMounted:c,transitionStatus:u}=CC(t),m=r.useState("preventUnmountingOnClose"),g=t?!1:m;r.useSyncedValues({mounted:a,transitionStatus:u,preventUnmountingOnClose:g});const b=st(()=>{c(!1),r.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),o?.(),r.context.onOpenChangeComplete?.(!1)});return cu({enabled:a&&!t&&!g,open:t,ref:r.context.popupRef,onComplete(){t||b()}}),{forceUnmount:b,transitionStatus:u}}function Ap(t,r){t.useSyncedValues(r),Qe(()=>()=>{t.update({activeTriggerProps:Vt,inactiveTriggerProps:Vt,popupProps:Vt})},[t])}function H1(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 ei{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 NO(){return new gu({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new ei,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function Dp(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:NO(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:Vt,inactiveTriggerProps:Vt,popupProps:Vt}}function U1(t,r,o=!1){return new gu({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:t,floatingId:r,syncOnly:!0,nested:o,onOpenChange:void 0})}const zl=qe(t=>t.triggerIdProp??t.activeTriggerId),zp=qe(t=>t.openProp??t.open),nv=qe(t=>(t.popupElement?.id??t.floatingId)||void 0);function P1(t,r){return r!==void 0&&zp(t)&&zl(t)===r}function jO(t,r){return P1(t,r)?!0:r!==void 0&&zp(t)&&zl(t)==null&&t.triggerCount===1}const Lp={open:zp,mounted:qe(t=>t.mounted),transitionStatus:qe(t=>t.transitionStatus),floatingRootContext:qe(t=>t.floatingRootContext),triggerCount:qe(t=>t.triggerCount),preventUnmountingOnClose:qe(t=>t.preventUnmountingOnClose),payload:qe(t=>t.payload),activeTriggerId:zl,activeTriggerElement:qe(t=>t.mounted?t.activeTriggerElement:null),popupId:nv,isTriggerActive:qe((t,r)=>r!==void 0&&zl(t)===r),isOpenedByTrigger:qe((t,r)=>P1(t,r)),isMountedByTrigger:qe((t,r)=>r!==void 0&&zl(t)===r&&t.mounted),triggerProps:qe((t,r)=>r?t.activeTriggerProps:t.inactiveTriggerProps),triggerPopupId:qe((t,r)=>jO(t,r)?nv(t):void 0),popupProps:qe(t=>t.popupProps),popupElement:qe(t=>t.popupElement),positionerElement:qe(t=>t.positionerElement)};function wO(t){const{open:r=!1,onOpenChange:o,elements:a={}}=t,c=Eo(),u=ur()!=null,m=Ln(()=>new gu({open:r,transitionStatus:void 0,onOpenChange:o,referenceElement:a.reference??null,floatingElement:a.floating??null,triggerElements:new ei,floatingId:c,syncOnly:!1,nested:u})).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=u,m}function TO(t={}){const{nodeId:r,externalTree:o}=t,a=wO(t),c=t.rootContext||a,u=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),[N,k]=h.useState(void 0),O=h.useRef(null),E=Gr(o),w=h.useMemo(()=>({reference:u,floating:m,domReference:g}),[u,m,g]),_=eO({...t,elements:{...w,...y&&{reference:y}}}),T=vt(S)?S:null,V=N===void 0?c.state.floatingElement:N;c.useSyncedValue("referenceElement",S??null),c.useSyncedValue("domReferenceElement",S===void 0?g:T),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=E?.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 Jf=mp&&Co;function CO(t,r={}){const{enabled:o=!0,delay:a}=r,c="rootStore"in t?t.rootStore:t,{events:u,dataRef:m}=c.context,g=h.useRef(!1),b=h.useRef(null),p=h.useRef(!0),y=$n();h.useEffect(()=>{const S=c.select("domReferenceElement");if(!o)return;const j=Qt(S);function N(){const E=c.select("domReferenceElement");!c.select("open")&&Yt(E)&&E===Tn(Nt(E))&&(g.current=!0)}function k(){p.current=!0}function O(){p.current=!1}return _s(xt(j,"blur",N),Jf&&xt(j,"keydown",k,!0),Jf&&xt(j,"pointerdown",O,!0))},[c,o]),h.useEffect(()=>{if(!o)return;function S(j){if(j.reason===vo||j.reason===au){const N=c.select("domReferenceElement");vt(N)&&(b.current=N,g.current=!0)}}return u.on("openchange",S),()=>{u.off("openchange",S)}},[u,o,c]);const x=h.useMemo(()=>{function S(){g.current=!1,b.current=null}return{onMouseLeave(){S()},onFocus(j){const N=j.currentTarget;if(g.current){if(b.current===N)return;S()}const k=zn(j.nativeEvent);if(vt(k)){if(Jf&&!j.relatedTarget){if(!p.current&&!fu(k))return}else if(!IC(k))return}const O=Fc(j.relatedTarget,c.context.triggerElements),{nativeEvent:E,currentTarget:w}=j,_=typeof a=="function"?a():a;if(c.select("open")&&O||_===0||_===void 0){c.setOpen(!0,jt(Dl,E,w));return}y.start(_,()=>{g.current||c.setOpen(!0,jt(Dl,E,w))})},onBlur(j){S();const N=j.relatedTarget,k=j.nativeEvent,O=vt(N)&&N.hasAttribute($l("focus-guard"))&&N.getAttribute("data-type")==="outside";y.start(0,()=>{const E=c.select("domReferenceElement"),w=Tn(Nt(E));!N&&w===E||tt(m.current.floatingContext?.refs.floating.current,w)||tt(E,w)||O||Fc(N??w,c.context.triggerElements)||c.setOpen(!1,jt(Dl,k))})}}},[m,a,c,y]);return h.useMemo(()=>o?{reference:x,trigger:x}:{},[o,x])}class Ip{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 ms,this.restTimeout=new ms,this.handleCloseOptions=void 0}static create(){return new Ip}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const Kc=new WeakMap;function Qc(t){if(!t.performedPointerEventsMutation)return;const r=t.pointerEventsScopeElement;r&&Kc.get(r)===t&&(t.pointerEventsScopeElement?.style.removeProperty("pointer-events"),t.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),t.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),Kc.delete(r)),t.performedPointerEventsMutation=!1,t.pointerEventsScopeElement=null,t.pointerEventsReferenceElement=null,t.pointerEventsFloatingElement=null}function Y1(t,r){const{scopeElement:o,referenceElement:a,floatingElement:c}=r,u=Kc.get(o);u&&u!==t&&Qc(u),Qc(t),t.performedPointerEventsMutation=!0,t.pointerEventsScopeElement=o,t.pointerEventsReferenceElement=a,t.pointerEventsFloatingElement=c,Kc.set(o,t),o.style.pointerEvents="none",a.style.pointerEvents="auto",c.style.pointerEvents="auto"}function V1(t){const r=t.context.dataRef.current,o=Ln(()=>r.hoverInteractionState??Ip.create()).current;return r.hoverInteractionState||(r.hoverInteractionState=o),hp(r.hoverInteractionState.disposeEffect),r.hoverInteractionState}function F1(t,r={}){const{enabled:o=!0,closeDelay:a=0,nodeId:c}=r,u="rootStore"in t?t.rootStore:t,m=u.useState("open"),g=u.useState("floatingElement"),b=u.useState("domReferenceElement"),{dataRef:p}=u.context,y=Gr(),x=ur(),S=V1(u),j=$n(),N=st(()=>K0(p.current.openEvent?.type,S.interactedInside)),k=st(()=>HC(p.current.openEvent?.type)),O=st(()=>{Qc(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 E=b,w=g,_=Nt(g),T=y?.nodesRef.current.find(C=>C.id===x)?.context?.elements.floating;T&&(T.style.pointerEvents="");const V=S.pointerEventsScopeElement!==w?S.pointerEventsScopeElement:null,M=T!==w?T:null,L=S.handleCloseOptions?.getScope?.()??V??M??E.closest("[data-rootownerid]")??_.body;return Y1(S,{scopeElement:L,referenceElement:E,floatingElement:w}),()=>{O()}}},[o,m,b,g,S,k,y,x,O]),h.useEffect(()=>{if(!o)return;function E(){return!!(y&&x&&Yr(y.nodesRef.current,x).length>0)}function w(C){const Z=Cm(a,"close",S.pointerType),re=()=>{u.setOpen(!1,jt(mn,C)),y?.events.emit("floating.closed",C)};Z?S.openChangeTimeout.start(Z,re):(S.openChangeTimeout.clear(),re())}function _(C){const Z=zn(C);if(!LC(Z)){S.interactedInside=!1;return}S.interactedInside=Z?.closest("[aria-haspopup]")!=null}function T(){S.openChangeTimeout.clear(),j.clear(),y?.events.off("floating.closed",M),O()}function V(C){if(E()&&y){y.events.on("floating.closed",M);return}if(Fc(C.relatedTarget,u.context.triggerElements))return;const Z=p.current.floatingContext?.nodeId??c,re=C.relatedTarget;if(!(y&&Z&&vt(re)&&Yr(y.nodesRef.current,Z,!1).some(te=>tt(te.context?.elements.floating,re)))){if(S.handler){S.handler(C);return}O(),k()&&!N()&&w(C)}}function M(C){!y||!x||E()||j.start(0,()=>{y.events.off("floating.closed",M),u.setOpen(!1,jt(mn,C)),y.events.emit("floating.closed",C)})}const L=g;return _s(L&&xt(L,"mouseenter",T),L&&xt(L,"mouseleave",V),L&&xt(L,"pointerdown",_,!0),()=>{y?.events.off("floating.closed",M)})},[o,g,u,p,a,c,k,N,O,S,y,x,j])}const RO={current:null};function G1(t,r={}){const{enabled:o=!0,delay:a=0,handleClose:c=null,mouseOnly:u=!1,restMs:m=0,move:g=!0,triggerElementRef:b=RO,externalTree:p,isActiveTrigger:y=!0,getHandleCloseContext:x,isClosing:S,shouldOpen:j}=r,N="rootStore"in t?t.rootStore:t,{dataRef:k,events:O}=N.context,E=Gr(p),w=V1(N),_=h.useRef(!1),T=ln(c),V=ln(a),M=ln(m),L=ln(o),C=ln(j),Z=ln(S),re=st(()=>K0(k.current.openEvent?.type,w.interactedInside)),ie=st(()=>C.current?.()!==!1),te=st((W,D,z)=>{const P=N.context.triggerElements;if(P.hasElement(D))return!W||!tt(W,D);if(!vt(z))return!1;const H=z;return P.hasMatchingElement(F=>tt(F,H))&&(!W||!tt(W,H))}),K=st(()=>{if(!w.handler)return;Nt(N.select("domReferenceElement")).removeEventListener("mousemove",w.handler),w.handler=void 0}),ne=st(()=>{Qc(w)});return y&&(w.handleCloseOptions=T.current?.__options),h.useEffect(()=>K,[K]),h.useEffect(()=>{if(!o)return;function W(D){D.open?_.current=!1:(_.current=D.reason===mn,K(),w.openChangeTimeout.clear(),w.restTimeout.clear(),w.blockMouseMove=!0,w.restTimeoutPending=!1)}return O.on("openchange",W),()=>{O.off("openchange",W)}},[o,O,w,K]),h.useEffect(()=>{if(!o)return;function W(H,F=!0){const A=Cm(V.current,"close",w.pointerType);A?w.openChangeTimeout.start(A,()=>{N.setOpen(!1,jt(mn,H)),E?.events.emit("floating.closed",H)}):F&&(w.openChangeTimeout.clear(),N.setOpen(!1,jt(mn,H)),E?.events.emit("floating.closed",H))}const D=b.current??(y?N.select("domReferenceElement"):null);if(!vt(D))return;function z(H){if(w.openChangeTimeout.clear(),w.blockMouseMove=!1,u&&!ql(w.pointerType))return;const F=Oy(M.current),A=Cm(V.current,"open",w.pointerType),B=zn(H),I=H.currentTarget??null,U=N.select("domReferenceElement");let G=I;if(vt(B)&&!N.context.triggerElements.hasElement(B)){for(const ge of N.context.triggerElements.elements())if(tt(ge,B)){G=ge;break}}vt(I)&&vt(U)&&!N.context.triggerElements.hasElement(I)&&tt(I,U)&&(G=U);const Q=G==null?!1:te(U,G,B),he=N.select("open"),le=Z.current?.()??N.select("transitionStatus")==="ending",de=!he&&le&&_.current,He=!Q&&vt(G)&&vt(U)&&tt(U,G)&&de,ze=F>0&&!A,we=Q&&(he||de)||He,Ie=!he||Q;if(we){ie()&&N.setOpen(!0,jt(mn,H,G));return}ze||(A?w.openChangeTimeout.start(A,()=>{Ie&&ie()&&N.setOpen(!0,jt(mn,H,G))}):Ie&&ie()&&N.setOpen(!0,jt(mn,H,G)))}function P(H){if(re()){ne();return}K();const F=N.select("domReferenceElement"),A=Nt(F);w.restTimeout.clear(),w.restTimeoutPending=!1;const B=k.current.floatingContext??x?.();if(Fc(H.relatedTarget,N.context.triggerElements))return;if(T.current&&B){N.select("open")||w.openChangeTimeout.clear();const U=b.current;w.handler=T.current({...B,tree:E,x:H.clientX,y:H.clientY,onClose(){ne(),K(),L.current&&!re()&&U===N.select("domReferenceElement")&&W(H,!0)}}),A.addEventListener("mousemove",w.handler),w.handler(H);return}(w.pointerType!=="touch"||!tt(N.select("floatingElement"),H.relatedTarget))&&W(H)}return g?_s(xt(D,"mousemove",z,{once:!0}),xt(D,"mouseenter",z),xt(D,"mouseleave",P)):_s(xt(D,"mouseenter",z),xt(D,"mouseleave",P))},[K,ne,k,V,N,o,T,w,y,te,re,u,g,M,b,E,L,x,Z,ie]),h.useMemo(()=>{if(!o)return;function W(D){w.pointerType=D.pointerType}return{onPointerDown:W,onPointerEnter:W,onMouseMove(D){const{nativeEvent:z}=D,P=D.currentTarget,H=N.select("domReferenceElement"),F=N.select("open"),A=te(H,P,D.target);if(u&&!ql(w.pointerType))return;if(F&&A&&w.handleCloseOptions?.blockPointerEvents){const U=N.select("floatingElement");if(U){const G=w.handleCloseOptions?.getScope?.()??P.ownerDocument.body;Y1(w,{scopeElement:G,referenceElement:P,floatingElement:U})}}const B=Oy(M.current);if(F&&!A||B===0||!A&&w.restTimeoutPending&&D.movementX**2+D.movementY**2<2)return;w.restTimeout.clear();function I(){if(w.restTimeoutPending=!1,re())return;const U=N.select("open");!w.blockMouseMove&&(!U||A)&&ie()&&N.setOpen(!0,jt(mn,z,P))}w.pointerType==="touch"?lr.flushSync(()=>{I()}):A&&F?I():(w.restTimeoutPending=!0,w.restTimeout.start(B,I))}}},[o,w,re,te,u,N,M,ie])}const OO="Escape";function bu(t,r,o){switch(t){case"vertical":return r;case"horizontal":return o;default:return r||o}}function Ec(t,r){return bu(r,t===X0||t===xp,t===uu||t===du)}function Wf(t,r,o){return bu(r,t===xp,o?t===uu:t===du)||t==="Enter"||t===" "||t===""}function kO(t,r,o){return bu(r,o?t===uu:t===du,t===xp)}function _O(t,r,o,a){const c=o?t===du:t===uu,u=t===X0;return r==="both"||r==="horizontal"&&a?t===OO:bu(r,c,u)}function MO(t,r){const{listRef:o,activeIndex:a,onNavigate:c=()=>{},enabled:u=!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:N=!0,disabledIndices:k=void 0,orientation:O="vertical",parentOrientation:E,id:w,resetOnPointerLeave:_=!0,externalTree:T,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=Tm(Z),K=wm(re),ne=ln(te),W=ur(),D=Gr(T),z=h.useRef(S),P=h.useRef(m??-1),H=h.useRef(null),F=h.useRef(!0),A=st(Y=>{c(P.current===-1?null:P.current,Y)}),B=h.useRef(!!Z),I=h.useRef(C),U=h.useRef(!1),G=h.useRef(!1),Q=h.useRef(null),he=ln(k),le=ln(C),de=ln(m),He=ln(_),ze=Gl(),we=Gl(),Ie=st(()=>{function Y(ae){x?D?.events.emit("virtualfocus",ae):Q.current=Ac(ae,{sync:U.current,preventScroll:!0})}const $=o.current[P.current],je=G.current;$&&Y($),(U.current?ae=>ae():ae=>ze.request(ae))(()=>{const ae=o.current[P.current]||$;if(!ae)return;$||Y(ae),be&&(je||!F.current)&&ae.scrollIntoView?.({block:"nearest",inline:"nearest"})})});Qe(()=>{ie.current.orientation=O},[ie,O]),Qe(()=>{u&&(C&&Z?(P.current=m??-1,z.current&&m!=null&&(G.current=!0,A())):B.current&&(P.current=-1,A()))},[u,C,Z,m,A]),Qe(()=>{if(u){if(!C){U.current=!1;return}if(Z)if(a==null){if(U.current=!1,de.current!=null)return;if(B.current&&(P.current=-1,Ie()),(!I.current||!B.current)&&z.current&&(H.current!=null||z.current===!0&&H.current==null)){let Y=0;const $=()=>{o.current[0]==null?(Y<2&&(Y?xe=>we.request(xe):queueMicrotask)($),Y+=1):(P.current=H.current==null||Wf(H.current,O,y)||p?Yf(o):Ay(o),H.current=null,A())};$()}}else My(o.current,a)||(P.current=a,Ie(),G.current=!1)}},[u,C,Z,a,de,p,o,O,y,A,Ie,we]),Qe(()=>{if(!u||Z||!D||x||!B.current)return;const Y=D.nodesRef.current,$=Y.find(ae=>ae.id===W)?.context?.elements.floating,je=Tn(Nt(re??$??null)),xe=Y.some(ae=>ae.context&&tt(ae.context.elements.floating,je));$&&!xe&&F.current&&$.focus({preventScroll:!0})},[u,Z,re,D,W,x]),Qe(()=>{I.current=C,B.current=!!Z}),Qe(()=>{C||(H.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))}),_e=st(()=>E??D?.nodesRef.current.find(Y=>Y.id===W)?.context?.dataRef?.current.orientation),Re=st(()=>Yf(o,he.current)),ke=st(Y=>{if(F.current=!1,U.current=!0,Y.which===229||!le.current&&Y.currentTarget===ne.current)return;if(p&&_O(Y.key,O,y,M)){Ec(Y.key,_e())||Es(Y),L.setOpen(!1,jt(Em,Y.nativeEvent)),Yt(re)&&(x?D?.events.emit("virtualfocus",re):re.focus());return}const $=P.current,je=Yf(o,k),xe=Ay(o,k);if(K||(Y.key==="Home"&&(Es(Y),P.current=je,A(Y)),Y.key==="End"&&(Es(Y),P.current=xe,A(Y))),V!=null){const ae=V(Y,P.current,o,O,b,y,k,je,xe);if(ae!=null&&(P.current=ae,A(Y)),O==="both")return}if(Ec(Y.key,O)){if(Es(Y),C&&!x&&Tn(Y.currentTarget.ownerDocument)===Y.currentTarget){P.current=Wf(Y.key,O,y)?je:xe,A(Y);return}Wf(Y.key,O,y)?b?$>=xe?g&&$!==o.current.length?P.current=-1:(U.current=!1,P.current=je):P.current=Ea(o.current,{startingIndex:$,disabledIndices:k}):P.current=Math.min(xe,Ea(o.current,{startingIndex:$,disabledIndices:k})):b?$<=je?g&&$!==-1?P.current=o.current.length:(U.current=!1,P.current=xe):P.current=Ea(o.current,{startingIndex:$,decrement:!0,disabledIndices:k}):P.current=Math.max(je,Ea(o.current,{startingIndex:$,decrement:!0,disabledIndices:k})),My(o.current,P.current)&&(P.current=-1),A(Y)}}),be=h.useMemo(()=>({onFocus($){U.current=!0,q($)},onClick:({currentTarget:$})=>$.focus({preventScroll:!0}),onMouseMove($){U.current=!0,G.current=!1,j&&q($)},onPointerLeave($){if(!le.current||!F.current||$.pointerType==="touch")return;U.current=!0;const je=$.relatedTarget;if(!(!j||o.current.includes(je))&&He.current&&(Q.current?.(),Q.current=null,P.current=-1,A($),!x)){const xe=ne.current,ae=Tn(Nt(xe));xe&&tt(xe,ae)&&xe.focus({preventScroll:!0})}}}),[q,le,ne,j,o,A,He,x]),Le=h.useMemo(()=>x&&C&&ge&&{"aria-activedescendant":`${w}-${a}`},[x,C,ge,w,a]),Ye=h.useMemo(()=>({"aria-orientation":O==="both"?void 0:O,...K?{}:Le,onKeyDown(Y){if(Y.key==="Tab"&&Y.shiftKey&&C&&!x){const $=zn(Y.nativeEvent);if($&&!tt(ne.current,$))return;Es(Y),L.setOpen(!1,jt(So,Y.nativeEvent)),Yt(re)&&re.focus();return}ke(Y)},onPointerMove(){F.current=!0}}),[Le,ke,ne,O,K,L,C,x,re]),Ue=h.useMemo(()=>{function Y(xe){L.setOpen(!0,jt(Em,xe.nativeEvent,xe.currentTarget))}function $(xe){S==="auto"&&G0(xe.nativeEvent)&&(z.current=!x)}function je(xe){z.current=S,S==="auto"&&q0(xe.nativeEvent)&&(z.current=!0)}return{onKeyDown(xe){const ae=L.select("open");F.current=!1;const Oe=xe.key.startsWith("Arrow"),Pe=kO(xe.key,_e(),y),We=Ec(xe.key,O),pt=(p?Pe:We)||xe.key==="Enter"||xe.key.trim()==="";if(x&&ae)return ke(xe);if(!(!ae&&!N&&Oe)){if(pt){const Mt=Ec(xe.key,_e());H.current=p&&Mt?null:xe.key}if(p){Pe&&(Es(xe),ae?(P.current=Re(),A(xe)):Y(xe));return}We&&(de.current!=null&&(P.current=de.current),Es(xe),!ae&&N?Y(xe):ke(xe),ae&&A(xe))}},onFocus(xe){L.select("open")&&!x&&(P.current=-1,A(xe))},onPointerDown:je,onPointerEnter:je,onMouseDown:$,onClick:$}},[ke,S,Re,p,A,L,N,O,_e,y,de,x]),ee=h.useMemo(()=>({...Le,...Ue}),[Le,Ue]);return h.useMemo(()=>u?{reference:ee,floating:Ye,item:be,trigger:Ue}:{},[u,ee,Ye,Ue,be])}function AO(t,r){const{listRef:o,elementsRef:a,activeIndex:c,onMatch:u,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=$n(),N=h.useRef(""),k=h.useRef(y??c??-1),O=h.useRef(null),E=st(T=>{function V(ne){const W=a?.current[ne];return!W||mu(W)}function M(ne){return V(ne)?m==null||!J0(Vc,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 H=0;H<ne.length;H+=1){const F=(z+H)%ne.length;if(!(!ne[F]?.toLowerCase().startsWith(P)||!M(F)))return F}return-1}const C=o.current;if(N.current.length>0&&T.key===" "&&(Es(T),g?.(!0)),N.current.length>0&&N.current[0]!==" "&&L(C,N.current)===-1&&T.key!==" "&&g?.(!1),C==null||T.key.length!==1||T.ctrlKey||T.metaKey||T.altKey)return;S&&T.key!==" "&&(Es(T),g?.(!0));const Z=N.current==="";Z&&(k.current=y??c??-1),C.every((ne,W)=>ne&&M(W)?ne[0]?.toLowerCase()!==ne[1]?.toLowerCase():!0)&&N.current===T.key&&(N.current="",k.current=O.current),N.current+=T.key,j.start(p,()=>{N.current="",k.current=O.current,g?.(!1)});const te=((Z?y??c??-1:k.current)??0)+1,K=L(C,N.current,te);K!==-1?(u?.(K),O.current=K):T.key!==" "&&(N.current="",g?.(!1))}),w=st(T=>{const V=T.relatedTarget,M=x.select("domReferenceElement"),L=x.select("floatingElement");tt(M,V)||tt(L,V)||(j.clear(),N.current="",k.current=O.current,g?.(!1))});Qe(()=>{!S&&y!==null||(j.clear(),O.current=null,N.current!==""&&(N.current=""))},[S,y,j]),Qe(()=>{S&&N.current===""&&(k.current=y??c??-1)},[S,y,c]);const _=h.useMemo(()=>({onKeyDown:E,onBlur:w}),[E,w]);return h.useMemo(()=>b?{reference:_,floating:_}:{},[b,_])}const sv=.1,DO=sv*sv,Ht=.5;function Nc(t,r,o,a,c,u){return a>=r!=u>=r&&t<=(c-o)*(r-a)/(u-a)+o}function jc(t,r,o,a,c,u,m,g,b,p){let y=!1;return Nc(t,r,o,a,c,u)&&(y=!y),Nc(t,r,c,u,m,g)&&(y=!y),Nc(t,r,m,g,b,p)&&(y=!y),Nc(t,r,b,p,o,a)&&(y=!y),y}function zO(t,r,o){return t>=o.x&&t<=o.x+o.width&&r>=o.y&&r<=o.y+o.height}function wc(t,r,o,a,c,u){const m=Math.min(o,c),g=Math.max(o,c),b=Math.min(a,u),p=Math.max(a,u);return t>=m&&t<=g&&r>=b&&r<=p}function q1(t={}){const{blockPointerEvents:r=!1}=t,o=new ms,a=({x:c,y:u,placement:m,elements:g,onClose:b,nodeId:p,tree:y})=>{const x=m?.split("-")[0];let S=!1,j=null,N=null,k=typeof performance<"u"?performance.now():0;function O(w,_){const T=performance.now(),V=T-k;if(j===null||N===null||V===0)return j=w,N=_,k=T,!1;const M=w-j,L=_-N,C=M*M+L*L,Z=V*V*DO;return j=w,N=_,k=T,C<Z}function E(){o.clear(),b()}return function(_){o.clear();const T=g.domReference,V=g.floating;if(!T||!V||x==null||c==null||u==null)return;const{clientX:M,clientY:L}=_,C=zn(_),Z=_.type==="mouseleave",re=tt(V,C),ie=tt(T,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&&Yr(y.nodesRef.current,p).length>0)}function K(){te()||E()}if(te())return;const ne=T.getBoundingClientRect(),W=V.getBoundingClientRect(),D=c>W.right-W.width/2,z=u>W.bottom-W.height/2,P=W.width>ne.width,H=W.height>ne.height,F=(P?ne:W).left,A=(P?ne:W).right,B=(H?ne:W).top,I=(H?ne:W).bottom;if(x==="top"&&u>=ne.bottom-1||x==="bottom"&&u<=ne.top+1||x==="left"&&c>=ne.right-1||x==="right"&&c<=ne.left+1){K();return}let U=!1;switch(x){case"top":U=wc(M,L,F,ne.top+1,A,W.bottom-1);break;case"bottom":U=wc(M,L,F,W.top+1,A,ne.bottom-1);break;case"left":U=wc(M,L,W.right-1,I,ne.left+1,B);break;case"right":U=wc(M,L,ne.right-1,I,W.left+1,B);break}if(U)return;if(S&&!zO(M,L,ne)){K();return}if(!Z&&O(M,L)){K();return}let G=!1;switch(x){case"top":{const Q=P?Ht/2:Ht*4,he=P||D?c+Q:c-Q,le=P?c-Q:D?c+Q:c-Q,de=u+Ht+1,He=D||P?W.bottom-Ht:W.top,ze=D?P?W.bottom-Ht:W.top:W.bottom-Ht;G=jc(M,L,he,de,le,de,W.left,He,W.right,ze);break}case"bottom":{const Q=P?Ht/2:Ht*4,he=P||D?c+Q:c-Q,le=P?c-Q:D?c+Q:c-Q,de=u-Ht,He=D||P?W.top+Ht:W.bottom,ze=D?P?W.top+Ht:W.bottom:W.top+Ht;G=jc(M,L,he,de,le,de,W.left,He,W.right,ze);break}case"left":{const Q=H?Ht/2:Ht*4,he=H||z?u+Q:u-Q,le=H?u-Q:z?u+Q:u-Q,de=c+Ht+1,He=z||H?W.right-Ht:W.left,ze=z?H?W.right-Ht:W.left:W.right-Ht;G=jc(M,L,He,W.top,ze,W.bottom,de,he,de,le);break}case"right":{const Q=H?Ht/2:Ht*4,he=H||z?u+Q:u-Q,le=H?u-Q:z?u+Q:u-Q,de=c-Ht,He=z||H?W.left+Ht:W.right,ze=z?H?W.left+Ht:W.right:W.left+Ht;G=jc(M,L,de,he,de,le,He,W.top,ze,W.bottom);break}}G?S||o.start(40,K):K()}};return a.__options={...t,blockPointerEvents:r},a}const LO=h.createContext(void 0);function $1(t){return h.useContext(LO)}const IO="ArrowUp",BO="ArrowDown",HO="ArrowLeft",UO="ArrowRight",PO="Home",YO="End",VO=new Set([HO,UO]),FO=new Set([IO,BO]),GO=new Set([...VO,...FO]),Bp=new Set([...GO,PO,YO]);function Hp(t){return t==="starting"?uR:Vt}const qO={...Jl,...ru},$O=h.forwardRef(function(r,o){const{render:a,className:c,style:u,finalFocus:m,...g}=r,{store:b}=To(),{side:p,align:y}=I0(),x=$1()!=null,S=b.useState("open"),j=b.useState("transitionStatus"),N=b.useState("popupProps"),k=b.useState("mounted"),O=b.useState("instantType"),E=b.useState("activeTriggerElement"),w=b.useState("parent"),_=b.useState("lastOpenChangeReason"),T=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=w.type==="context-menu";cu({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]),F1(V,{enabled:Z&&!re&&!te&&w.type!=="menubar",closeDelay:L});const K=h.useCallback(z=>{b.set("popupElement",z)},[b]),ne={transitionStatus:j,side:p,align:y,open:S,nested:w.type==="menu",instant:O},W=pn("div",r,{state:ne,ref:[o,b.context.popupRef,K],stateAttributesMapping:qO,props:[N,{onKeyDown(z){x&&Bp.has(z.key)&&z.stopPropagation()}},Hp(j),g,{"data-rootownerid":T}]});let D=w.type===void 0||te;return(E||w.type==="menubar"&&_!==dp)&&(D=!0),i.jsx(Cp,{context:V,openInteractionType:ie,modal:te,disabled:!k,returnFocus:m===void 0?D:m,initialFocus:w.type!=="menu",restoreFocus:!0,externalTree:w.type!=="menubar"?M:void 0,previousFocusableElement:C,nextFocusableElement:w.type===void 0?b.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:w.type===void 0?b.context.beforeContentFocusGuardRef:void 0,children:W})}),X1=h.createContext(void 0);function XO(){const t=h.useContext(X1);if(t===void 0)throw new Error(jn(32));return t}const KO=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:u}=To();return u.useState("mounted")||a?i.jsx(X1.Provider,{value:a,children:i.jsx(Np,{ref:o,...c})}):null});function Up(t){return up(19)?t:t?"true":void 0}const QO=h.createContext(void 0);function K1(){return h.useContext(QO)?.direction??"ltr"}const ZO=t=>({name:"arrow",options:t,async fn(r){const{x:o,y:a,placement:c,rects:u,platform:m,elements:g,middlewareData:b}=r,{element:p,padding:y=0,offsetParent:x="real"}=ir(t,r)||{};if(p==null)return{};const S=Z0(y),j={x:o,y:a},N=vp(c),k=yp(N),O=await m.getDimensions(p),E=N==="y",w=E?"top":"left",_=E?"bottom":"right",T=E?"clientHeight":"clientWidth",V=u.reference[k]+u.reference[N]-j[N]-u.floating[k],M=j[N]-u.reference[N],L=x==="real"?await m.getOffsetParent?.(p):g.floating;let C=g.floating[T]||u.floating[k];(!C||!await m.isElement?.(L))&&(C=g.floating[T]||u.floating[k]);const Z=V/2-M/2,re=C/2-O[k]/2-1,ie=Math.min(S[w],re),te=Math.min(S[_],re),K=ie,ne=C-O[k]-te,W=C/2-O[k]/2+Z,D=Q0(K,W,ne),z=!b.arrow&&Fr(c)!=null&&W!==D&&u.reference[k]/2-(W<K?ie:te)-O[k]/2<0,P=z?W<K?W-K:W-ne:0;return{[N]:j[N]+P,data:{[N]:D,centerOffset:W-D-P,...z&&{alignmentOffset:P}},reset:z}}}),JO=(t,r)=>({...ZO(t),options:[t,r]}),WO=aO().fn,ek={name:"hide",async fn(t){const{width:r,height:o,x:a,y:c}=t.rects.reference,u=r===0&&o===0&&a===0&&c===0;return{data:{referenceHidden:(await WO(t)).data?.referenceHidden||u}}}},zc={sideX:"left",sideY:"top"},Q1={name:"adaptiveOrigin",async fn(t){const{x:r,y:o,rects:{floating:a},elements:{floating:c},platform:u,strategy:m,placement:g}=t,b=Qt(c),p=b.getComputedStyle(c);if(!(p.transitionDuration!=="0s"&&p.transitionDuration!==""))return{x:r,y:o,data:zc};const x=await u.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 w=Nt(c);S={width:w.documentElement.clientWidth,height:w.documentElement.clientHeight}}else await u.isElement?.(x)&&(S=await u.getDimensions(x));const j=Gn(g);let N=r,k=o;j==="left"&&(N=S.width-(r+a.width)),j==="top"&&(k=S.height-(o+a.height));const O=j==="left"?"right":zc.sideX,E=j==="top"?"bottom":zc.sideY;return{x:N,y:k,data:{sideX:O,sideY:E}}}};function Z1(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 rv(t,r,o){const{rects:a,placement:c}=t;return{side:Z1(r,Gn(c),o),align:Fr(c)||"center",anchor:{width:a.reference.width,height:a.reference.height},positioner:{width:a.floating.width,height:a.floating.height}}}function J1(t){const{anchor:r,positionMethod:o="absolute",side:a="bottom",sideOffset:c=0,align:u="center",alignOffset:m=0,collisionBoundary:g,collisionPadding:b=5,sticky:p=!1,arrowPadding:y=5,disableAnchorTracking:x=!1,inline:S,keepMounted:j=!1,floatingRootContext:N,mounted:k,collisionAvoidance:O,shiftCrossAxis:E=!1,nodeId:w,adaptiveOrigin:_,lazyFlip:T=!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=ln(r),W=ln(k),z=K1()==="rtl",P=M||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":z?"left":"right","inline-start":z?"right":"left"}[a],H=u==="center"?P:`${P}-${u}`;let F=b;const A=1,B=a==="bottom"?A:0,I=a==="top"?A:0,U=a==="right"?A:0,G=a==="left"?A:0;typeof F=="number"?F={top:F+B,right:F+G,bottom:F+I,left:F+U}:F&&(F={top:(F.top||0)+B,right:(F.right||0)+G,bottom:(F.bottom||0)+I,left:(F.left||0)+U});const Q={boundary:g==="clipping-ancestors"?"clippingAncestors":g,padding:F},he=h.useRef(null),le=ln(c),de=ln(m),He=typeof c!="function"?c:0,ze=typeof m!="function"?m:0,we=[];S&&we.push(S),we.push(tO(Se=>{const Fe=rv(Se,a,z),Ot=typeof le.current=="function"?le.current(Fe):le.current,Pt=typeof de.current=="function"?de.current(Fe):de.current;return{mainAxis:Ot,crossAxis:Pt,alignmentAxis:Pt}},[He,ze,z,a]));const Ie=Z==="none"&&C!=="shift",ge=!Ie&&(p||E||C==="shift"),q=C==="none"?null:rO({...Q,padding:{top:F.top+A,right:F.right+A,bottom:F.bottom+A,left:F.left+A},mainAxis:!E&&C==="flip",crossAxis:Z==="flip"?"alignment":!1,fallbackAxisSideDirection:re}),_e=Ie?null:nO(Se=>{const Fe=Nt(Se.elements.floating).documentElement;return{...Q,rootBoundary:E?{x:0,y:0,width:Fe.clientWidth,height:Fe.clientHeight}:void 0,mainAxis:Z!=="none",crossAxis:ge,limiter:p||E?void 0:sO(Ot=>{if(!he.current)return{};const{width:Pt,height:se}=he.current.getBoundingClientRect(),ye=ls(Gn(Ot.placement)),Ae=ye==="y"?Pt:se,Ze=ye==="y"?F.left+F.right:F.top+F.bottom;return{offset:Ae/2+Ze/2}})}},[Q,p,E,F,Z]);C==="shift"||Z==="shift"||u==="center"?we.push(_e,q):we.push(q,_e),we.push(oO({...Q,apply({elements:{floating:Se},availableWidth:Fe,availableHeight:Ot,rects:Pt}){if(!W.current)return;const se=Se.style;se.setProperty("--available-width",`${Fe}px`),se.setProperty("--available-height",`${Ot}px`);const ye=Qt(Se).devicePixelRatio||1,{x:Ae,y:Ze,width:nt,height:at}=Pt.reference,rt=(Math.round((Ae+nt)*ye)-Math.round(Ae*ye))/ye,qt=(Math.round((Ze+at)*ye)-Math.round(Ze*ye))/ye;se.setProperty("--anchor-width",`${rt}px`),se.setProperty("--anchor-height",`${qt}px`)}}),JO(Se=>({element:he.current||Nt(Se.elements.floating).createElement("div"),padding:y,offsetParent:"floating"}),[y]),{name:"transformOrigin",fn(Se){const{elements:Fe,middlewareData:Ot,placement:Pt,rects:se,y:ye}=Se,Ae=Gn(Pt),Ze=ls(Ae),nt=he.current,at=Ot.arrow?.x||0,rt=Ot.arrow?.y||0,qt=nt?.clientWidth||0,Xn=nt?.clientHeight||0,Zt=at+qt/2,hn=rt+Xn/2,dr=Math.abs(Ot.shift?.y||0),In=se.reference.height/2,As=typeof c=="function"?c(rv(Se,a,z)):c,ni=dr>As,ps={top:`${Zt}px calc(100% + ${As}px)`,bottom:`${Zt}px ${-As}px`,left:`calc(100% + ${As}px) ${hn}px`,right:`${-As}px ${hn}px`}[Ae],rn=`${Zt}px ${se.reference.y+In-ye}px`;return Fe.floating.style.setProperty("--transform-origin",ge&&Ze==="y"&&ni?rn:ps),{}}},ek,_),Qe(()=>{!k&&N&&N.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[k,N]);const Re=h.useMemo(()=>({elementResize:!x&&typeof ResizeObserver<"u",layoutShift:!x&&typeof IntersectionObserver<"u"}),[x]),{refs:ke,elements:be,x:Le,y:Ye,middlewareData:Ue,update:ee,placement:Y,context:$,isPositioned:je,floatingStyles:xe}=TO({rootContext:N,open:j?k:void 0,placement:H,middleware:we,strategy:o,whileElementsMounted:j?void 0:(...Se)=>Qy(...Se,Re),nodeId:w,externalTree:V}),{sideX:ae,sideY:Oe}=Ue.adaptiveOrigin||zc,Pe=je?o:"fixed",We=h.useMemo(()=>{const Se=_?{position:Pe,[ae]:Le,[Oe]:Ye}:{position:Pe,...xe};return je||(Se.opacity=0),Se},[_,Pe,ae,Le,Oe,Ye,xe,je]),pt=h.useRef(null);Qe(()=>{if(!k)return;const Se=ne.current,Fe=typeof Se=="function"?Se():Se,Pt=(ov(Fe)?Fe.current:Fe)||null||null;Pt!==pt.current&&(ke.setPositionReference(Pt),pt.current=Pt)},[k,ke,K,ne]),h.useEffect(()=>{if(!k)return;const Se=ne.current;typeof Se!="function"&&ov(Se)&&Se.current!==pt.current&&(ke.setPositionReference(Se.current),pt.current=Se.current)},[k,ke,K,ne]),h.useEffect(()=>{if(j&&k&&be.reference&&be.floating)return Qy(be.reference,be.floating,ee,Re)},[j,k,be,ee,Re]);const Mt=Gn(Y),mt=Z1(a,Mt,z),wt=Fr(Y)||"center",Rt=!!Ue.hide?.referenceHidden;Qe(()=>{T&&k&&je&&L(Mt)},[T,k,je,Mt]);const zt=h.useMemo(()=>({position:"absolute",top:Ue.arrow?.y,left:Ue.arrow?.x}),[Ue.arrow]),Te=Ue.arrow?.centerOffset!==0;return h.useMemo(()=>({positionerStyles:We,arrowStyles:zt,arrowRef:he,arrowUncentered:Te,side:mt,align:wt,physicalSide:Mt,anchorHidden:Rt,refs:ke,context:$,isPositioned:je,update:ee}),[We,zt,he,Te,mt,wt,Mt,Rt,ke,$,je,ee])}function ov(t){return t!=null&&"current"in t}function tk(t){const{children:r,elementsRef:o,labelsRef:a,onMapChange:c}=t,u=st(c),m=h.useRef(0),g=Ln(sk).current,b=Ln(nk).current,[p,y]=h.useState(0),x=h.useRef(p),S=st((E,w)=>{b.set(E,w??null),x.current+=1,y(x.current)}),j=st(E=>{b.delete(E),x.current+=1,y(x.current)}),N=h.useMemo(()=>{const E=new Map;return Array.from(b.keys()).filter(_=>_.isConnected).sort(rk).forEach((_,T)=>{const V=b.get(_)??{};E.set(_,{...V,index:T})}),E},[b,p]);Qe(()=>{if(typeof MutationObserver!="function"||N.size===0)return;const E=new MutationObserver(w=>{const _=new Set,T=V=>_.has(V)?_.delete(V):_.add(V);w.forEach(V=>{V.removedNodes.forEach(T),V.addedNodes.forEach(T)}),_.size===0&&(x.current+=1,y(x.current))});return N.forEach((w,_)=>{_.parentElement&&E.observe(_.parentElement,{childList:!0})}),()=>{E.disconnect()}},[N]),Qe(()=>{x.current===p&&(o.current.length!==N.size&&(o.current.length=N.size),a&&a.current.length!==N.size&&(a.current.length=N.size),m.current=N.size),u(N)},[u,N,o,a,p]),Qe(()=>()=>{o.current=[]},[o]),Qe(()=>()=>{a&&(a.current=[])},[a]);const k=st(E=>(g.add(E),()=>{g.delete(E)}));Qe(()=>{g.forEach(E=>E(N))},[g,N]);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(Y0.Provider,{value:O,children:r})}function nk(){return new Map}function sk(){return new Set}function rk(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 Pp=h.forwardRef(function(r,o){const{cutout:a,...c}=r;let u;if(a){const m=a.getBoundingClientRect();u=`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:u}})});function W1(t,r,{styles:o,transitionStatus:a,props:c,refs:u,hidden:m,inert:g=!1}){const b={...o};return g&&(b.pointerEvents="none"),pn("div",t,{state:r,ref:u,props:[{role:"presentation",hidden:m,style:b},Hp(a),c],stateAttributesMapping:Jl})}let av={},lv={},iv="";function ok(t){if(typeof document>"u")return!1;const r=Nt(t);return Qt(r).innerWidth-r.documentElement.clientWidth>0}function ak(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,u=wo(a)?a:c,m=u.style.overflowY,g=a.style.scrollbarGutter;a.style.scrollbarGutter="stable",u.style.overflowY="scroll";const b=u.offsetWidth;u.style.overflowY="hidden";const p=u.offsetWidth;return u.style.overflowY=m,a.style.scrollbarGutter=g,b===p}function lk(t){const r=Nt(t),o=r.documentElement,a=r.body,c=wo(o)?o:a,u={overflowY:c.style.overflowY,overflowX:c.style.overflowX};return Object.assign(c.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(c.style,u)}}function ik(t){const r=Nt(t),o=r.documentElement,a=r.body,c=Qt(o);let u=0,m=0,g=!1;const b=Ns.create();if(Co&&(c.visualViewport?.scale??1)!==1)return()=>{};function p(){const j=c.getComputedStyle(o),N=c.getComputedStyle(a),E=(j.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";u=o.scrollTop,m=o.scrollLeft,av={scrollbarGutter:o.style.scrollbarGutter,overflowY:o.style.overflowY,overflowX:o.style.overflowX},iv=o.style.scrollBehavior,lv={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 w=o.scrollHeight>o.clientHeight,_=o.scrollWidth>o.clientWidth,T=j.overflowY==="scroll"||N.overflowY==="scroll",V=j.overflowX==="scroll"||N.overflowX==="scroll",M=Math.max(0,c.innerWidth-a.clientWidth),L=Math.max(0,c.innerHeight-a.clientHeight),C=parseFloat(N.marginTop)+parseFloat(N.marginBottom),Z=parseFloat(N.marginLeft)+parseFloat(N.marginRight),re=wo(o)?o:a;if(g=ak(t),g){o.style.scrollbarGutter=E,re.style.overflowY="hidden",re.style.overflowX="hidden";return}Object.assign(o.style,{scrollbarGutter:E,overflowY:"hidden",overflowX:"hidden"}),(w||T)&&(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=u,a.scrollLeft=m,o.setAttribute("data-base-ui-scroll-locked",""),o.style.scrollBehavior="unset"}function y(){Object.assign(o.style,av),Object.assign(a.style,lv),g||(o.scrollTop=u,o.scrollLeft=m,o.removeAttribute("data-base-ui-scroll-locked"),o.style.scrollBehavior=iv)}function x(){y(),b.request(p)}p();const S=xt(c,"resize",x);return()=>{b.cancel(),y(),typeof c.removeEventListener=="function"&&S()}}class ck{lockCount=0;restore=null;timeoutLock=ms.create();timeoutUnlock=ms.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=Qt(a).getComputedStyle(a).overflowY;if(c==="hidden"||c==="clip"){this.restore=fn;return}const u=iu||!ok(r);this.restore=u?lk(r):ik(r)}}const uk=new ck;function eS(t=!0,r=null){Qe(()=>{if(t)return uk.acquire(r)},[t,r])}const dk=20;function tS(t,r,o,a){const[c,u]=h.useState(!1);Qe(()=>{if(!t||!r||o==null){u(!1);return}const m=Nt(o).documentElement.clientWidth,g=o.offsetWidth;u(m>0&&g>0&&g>=m-dk)},[t,r,o]),eS(t&&(!r||c),a)}const fk=h.forwardRef(function(r,o){const{anchor:a,positionMethod:c="absolute",className:u,render:m,side:g,align:b,sideOffset:p=0,alignOffset:y=0,collisionBoundary:x="clipping-ancestors",collisionPadding:S=5,arrowPadding:j=5,sticky:N=!1,disableAnchorTracking:k=!1,collisionAvoidance:O=dR,style:E,...w}=r,{store:_}=To(),T=XO(),V=ou(!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"),H=_.useState("floatingNodeId"),F=_.useState("floatingParentNodeId"),A=L.useState("domReferenceElement"),B=h.useRef(null),I=gp(W,!1,!1);let U=a,G=p,Q=y,he=b,le=O;M.type==="context-menu"&&(U=a??M.context?.anchor,he=he??"start",!g&&he!=="center"&&(Q=r.alignOffset??2,G=r.sideOffset??-5));let de=g,He=he;M.type==="menu"?(de=de??"inline-end",He=He??"start",le=r.collisionAvoidance??f1):M.type==="menubar"&&(de=de??(M.context.orientation==="vertical"?"inline-end":"bottom"),He=He??"start");const ze=M.type==="context-menu",we=J1({anchor:U,floatingRootContext:L,positionMethod:V?"fixed":c,mounted:Z,side:de,sideOffset:G,align:He,alignOffset:Q,arrowPadding:ze?0:j,collisionBoundary:x,collisionPadding:S,sticky:N,nodeId:H,keepMounted:T,disableAnchorTracking:k,collisionAvoidance:le,shiftCrossAxis:ze&&!("side"in le&&le.side==="flip"),externalTree:C,adaptiveOrigin:z?Q1:void 0});h.useEffect(()=>{function Le(Ye){Ye.open&&(Ye.parentNodeId===H&&_.set("hoverEnabled",!1),Ye.nodeId!==H&&Ye.parentNodeId===_.select("floatingParentNodeId")&&_.setOpen(!1,jt(Ml)))}return C.events.on("menuopenchange",Le),()=>{C.events.off("menuopenchange",Le)}},[_,C.events,H]),h.useEffect(()=>{if(_.select("floatingParentNodeId")==null)return;function Le(Ye){if(Ye.open||Ye.nodeId!==_.select("floatingParentNodeId"))return;const Ue=Ye.reason??Ml;_.setOpen(!1,jt(Ue))}return C.events.on("menuopenchange",Le),()=>{C.events.off("menuopenchange",Le)}},[C.events,_]);const Ie=$n();h.useEffect(()=>{re||Ie.clear()},[re,Ie]),h.useEffect(()=>{function Le(Ye){if(!(!re||Ye.nodeId!==_.select("floatingParentNodeId")))if(Ye.target&&K&&K!==Ye.target){const Ue=_.select("closeDelay");Ue>0?Ie.isStarted()||Ie.start(Ue,()=>{_.setOpen(!1,jt(Ml))}):_.setOpen(!1,jt(Ml))}else Ie.clear()}return C.events.on("itemhover",Le),()=>{C.events.off("itemhover",Le)}},[C.events,re,K,_,Ie]),h.useEffect(()=>{const Le={open:re,nodeId:H,parentNodeId:F,reason:_.select("lastOpenChangeReason")};C.events.emit("menuopenchange",Le)},[C.events,re,_,H,F]),Qe(()=>{const Le=A,Ye=B.current;if(Le&&(B.current=Le),Ye&&Le&&Le!==Ye){_.set("instantType",void 0);const Ue=new AbortController;return I(()=>{_.set("instantType","trigger-change")},Ue.signal),()=>{Ue.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;tS(re&&(q||ie&&P!==mn),te==="touch",W,K);const Re=W1(r,ge,{styles:we.positionerStyles,transitionStatus:ne,props:w,refs:[o,_.useStateSetter("positionerElement")],hidden:!Z,inert:!re}),ke=Z&&M.type!=="menu"&&(M.type!=="menubar"&&ie&&P!==mn||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(L0.Provider,{value:we,children:[ke&&i.jsx(Pp,{ref:M.type==="context-menu"||M.type==="nested-context-menu"?M.context.internalBackdropRef:null,inert:Up(!re),cutout:be}),i.jsx(b1,{id:H,children:i.jsx(tk,{elementsRef:_.context.itemDomElements,labelsRef:_.context.itemLabels,children:Re})})]})}),mk=h.createContext(null);function nS(t){return h.useContext(mk)}function pk(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 hk(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 sS(t,r){const o=st((u,m)=>{(typeof t=="function"?t():t)||r(m||(iu?"touch":""))}),{onClick:a,onPointerDown:c}=pk(o);return h.useMemo(()=>({onClick:a,onPointerDown:c}),[a,c])}function gk(t){const[r,o]=h.useState(null),a=sS(t,o);return hk(t,c=>{c&&!t&&o(null)}),h.useMemo(()=>({openMethod:r,triggerProps:a}),[r,a])}const xk={...Lp,disabled:qe(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:qe(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:qe(t=>t.openMethod),allowMouseEnter:qe(t=>t.allowMouseEnter),highlightItemOnHover:qe(t=>t.highlightItemOnHover),stickIfOpen:qe(t=>t.stickIfOpen),parent:qe(t=>t.parent),rootId:qe(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:qe(t=>t.activeIndex),isActive:qe((t,r)=>t.activeIndex===r),hoverEnabled:qe(t=>t.hoverEnabled),instantType:qe(t=>t.instantType),lastOpenChangeReason:qe(t=>t.openChangeReason),floatingTreeRoot:qe(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:qe(t=>t.floatingNodeId),floatingParentNodeId:qe(t=>t.floatingParentNodeId),itemProps:qe(t=>t.itemProps),closeDelay:qe(t=>t.closeDelay),hasViewport:qe(t=>t.hasViewport),keyboardEventRelay:qe(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})};class Yp extends hu{constructor(r){super({...bk(),...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 ei},xk),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let a=o.store.select("rootId"),c=o.store.select("floatingTreeRoot"),u=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&&u===b||(a=m,c=g,u=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=Ln(()=>new Yp(o)).current;return r??a}unsubscribeParentListener=null}function bk(){return{...Dp(),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 jp,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:Vt,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}const yk=h.createContext(void 0);function vk(){return h.useContext(yk)}const Sk=_1(function(r){const{children:o,open:a,onOpenChange:c,onOpenChangeComplete:u,defaultOpen:m=!1,disabled:g=!1,modal:b,loopFocus:p=!0,orientation:y="vertical",actionsRef:x,closeParentOnEsc:S=!1,handle:j,triggerId:N,defaultTriggerId:k=null,highlightItemOnHover:O=!0}=r,E=ou(!0),w=To(!0),_=nS(!0),T=vk(),V=h.useMemo(()=>T&&w?{type:"menu",store:w.store}:_?{type:"menubar",context:_}:E&&!w?{type:"context-menu",context:E}:{type:void 0},[E,w,_,T]),M=Yp.useStore(j?.store,{open:m,openProp:a,activeTriggerId:k,triggerIdProp:N,parent:V});I1(M,a,m,k),M.useControlledProp("openProp",a),M.useControlledProp("triggerIdProp",N),M.useContextCallback("onOpenChangeComplete",u);const L=Eo(),C=Eo(),Z=M.useState("floatingTreeRoot"),re=wp(Z),ie=ur(),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"),H=M.useState("activeIndex"),F=M.useState("payload"),A=M.useState("floatingParentNodeId"),B=h.useRef(null),I=h.useRef(P.type!=="context-menu"),U=$n(),G=h.useRef(!0),Q=$n(),he=A!=null,{openMethod:le,triggerProps:de}=gk(te);M.useSyncedValues({disabled:g,highlightItemOnHover:O,modal:P.type===void 0?b:void 0,openMethod:le,rootId:L}),_p(M);const{forceUnmount:He}=Mp(te,M,()=>{M.update({allowMouseEnter:!1,stickIfOpen:!0})});Qe(()=>{E&&!w?M.update({parent:{type:"context-menu",context:E},floatingNodeId:re,floatingParentNodeId:ie}):w&&M.update({floatingNodeId:re,floatingParentNodeId:ie})},[E,w,re,ie,M]),h.useEffect(()=>{if(te||(B.current=null),P.type==="context-menu"){if(!te){U.clear(),I.current=!1;return}U.start(500,()=>{I.current=!0})}},[U,te,P.type]),Qe(()=>{!te&&!W&&M.set("hoverEnabled",!0)},[te,W,M]);const ze=st((ae,Oe)=>{const Pe=Oe.reason;if(te===ae&&Oe.trigger===K&&z===Pe)return;const We=L1(Oe);if(!ae&&Oe.trigger==null&&(Oe.trigger=K??void 0),c?.(ae,Oe),Oe.isCanceled)return;M.state.floatingRootContext.dispatchOpenChange(ae,Oe);const pt=Oe.event;if(ae===!1&&pt?.type==="click"&&pt.pointerType==="touch"&&!G.current)return;ae&&Pe===Dl?(G.current=!1,Q.start(300,()=>{G.current=!0})):(G.current=!0,Q.clear());const Mt=(Pe===vo||Pe===U0)&&pt.detail===0&&pt?.isTrusted,mt=!ae&&(Pe===au||Pe==null),wt={open:ae,openChangeReason:Pe};B.current=Oe.event??null,kp(wt,ae,Oe.trigger,We()),M.update(wt),P.type==="menubar"&&(Pe===Dl||Pe===So||Pe===mn||Pe===Em||Pe===Ml)?M.set("instantType","group"):Mt||mt?M.set("instantType",Mt?"click":"dismiss"):M.set("instantType",void 0)}),we=A1({popupStore:M,floatingId:C,nested:ie!=null,onOpenChange:ze}),Ie=we.context.events;h.useEffect(()=>{const ae=({open:Oe,eventDetails:Pe})=>ze(Oe,Pe);return Ie.on("setOpen",ae),()=>{Ie?.off("setOpen",ae)}},[Ie,ze]);const ge=h.useCallback(()=>{M.setOpen(!1,jt(fp))},[M]);h.useImperativeHandle(x,()=>({unmount:He,close:ge}),[He,ge]);let q;P.type==="context-menu"&&(q=P.context),h.useImperativeHandle(q?.positionerRef,()=>ne,[ne]),h.useImperativeHandle(q?.actionsRef,()=>({setOpen:ze}),[ze]);const _e=Rp(we,{enabled:!D,bubbles:{escapeKey:S&&P.type==="menu"},outsidePress(){return P.type!=="context-menu"||B.current?.type==="contextmenu"?!0:I.current},externalTree:he?Z:void 0}),Re=K1(),ke=h.useCallback(ae=>{M.select("activeIndex")!==ae&&M.set("activeIndex",ae)},[M]),be=MO(we,{enabled:!D,listRef:M.context.itemDomElements,activeIndex:H,nested:P.type!==void 0,loopFocus:p,orientation:y,parentOrientation:P.type==="menubar"?P.context.orientation:void 0,rtl:Re==="rtl",disabledIndices:Vc,onNavigate:ke,openOnArrowKeyDown:P.type!=="context-menu",externalTree:he?Z:void 0,focusItemOnHover:O}),Le=h.useCallback(ae=>{M.context.typingRef.current=ae},[M]),Ye=AO(we,{enabled:!D,listRef:M.context.itemLabels,elementsRef:M.context.itemDomElements,activeIndex:H,resetMs:cR,onMatch:ae=>{te&&ae!==H&&M.set("activeIndex",ae)},onTyping:Le}),Ue=h.useMemo(()=>{const ae=tr(Ye.reference,be.reference,_e.reference,{onMouseMove(){M.set("allowMouseEnter",!0)}},de);return ae["aria-haspopup"]="menu",ae["aria-expanded"]=te,ae},[M,Ye.reference,be.reference,_e.reference,de,te]),ee=h.useMemo(()=>{const ae=tr(be.trigger,_e.trigger,de);return ae["aria-haspopup"]="menu",ae["aria-expanded"]=!1,ae},[be.trigger,_e.trigger,de]),Y=h.useMemo(()=>tr(xu,{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 Oe=M.select("keyboardEventRelay");Oe&&!ae.isPropagationStopped()&&Oe(ae)}},Ye.floating,be.floating,_e.floating),[K,C,P.type,M,Ye.floating,be.floating,_e.floating]),$=be.item??Vt;Ap(M,{floatingRootContext:we,activeTriggerProps:Ue,inactiveTriggerProps:ee,popupProps:Y,itemProps:$});const je=h.useMemo(()=>({store:M,parent:V}),[M,V]),xe=i.jsx(B0.Provider,{value:je,children:typeof o=="function"?o({payload:F}):o});return P.type===void 0||P.type==="context-menu"?i.jsx(y1,{externalTree:Z,children:xe}):xe});function Ek(t){const r=t.getBoundingClientRect(),o=Qt(t);if(pp)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 Nk(t={}){const{highlightItemOnHover:r,highlightedIndex:o,onHighlightedIndexChange:a}=cp(),{ref:c,index:u}=V0(t),m=o===u,g=h.useRef(null),b=Ra(c,g);return{compositeProps:{tabIndex:m?0:-1,onFocus(){a(u)},onMouseMove(){const y=g.current;if(!r||!y)return;const x=y.hasAttribute("disabled")||y.ariaDisabled==="true";!m&&!x&&y.focus()}},compositeRef:b,index:u}}function jk(t){const{render:r,className:o,style:a,state:c=Vt,props:u=Vc,refs:m=Vc,metadata:g,stateAttributesMapping:b,tag:p="div",...y}=t,{compositeProps:x,compositeRef:S}=Nk({metadata:g});return pn(p,t,{state:c,ref:[...m,S],props:[x,...u,y],stateAttributesMapping:b})}function rS(t){if(Yt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!er(t))return rS(ar(t))}function oS(t,r){const o=h.useRef(null);function a(u){lr.flushSync(()=>{t.setOpen(!1,jt(So,u.nativeEvent,u.currentTarget))}),oR(o.current)?.focus()}function c(u){const m=t.select("positionerElement");if(m&&ja(u,m))t.context.beforeContentFocusGuardRef.current?.focus();else{lr.flushSync(()=>{t.setOpen(!1,jt(So,u.nativeEvent,u.currentTarget))});let g=rR(t.context.triggerFocusTargetRef.current||r.current);for(;g!==null&&tt(m,g);){const b=g;if(g=Ep(g),g===b)break}g?.focus()}}return{preFocusGuardRef:o,handlePreFocusGuardFocus:a,handleFocusTargetFocus:c}}function wk(t){const{enabled:r=!0,mouseDownAction:o,open:a}=t,c=h.useRef(!1);return h.useMemo(()=>r?{onMouseDown:u=>{(o==="open"&&!a||o==="close"&&a)&&(c.current=!0,Nt(u.currentTarget).addEventListener("click",()=>{c.current=!1},{once:!0}))},onClick:u=>{c.current&&(c.current=!1,u.preventBaseUIHandler())}}:Vt,[r,o,a])}const Tc=2,Tk=mO(function(r,o){const{render:a,className:c,style:u,disabled:m=!1,nativeButton:g=!0,id:b,openOnHover:p,delay:y=100,closeDelay:x=0,handle:S,payload:j,...N}=r,k=To(!0),O=S?.store??k?.store;if(!O)throw new Error(jn(85));const E=Ro(b),w=O.useState("isTriggerActive",E),_=O.useState("floatingRootContext"),T=O.useState("isOpenedByTrigger",E),V=O.useState("triggerPopupId",E),M=h.useRef(null),L=Rk(),C=cp(!0),Z=Gr(),re=h.useMemo(()=>Z??new jp,[Z]),ie=wp(re),te=ur(),{registerTrigger:K,isMountedByThisTrigger:ne}=B1(E,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:H}=Zl({disabled:z,native:g});h.useEffect(()=>{!T&&L.type===void 0&&(O.context.allowMouseUpTriggerRef.current=!1)},[O,T,L.type]);const F=h.useRef(null),A=$n(),B=st(be=>{if(!F.current)return;A.clear(),O.context.allowMouseUpTriggerRef.current=!1;const Le=be.target;if(tt(F.current,Le)||tt(O.select("positionerElement"),Le)||Le===F.current||Le!=null&&rS(Le)===O.select("rootId"))return;const Ye=Ek(F.current);be.clientX>=Ye.left-Tc&&be.clientX<=Ye.right+Tc&&be.clientY>=Ye.top-Tc&&be.clientY<=Ye.bottom+Tc||re.events.emit("close",{domEvent:be,reason:dC})});h.useEffect(()=>{T&&O.select("lastOpenChangeReason")===mn&&Nt(F.current).addEventListener("mouseup",B,{once:!0})},[T,B,O]);const I=W&&L.context.hasSubmenuOpen,G=G1(_,{enabled:(p??I)&&!z&&L.type!=="context-menu"&&(!W||I&&!ne),handleClose:q1({blockPointerEvents:!W}),mouseOnly:!0,move:!1,restMs:L.type===void 0?y:void 0,delay:{close:x},triggerElementRef:M,externalTree:re,isActiveTrigger:w,isClosing:()=>O.select("transitionStatus")==="ending"}),Q=Ck(T,O.select("lastOpenChangeReason")),he=v1(_,{enabled:!z&&L.type!=="context-menu",event:T&&W?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:L.type===void 0?Q:!1}),le=CO(_,{enabled:!z&&I}),de=wk({open:T,enabled:W,mouseDownAction:"open"}),He=h.useMemo(()=>tr(le.reference,he.reference),[le.reference,he.reference]),ze=O.useState("triggerProps",ne),{preFocusGuardRef:we,handlePreFocusGuardFocus:Ie,handleFocusTargetFocus:ge}=oS(O,M),q={disabled:z,open:T},_e=[F,o,H,K,M],Re=[He,G??Vt,ze,{"aria-haspopup":"menu","aria-controls":V,id:E,onMouseDown:be=>{if(O.select("open"))return;A.start(200,()=>{O.context.allowMouseUpTriggerRef.current=!0}),Nt(be.currentTarget).addEventListener("mouseup",B,{once:!0})}},W?{role:"menuitem"}:{},de,N,P],ke=pn("button",r,{enabled:!W,stateAttributesMapping:Sm,state:q,ref:_e,props:Re});return W?i.jsx(jk,{tag:"button",render:a,className:c,style:u,state:q,refs:_e,props:Re,stateAttributesMapping:Sm}):T?i.jsxs(h.Fragment,{children:[i.jsx(Pr,{ref:we,onFocus:Ie},`${E}-pre-focus-guard`),i.jsx(h.Fragment,{children:ke},E),i.jsx(Pr,{ref:O.context.triggerFocusTargetRef,onFocus:ge},`${E}-post-focus-guard`)]}):i.jsx(h.Fragment,{children:ke},E)});function Ck(t,r){const o=$n(),[a,c]=h.useState(!1);return Qe(()=>{t&&r==="trigger-hover"?(c(!0),o.start(u1,()=>{c(!1)})):t||(o.clear(),c(!1))},[t,r,o]),a}function Rk(){const t=ou(!0),r=To(!0),o=nS();return h.useMemo(()=>o?{type:"menubar",context:o}:t&&!r?{type:"context-menu",context:t}:{type:void 0},[t,r,o])}const Ok=h.forwardRef(function(r,o){const{className:a,render:c,orientation:u="horizontal",style:m,...g}=r;return pn("div",r,{state:{orientation:u},ref:o,props:[{role:"separator","aria-orientation":u},g]})});function kk({...t}){return i.jsx(Sk,{"data-slot":"dropdown-menu",...t})}function _k({...t}){return i.jsx(Tk,{"data-slot":"dropdown-menu-trigger",...t})}function Mk({align:t="start",alignOffset:r=0,side:o="bottom",sideOffset:a=4,className:c,...u}){return i.jsx(KO,{children:i.jsx(fk,{className:"isolate z-50 outline-none",align:t,alignOffset:r,side:o,sideOffset:a,children:i.jsx($O,{"data-slot":"dropdown-menu-content",className:$e("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),...u})})})}function Ak({...t}){return i.jsx(kC,{"data-slot":"dropdown-menu-group",...t})}function Dk({className:t,inset:r,...o}){return i.jsx(_C,{"data-slot":"dropdown-menu-label","data-inset":r,className:$e("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7",t),...o})}function zk({className:t,inset:r,variant:o="default",...a}){return i.jsx(MC,{"data-slot":"dropdown-menu-item","data-inset":r,"data-variant":o,className:$e("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 Lk({className:t,...r}){return i.jsx(Ok,{"data-slot":"dropdown-menu-separator",className:$e("-mx-1 my-1 h-px bg-border",t),...r})}const Ik={propose_create_entity:"新建实体",propose_update_entity:"更新实体",propose_add_relation:"新增关系",propose_outline_node:"新建大纲节点",propose_reorder_timepoints:"重排时间轴时间点"},Bk={character:"角色",setting:"设定",location:"地点",hook:"伏笔"};function Hk(t){const r=t.focus_entity_id??t.focus_node_id??"",o=t.focus_entity_type?Bk[t.focus_entity_type]??t.focus_entity_type:t.focus_node_id?"大纲节点":"";return o?`${o} ${r}`:r||"当前内容"}const Uk=t=>typeof t=="object"&&t!==null?t:{};function Pk({disabled:t,onClose:r,onToggleCollapse:o}){const a=St(p=>p.sessions),c=St(p=>p.currentSessionId),u=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(Bl,{className:"size-4 shrink-0 text-muted-foreground"}),i.jsxs(kk,{children:[i.jsx(_k,{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(_j,{className:"size-3.5 shrink-0 text-muted-foreground"})]})}),i.jsxs(Mk,{align:"start",className:"w-64",children:[i.jsx(Ak,{children:i.jsx(Dk,{children:"会话(本项目)"})}),i.jsx(Lk,{}),a&&a.length===0&&i.jsx("div",{className:"px-2 py-2 text-xs text-muted-foreground",children:"暂无历史会话"}),a?.map(p=>i.jsx(zk,{onClick:()=>u(p.id),className:$e(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," 条 · ",bo(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(Wc,{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(dw,{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(fs,{className:"size-4"})})]})}function Yk(){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(Km,{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(fs,{className:"size-3.5"})})]}):null}function Vk(){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(Gm,{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(fs,{className:"size-3.5"})})]}):null}function aS({toolName:t,args:r,result:o,status:a}){const[c,u]=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:()=>u(g=>!g),"aria-expanded":c,children:[i.jsx(Fm,{className:$e("size-3 shrink-0 transition-transform",c&&"rotate-90")}),i.jsx(Bw,{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 whitespace-pre-wrap text-xs text-muted-foreground",children:typeof r=="string"?r:JSON.stringify(r??{},null,2)})]})}function Fk({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 u=Uk(a),m=u.id??`hist-${c}`,g=m?r.get(m):void 0;return i.jsx(aS,{toolName:u.tool??u.name??"工具",args:u.args,result:g?.content,status:g?"ok":void 0},m)}),t.content?i.jsx("p",{className:"whitespace-pre-wrap font-serif text-[17px] leading-[1.72] text-foreground",children:t.content}):null]})}function Gk({proposal:t}){const r=St(u=>u.confirmProposal),o=St(u=>u.rejectProposal),a=Ik[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(s0,{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 whitespace-pre-wrap text-xs 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 qk(){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(s0,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate text-muted-foreground",children:["正在讨论:",Hk(t)]}),i.jsx("button",{className:"shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted",onClick:r,"aria-label":"清除讨论上下文",children:i.jsx(fs,{className:"size-3.5"})})]}):null}function $k({disabled:t}){const[r,o]=h.useState(""),a=St(g=>g.streaming),c=St(g=>g.sendMessage),u=!t&&!a&&r.trim().length>0,m=()=>{u&&(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:!u,className:"shrink-0",children:[a?i.jsx(Il,{className:"size-4 animate-spin"}):i.jsx(ww,{className:"size-4"}),a?"思考中":"发送"]})]})})}function Xk({disabled:t}){const r=St(p=>p.messages),o=St(p=>p.messagesLoading),a=St(p=>p.streamTools),c=St(p=>p.proposals),u=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=u.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(Bl,{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:"animate-pulse 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:u,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(Bl,{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(Fk,{message:p,toolResults:m},p.id)),a.map(p=>i.jsx(aS,{toolName:p.tool,args:p.args,result:p.result,status:p.status},p.id)),c.map(p=>i.jsx(Gk,{proposal:p},p.proposalId))]})})}function cv({onClose:t,onToggleCollapse:r}){const a=!Be(c=>c.config);return i.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[i.jsx(Pk,{disabled:a,onClose:t,onToggleCollapse:r}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(Yk,{}),i.jsx(Vk,{})]}),i.jsx(Xk,{disabled:a}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(qk,{}),i.jsx($k,{disabled:a})]})]})}function Kk({open:t,onClose:r,width:o,onToggleCollapse:a}){return Qm("(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:Ul}:void 0,children:i.jsx(cv,{onToggleCollapse:a})}):t?i.jsxs("div",{className:"fixed inset-0 z-50",children:[i.jsx("div",{className:"absolute inset-0 bg-foreground/40 animate-in fade-in",onClick:r}),i.jsx("div",{className:"absolute inset-y-0 right-0 w-[85vw] max-w-md border-l border-border bg-background shadow-xl animate-in slide-in-from-right duration-300",children:i.jsx(cv,{onClose:r})})]}):null}function Qk(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 Zk=t=>{switch(t){case"success":return e_;case"info":return n_;case"warning":return t_;case"error":return s_;default:return null}},Jk=Array(12).fill(0),Wk=({visible:t,className:r})=>De.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":t},De.createElement("div",{className:"sonner-spinner"},Jk.map((o,a)=>De.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),e_=De.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},De.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"})),t_=De.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},De.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"})),n_=De.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},De.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"})),s_=De.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},De.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"})),r_=De.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"},De.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),De.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),o_=()=>{const[t,r]=De.useState(document.hidden);return De.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),t};let Am=1;class a_{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,u=typeof r?.id=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:Am++,m=this.toasts.find(b=>b.id===u),g=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(u)&&this.dismissedToasts.delete(u),m?this.toasts=this.toasts.map(b=>b.id===u?(this.publish({...b,...r,id:u,title:a}),{...b,...r,id:u,dismissible:g,title:a}):b):this.addToast({title:a,...c,dismissible:g,id:u}),u},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 u=a!==void 0,m;const g=c.then(async p=>{if(m=["resolve",p],De.isValidElement(p))u=!1,this.create({id:a,type:"default",message:p});else if(i_(p)&&!p.ok){u=!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,N=typeof x=="object"&&!De.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...N})}else if(p instanceof Error){u=!1;const x=typeof o.error=="function"?await o.error(p):o.error,S=typeof o.description=="function"?await o.description(p):o.description,N=typeof x=="object"&&!De.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...N})}else if(o.success!==void 0){u=!1;const x=typeof o.success=="function"?await o.success(p):o.success,S=typeof o.description=="function"?await o.description(p):o.description,N=typeof x=="object"&&!De.isValidElement(x)?x:{message:x};this.create({id:a,type:"success",description:S,...N})}}).catch(async p=>{if(m=["reject",p],o.error!==void 0){u=!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"&&!De.isValidElement(y)?y:{message:y};this.create({id:a,type:"error",description:x,...j})}}).finally(()=>{u&&(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||Am++;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 Dn=new a_,l_=(t,r)=>{const o=r?.id||Am++;return Dn.addToast({title:t,...r,id:o}),o},i_=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",c_=l_,u_=()=>Dn.toasts,d_=()=>Dn.getActiveToasts(),uv=Object.assign(c_,{success:Dn.success,info:Dn.info,warning:Dn.warning,error:Dn.error,custom:Dn.custom,message:Dn.message,promise:Dn.promise,dismiss:Dn.dismiss,loading:Dn.loading},{getHistory:u_,getToasts:d_});Qk("[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 Cc(t){return t.label!==void 0}const f_=3,m_="24px",p_="16px",dv=4e3,h_=356,g_=14,x_=45,b_=200;function Ss(...t){return t.filter(Boolean).join(" ")}function y_(t){const[r,o]=t.split("-"),a=[];return r&&a.push(r),o&&a.push(o),a}const v_=t=>{var r,o,a,c,u,m,g,b,p;const{invert:y,toast:x,unstyled:S,interacting:j,setHeights:N,visibleToasts:k,heights:O,index:E,toasts:w,expanded:_,removeToast:T,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,[H,F]=De.useState(null),[A,B]=De.useState(null),[I,U]=De.useState(!1),[G,Q]=De.useState(!1),[he,le]=De.useState(!1),[de,He]=De.useState(!1),[ze,we]=De.useState(!1),[Ie,ge]=De.useState(0),[q,_e]=De.useState(0),Re=De.useRef(x.duration||te||dv),ke=De.useRef(null),be=De.useRef(null),Le=E===0,Ye=E+1<=k,Ue=x.type,ee=x.dismissible!==!1,Y=x.className||"",$=x.descriptionClassName||"",je=De.useMemo(()=>O.findIndex(ye=>ye.toastId===x.id)||0,[O,x.id]),xe=De.useMemo(()=>{var ye;return(ye=x.closeButton)!=null?ye:M},[x.closeButton,M]),ae=De.useMemo(()=>x.duration||te||dv,[x.duration,te]),Oe=De.useRef(0),Pe=De.useRef(0),We=De.useRef(0),pt=De.useRef(null),[Mt,mt]=K.split("-"),wt=De.useMemo(()=>O.reduce((ye,Ae,Ze)=>Ze>=je?ye:ye+Ae.height,0),[O,je]),Rt=o_(),zt=x.invert||y,Te=Ue==="loading";Pe.current=De.useMemo(()=>je*ne+wt,[je,wt]),De.useEffect(()=>{Re.current=ae},[ae]),De.useEffect(()=>{U(!0)},[]),De.useEffect(()=>{const ye=be.current;if(ye){const Ae=ye.getBoundingClientRect().height;return _e(Ae),N(Ze=>[{toastId:x.id,height:Ae,position:x.position},...Ze]),()=>N(Ze=>Ze.filter(nt=>nt.toastId!==x.id))}},[N,x.id]),De.useLayoutEffect(()=>{if(!I)return;const ye=be.current,Ae=ye.style.height;ye.style.height="auto";const Ze=ye.getBoundingClientRect().height;ye.style.height=Ae,_e(Ze),N(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,N,x.id,x.jsx,x.action,x.cancel]);const Se=De.useCallback(()=>{Q(!0),ge(Pe.current),N(ye=>ye.filter(Ae=>Ae.toastId!==x.id)),setTimeout(()=>{T(x)},b_)},[x,T,N,Pe]);De.useEffect(()=>{if(x.promise&&Ue==="loading"||x.duration===1/0||x.type==="loading")return;let ye;return _||j||Rt?(()=>{if(We.current<Oe.current){const nt=new Date().getTime()-Oe.current;Re.current=Re.current-nt}We.current=new Date().getTime()})():Re.current!==1/0&&(Oe.current=new Date().getTime(),ye=setTimeout(()=>{x.onAutoClose==null||x.onAutoClose.call(x,x),Se()},Re.current)),()=>clearTimeout(ye)},[_,j,x,Ue,Rt,Se]),De.useEffect(()=>{x.delete&&(Se(),x.onDismiss==null||x.onDismiss.call(x,x))},[Se,x.delete]);function Fe(){var ye;if(z?.loading){var Ae;return De.createElement("div",{className:Ss(D?.loader,x==null||(Ae=x.classNames)==null?void 0:Ae.loader,"sonner-loader"),"data-visible":Ue==="loading"},z.loading)}return De.createElement(Wk,{className:Ss(D?.loader,x==null||(ye=x.classNames)==null?void 0:ye.loader),visible:Ue==="loading"})}const Ot=x.icon||z?.[Ue]||Zk(Ue);var Pt,se;return De.createElement("li",{tabIndex:0,ref:be,className:Ss(re,Y,D?.toast,x==null||(r=x.classNames)==null?void 0:r.toast,D?.default,D?.[Ue],x==null||(o=x.classNames)==null?void 0:o[Ue]),"data-sonner-toast":"","data-rich-colors":(Pt=x.richColors)!=null?Pt:V,"data-styled":!(x.jsx||x.unstyled||S),"data-mounted":I,"data-promise":!!x.promise,"data-swiped":ze,"data-removed":G,"data-visible":Ye,"data-y-position":Mt,"data-x-position":mt,"data-index":E,"data-front":Le,"data-swiping":he,"data-dismissible":ee,"data-type":Ue,"data-invert":zt,"data-swipe-out":de,"data-swipe-direction":A,"data-expanded":!!(_||W&&I),"data-testid":x.testId,style:{"--index":E,"--toasts-before":E,"--z-index":w.length-E,"--offset":`${G?Ie:Pe.current}px`,"--initial-height":W?"auto":`${q}px`,...L,...x.style},onDragEnd:()=>{le(!1),F(null),pt.current=null},onPointerDown:ye=>{ye.button!==2&&(Te||!ee||(ke.current=new Date,ge(Pe.current),ye.target.setPointerCapture(ye.pointerId),ye.target.tagName!=="BUTTON"&&(le(!0),pt.current={x:ye.clientX,y:ye.clientY})))},onPointerUp:()=>{var ye,Ae,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(((Ae=be.current)==null?void 0:Ae.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),rt=new Date().getTime()-((Ze=ke.current)==null?void 0:Ze.getTime()),qt=H==="x"?nt:at,Xn=Math.abs(qt)/rt;if(Math.abs(qt)>=x_||Xn>.11){ge(Pe.current),x.onDismiss==null||x.onDismiss.call(x,x),B(H==="x"?nt>0?"right":"left":at>0?"down":"up"),Se(),He(!0);return}else{var Zt,hn;(Zt=be.current)==null||Zt.style.setProperty("--swipe-amount-x","0px"),(hn=be.current)==null||hn.style.setProperty("--swipe-amount-y","0px")}we(!1),le(!1),F(null)},onPointerMove:ye=>{var Ae,Ze,nt;if(!pt.current||!ee||((Ae=window.getSelection())==null?void 0:Ae.toString().length)>0)return;const rt=ye.clientY-pt.current.y,qt=ye.clientX-pt.current.x;var Xn;const Zt=(Xn=t.swipeDirections)!=null?Xn:y_(K);!H&&(Math.abs(qt)>1||Math.abs(rt)>1)&&F(Math.abs(qt)>Math.abs(rt)?"x":"y");let hn={x:0,y:0};const dr=In=>1/(1.5+Math.abs(In)/20);if(H==="y"){if(Zt.includes("top")||Zt.includes("bottom"))if(Zt.includes("top")&&rt<0||Zt.includes("bottom")&&rt>0)hn.y=rt;else{const In=rt*dr(rt);hn.y=Math.abs(In)<Math.abs(rt)?In:rt}}else if(H==="x"&&(Zt.includes("left")||Zt.includes("right")))if(Zt.includes("left")&&qt<0||Zt.includes("right")&&qt>0)hn.x=qt;else{const In=qt*dr(qt);hn.x=Math.abs(In)<Math.abs(qt)?In:qt}(Math.abs(hn.x)>0||Math.abs(hn.y)>0)&&we(!0),(Ze=be.current)==null||Ze.style.setProperty("--swipe-amount-x",`${hn.x}px`),(nt=be.current)==null||nt.style.setProperty("--swipe-amount-y",`${hn.y}px`)}},xe&&!x.jsx&&Ue!=="loading"?De.createElement("button",{"aria-label":P,"data-disabled":Te,"data-close-button":!0,onClick:Te||!ee?()=>{}:()=>{Se(),x.onDismiss==null||x.onDismiss.call(x,x)},className:Ss(D?.closeButton,x==null||(a=x.classNames)==null?void 0:a.closeButton)},(se=z?.close)!=null?se:r_):null,(Ue||x.icon||x.promise)&&x.icon!==null&&(z?.[Ue]!==null||x.icon)?De.createElement("div",{"data-icon":"",className:Ss(D?.icon,x==null||(c=x.classNames)==null?void 0:c.icon)},x.promise||x.type==="loading"&&!x.icon?x.icon||Fe():null,x.type!=="loading"?Ot:null):null,De.createElement("div",{"data-content":"",className:Ss(D?.content,x==null||(u=x.classNames)==null?void 0:u.content)},De.createElement("div",{"data-title":"",className:Ss(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?De.createElement("div",{"data-description":"",className:Ss(ie,$,D?.description,x==null||(g=x.classNames)==null?void 0:g.description)},typeof x.description=="function"?x.description():x.description):null),De.isValidElement(x.cancel)?x.cancel:x.cancel&&Cc(x.cancel)?De.createElement("button",{"data-button":!0,"data-cancel":!0,style:x.cancelButtonStyle||C,onClick:ye=>{Cc(x.cancel)&&ee&&(x.cancel.onClick==null||x.cancel.onClick.call(x.cancel,ye),Se())},className:Ss(D?.cancelButton,x==null||(b=x.classNames)==null?void 0:b.cancelButton)},x.cancel.label):null,De.isValidElement(x.action)?x.action:x.action&&Cc(x.action)?De.createElement("button",{"data-button":!0,"data-action":!0,style:x.actionButtonStyle||Z,onClick:ye=>{Cc(x.action)&&(x.action.onClick==null||x.action.onClick.call(x.action,ye),!ye.defaultPrevented&&Se())},className:Ss(D?.actionButton,x==null||(p=x.classNames)==null?void 0:p.actionButton)},x.action.label):null)};function fv(){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 S_(t,r){const o={};return[t,r].forEach((a,c)=>{const u=c===1,m=u?"--mobile-offset":"--offset",g=u?p_:m_;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 E_=De.forwardRef(function(r,o){const{id:a,invert:c,position:u="bottom-right",hotkey:m=["altKey","KeyT"],expand:g,closeButton:b,className:p,offset:y,mobileOffset:x,theme:S="light",richColors:j,duration:N,style:k,visibleToasts:O=f_,toastOptions:E,dir:w=fv(),gap:_=g_,icons:T,containerAriaLabel:V="Notifications"}=r,[M,L]=De.useState([]),C=De.useMemo(()=>a?M.filter(I=>I.toasterId===a):M.filter(I=>!I.toasterId),[M,a]),Z=De.useMemo(()=>Array.from(new Set([u].concat(C.filter(I=>I.position).map(I=>I.position)))),[C,u]),[re,ie]=De.useState([]),[te,K]=De.useState(!1),[ne,W]=De.useState(!1),[D,z]=De.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),P=De.useRef(null),H=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),F=De.useRef(null),A=De.useRef(!1),B=De.useCallback(I=>{L(U=>{var G;return(G=U.find(Q=>Q.id===I.id))!=null&&G.delete||Dn.dismiss(I.id),U.filter(({id:Q})=>Q!==I.id)})},[]);return De.useEffect(()=>Dn.subscribe(I=>{if(I.dismiss){requestAnimationFrame(()=>{L(U=>U.map(G=>G.id===I.id?{...G,delete:!0}:G))});return}setTimeout(()=>{RC.flushSync(()=>{L(U=>{const G=U.findIndex(Q=>Q.id===I.id);return G!==-1?[...U.slice(0,G),{...U[G],...I},...U.slice(G+1)]:[I,...U]})})})}),[M]),De.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:U})=>{z(U?"dark":"light")})}catch{I.addListener(({matches:G})=>{try{z(G?"dark":"light")}catch(Q){console.error(Q)}})}},[S]),De.useEffect(()=>{M.length<=1&&K(!1)},[M]),De.useEffect(()=>{const I=U=>{var G;if(m.every(le=>U[le]||U.code===le)){var he;K(!0),(he=P.current)==null||he.focus()}U.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]),De.useEffect(()=>{if(P.current)return()=>{F.current&&(F.current.focus({preventScroll:!0}),F.current=null,A.current=!1)}},[P.current]),De.createElement("section",{ref:o,"aria-label":`${V} ${H}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Z.map((I,U)=>{var G;const[Q,he]=I.split("-");return C.length?De.createElement("ol",{key:I,dir:w==="auto"?fv():w,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":`${h_}px`,"--gap":`${_}px`,...k,...S_(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&&U===0||le.position===I).map((le,de)=>{var He,ze;return De.createElement(v_,{key:le.id,icons:T,index:de,toast:le,defaultRichColors:j,duration:(He=E?.duration)!=null?He:N,className:E?.className,descriptionClassName:E?.descriptionClassName,invert:c,visibleToasts:O,closeButton:(ze=E?.closeButton)!=null?ze:b,interacting:ne,position:I,style:E?.style,unstyled:E?.unstyled,classNames:E?.classNames,cancelButtonStyle:E?.cancelButtonStyle,actionButtonStyle:E?.actionButtonStyle,closeButtonAriaLabel:E?.closeButtonAriaLabel,removeToast:B,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}))}),lS=h.createContext(!1),iS=h.createContext(void 0);function Oo(t){const r=h.useContext(iS);if(t===!1&&r===void 0)throw new Error(jn(27));return r}const N_={...Jl,...ru},j_=h.forwardRef(function(r,o){const{render:a,className:c,style:u,forceRender:m=!1,...g}=r,{store:b}=Oo(),p=b.useState("open"),y=b.useState("nested"),x=b.useState("mounted"),S=b.useState("transitionStatus");return pn("div",r,{state:{open:p,transitionStatus:S},ref:[b.context.backdropRef,o],stateAttributesMapping:N_,props:[{role:"presentation",hidden:!x,style:{userSelect:"none",WebkitUserSelect:"none"}},g],enabled:m||!y})}),cS=h.forwardRef(function(r,o){const{render:a,className:c,style:u,disabled:m=!1,nativeButton:g=!0,...b}=r,{store:p}=Oo(),y=p.useState("open"),{getButtonProps:x,buttonRef:S}=Zl({disabled:m,native:g}),j={disabled:m};function N(k){y&&p.setOpen(!1,jt(P0,k.nativeEvent))}return pn("button",r,{state:j,ref:[o,S],props:[{onClick:N},b,x]})}),w_=h.forwardRef(function(r,o){const{render:a,className:c,style:u,id:m,...g}=r,{store:b}=Oo(),p=Ro(m);return b.useSyncedValueWithCleanup("descriptionElementId",p),pn("p",r,{ref:o,props:[{id:p},g]})});let T_=(function(t){return t.nestedDialogs="--nested-dialogs",t})({}),C_=(function(t){return t[t.open=ho.open]="open",t[t.closed=ho.closed]="closed",t[t.startingStyle=ho.startingStyle]="startingStyle",t[t.endingStyle=ho.endingStyle]="endingStyle",t.nested="data-nested",t.nestedDialogOpen="data-nested-dialog-open",t})({});const uS=h.createContext(void 0);function R_(){const t=h.useContext(uS);if(t===void 0)throw new Error(jn(26));return t}const O_={...Jl,...ru,nestedDialogOpen(t){return t?{[C_.nestedDialogOpen]:""}:null}},k_=h.forwardRef(function(r,o){const{render:a,className:c,style:u,finalFocus:m,initialFocus:g,...b}=r,{store:p}=Oo(),y=p.useState("descriptionElementId"),x=p.useState("disablePointerDismissal"),S=p.useState("floatingRootContext"),j=p.useState("popupProps"),N=p.useState("modal"),k=p.useState("mounted"),O=p.useState("nested"),E=p.useState("nestedOpenDialogCount"),w=p.useState("open"),_=p.useState("openMethod"),T=p.useState("titleElementId"),V=p.useState("transitionStatus"),M=p.useState("role"),L=S.useState("floatingId"),C=b.id??L;R_(),cu({open:w,ref:p.context.popupRef,onComplete(){w&&p.context.onOpenChangeComplete?.(!0)}});const Z=g===void 0?D1(p.context.popupRef):g,re=E>0,ie=p.useStateSetter("popupElement"),K=pn("div",r,{state:{open:w,nested:O,transitionStatus:V,nestedDialogOpen:re},props:[j,{id:C,"aria-labelledby":T??void 0,"aria-describedby":y??void 0,role:M,...xu,hidden:!k,onKeyDown(ne){Bp.has(ne.key)&&ne.stopPropagation()},style:{[T_.nestedDialogs]:E}},b],ref:[o,p.context.popupRef,ie],stateAttributesMapping:O_});return i.jsx(Cp,{context:S,openInteractionType:_,disabled:!k,closeOnFocusOut:!x,initialFocus:Z,returnFocus:m,modal:N!==!1,restoreFocus:"popup",children:K})}),__=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:u}=Oo(),m=u.useState("mounted"),g=u.useState("modal"),b=u.useState("open");return m||a?i.jsx(uS.Provider,{value:a,children:i.jsxs(Np,{ref:o,...c,children:[m&&g===!0&&i.jsx(Pp,{ref:u.context.internalBackdropRef,inert:Up(!b)}),r.children]})}):null});function M_(t){const{store:r,actionsRef:o}=t,a=r.useState("open");H1(r,a),_p(r);const{forceUnmount:c}=Mp(a,r),u=h.useCallback(()=>{r.setOpen(!1,jt(fp))},[r]);h.useImperativeHandle(o,()=>({unmount:c,close:u}),[c,u])}function A_({store:t,parentContext:r,isDrawer:o}){const a=t.useState("open"),c=t.useState("disablePointerDismissal"),u=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=Rp(g,{outsidePressEvent(){return t.context.internalBackdropRef.current||t.context.backdropRef.current?"intentional":{mouse:u==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(E){if(!t.context.outsidePressEnabledRef.current||"button"in E&&E.button!==0||"touches"in E&&E.touches.length!==1)return!1;const w=zn(E);return S&&!c?u&&(t.context.internalBackdropRef.current||t.context.backdropRef.current)?t.context.internalBackdropRef.current===w||t.context.backdropRef.current===w||tt(w,m)&&!w?.hasAttribute("data-base-ui-portal"):!0:!1},escapeKey:S});eS(a&&u===!0,m),t.useContextCallback("onNestedDialogOpen",(E,w)=>{p(E),x(w)}),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 N=j.reference??Vt,k=j.trigger??Vt,O=j.floating??Vt;return Ap(t,{activeTriggerProps:N,inactiveTriggerProps:k,popupProps:O,nestedOpenDialogCount:b,nestedOpenDrawerCount:y}),null}const D_={...Lp,modal:qe(t=>t.modal),nested:qe(t=>t.nested),nestedOpenDialogCount:qe(t=>t.nestedOpenDialogCount),nestedOpenDrawerCount:qe(t=>t.nestedOpenDrawerCount),disablePointerDismissal:qe(t=>t.disablePointerDismissal),openMethod:qe(t=>t.openMethod),descriptionElementId:qe(t=>t.descriptionElementId),titleElementId:qe(t=>t.titleElementId),viewportElement:qe(t=>t.viewportElement),role:qe(t=>t.role)};class Vp extends hu{constructor(r,o,a=!1){const c=new ei,u=z_(r);u.floatingRootContext=U1(c,o,a),super(u,{popupRef:h.createRef(),backdropRef:h.createRef(),internalBackdropRef:h.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:c,onOpenChange:void 0,onOpenChangeComplete:void 0},D_)}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};kp(a,r,o.trigger),this.update(a)};static useStore(r,o){return z1(r,(c,u)=>new Vp(o,c,u),!0).store}}function z_(t={}){return{...Dp(),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 L_(t,r="dialog"){const{children:o,open:a,defaultOpen:c=!1,onOpenChange:u,onOpenChangeComplete:m,disablePointerDismissal:g=!1,modal:b=!0,actionsRef:p,handle:y,triggerId:x,defaultTriggerId:S=null}=t,j=r==="drawer",N=r==="alert-dialog",k=N?!0:b,O=N||g,E=N?"alertdialog":"dialog",w=Oo(!0),T={modal:k,disablePointerDismissal:O,nested:!!w,role:E},V=Vp.useStore(y?.store,{open:c,openProp:a,activeTriggerId:S,triggerIdProp:x,...T});R1(()=>{const ie=a===void 0&&V.state.open===!1&&c===!0?{open:!0,activeTriggerId:S}:null;N?V.update(ie?{...T,...ie}:T):ie&&V.update(ie)}),V.useControlledProp("openProp",a),V.useControlledProp("triggerIdProp",x),V.useSyncedValues(T),V.useContextCallback("onOpenChange",u),V.useContextCallback("onOpenChangeComplete",m);const M=V.useState("open"),L=V.useState("mounted"),C=V.useState("payload");M_({store:V,actionsRef:p});const Z=M||L,re=h.useMemo(()=>({store:V}),[V]);return i.jsx(lS.Provider,{value:!1,children:i.jsxs(iS.Provider,{value:re,children:[Z&&i.jsx(A_,{store:V,parentContext:w?.store.context,isDrawer:j}),typeof o=="function"?o({payload:C}):o]})})}function I_(t){const r=h.useContext(lS)?"drawer":"dialog";return L_(t,r)}const B_=h.forwardRef(function(r,o){const{render:a,className:c,style:u,id:m,...g}=r,{store:b}=Oo(),p=Ro(m);return b.useSyncedValueWithCleanup("titleElementId",p),pn("h2",r,{ref:o,props:[{id:p},g]})});function ws({...t}){return i.jsx(I_,{"data-slot":"dialog",...t})}function H_({...t}){return i.jsx(__,{"data-slot":"dialog-portal",...t})}function U_({className:t,...r}){return i.jsx(j_,{"data-slot":"dialog-overlay",className:$e("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 Ts({className:t,children:r,showCloseButton:o=!0,...a}){return i.jsxs(H_,{children:[i.jsx(U_,{}),i.jsxs(k_,{"data-slot":"dialog-content",className:$e("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -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 max-w-lg 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(cS,{"data-slot":"dialog-close",render:i.jsx(me,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[i.jsx(fs,{}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function Cs({className:t,...r}){return i.jsx("div",{"data-slot":"dialog-header",className:$e("flex flex-col gap-2",t),...r})}function Rs({className:t,showCloseButton:r=!1,children:o,...a}){return i.jsxs("div",{"data-slot":"dialog-footer",className:$e("-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(cS,{render:i.jsx(me,{variant:"outline"}),children:"Close"})]})}function Os({className:t,...r}){return i.jsx(B_,{"data-slot":"dialog-title",className:$e("font-heading text-base leading-none font-medium",t),...r})}function P_({className:t,...r}){return i.jsx(w_,{"data-slot":"dialog-description",className:$e("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",t),...r})}const os={volume:"卷",chapter:"章",scene:"场"},Y_={volume:"chapter",chapter:"scene",scene:null};function ka({title:t,description:r,confirmLabel:o,danger:a=!1,onConfirm:c,onClose:u}){const[m,g]=h.useState(null),[b,p]=h.useState(!1);async function y(){p(!0),g(null);try{await c(),u()}catch(x){g(x instanceof Me?x.message:"操作失败,请稍后重试")}finally{p(!1)}}return i.jsx(ws,{open:!0,onOpenChange:x=>!x&&u(),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Os,{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(Rs,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:u,disabled:b,children:"取消"}),i.jsx(me,{variant:a?"destructive":"default",type:"button",onClick:()=>{y()},disabled:b,children:o})]})]})})}const mv="ai-editor:theme";function dS(){const[t,r]=h.useState("light");h.useEffect(()=>{const c=localStorage.getItem(mv)==="dark"?"dark":"light";r(c),document.documentElement.classList.toggle("dark",c==="dark")},[]);function o(){const a=t==="dark"?"light":"dark";localStorage.setItem(mv,a),document.documentElement.classList.toggle("dark",a==="dark"),r(a)}return{theme:t,toggleTheme:o}}const V_=({...t})=>{const{theme:r="light"}=dS();return i.jsx(E_,{theme:r,position:"top-right",className:"toaster group",icons:{success:i.jsx(qm,{className:"size-4"}),info:i.jsx(n0,{className:"size-4"}),warning:i.jsx(Km,{className:"size-4"}),error:i.jsx(ow,{className:"size-4"}),loading:i.jsx(Il,{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 F_(t,r){return t!==null&&t.id!==r}function G_(){const t=Ce(o=>o.confirmState),r=Ce(o=>o.resolveConfirm);return t===null?null:i.jsx(ka,{title:t.title,description:t.description??"",confirmLabel:"确认",danger:t.danger,onConfirm:async()=>r(!0),onClose:()=>r(!1)})}function q_(){const t=Ce(c=>c.toast),r=Ce(c=>c.error),o=Ce(c=>c.clearError),a=h.useRef(null);return h.useEffect(()=>{!t||!F_(t,a.current)||(a.current=t.id,t.kind==="error"?uv.error(t.text,{duration:gm}):uv.success(t.text,{duration:gm}))},[t]),i.jsxs(i.Fragment,{children:[i.jsx(V_,{}),i.jsx(G_,{}),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(Gm,{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(fs,{className:"size-4"})})]})]})}function $_({chatOpen:t,onToggleChat:r}){const o=Be(y=>y.config),a=Be(y=>y.configLoading),c=Be(y=>y.outline),u=Ce(y=>y.setFocusOutlineNode),m=Ce(y=>y.notifyDataChanged),g=Qm("(min-width: 1024px)"),b=o?.currentPosition!=null?T0(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&&u(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(Sw,{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(Bl,{className:"size-4"})})]})}const X_=[{label:"概览",href:"#/",segment:null,icon:Gj},{label:"大纲",href:"#/outline",segment:"outline",icon:Kj},{label:"画布",href:"#/canvas",segment:"canvas",icon:Ow},{label:"实体关系",href:"#/entities/character",segment:"entities",icon:sw},{label:"伏笔",href:"#/hooks",segment:"hooks",icon:yw},{label:"时间轴",href:"#/timeline",segment:"timeline",icon:Rj},{label:"回收站",href:"#/trash",segment:"trash",icon:Ql}];function K_({route:t}){const r=t.segments[0]??null,o=Be(u=>u.loadError==="NO_PROJECT_OPEN"),a=Ce(u=>u.showToast),c=(u,m)=>{!o||m.segment===null||(u.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:X_.map(u=>{const m=u.icon,g=r===u.segment;return i.jsxs("a",{href:u.href,"aria-current":g?"page":void 0,onClick:b=>c(b,u),className:$e("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:u.label})]},u.label)})})}function Q_({route:t,chatOpen:r,onToggleChat:o,isDesktop:a,children:c}){const u=Be(m=>m.loadConfig);return h.useEffect(()=>{u()},[u]),i.jsxs("main",{className:"flex min-w-0 flex-[5_1_50%] flex-col",style:a?{flex:"1 1 0%",minWidth:Uw}:void 0,children:[i.jsx($_,{chatOpen:r,onToggleChat:o}),i.jsx("div",{className:"shrink-0 px-3 py-2",children:i.jsx(K_,{route:t})}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-6",children:c})]})}function Ll(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 Z_(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 J_(t,r){return t==="CLIENT_NETWORK_ERROR"?"无法连接服务,请确认 ai-editor 服务已启动":r}function Lc(t){const r=t.trim();return r===""?"请输入书名":/[\\/]|^\.+$|[\u0000-\u001f]/.test(r)?"书名不能包含 /、\\ 或为 . / ..":null}let pv=(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 W_={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Al={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},e3={disabled:!1,...Al},t3={valid(t){return t===null?null:t?{[pv.valid]:""}:{[pv.invalid]:""}}},n3={invalid:void 0,name:void 0,validityData:{state:W_,errors:[],error:"",value:"",initialValue:null},setValidityData:fn,disabled:void 0,touched:Al.touched,setTouched:fn,dirty:Al.dirty,setDirty:fn,filled:Al.filled,setFilled:fn,focused:Al.focused,setFocused:fn,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:e3,markedDirtyRef:{current:!1},registerFieldControl:fn,validation:{getValidationProps:(t,r=Vt)=>r,inputRef:{current:null},registerInput:fn,commit:async()=>{},change:fn}},s3=h.createContext(n3);function fS(t=!0){const r=h.useContext(s3);if(r.setValidityData===fn&&!t)throw new Error(jn(28));return r}const r3=h.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:fn,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function o3(){return h.useContext(r3)}const a3=h.createContext({controlId:void 0,registerControlId:fn,labelId:void 0,setLabelId:fn,messageIds:[],setMessageIds:fn,getDescriptionProps:t=>t});function mS(){return h.useContext(a3)}function l3(t={}){const{id:r,implicit:o=!1,controlRef:a}=t,{controlId:c,registerControlId:u}=mS(),m=Ro(r),g=o?c:void 0,b=Ln(()=>Symbol("labelable-control")),p=h.useRef(!1),y=h.useRef(r!=null),x=st(()=>{!p.current||u===fn||(p.current=!1,u(b.current,void 0))});return Qe(()=>{if(u===fn)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,u(b.current,S)},[r,a,g,u,o,m,b,x]),h.useEffect(()=>x,[x]),c??m}function i3(t,r,o,a,c=!0,u){const{registerFieldControl:m}=fS(),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:u,value:o}),()=>{m(b,void 0)})},[t,c,a,r,u,m,o])}const c3=h.forwardRef(function(r,o){const{render:a,className:c,id:u,name:m,value:g,disabled:b=!1,onValueChange:p,defaultValue:y,autoFocus:x=!1,style:S,...j}=r,{state:N,name:k,disabled:O,setTouched:E,setDirty:w,validityData:_,setFocused:T,setFilled:V,validationMode:M,validation:L}=fS(),{clearErrors:C}=o3(),Z=O||b,re=k??m,ie={...N,disabled:Z},{labelId:te}=mS(),K=l3({id:u});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===Tn(Nt(ne.current))&&T(!0)},[x,T]);const[W]=fC({controlled:g,default:y,name:"FieldControl",state:"value"}),D=g!==void 0,z=D?W:void 0,P=st(()=>L.inputRef.current?.value);return i3(L.inputRef,K,z,P,!Z,m),pn("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(H0,F.nativeEvent)),w(A!==_.initialValue),V(A!==""),F.nativeEvent.defaultPrevented||(C(re),L.change(A))},onFocus(){T(!0)},onBlur(F){E(!0),T(!1),M==="onBlur"&&L.commit(F.currentTarget.value)},onKeyDown(F){F.currentTarget.tagName==="INPUT"&&F.key==="Enter"&&(E(!0),L.commit(F.currentTarget.value))}},j,F=>L.getValidationProps(Z,F)],stateAttributesMapping:t3})}),u3=h.forwardRef(function(r,o){return i.jsx(c3,{ref:o,...r})});function _t({className:t,type:r,autoComplete:o="off",...a}){return i.jsx(u3,{type:r,autoComplete:o,"data-slot":"input",className:$e("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 d3(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 f3(){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),u=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:()=>u(m.id),className:$e("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(Bl,{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:bo(m.updatedAt)})]})},m.id))})}function m3({width:t,onToggleCollapse:r}){const{theme:o,toggleTheme:a}=dS(),c=Be(ee=>ee.config),u=Be(ee=>ee.bookshelf),m=Be(ee=>ee.bookshelfLoading),g=Be(ee=>ee.bookshelfError),b=Be(ee=>ee.loadBookshelf),p=Be(ee=>ee.openProjectAt),y=Be(ee=>ee.createProjectAt),[x,S]=h.useState(null),[j,N]=h.useState(!1),[k,O]=h.useState(""),[E,w]=h.useState(null),[_,T]=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(""),[H,F]=h.useState(!1),[A,B]=h.useState(null),[I,U]=h.useState(""),[G,Q]=h.useState(null),[he,le]=h.useState(!1),de=h.useRef(null);h.useEffect(()=>{!m&&u===null&&g===null&&b()},[m,u,g,b]);async function He(ee){try{await p(ee),S(ee)}catch(Y){Ce.getState().showToast(Ll(Y instanceof Me?Y.code:null),"error")}}const ze=c?.id??null,we=h.useRef(ze);h.useEffect(()=>{we.current!==ze&&(we.current=ze,S(null),B(null))},[ze]);function Ie(){O(""),w(null),N(!1)}async function ge(ee){ee.preventDefault();const Y=k.trim(),$=Lc(Y);if($!==null){w($);return}if(!u){w("书架未加载,请稍后重试");return}T(!0),w(null);try{await y(C0(u.rootPath,Y),{name:Y,language:"zh"}),Ce.getState().showToast(`已创建并打开《${Y}》`),await b();const je=Be.getState().bookshelf?.books.find(xe=>xe.name===Y);je&&S(je.path),O(""),N(!1)}catch(je){w(Ll(je instanceof Me?je.code:null))}finally{T(!1)}}async function q(ee){if(!H){F(!0);try{const{blob:Y,filename:$}=await l2(),je=URL.createObjectURL(Y),xe=document.createElement("a");xe.href=je,xe.download=$,document.body.appendChild(xe),xe.click(),xe.remove(),setTimeout(()=>URL.revokeObjectURL(je),0),Ce.getState().showToast(`已导出《${ee}》备份`)}catch(Y){Ce.getState().showToast(J_(Y instanceof Me?Y.code:null,Y instanceof Me?Y.message:"导出失败,请重试"),"error")}finally{F(!1)}}}function _e(ee){const Y=ee.target.files?.[0]??null;if(C(Y),te(null),Y){const $=Y.name.replace(/\.zip$/i,""),je=Z.trim()===""?$:Z;re(je),Re(je)}}function Re(ee){const Y=ee.trim(),$=je=>u?.books.some(xe=>xe.name===je)??!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 ke(ee){const Y=ee.target.value;re(Y),Re(Y)}async function be(ee,Y){const $=ee.trim();if(!L){te("请选择备份文件");return}const je=Lc($);if(je!==null){te(je);return}ne(!0),te(null);try{const xe=await i2(L,$);Ce.getState().showToast(xe.mode==="restored"?`已恢复备份《${xe.name}》`:`已导入为新书《${xe.name}》`),await b(),M(!1),C(null),re(""),D(!1),P("")}catch(xe){const ae=Z_(xe instanceof Me?xe.code:null,xe instanceof Me?xe.message:"导入失败,请重试");te(ae),ae!==""&&Ce.getState().showToast(ae,"error")}finally{ne(!1)}}function Le(ee){B(ee.path),U(ee.name),Q(null),window.setTimeout(()=>de.current?.focus(),150)}function Ye(){B(null),U(""),Q(null)}async function Ue(){if(A===null||he)return;const ee=I.trim();if(ee===Be.getState().config?.name){Ye();return}const Y=Lc(ee);if(Y!==null){Q(Y);return}le(!0),Q(null);try{await m2(ee),Ce.getState().showToast(`已重命名为《${ee}》`),await Promise.all([b(),Be.getState().loadConfig()]),Ye()}catch($){($ instanceof Me?$.code:null)==="PROJECT_ALREADY_EXISTS"?Q("书架已有同名书籍,请换一个名字"):$ instanceof Me&&$.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:Hl}: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 italic text-foreground 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:"mr-1.5 flex size-7 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:i.jsx(lw,{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(Lw,{})}),j?i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:Ie,"aria-label":"取消新建项目",title:"取消新建",children:i.jsx(fs,{})}):i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:()=>N(!0),"aria-label":"新建项目",title:"新建项目",children:i.jsx(Wc,{})})]})]}),j&&i.jsxs("form",{onSubmit:ge,className:"mb-1 flex flex-col gap-1 px-1","aria-label":"新建项目",children:[i.jsx(_t,{value:k,onChange:ee=>O(ee.target.value),onKeyDown:ee=>{ee.key==="Escape"&&Ie()},onBlur:Ie,placeholder:"书名,回车创建",maxLength:60,disabled:_,autoFocus:!0,"aria-label":"书名"}),E&&i.jsx("p",{className:"text-xs text-destructive",children:E})]}),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&&u===null&&i.jsx("div",{className:"space-y-1 px-1 py-2",children:[0,1,2].map(ee=>i.jsx("div",{className:"h-8 animate-pulse rounded-lg bg-muted"},ee))}),g===null&&!m&&u&&u.books.length===0&&i.jsx("p",{className:"px-1 py-2 text-xs text-muted-foreground/70",children:"还没有书,先创建一本"}),g===null&&u&&u.books.length>0&&i.jsx("ul",{className:"space-y-0.5",children:u.books.map(ee=>{const Y=x===ee.path,$=c!==null&&ee.name===c.name,je=A===ee.path;return i.jsxs("li",{children:[i.jsxs("div",{className:"flex items-center",children:[je?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(mm,{className:"size-3.5 shrink-0 text-primary"}),i.jsx(_t,{ref:de,value:I,onChange:xe=>U(xe.target.value),onKeyDown:xe=>{xe.key==="Enter"?(xe.preventDefault(),Ue()):xe.key==="Escape"&&Ye()},onBlur:()=>{Ue()},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:()=>{He(ee.path)},className:$e("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(mm,{className:$e("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:is(ee.updatedAt),children:d3(ee.updatedAt)})]}),$&&i.jsx("button",{type:"button",onClick:()=>{q(ee.name)},disabled:H,"aria-label":`导出《${ee.name}》备份`,title:"导出备份(zip)",className:"flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-50",children:H?i.jsx(Il,{className:"size-3.5 animate-spin"}):i.jsx(Bj,{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:"flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:i.jsx(Fm,{className:$e("size-4 transition-transform duration-200",Y&&"rotate-90")})}),$&&i.jsx("button",{type:"button","aria-label":`重命名《${ee.name}》`,title:"重命名",onClick:()=>Le(ee),className:"flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:i.jsx(Kl,{className:"size-3.5"})})]}),je&&G&&i.jsx("p",{className:"px-2 pb-1 text-xs text-destructive",children:G}),Y&&i.jsx(f3,{})]},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(Cw,{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(Mw,{className:"size-4 shrink-0"}):i.jsx(tw,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:o==="dark"?"浅色模式":"深色模式"})]})]}),i.jsx(ws,{open:V,onOpenChange:ee=>{M(ee),ee||(te(null),C(null),re(""),D(!1),P(""))},children:i.jsxs(Ts,{className:"sm:max-w-sm",children:[i.jsxs(Cs,{children:[i.jsx(Os,{children:"导入书籍"}),i.jsx(P_,{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:_e,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(_t,{value:Z,onChange:ke,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(Rs,{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 hv({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:u=>{u.preventDefault(),u.currentTarget.setPointerCapture(u.pointerId),o(t,u.clientX)},onPointerMove:u=>a(t,u.clientX),onPointerUp:c,onPointerCancel:c,className:$e("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(Xm,{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 gv({side:t,onExpand:r}){const o=t==="sidebar",a=o?cw:mw;return i.jsx("div",{className:$e("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:"mt-3 flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:i.jsx(a,{className:"size-4"})})})}function p3({route:t,children:r}){const[o,a]=h.useState(!1),{layout:c,isDesktop:u,dragSide:m,toggleCollapse:g,startResize:b,moveResize:p,endResize:y}=Fw(),x=m!==null;return i.jsxs("div",{className:$e("flex h-screen overflow-hidden",x&&"select-none"),children:[u&&c.collapsedSidebar?i.jsx(gv,{side:"sidebar",onExpand:()=>g("sidebar")}):i.jsx(m3,{width:u?c.sidebarWidth:void 0,onToggleCollapse:u?()=>g("sidebar"):void 0}),u&&!c.collapsedSidebar&&i.jsx(hv,{side:"sidebar",active:m==="sidebar",onStart:b,onMove:p,onEnd:y}),i.jsx(Q_,{isDesktop:u,route:t,chatOpen:o,onToggleChat:()=>a(S=>!S),children:r}),u&&!c.collapsedChat&&i.jsx(hv,{side:"chat",active:m==="chat",onStart:b,onMove:p,onEnd:y}),u&&c.collapsedChat?i.jsx(gv,{side:"chat",onExpand:()=>g("chat")}):i.jsx(Kk,{open:o,onClose:()=>a(!1),width:u?c.chatWidth:void 0,onToggleCollapse:u?()=>g("chat"):void 0}),i.jsx(q_,{})]})}class h3 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(Gm,{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 break-all font-mono text-xs 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(Nw,{className:"size-4"}),"重新加载"]}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>{window.location.hash="#/",window.location.reload()},children:"回到首页"})]})]})})}}function Ms(t){const r=Ce(a=>a.dataVersion),o=h.useRef(r);h.useEffect(()=>{r!==o.current&&(o.current=r,t())},[r])}const xv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},bv=["character","setting","location","hook"];function g3(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 em(t){return t instanceof Me?t.code:null}function yv(){const t=Be(q=>q.config),r=Be(q=>q.configLoading),o=Be(q=>q.outline),a=Be(q=>q.outlineLoading),c=Be(q=>q.loadOutline),u=Be(q=>q.bookshelf),m=Be(q=>q.bookshelfLoading),g=Be(q=>q.bookshelfError),b=Be(q=>q.loadBookshelf),p=Be(q=>q.openProjectAt),y=Be(q=>q.createProjectAt),x=St(q=>q.sessions),S=St(q=>q.sessionsLoading),j=St(q=>q.sessionsError),N=St(q=>q.loadSessions),k=St(q=>q.setCurrentSession),O=St(q=>q.currentSessionId),E=Ce(q=>q.setFocusOutlineNode),[w,_]=h.useState(""),[T,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,H]=h.useState(null),[F,A]=h.useState(!1),[B,I]=h.useState(null),[U,G]=h.useState(0),[Q,he]=h.useState(!1),le=t===null&&!r,de=o?g3(o.children):null,He=t?.currentPosition!=null?T0(o,t.currentPosition)??t.currentPosition:null;h.useEffect(()=>{le&&!m&&u===null&&g===null&&b()},[le,m,u,g,b]),h.useEffect(()=>{he(!1)},[t?.id]),Ms(()=>{G(q=>q+1),c(),N()}),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 H(null),A(!0),I(null),Promise.allSettled(bv.map(async _e=>({type:_e,total:(await Nn(_e,{limit:1})).total}))).then(_e=>{if(q)return;const Re={};let ke=!1;for(const be of _e)be.status==="fulfilled"?Re[be.value.type]=be.value.total:ke=!0;H(Re),I(ke?"要素统计加载失败":null),A(!1)}),()=>{q=!0}},[t,U]),h.useEffect(()=>{t!==null&&x===null&&!S&&j===null&&N()},[t,x,S,j,N]);async function ze(q){q.preventDefault();const _e=w.trim(),Re=Lc(_e);if(Re!==null){V(Re);return}if(!u){V("书架未加载,请稍后重试");return}z(!0),V(null);try{await y(C0(u.rootPath,_e),{name:_e,language:"zh"}),await b(),Ce.getState().showToast(`已创建并打开《${_e}》`),_("")}catch(ke){V(Ll(em(ke)))}finally{z(!1)}}async function we(q){if(q.preventDefault(),!te.trim()){W("请输入项目目录路径(绝对路径)");return}z(!0),W(null);try{await p(te.trim())}catch(_e){W(Ll(em(_e)))}finally{z(!1)}}async function Ie(q){L(null);try{await p(q)}catch(_e){L(Ll(em(_e)))}}function ge(){t?.currentPosition!=null&&E(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:ze,className:be,children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsx(_t,{value:w,onChange:Le=>_(Le.target.value),placeholder:"书名",maxLength:60,disabled:D}),i.jsx(me,{type:"submit",disabled:D||u===null,children:"新建"})]}),T&&i.jsx("p",{className:"text-left text-sm text-destructive",children:T})]})};const _e=u===null&&m,Re=g!==null,ke=u!==null&&u.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:_e?i.jsxs("div",{className:"py-2",children:[i.jsx("div",{className:"mx-auto h-6 w-2/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"mx-auto mt-2 h-4 w-1/2 animate-pulse rounded bg-muted"}),i.jsxs("div",{className:"mt-5 space-y-2",children:[i.jsx("div",{className:"h-10 animate-pulse rounded-lg bg-muted"}),i.jsx("div",{className:"h-10 animate-pulse rounded-lg bg-muted"})]})]}):i.jsxs(i.Fragment,{children:[ke?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:u.books.map(be=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:`打开《${be.name}》`,onClick:()=>{Ie(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(mm,{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:bo(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")]})]}):Re?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(_t,{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("section",{className:"rounded-xl border border-border bg-card p-4",children:[i.jsx("h2",{className:"font-serif text-base text-foreground",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:He??t.currentPosition}):i.jsx("span",{className:"text-muted-foreground",children:"未设置"})}),i.jsx("a",{href:"#/outline",onClick:ge,className:ym({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.jsxs("section",{className:"rounded-xl border border-border bg-card p-4",children:[i.jsx("h2",{className:"font-serif text-base text-foreground",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:"h-20 animate-pulse rounded-lg bg-muted"},q))}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:bv.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:`查看${xv[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:xv[q]})]},q))}),B!==null&&i.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-destructive",children:[B,i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>G(q=>q+1),children:"重试"})]})]})]}),i.jsxs("section",{className:"rounded-xl border border-border bg-card p-4 lg:col-span-2",children:[i.jsx("h2",{className:"font-serif text-base text-foreground",children:"大纲概览"}),o===null&&(a||!Q)?i.jsxs("div",{className:"mt-3 space-y-2",children:[i.jsx("div",{className:"h-5 w-2/5 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/3 animate-pulse rounded bg-muted"})]}):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?bo(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:$e(ym({variant:"outline",size:"sm"})),children:"去大纲编辑"})})]})]}),i.jsxs("section",{className:"rounded-xl border border-border bg-card p-4 lg:col-span-2",children:[i.jsx("h2",{className:"font-serif text-base text-foreground",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:()=>{N()},children:"重试"})]}):i.jsx("div",{className:"mt-3 space-y-2",children:[0,1,2].map(q=>i.jsx("div",{className:"h-8 animate-pulse rounded-md bg-muted"},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:$e("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:bo(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 vv={plants:"埋设",advances:"推进",resolves:"回收"},x3={plants:gw,advances:Pj,resolves:qm};function pS({mark:t}){const r=x3[t.relationType];return i.jsx("span",{className:"shrink-0 rounded px-0.5 text-muted-foreground hover:text-foreground",title:`${vv[t.relationType]}伏笔:${t.hookName}`,"aria-label":`${vv[t.relationType]}伏笔:${t.hookName}`,children:i.jsx(r,{className:"size-3"})})}const Fp=["plants","advances","resolves"],Sv=["plants","advances","resolves"];function Ev(t){const r=Sv.indexOf(t);return r===-1?Sv.length:r}function hS(t){const r=new Map;for(const o of t){if(!Fp.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)=>Ev(a.relationType)-Ev(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 En="root",Nv={id:En,label:"(根)",depth:0};function b3(t,r){if(r==="volume")return[Nv];const o=r==="chapter"?[Nv]:[],a=(c,u)=>{for(const m of c)r==="chapter"&&m.type==="volume"?o.push({id:m.id,label:m.title,depth:u}):r==="scene"&&m.type==="chapter"&&o.push({id:m.id,label:m.title,depth:u}),m.children&&a(m.children,u+1)};return a(t,1),o}function Br(t,r){for(const o of t){if(o.id===r)return o;if(o.type!=="scene"&&o.children){const a=Br(o.children,r);if(a)return a}}return null}function Gp(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 u=Gp(a.children,r,c);if(u)return u}}return null}function rr(t,r=0,o=[]){for(const a of t)o.push({id:a.id,label:a.title,depth:r}),a.type!=="scene"&&a.children&&rr(a.children,r+1,o);return o}function y3(t,r,o){const a=Br(t,r);if(!a)return!1;const c=u=>u.id===o?!0:u.type!=="scene"&&u.children?u.children.some(m=>c(m)):!1;return c(a)}function Rc(t,r,o){return r===t.id||y3(o,t.id,r)?!1:b3(o,t.type).some(a=>a.id===r)}function gS(t,r){const o=r.trim();return o!==""&&o!==t.trim()}function xS(t,r){return r.trim()!==(t??"").trim()}function v3(t){return t==="OUTLINE_NODE_NOT_FOUND"?"abandon":"restore"}function bS(t,r){if(r===En)return t;const o=a=>{for(const c of a){if(c.id===r)return c.children??[];if(c.children){const u=o(c.children);if(u)return u}}return null};return o(t)}function jv(t,r,o){const a=o===void 0?t:t.filter(u=>u.id!==o);if(r.kind==="end")return a.length;const c=a.findIndex(u=>u.id===r.nodeId);return c===-1?a.length:r.kind==="before"?c:c+1}function wv(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 Dm(t,r){const o=(a,c)=>{for(const u of a){if(u.id===r)return c;if(u.children){const m=o(u.children,u.id);if(m!==null)return m}}return null};return o(t,En)}function S3(t,r){const o=Dm(t,r);if(o===null)return null;const c=(bS(t,o)??[]).findIndex(u=>u.id===r);return c===-1?null:{parentId:o,index:c}}function Tv(t,r,o,a){const c=S3(t,r);return c===null||c.parentId!==o?!1:a===c.index}function Oc(t){return t instanceof Me?t.code:null}function xa(t){switch(t){case"OUTLINE_NODE_NOT_FOUND":return"节点不存在(可能已被彻底删除),大纲已刷新";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function Ic(t,r,o,a,c){return i.jsx("input",{autoComplete:"off",autoFocus:!0,value:t,onChange:u=>r(u.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 Cv({type:t,onTypeChange:r,value:o,onChange:a,onKeyDown:c,onCancel:u,className:m}){return i.jsxs("div",{className:$e("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:$e("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:os[g]},g))}),Ic(o,a,c,u,`新${os[t]}标题,Enter 创建`)]})}function E3(){const t=Be(ee=>ee.outline),r=Be(ee=>ee.outlineLoading),o=Be(ee=>ee.config),a=Be(ee=>ee.configLoading),c=Be(ee=>ee.loadOutline),u=Ce(ee=>ee.focusOutlineNodeId),m=Ce(ee=>ee.clearFocusOutlineNode);Ms(()=>{c()});const[g,b]=h.useState(!1),[p,y]=h.useState(null),[x,S]=h.useState(new Set),[j,N]=h.useState(!1),[k,O]=h.useState(null),[E,w]=h.useState(null),[_,T]=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(Fp.map(Y=>Ur({source_type:"outline_node",relation_type:Y,depth:1}).then($=>$.relations).catch(()=>[]))).then(Y=>{ee||D(hS(Y.flat()))}),()=>{ee=!0}},[t]),h.useEffect(()=>{if(k===null)return;const ee=setTimeout(()=>O(null),3e3);return()=>clearTimeout(ee)},[k]),h.useEffect(()=>{if(u===null||t===null)return;const ee=u,Y=Gp(t.children,ee);if(Y===null){m();return}S(je=>{if(Y.every(ae=>!je.has(ae)))return je;const xe=new Set(je);for(const ae of Y)xe.delete(ae);return xe});const $=setTimeout(()=>{const je=document.querySelector(`[data-node-id="${ee}"]`);je&&(je.scrollIntoView({block:"center"}),w(ee)),m()},0);return()=>clearTimeout($)},[u,t,m]),h.useEffect(()=>{if(E===null)return;const ee=setTimeout(()=>w(null),3e3);return()=>clearTimeout(ee)},[E]);async function P(ee,Y){ee&&F(ee),await c(),Y&&O(Y)}function H(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 B(ee,Y){he(),T({nodeId:ee.id,field:Y}),M(Y==="title"?ee.title:ee.summary??"")}function I(){T(null),M("")}async function U(ee,Y){if(!_||_.nodeId!==ee.id||_.field!==Y||j)return;const $=V;if(!(Y==="title"?gS(ee.title,$):xS(ee.summary,$))){I();return}N(!0);try{await N0(ee.id,Y==="title"?{title:$.trim()}:{summary:$.trim()}),I(),Ce.getState().showToast("已保存"),await P()}catch(xe){const ae=Oc(xe);if(v3(ae)==="abandon"){I(),y(xa(ae)),await P();return}y(xa(ae))}finally{N(!1)}}function G(ee,Y){return $=>{$.key==="Enter"?($.preventDefault(),U(ee,Y)):$.key==="Escape"&&I()}}function Q(ee,Y){I(),C({parentId:ee,type:Y}),re(""),ee!==En&&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 je=await GT({type:$,title:ee,parent_id:Y});Ce.getState().showToast(`已创建${os[$]}《${ee}》`),await P(Y,je.id)}catch(je){y(xa(Oc(je)))}}function de(ee){ee.key==="Enter"?(ee.preventDefault(),le()):ee.key==="Escape"&&he()}function He(ee,Y){ee.dataTransfer.setData("text/plain",Y.id),ee.dataTransfer.effectAllowed="move",te(Y.id),ne(null)}function ze(){te(null),ne(null)}function we(ee){const Y=ee.currentTarget.getBoundingClientRect();return ee.clientY<Y.top+Y.height/2?"before":"after"}function Ie(ee,Y){ee.stopPropagation();const $=ie?Br(t?.children??[],ie):null;if(!$)return;const je=Dm(t?.children??[],Y)??En;if(!Rc($,je,t?.children??[]))return;ee.preventDefault(),ee.dataTransfer.dropEffect="move";const xe={kind:we(ee),nodeId:Y};ne(ae=>wv(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 $=Br(t?.children??[],ie);if(!$)return;const je=Dm(t?.children??[],Y)??En;if(!Rc($,je,t?.children??[]))return;if(Y===$.id){te(null),ne(null);return}const xe=bS(t?.children??[],je)??[],ae=jv(xe,{kind:we(ee),nodeId:Y},$.id);if(Tv(t?.children??[],$.id,je,ae)){te(null),ne(null);return}N(!0);try{await gy($.id,{parent_id:je,order:ae}),Ce.getState().showToast(`已移动《${$.title}》`),await P(je)}catch(Oe){y(xa(Oc(Oe)))}finally{N(!1),te(null),ne(null)}}function _e(ee){const Y=ie?Br(t?.children??[],ie):null;!Y||!Rc(Y,En,t?.children??[])||(ee.preventDefault(),ee.dataTransfer.dropEffect="move",ne($=>wv($,{kind:"root-end"})?$:{kind:"root-end"}))}function Re(ee){ee.currentTarget.contains(ee.relatedTarget)||ne(Y=>Y?.kind==="root-end"?null:Y)}async function ke(ee){if(ee.preventDefault(),!ie)return;const Y=Br(t?.children??[],ie);if(!Y||!Rc(Y,En,t?.children??[]))return;const $=jv(t?.children??[],{kind:"end"},Y.id);if(Tv(t?.children??[],Y.id,En,$)){te(null),ne(null);return}N(!0);try{await gy(Y.id,{parent_id:En,order:$}),Ce.getState().showToast(`已移动《${Y.title}》`),await P()}catch(je){y(xa(Oc(je)))}finally{N(!1),te(null),ne(null)}}async function be(ee){try{const Y=await qT(ee.id),{children:$,relations:je,deltas:xe}=Y.cascaded,ae=[];$>0&&ae.push(`${$} 个子节点`),je>0&&ae.push(`${je} 条关联`),xe>0&&ae.push(`${xe} 条变化记录`),Ce.getState().showToast(`已移入回收站${ae.length>0?`(含 ${ae.join("、")})`:""}`),await P()}catch(Y){if(Y instanceof Me&&Y.code==="OUTLINE_NODE_NOT_FOUND"){y(xa("OUTLINE_NODE_NOT_FOUND")),await P();return}Ce.getState().showToast(Y instanceof Me?Y.message:"删除失败,请重试","error")}}function Le(){return L?.parentId!==En?null:i.jsx(Cv,{className:"mb-1",type:L.type,onTypeChange:ee=>C({parentId:En,type:ee}),value:Z,onChange:re,onKeyDown:de,onCancel:he})}function Ye(ee,Y){return ee.map($=>{const je=$.type!=="scene"&&($.children?.length??0)>0,xe=x.has($.id),ae=o?.currentPosition===$.id,Oe=Y_[$.type],Pe=_?.nodeId===$.id&&_.field==="title",We=_?.nodeId===$.id&&_.field==="summary",pt=K?.kind==="before"&&K.nodeId===$.id,Mt=K?.kind==="after"&&K.nodeId===$.id,mt=ie===$.id,wt=L?.parentId===$.id,Rt=$.id===E;return i.jsxs("div",{children:[i.jsxs("div",{"data-node-id":$.id,draggable:!Pe&&!We&&!mt&&!j,onDragStart:zt=>He(zt,$),onDragEnd:ze,onDragOver:zt=>Ie(zt,$.id),onDragLeave:zt=>ge(zt,$.id),onDrop:zt=>{q(zt,$.id)},className:$e("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-inset ring-ring",mt&&"opacity-50"),style:{paddingLeft:Y*20+8},title:"拖动到目标行即可移动(上半=插前、下半=插后)",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[je?i.jsx("button",{type:"button",className:"w-4 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>H($.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:os[$.type]}),Pe?Ic(V,M,G($,"title"),()=>{U($,"title")},"标题"):i.jsx("span",{className:$e("min-w-0 cursor-text truncate text-sm hover:underline",Rt?"text-accent-foreground":"text-foreground"),title:"点击编辑标题",onClick:()=>B($,"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(zt=>i.jsx(pS,{mark:zt},`${zt.relationType}-${zt.hookId}`))}),Oe!==null&&i.jsx("button",{type:"button",className:"shrink-0 rounded px-1 text-muted-foreground hover:bg-muted hover:text-foreground",title:`就地新建${os[Oe]}`,"aria-label":`新建${os[Oe]}`,onClick:()=>Q($.id,Oe),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:()=>cn(`/outline/${$.id}`),children:i.jsx($m,{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(Ql,{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:is($.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?Ic(V,M,G($,"summary"),()=>{U($,"summary")},"摘要"):i.jsx("span",{className:"min-w-0 cursor-text truncate text-xs text-muted-foreground hover:underline",title:"点击编辑摘要",onClick:()=>B($,"summary"),children:$.summary})]}):null,pt&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -top-px h-0.5 rounded bg-accent"}),Mt&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -bottom-px h-0.5 rounded bg-accent"})]}),je&&!xe&&i.jsx("div",{children:Ye($.children??[],Y+1)}),wt&&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:os[L.type]}),Ic(Z,re,de,he,`新${os[L.type]}标题,Enter 创建`)]})]},$.id)})}function Ue(){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:Ue,disabled:!t||t.children.length===0,children:x.size>0?"全部展开":"全部折叠"}),i.jsx(me,{type:"button",onClick:()=>Q(En,"volume"),children:"+ 新建"})]})]}),p&&i.jsx("div",{className:"mb-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:p}),z?i.jsxs("div",{className:"rounded-md border border-dashed border-zinc-300 px-6 py-10 text-center",children:[i.jsx("p",{className:"text-sm text-zinc-600",children:"未打开项目,无法编辑大纲"}),i.jsx("a",{href:"#/",className:"mt-2 inline-block text-sm text-zinc-500 underline hover:text-zinc-700",children:"回到首页打开或创建书籍"})]}):r&&t===null?i.jsx("div",{className:"space-y-2 rounded-md border border-zinc-200 p-3",children:Array.from({length:6},(ee,Y)=>i.jsx("div",{className:"h-5 animate-pulse rounded bg-zinc-100",style:{width:`${92-Y%3*24}%`,marginLeft:Y%3*20}},Y))}):t===null?i.jsxs("div",{className:"rounded-md border border-zinc-200 p-4 text-sm text-zinc-600",children:["大纲加载失败",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):t.children.length===0?L?.parentId===En?i.jsxs("div",{className:"rounded-lg border border-dashed border-zinc-300 px-6 py-12 text-center",children:[i.jsx("p",{className:"text-sm text-zinc-600",children:"输入第一卷标题,Enter 创建"}),i.jsx("div",{className:"mx-auto mt-4 max-w-sm",children:i.jsx(Cv,{type:L.type,onTypeChange:ee=>C({parentId:En,type:ee}),value:Z,onChange:re,onKeyDown:de,onCancel:he})})]}):i.jsxs("div",{className:"rounded-lg border border-dashed border-zinc-300 px-6 py-12 text-center",children:[i.jsx("p",{className:"text-sm text-zinc-600",children:"大纲还是空的,先建第一卷"}),i.jsx("p",{className:"mt-1 text-xs text-zinc-400",children:"大纲是三层结构:卷 → 章 → 场景"}),i.jsx(me,{className:"mt-4",type:"button",onClick:()=>Q(En,"volume"),children:"新建第一卷"})]}):i.jsxs("div",{className:$e("rounded-md border border-border p-2",K?.kind==="root-end"&&"ring-1 ring-inset ring-accent"),onDragOver:_e,onDragLeave:Re,onDrop:ee=>{ke(ee)},children:[Le(),Ye(t.children,0)]})]})}const wl=20;function N3(t,r){return Math.max(1,Math.ceil(t/r))}const j3={character:{key1:"role",label1:"角色",key2:"status",label2:"状态"},setting:{key1:"tags",label1:"标签"},location:{key1:"type",label1:"类型"},hook:{key1:"status",label1:"状态",key2:"payoff_timing",label2:"回收时机"},event:{key1:"description",label1:"描述"},timepoint:{key1:"",label1:""}},qp={planted:"已埋设",progressing:"推进中",resolved:"已回收",abandoned:"已弃用"},$p={immediate:"立即",near_term:"近期",mid_arc:"中段",slow_burn:"慢热",endgame:"终局"};function tm(t,r,o){if(o==null||o==="")return"—";if(t==="hook"&&r==="status")return qp[String(o)]??String(o);if(t==="hook"&&r==="payoff_timing")return $p[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)}const Rv={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 Xp(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:qp},{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:$p},{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 w3={belongs_to:"所属",owns:"拥有",masters:"掌握",ally:"盟友",rival:"对手",mentor:"师徒",family:"家族",kills:"击杀",appears_in:"出现于",occurs_in:"锚定于",occurs_at:"发生于",plot_edge:"剧情连线",plants:"埋设",advances:"推进",resolves:"回收",depends_on:"依赖",involves:"涉及"};function go(t){return w3[t]??t}function nm(t,r){const o=t.filter(u=>u.relationType==="belongs_to"&&u.sourceType==="setting"&&u.targetType==="setting"),a=[];let c=null;for(const u of o){const m={relationId:u.id,parentId:u.targetId,parentName:u.targetName,childId:u.sourceId,childName:u.sourceName};u.sourceId===r?c===null&&(c=m):u.targetId===r&&a.push(m)}return{parent:c,children:a}}function Kp(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 u=Ov(t[a]),m=Ov(c);JSON.stringify(u)!==JSON.stringify(m)&&(o[a]=c)}return Object.keys(o).length>0?o:null}function Ov(t){return t==null||t===""||Array.isArray(t)&&t.length===0?null:t}const sm={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},T3=Vm.filter(t=>t!=="occurs_at"),ba="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 Qp({source:t,onCreated:r,onClose:o}){const a=Be(C=>C.outline),[c,u]=h.useState("character"),[m,g]=h.useState(null),[b,p]=h.useState(""),[y,x]=h.useState("character"),[S,j]=h.useState(null),[N,k]=h.useState(""),[O,E]=h.useState(Vm[0]),[w,_]=h.useState(null),[T,V]=h.useState(!1);h.useEffect(()=>{t||(p(""),g(null),Nn(c,{limit:100}).then(C=>g(C.items)).catch(()=>g([])))},[t,c]),h.useEffect(()=>{if(k(""),y==="outline_node"){j(null);return}j(null),Nn(y,{limit:100}).then(C=>j(C.items)).catch(()=>j([]))},[y]);const M=rr(a?.children??[]);async function L(C){if(C.preventDefault(),!t&&!b){_("请选择源实体");return}if(!N){_("请选择关联对象");return}V(!0),_(null);try{const Z={source_type:t?t.type:c,source_id:t?t.id:b,target_type:y,target_id:N,relation_type:O};await or(Z),Ce.getState().showToast("已建立关系"),await r(),o()}catch(Z){Z instanceof Me&&Z.code==="RELATION_EXISTS"?_("这条关系已经存在"):_(Z instanceof Me?Z.message:"创建失败,请重试")}finally{V(!1)}}return i.jsx(ws,{open:!0,onOpenChange:C=>!C&&o(),children:i.jsxs(Ts,{className:"sm:max-w-2xl",children:[i.jsx(Cs,{children:i.jsx(Os,{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=>u(C.target.value),className:ba,children:Ta.map(C=>i.jsx("option",{value:C,children:sm[C]},C))}),i.jsxs("select",{value:b,onChange:C=>p(C.target.value),className:ba,children:[i.jsxs("option",{value:"",children:["选择",sm[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=>E(C.target.value),className:ba,children:T3.map(C=>i.jsx("option",{value:C,children:go(C)},C))}),i.jsx("span",{"aria-hidden":"true",className:"mt-auto select-none pb-1 text-center text-xl leading-none text-muted-foreground",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:ba,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:N,onChange:C=>k(C.target.value),className:ba,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:N,onChange:C=>k(C.target.value),className:ba,children:[i.jsxs("option",{value:"",children:["选择",sm[y],"…"]}),(S??[]).map(C=>i.jsx("option",{value:C.id,children:C.name},C.id))]})]})]}),w&&i.jsx("p",{className:"text-sm text-destructive",children:w})]}),i.jsxs(Rs,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:o,disabled:T,children:"取消"}),i.jsx(me,{type:"submit",form:"create-relation-form",disabled:T,children:"建立"})]})]})})}const yS={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"},kv={endpointType:"",relationType:"",nameQuery:""};function C3(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(),u=(a.targetName??a.targetId).toLowerCase();if(!c.includes(o)&&!u.includes(o))return!1}return!0})}function _v({type:t}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:yS[t]??t})}function rm({type:t,id:r,name:o}){const a=o??r;if(!(Ta.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(_v,{type:t})]});const u=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:()=>cn(u),title:`打开《${a}》`,className:"min-w-0 truncate font-medium text-foreground underline-offset-2 hover:text-primary hover:underline",children:a}),i.jsx(_v,{type:t})]})}function Mv(t,r){const o=r==="source"?t.sourceName:t.targetName,a=r==="source"?t.sourceId:t.targetId;return o??a}function vS({reloadKey:t,onOpenCreate:r,scope:o}){const[a,c]=h.useState(null),[u,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(0),[x,S]=h.useState(kv),[j,N]=h.useState(null);h.useEffect(()=>{let E=!1;m(!0),b(null);const w=o!==void 0?{source_type:o.type,source_id:o.id,depth:1}:{depth:1};return Ur(w).then(_=>{E||c(_.relations)}).catch(_=>{E||(c(null),b(_ instanceof Me?_.code:ut))}).finally(()=>{E||m(!1)}),()=>{E=!0}},[t,p,o?.type,o?.id]);async function k(){if(j)try{await Na(j.id),Ce.getState().showToast("已删除关系"),N(null),y(E=>E+1)}catch(E){throw E}}const O=a===null?[]:C3(a,x);return i.jsxs("div",{children:[o===void 0&&i.jsxs("div",{className:"mb-2 mt-3 flex flex-wrap items-center gap-3",children:[i.jsxs("select",{value:x.endpointType,onChange:E=>S(w=>({...w,endpointType:E.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(yS).map(([E,w])=>i.jsx("option",{value:E,children:w},E))]}),i.jsxs("select",{value:x.relationType,onChange:E=>S(w=>({...w,relationType:E.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:"全部关系类型"}),Vm.map(E=>i.jsx("option",{value:E,children:go(E)},E))]}),i.jsx(_t,{value:x.nameQuery,onChange:E=>S(w=>({...w,nameQuery:E.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(E=>E+1),children:"重试"})]}),u&&a===null&&g===null&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:Array.from({length:5},(E,w)=>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:"h-4 w-1/4 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/6 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/4 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"ml-auto h-4 w-12 animate-pulse rounded bg-muted"})]},w))}),!u&&a!==null&&a.length===0&&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:"还没有关联,建立一条"}),i.jsx(me,{className:"mt-4",type:"button",onClick:r,children:"+ 建立关联"})]}),!u&&a!==null&&a.length>0&&O.length===0&&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:"没有匹配的关联"}),i.jsx(me,{variant:"outline",className:"mt-4",type:"button",onClick:()=>S(kv),children:"清空过滤"})]}),!u&&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(E=>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:[go(E.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(rm,{type:E.targetType,id:E.targetId,name:E.targetName})})]}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"w-1/4 min-w-0 shrink-0",children:i.jsx(rm,{type:E.sourceType,id:E.sourceId,name:E.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:[go(E.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(rm,{type:E.targetType,id:E.targetId,name:E.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:()=>N(E),children:"删除"})]},E.id))})]}),j&&i.jsx(ka,{title:"删除关系",description:`删除关系「${Mv(j,"source")} ${go(j.relationType)} ${Mv(j,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:k,onClose:()=>N(null)})]})}const R3={set:"设为",update:"更新",add:"追加",remove:"移除"},O3={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"};function Zp(t){return O3[t]??t}function as(t){return t==null?"空":typeof t=="object"?JSON.stringify(t):String(t)}function k3(t){switch(t.op){case"set":return`${t.field} = ${as(t.to)}`;case"update":return`${t.field} ${as(t.from)} → ${as(t.to)}`;case"add":return`${t.field} +${as(t.value??t.to)}`;case"remove":return`${t.field} -${as(t.value??t.to)}`}}function _3(t,r){const o=[];for(const a of new Set([...Object.keys(t),...Object.keys(r)])){const c=t[a]??null,u=r[a]??null;JSON.stringify(c)!==JSON.stringify(u)&&o.push({field:a,from:t[a],to:r[a]})}return o}function SS({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 u=o?.has(c)??!1;return i.jsxs("span",{title:u?"该变更未应用(数据与变更记录不一致,见冲突标注)":void 0,className:$e("inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-xs",u?"text-destructive":"text-muted-foreground"),children:[i.jsx("span",{className:$e("shrink-0 font-medium",u?"text-destructive":"text-foreground/70"),children:R3[a.op]}),k3(a)]},c)})})}function M3({nodeId:t,reloadKey:r}){const[o,a]=h.useState(null),[c,u]=h.useState(!1),[m,g]=h.useState(null),[b,p]=h.useState(0);return h.useEffect(()=>{let y=!1;return u(!0),g(null),e2(t).then(x=>{y||a([...x.deltas].sort((S,j)=>S.order-j.order))}).catch(x=>{y||g(x instanceof Me?x.code:ut)}).finally(()=>{y||u(!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:"h-4 w-2/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/2 animate-pulse rounded bg-muted"})]}),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:is(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:[Zp(y.targetType),"《",y.targetName??y.targetId,"》"]}),i.jsx(SS,{changes:y.changes})]})]},y.id))})]})}const A3=Ta.filter(t=>t!=="event"&&t!=="timepoint").map(t=>({value:t,label:Zp(t)})),D3={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"]},z3={character:kc("character"),setting:kc("setting"),location:kc("location"),hook:kc("hook")};function kc(t){return Object.fromEntries(Xp(t).map(r=>[r.key,r.label]))}const L3={character:["personality","abilities"],setting:["tags","rules"]},I3={character:["age"],hook:["half_life"]};function zm(t,r){return(L3[t]??[]).includes(r)}function B3(t,r){return(I3[t]??[]).includes(r)}function H3(t){return(D3[t]??[]).filter(o=>o!=="custom_fields").map(o=>({key:o,label:z3[t]?.[o]??o,array:zm(t,o)}))}function ES(t){if(t!==void 0){if(t===null)return null;if(typeof t=="string"||typeof t=="number")return t}}function Av(t){return t.array?{options:["add","remove"],default:"add"}:ES(t.currentValue)!==void 0?{options:["update","set"],default:"update"}:{options:["set"],default:"set"}}function U3(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=ES(t.currentValue);return c===void 0?{error:"无法确定旧值(当前数据无此字段或类型不可表达),请改用「设为」"}:{change:{field:t.field,op:"update",from:c,to:a}}}}}const ya="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",P3={set:"设为",update:"更新",add:"追加",remove:"移除"};function Y3({nodeId:t,onCreated:r,onClose:o}){const[a,c]=h.useState(""),[u,m]=h.useState(""),[g,b]=h.useState(""),[p,y]=h.useState("add"),[x,S]=h.useState(""),[j,N]=h.useState(""),[k,O]=h.useState(!1),[E,w]=h.useState(null),[_,T]=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===""){T(null),M(null);return}let H=!1;return T(null),M(null),Nn(a).then(F=>{H||T(F.items)}).catch(F=>{H||(T(null),M(F instanceof Me?F.code:ut))}),()=>{H=!0}},[a,L]),h.useEffect(()=>{if(a===""||u==="")return;let H=!1;return re(null),te(null),po(a,u).then(F=>{H||re(F.data)}).catch(F=>{H||(re(null),te(F instanceof Me?F.code:ut))}),()=>{H=!0}},[a,u]),h.useEffect(()=>{b(""),S(""),w(null)},[a,u]);const K=H3(a),ne=Z?.[g],W=Av({array:zm(a,g),currentValue:ne});function D(H){b(H),y(Av({array:zm(a,H),currentValue:Z?.[H]}).default)}async function z(){if(k)return;if(a===""||u===""){w("请选择变更目标");return}if(g===""){w("请选择变更字段");return}const H=j.trim();if(H===""){w("请填写描述(本节点触发了什么变化)");return}const F=U3({field:g,op:p,rawValue:x,numeric:B3(a,g),currentValue:ne});if("error"in F){w(F.error);return}O(!0),w(null);try{await np({node_id:t,target_type:a,target_id:u,changes:[F.change],description:H}),Ce.getState().showToast("已记录变更"),r()}catch(A){if(A instanceof Me&&A.code==="OUTLINE_NODE_NOT_FOUND"){Ce.getState().showToast("节点不存在(可能已被删除),无法记录变更","error"),o();return}w(A instanceof Me?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:H=>c(H.target.value),className:$e(ya,a===""&&"text-muted-foreground"),"aria-label":"目标类型",children:[i.jsx("option",{value:"",children:"请选择目标类型"}),A3.map(H=>i.jsx("option",{value:H.value,children:H.label},H.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(H=>H+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:["暂无",Dv(P)]}):i.jsxs("select",{value:u,onChange:H=>m(H.target.value),className:$e(ya,u===""&&"text-muted-foreground"),"aria-label":"目标实体",children:[i.jsxs("option",{value:"",children:["请选择",Dv(P)]}),_.map(H=>i.jsx("option",{value:H.id,children:H.name},H.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:H=>D(H.target.value),className:$e(ya,g===""&&"text-muted-foreground"),"aria-label":"变更字段",children:[i.jsx("option",{value:"",children:"请选择字段"}),K.map(H=>i.jsx("option",{value:H.key,children:H.label},H.key))]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"操作"}),i.jsx("select",{value:p,onChange:H=>y(H.target.value),className:$e(ya,"min-w-20"),"aria-label":"操作",children:W.options.map(H=>i.jsx("option",{value:H,children:P3[H]},H))})]}),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:H=>S(H.target.value),placeholder:p==="remove"?"按值匹配删除":"",className:ya})]})]}),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:["旧值:",as(ne),"(自动取自目标当前数据,无需手填)"]})}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:j,onChange:H=>N(H.target.value),rows:2,maxLength:500,placeholder:"本节点触发了什么变化,如:张三获得断剑认可",className:$e(ya,"resize-none")})]}),E!==null&&i.jsx("p",{className:"text-sm text-destructive",children:E}),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 Dv(t){return Zp(t)}function Jp({items:t,className:r}){return i.jsx("nav",{"aria-label":"面包屑",className:$e("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:()=>cn(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:"select-none text-sm text-muted-foreground/40",children:"›"})]},a)})})}const V3={inner:"内心冲突",personal:"人际冲突",extra_personal:"社会冲突"};function F3(t){switch(t){case"scene":return[{key:"goal",label:"场景目标",control:"textarea",maxLength:1e3},{key:"conflict_levels",label:"冲突层次",control:"checkbox-group",options:Wv,optionsLabels:V3},{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 G3(t,r){return Wv.includes(r)?t.includes(r)?t.filter(o=>o!==r):[...t,r]:t}function q3(t){const r=[],o=(a,c)=>{for(const u of a)u.type==="scene"?r.push({id:u.id,label:u.title,depth:c}):u.children&&o(u.children,c+1)};return o(t,0),r}function $3(t){return typeof t=="string"&&t!==""?t:""}const Lm="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 Tl({title:t,children:r,className:o,action:a}){return i.jsxs("div",{className:$e("rounded-xl border border-border bg-card p-4",o),children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between gap-2",children:[i.jsx("h2",{className:"font-serif text-base",children:t}),a]}),r]})}function X3({nodeId:t}){const r=Be(I=>I.outline),o=Be(I=>I.outlineLoading),a=Be(I=>I.config),c=Be(I=>I.configLoading),u=Be(I=>I.loadOutline),m=Be(I=>I.updateConfig),[g,b]=h.useState(!1),[p,y]=h.useState(""),[x,S]=h.useState(""),[j,N]=h.useState(null),[k,O]=h.useState(!1),[E,w]=h.useState(null),[_,T]=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),u())},[r,o,g,u]),Ms(()=>{u(),C(I=>I+1),te(I=>I+1)});const K=r===null?null:Br(r.children,t),ne=r!==null&&K===null,W=K?F3(K.type):[],D=q3(r?.children??[]),z=a?.currentPosition===t;h.useEffect(()=>{K!==null&&(y(K.title),S(K.summary??""),N(JSON.parse(JSON.stringify(K.data??{}))))},[K]);async function P(){if(K===null||k)return;const I=p.trim();if(I===""){w("标题不能为空");return}const U={};gS(K.title,p)&&(U.title=I),xS(K.summary,x)&&(U.summary=x.trim());const G=Kp(K.data??{},j??{});if(G!==null&&(U.data=G),Object.keys(U).length===0){Ce.getState().showToast("没有变更");return}O(!0),w(null);try{await N0(K.id,U),Ce.getState().showToast("已保存"),await u()}catch(Q){if(Q instanceof Me&&Q.code==="OUTLINE_NODE_NOT_FOUND"){await u();return}w(Q instanceof Me?Q.message:"保存失败,请重试")}finally{O(!1)}}function H(I,U){N(G=>G&&{...G,[I]:U})}async function F(){if(!(K===null||_||z)){T(!0);try{await m({current_position:K.id}),Ce.getState().showToast("已设为当前位置")}catch{Ce.getState().showToast("设置失败:该节点可能已删除,无法设为当前位置","error")}finally{T(!1)}}}if(ne)return i.jsx("section",{children:i.jsxs("div",{className:"rounded-lg border border-dashed border-border px-6 py-14 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"该节点不存在或已被删除"}),i.jsxs("div",{className:"mt-4 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:()=>cn("/outline"),children:"返回大纲"})]})]})});const A=a===null&&!c,B=[{label:"大纲",href:"/outline"}];if(K!==null){const I=Gp(r?.children??[],t)??[];for(const U of I.slice(0,-1)){const G=Br(r?.children??[],U);G&&B.push({label:G.title,href:`/outline/${U}`})}B.push({label:K.title})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(Jp,{items:B}),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:os[K.type]}),i.jsxs("span",{children:["更新于 ",is(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,U)=>i.jsx("div",{className:"h-5 animate-pulse rounded bg-muted",style:{width:`${92-U%3*24}%`,marginLeft:U%3*20}},U))}):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(Tl,{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(_t,{value:p,onChange:I=>y(I.target.value),maxLength:200,placeholder:`${os[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:Lm})]})]})}),i.jsxs(Tl,{title:`结构化信息(${os[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(K3,{field:I,value:j?.[I.key],sceneOptions:D,onChange:U=>H(I.key,U)})]},I.key))}),E&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:E})]}),i.jsxs(Tl,{title:"变更记录",action:i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:()=>re(I=>!I),children:Z?"收起":"+ 新建变更"}),children:[Z&&i.jsx(Y3,{nodeId:t,onCreated:()=>{re(!1),te(I=>I+1)},onClose:()=>re(!1)}),i.jsx(M3,{nodeId:t,reloadKey:ie})]}),i.jsx(Tl,{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(Tl,{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(vS,{scope:{type:"outline_node",id:t},reloadKey:L,onOpenCreate:()=>M(!0)})]})})]}),V&&K!==null&&i.jsx(Qp,{source:{type:"outline_node",id:K.id,name:K.title},onCreated:()=>C(I=>I+1),onClose:()=>M(!1)})]})}function K3({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:Lm});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(u=>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(u),onChange:()=>a(G3(c,u)),className:"size-4 accent-primary"}),t.optionsLabels?.[u]??u]},u))})}case"scene-select":{const c=$3(r),u=c!==""&&!o.some(m=>m.id===c);return i.jsxs("select",{value:c,onChange:m=>a(m.target.value),className:$e(Lm,c===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"(未设置)"}),u&&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(_t,{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:t.maxLength,className:"h-8 text-sm"})}}const xo={volume:248,chapter:208,scene:168},ks={volume:96,chapter:88,scene:76},Lr={padX:48,padY:48,colGap:304,rowGap:28,indentChapter:28,indentScene:56},NS=.5,jS=2,Q3="ai-editor:canvas:";function Im(t){return Math.min(jS,Math.max(NS,t))}function Z3(t){if(!t)return[];const r=[],o=(a,c,u)=>{for(const m of a)r.push({id:m.id,type:m.type,title:m.title,summary:m.summary,parentId:c,depth:u}),m.type!=="scene"&&m.children&&o(m.children,m.id,u+1)};return o(t.children,null,0),r}function zv(t){const r={};let o=0;for(const a of t){if(a.depth!==0)continue;const c=Lr.padX+o*Lr.colGap;let u=Lr.padY;r[a.id]={x:c,y:u},u+=ks[a.type]+Lr.rowGap;for(const m of t)if(m.parentId===a.id){r[m.id]={x:c+Lr.indentChapter,y:u},u+=ks[m.type]+Lr.rowGap;for(const g of t)g.parentId===m.id&&(r[g.id]={x:c+Lr.indentScene,y:u},u+=ks.scene+Lr.rowGap)}o+=1}return r}function wS(t){return`${Q3}${t}`}function J3(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[u,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[u]={x:g.x,y:g.y}}const a=t.zoom,c=typeof a=="number"&&Number.isFinite(a)?Im(a):1;return{nodes:o,zoom:c}}function W3(t){try{const r=localStorage.getItem(wS(t));return r===null?null:J3(JSON.parse(r))}catch{return null}}function om(t,r){try{localStorage.setItem(wS(t),JSON.stringify(r))}catch{}}function Lv(t,r,o){const a={};for(const c of o)a[c.id]=t?.[c.id]??r[c.id];return a}function eM(t){const r=[];for(const o of t){if(o.relationType!==pj||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 tM(t){return t.filter(r=>r.type==="scene")}function nM(t,r){return t.filter(o=>r.has(o.sourceId)&&r.has(o.targetId))}function Iv(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 sM(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 am(t,r){return{x:t.x+xo[r]/2,y:t.y+ks[r]/2}}function Bv(t,r,o,a){const c=r.x-t.x,u=r.y-t.y;if(c===0&&u===0)return t;const m=c===0?Number.POSITIVE_INFINITY:o/2/Math.abs(c),g=u===0?Number.POSITIVE_INFINITY:a/2/Math.abs(u),b=Math.min(m,g);return{x:t.x+b*c,y:t.y+b*u}}const js={highlight:"#a855f7",scene:"#f59e0b",chapter:"#3b82f6",volume:"#06b6d4",default:"#94a3b8"};function rM(t,r={}){if(r.onPath||r.selected)return js.highlight;switch(t){case"scene":return js.scene;case"chapter":return js.chapter;case"volume":return js.volume;default:return js.default}}function oM(t={}){return t.onPath||t.selected?2.5:1.5}function aM(t={}){return t.offPath?.2:1}const TS="canvas-edge-arrow";function lM(){return`url(#${TS})`}const Zc={w:180,h:120},_c=4,iM=1,cM=.02;function uM(t,r,o,a){let c=Number.POSITIVE_INFINITY,u=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY,b=0;for(const T of t){const V=r[T.id];V&&(c=Math.min(c,V.x),u=Math.min(u,V.y),m=Math.max(m,V.x+xo[T.type]),g=Math.max(g,V.y+ks[T.type]),b+=1)}if(b===0)return{nodeRects:[],viewportRect:null};const p=m-c,y=g-u,x=Zc.w-2*_c,S=Zc.h-2*_c,j=Math.min(x/p,S/y),N=Math.min(iM,Math.max(cM,j)),k=_c+(x-p*N)/2,O=_c+(S-y*N)/2,E=[];for(const T of t){const V=r[T.id];V&&E.push({id:T.id,x:k+(V.x-c)*N,y:O+(V.y-u)*N,w:xo[T.type]*N,h:ks[T.type]*N,type:T.type})}let w=null;const _=o>0?o:1;if(a!==null&&a.width>0&&a.height>0){const T={x:a.x/_,y:a.y/_,width:a.width/_,height:a.height/_};w={x:k+(T.x-c)*N,y:O+(T.y-u)*N,w:T.width*N,h:T.height*N}}return{nodeRects:E,viewportRect:w}}function dM(t,r){const o=new Set([t]),a=new Set,c=[t];for(;c.length>0;){const u=c.pop();for(const m of r)m.sourceId!==u||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 Hv(t){switch(t){case"RELATION_EXISTS":return"这条连线已经存在";case"VALIDATION_ERROR":return"连线参数有误";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return null}}function fM(){const t=Be(se=>se.outline),r=Be(se=>se.outlineLoading),o=Be(se=>se.config),a=Be(se=>se.configLoading),c=Be(se=>se.loadOutline),[u,m]=h.useState({}),[g,b]=h.useState(1),[p,y]=h.useState(!1),[x,S]=h.useState(!0),[j,N]=h.useState(!1),[k,O]=h.useState(null),[E,w]=h.useState(null),[_,T]=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),[H,F]=h.useState(!1),A=h.useRef(null),B=h.useRef(null),I=h.useRef(null),U=h.useRef(u);U.current=u;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 Ae=await Ur({source_type:"outline_node",relation_type:"plot_edge",depth:1});if(ye!==G.current)return;O(eM(Ae.relations)),w(null)}catch(Ae){if(ye!==G.current)return;w(Ae instanceof Me?Ae.code:ut)}},[Q]);Ms(()=>{c(),le()});const de=h.useMemo(()=>Z3(t),[t]),He=h.useMemo(()=>new Map(de.map(se=>[se.id,se])),[de]),[ze,we]=h.useState(null);h.useEffect(()=>{if(Q===null){we(null),m({}),b(1);return}const se=W3(Q);we(Q),b(se?.zoom??1),m(se?.nodes??{})},[Q]);const Ie=ze===Q;h.useEffect(()=>{de.length===0||!Ie||m(se=>Lv(se,zv(de),de))},[de,Ie]),h.useEffect(()=>{if(!(Q===null||!Ie))return I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{om(Q,{nodes:u,zoom:g})},300),()=>{I.current!==null&&(window.clearTimeout(I.current),I.current=null,U.current===u&&Q!==null&&Ie&&om(Q,{nodes:u,zoom:g}))}},[u,Q,g,Ie]),h.useEffect(()=>{Q===null||!Ie||om(Q,{nodes:u,zoom:g})},[g,Q,Ie]),h.useEffect(()=>{t===null&&!r&&!j&&(N(!0),c())},[t,r,j,c]),h.useEffect(()=>{if(Q===null){O(null),w(null);return}le()},[Q,le]),h.useEffect(()=>{if(t===null){T(null);return}let se=!1;return Promise.all(Fp.map(ye=>Ur({source_type:"outline_node",relation_type:ye,depth:1}).then(Ae=>Ae.relations).catch(()=>[]))).then(ye=>{se||T(hS(ye.flat()))}),()=>{se=!0}},[t]);const ge=h.useRef(null),q=h.useRef(null),_e=h.useCallback(()=>{const se=A.current,ye=B.current;if(se===null||ye===null)return;const Ae=se.getBoundingClientRect(),Ze=ye.getBoundingClientRect(),nt={x:Math.round(Ae.left-Ze.left),y:Math.round(Ae.top-Ze.top),width:Math.round(Ae.width),height:Math.round(Ae.height)};re(at=>at!==null&&at.x===nt.x&&at.y===nt.y&&at.width===nt.width&&at.height===nt.height?at:nt)},[]),Re=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=>Im(Math.round((nt+(Ze.deltaY<0?.1:-.1))*10)/10))};se.addEventListener("wheel",ye,{passive:!1}),ge.current=()=>se.removeEventListener("wheel",ye),_e();const Ae=new ResizeObserver(()=>_e());Ae.observe(se),q.current=()=>Ae.disconnect()},[_e]);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 ke=p?tM(de):de,be=h.useMemo(()=>new Set(ke.map(se=>se.id)),[ke]),Le=h.useMemo(()=>nM(k??[],be),[k,be]);h.useEffect(()=>{L!==null&&!be.has(L)&&C(null)},[L,be]);const Ye=h.useMemo(()=>{const se=[];for(const ye of Le){const Ae=u[ye.sourceId],Ze=u[ye.targetId],nt=He.get(ye.sourceId),at=He.get(ye.targetId);if(!Ae||!Ze||!nt||!at)continue;const rt=am(Ae,nt.type),qt=am(Ze,at.type),Xn=Bv(rt,qt,xo[nt.type],ks[nt.type]),Zt=Bv(qt,rt,xo[at.type],ks[at.type]);se.push({edge:ye,d:Iv(Xn,Zt),mid:sM(Xn,Zt),targetType:at.type})}return se},[Le,u,He]),Ue=h.useMemo(()=>L!==null&&K===null?dM(L,Le):null,[L,K,Le]),ee=h.useMemo(()=>Ye.map(se=>{const ye=se.edge.id===V,Ae=Ue?.edgeIds.has(se.edge.id)??!1;return{...se,stroke:rM(se.targetType,{onPath:Ae,selected:ye}),strokeWidth:oM({onPath:Ae,selected:ye}),opacity:aM({offPath:Ue!==null&&!Ae}),dash:Ae||ye}}),[Ye,Ue,V]),Y=h.useMemo(()=>uM(ke,u,g,Z),[ke,u,g,Z]),$=h.useMemo(()=>{let se=0,ye=0;for(const Ae of de){const Ze=u[Ae.id];Ze&&(se=Math.max(se,Ze.x+xo[Ae.type]),ye=Math.max(ye,Ze.y+ks[Ae.type]))}return{w:se+96,h:ye+96}},[de,u]),je=h.useMemo(()=>Ye.find(se=>se.edge.id===V)??null,[Ye,V]),xe=h.useMemo(()=>{if(K===null||W===null)return null;const se=He.get(K),ye=u[K];return!se||!ye?null:Iv(am(ye,se.type),W)},[K,W,u,He]);function ae(se,ye){const Ae=B.current?.getBoundingClientRect();return Ae?{x:(se-Ae.left)/g,y:(ye-Ae.top)/g}:{x:0,y:0}}function Oe(se,ye){if(se.target.closest("[data-canvas-handle]")||se.button!==0)return;se.preventDefault();const Ae=u[ye.id];Ae&&(se.currentTarget.setPointerCapture(se.pointerId),te({nodeId:ye.id,startClientX:se.clientX,startClientY:se.clientY,origX:Ae.x,origY:Ae.y}))}function Pe(se,ye){if(ie===null||ie.nodeId!==ye)return;const Ae=(se.clientX-ie.startClientX)/g,Ze=(se.clientY-ie.startClientY)/g;m(nt=>nt[ye]?{...nt,[ye]:{x:ie.origX+Ae,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 Mt(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 or({source_type:"outline_node",source_id:ye,target_type:"outline_node",target_id:nt,relation_type:"plot_edge"}),Ce.getState().showToast("已建立连线"),await le()}catch(at){const rt=at instanceof Me?at.code:null,qt=Hv(rt);if(qt!==null){Ce.getState().showToast(qt,"error"),await le();return}Ce.getState().showToast(at instanceof Me?at.message:"创建失败,请重试","error")}}const wt=h.useRef(!1);function Rt(se){wt.current=!1,P({edgeId:se.id,draft:se.label??""})}async function zt(se,ye){if(!H){F(!0),P(null);try{const Ae=ye.trim();await WT(se,Ae===""?{}:{label:Ae}),Ce.getState().showToast("已保存标签"),await le()}catch(Ae){Ce.getState().showToast(Ae instanceof Me?Ae.message:"保存失败,请重试","error")}finally{F(!1)}}}function Te(se){se.key==="Enter"?(se.preventDefault(),wt.current=!0,z!==null&&zt(z.edgeId,z.draft)):se.key==="Escape"&&(se.preventDefault(),wt.current=!0,P(null))}function Se(){wt.current||z!==null&&zt(z.edgeId,z.draft)}async function Fe(){if(je===null)return;const se=je.edge;if(await Ce.getState().confirm({title:"删除连线",description:`删除连线「${se.label??"未命名"}」?物理删除不可恢复,可随时重建。`,danger:!0}))try{wt.current=!0,P(null),await Na(se.id),Ce.getState().showToast("已删除连线"),M(null),await le()}catch(Ae){const Ze=Ae instanceof Me?Ae.code:null,nt=Hv(Ze);Ce.getState().showToast(nt??(Ae instanceof Me?Ae.message:"删除失败,请重试"),"error"),Ze==="RELATION_NOT_FOUND"&&(M(null),await le())}}function Ot(){m(se=>Lv(se,zv(de),de))}function Pt(se){b(ye=>Im(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<=NS,onClick:()=>Pt(-.1),children:i.jsx(Wj,{})}),i.jsxs("span",{className:"w-12 text-center text-sm tabular-nums text-muted-foreground",children:[Math.round(g*100),"%"]}),i.jsx(me,{variant:"outline",size:"icon-sm",type:"button","aria-label":"放大",disabled:g>=jS,onClick:()=>Pt(.1),children:i.jsx(Wc,{})})]}),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:$e("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(n0,{}),"画布说明"]})]}),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(fs,{className:"size-3"})})]}),E!==null&&i.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:[E===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:"h-24 w-60 animate-pulse rounded-lg bg-muted"}),i.jsx("div",{className:"mt-6 h-24 w-52 animate-pulse rounded-lg bg-muted"}),i.jsx("div",{className:"mt-12 h-20 w-44 animate-pulse rounded-lg bg-muted"})]},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:()=>N(!1),children:"重试"})]}):t.children.length===0?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:"大纲还是空的,先去搭大纲"}),i.jsx(me,{className:"mt-4",type:"button",onClick:()=>cn("/outline"),children:"去大纲"})]}):ke.length===0?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:"当前大纲还没有场景节点"}),i.jsx(me,{variant:"outline",className:"mt-4",type:"button",onClick:()=>y(!1),children:"显示全部节点"})]}):i.jsxs("div",{ref:Re,className:"relative min-h-0 flex-1 overflow-auto rounded-md border border-border bg-muted/20",onScroll:_e,onClick:se=>{se.target===se.currentTarget&&M(null)},children:[i.jsxs("div",{ref:B,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 left-0 top-0",width:$.w,height:$.h,style:{overflow:"visible"},children:[i.jsx("defs",{children:i.jsx("marker",{id:TS,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:Ae,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:Ae,strokeWidth:Ze,strokeDasharray:at?"6 4":void 0,vectorEffect:"non-scaling-stroke",markerEnd:lM(),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:Ae})=>{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(_t,{value:z.draft,onChange:at=>P({edgeId:se.id,draft:at.target.value}),onKeyDown:Te,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:$e("pointer-events-none absolute max-w-44 -translate-x-1/2 -translate-y-1/2 truncate whitespace-nowrap rounded border bg-card px-1.5 py-0.5 text-[10px] text-muted-foreground",Ze&&"pointer-events-auto cursor-text"),style:{left:ye.x,top:ye.y,opacity:Ae,...Ze?{borderColor:js.highlight,color:js.highlight}:{}},title:Ze?se.label===void 0?"添加标签":"编辑标签":void 0,onClick:at=>{at.stopPropagation(),Rt(se)},children:se.label??(Ze?"+ 标签":"未命名连线")},`label-${se.id}`)}),je!==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:je.mid.x,top:je.mid.y+26},children:[i.jsx("span",{className:"max-w-36 truncate px-1.5 text-xs text-muted-foreground",children:je.edge.label??"未命名连线"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>{Fe()},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(fs,{className:"size-3.5"})})]}),ke.map(se=>{const ye=u[se.id];if(!ye)return null;const Ae=_?.get(se.id)??[],Ze=K===se.id,nt=ie?.nodeId===se.id,at=Ue?.nodeIds.has(se.id)??!1;return i.jsxs("div",{"data-canvas-node-id":se.id,className:$e("group absolute cursor-grab touch-none select-none rounded-lg border bg-card p-2.5 transition-colors active:cursor-grabbing",Ze?"border-primary ring-2 ring-ring/40":"border-border",nt&&"opacity-80"),style:{left:ye.x,top:ye.y,width:xo[se.type],height:ks[se.type],...Ue!==null?{opacity:at?1:.2,boxShadow:at?`0 0 0 2px ${js.highlight}`:void 0}:{}},title:"拖动调整位置",onPointerDown:rt=>Oe(rt,se),onPointerMove:rt=>Pe(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:os[se.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-medium text-foreground",title:se.title,children:se.title}),Ae.length>0&&i.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:Ae.map(rt=>i.jsx(pS,{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:$e("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:Mt,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:Zc.w,height:Zc.h,children:[Y.nodeRects.map(se=>i.jsx("rect",{x:se.x,y:se.y,width:se.w,height:se.h,rx:2,fill:js[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:js.highlight,strokeWidth:1})]})})]})]})}const CS=h.createContext(void 0);function ti(t){const r=h.useContext(CS);if(r===void 0&&!t)throw new Error(jn(47));return r}function mM(){return{...Dp(),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 pM={...Lp,disabled:qe(t=>t.disabled),instantType:qe(t=>t.instantType),openMethod:qe(t=>t.openMethod),openChangeReason:qe(t=>t.openChangeReason),modal:qe(t=>t.modal),focusManagerModal:qe(t=>t.focusManagerModal),stickIfOpen:qe(t=>t.stickIfOpen),titleElementId:qe(t=>t.titleElementId),descriptionElementId:qe(t=>t.descriptionElementId),openOnHover:qe(t=>t.openOnHover),closeDelay:qe(t=>t.closeDelay),hasViewport:qe(t=>t.hasViewport)};class Wp extends hu{constructor(r,o,a=!1){const c={...mM(),...r},u=new ei;c.open&&r?.mounted===void 0&&(c.mounted=!0),c.floatingRootContext=U1(u,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 ms,triggerElements:u},pM)}setOpen=(r,o)=>{const a=o.reason===mn,c=o.reason===vo&&o.event.detail===0,u=!r&&(o.reason===au||o.reason==null),m=L1(o),g=this.select("activeTriggerId");if(!r&&o.reason===P0&&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};kp(p,r,o.trigger,m()),this.update(p)};a?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(u1,()=>{this.set("stickIfOpen",!1)}),lr.flushSync(b)):b(),c||u?this.set("instantType",c?"click":"dismiss"):o.reason===So?this.set("instantType","focus"):this.set("instantType",void 0)};static useStore(r,o){const{store:a,internalStore:c}=z1(r,(u,m)=>new Wp(o,u,m));return h.useEffect(()=>c?.disposeEffect(),[c]),a}disposeEffect=()=>this.context.stickIfOpenTimeout.disposeEffect()}function Uv({props:t}){const{children:r,open:o,defaultOpen:a=!1,onOpenChange:c,onOpenChangeComplete:u,modal:m=!1,handle:g,triggerId:b,defaultTriggerId:p=null}=t,y=Wp.useStore(g?.store,{modal:m,open:a,openProp:o,activeTriggerId:p,triggerIdProp:b});I1(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"),N=ur()!=null;y.useContextCallback("onOpenChange",c),y.useContextCallback("onOpenChangeComplete",u),H1(y,x),_p(y);const{forceUnmount:k}=Mp(x,y,()=>{y.update({stickIfOpen:!0,openChangeReason:null})});y.useSyncedValues({modal:m,nested:N}),h.useEffect(()=>{x||y.context.stickIfOpenTimeout.clear()},[y,x]);const O=h.useCallback(()=>{y.setOpen(!1,jt(fp))},[y]);h.useImperativeHandle(t.actionsRef,()=>({unmount:k,close:O}),[k,O]);const E=x||S,w=h.useMemo(()=>({store:y}),[y]);return i.jsxs(CS.Provider,{value:w,children:[E&&i.jsx(gM,{store:y,modal:m}),typeof r=="function"?r({payload:j}):r]})}function hM(t){return ti(!0)?i.jsx(Uv,{props:t}):i.jsx(y1,{children:i.jsx(Uv,{props:t})})}function gM({store:t,modal:r}){const o=t.useState("floatingRootContext"),a=Rp(o,{outsidePressEvent:{mouse:r==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),c=a.reference??Vt,u=a.trigger??Vt,m=h.useMemo(()=>tr(xu,a.floating),[a.floating]);return Ap(t,{activeTriggerProps:c,inactiveTriggerProps:u,popupProps:m}),null}const xM=300,bM=h.forwardRef(function(r,o){const{render:a,className:c,style:u,disabled:m=!1,nativeButton:g=!0,handle:b,payload:p,openOnHover:y=!1,delay:x=xM,closeDelay:S=0,id:j,...N}=r,k=ti(!0),O=b?.store??k?.store;if(!O)throw new Error(jn(74));const E=Ro(j),w=O.useState("isTriggerActive",E),_=O.useState("floatingRootContext"),T=O.useState("isOpenedByTrigger",E),V=O.useState("triggerPopupId",E),M=h.useRef(null),{registerTrigger:L,isMountedByThisTrigger:C}=B1(E,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=G1(_,{enabled:!m&&_!=null&&y&&(ie!=="touch"||Z!==vo),mouseOnly:!0,move:!1,handleClose:q1(),restMs:x,delay:{close:S},triggerElementRef:M,isActiveTrigger:w,isClosing:()=>O.select("transitionStatus")==="ending"}),ne=v1(_,{enabled:_!=null,stickIfOpen:re}),W=sS(()=>O.select("open"),G=>{O.set("openMethod",G)}),D=O.useState("triggerProps",C),{getButtonProps:z,buttonRef:P}=Zl({disabled:m,native:g}),H={open(G){return G&&Z===vo?Sm.open(G):cC.open(G)}},{preFocusGuardRef:F,handlePreFocusGuardFocus:A,handleFocusTargetFocus:B}=oS(O,M),U=pn("button",r,{state:{disabled:m,open:T},ref:[P,o,L,M],props:[ne.reference,K,D,W,{[d1]:"",id:E,"aria-haspopup":"dialog","aria-expanded":T,"aria-controls":V},N,z],stateAttributesMapping:H});return C&&!te?i.jsxs(h.Fragment,{children:[i.jsx(Pr,{ref:F,onFocus:A}),i.jsx(h.Fragment,{children:U},E),i.jsx(Pr,{ref:O.context.triggerFocusTargetRef,onFocus:B})]}):i.jsx(h.Fragment,{children:U},E)}),RS=h.createContext(void 0);function yM(){const t=h.useContext(RS);if(t===void 0)throw new Error(jn(45));return t}const vM=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:u}=ti();return u.useState("mounted")||a?i.jsx(RS.Provider,{value:a,children:i.jsx(Np,{ref:o,...c})}):null}),OS=h.createContext(void 0);function SM(){const t=h.useContext(OS);if(!t)throw new Error(jn(46));return t}const EM=h.forwardRef(function(r,o){const{render:a,className:c,style:u,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:N=5,sticky:k=!1,disableAnchorTracking:O=!1,collisionAvoidance:E=f1,...w}=r,{store:_}=ti(),T=yM(),V=wp(),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=gp(K,!1,!1),H=J1({anchor:m,floatingRootContext:M,positionMethod:g,mounted:L,side:b,sideOffset:y,align:p,alignOffset:x,arrowPadding:N,collisionBoundary:S,collisionPadding:j,sticky:k,disableAnchorTracking:O,keepMounted:T,nodeId:V,collisionAvoidance:E,adaptiveOrigin:D?Q1:void 0}),F=M.useState("domReferenceElement");Qe(()=>{const U=F,G=z.current;if(U&&(z.current=U),G&&U&&U!==G){_.set("instantType",void 0);const Q=new AbortController;return P(()=>{_.set("instantType","trigger-change")},Q.signal),()=>{Q.abort()}}},[F,P,_]),tS(C&&ie===!0&&Z!==mn,te==="touch",K,re);const A=h.useCallback(U=>{_.set("positionerElement",U)},[_]),B={open:C,side:H.side,align:H.align,anchorHidden:H.anchorHidden,instant:ne},I=W1(r,B,{styles:H.positionerStyles,transitionStatus:W,props:w,refs:[o,A],hidden:!L,inert:!C});return i.jsxs(OS.Provider,{value:H,children:[L&&ie===!0&&Z!==mn&&i.jsx(Pp,{ref:_.context.internalBackdropRef,inert:Up(!C),cutout:re}),i.jsx(b1,{id:V,children:I})]})}),NM=h.createContext(void 0);function jM(){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 wM(t){const{value:r,children:o}=t;return i.jsx(NM.Provider,{value:r,children:o})}const TM={...Jl,...ru},CM=h.forwardRef(function(r,o){const{render:a,className:c,style:u,initialFocus:m,finalFocus:g,...b}=r,{store:p}=ti(),y=SM(),x=$1()!=null,{context:S,hasClosePart:j}=jM(),N=p.useState("open"),k=p.useState("openMethod"),O=p.useState("instantType"),E=p.useState("transitionStatus"),w=p.useState("popupProps"),_=p.useState("titleElementId"),T=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;cu({open:N,ref:p.context.popupRef,onComplete(){N&&p.context.onOpenChangeComplete?.(!0)}}),F1(Z,{enabled:te&&!ie,closeDelay:K});const W=m===void 0?D1(p.context.popupRef):m,D=V!==!1&&j;p.useSyncedValue("focusManagerModal",D);const z=h.useCallback(F=>{p.set("popupElement",F)},[p]),P={open:N,side:y.side,align:y.align,instant:O,transitionStatus:E},H=pn("div",r,{state:P,ref:[o,p.context.popupRef,z],props:[w,{id:ne,role:"dialog",...xu,"aria-labelledby":_,"aria-describedby":T,onKeyDown(F){x&&Bp.has(F.key)&&F.stopPropagation()}},Hp(E),b],stateAttributesMapping:TM});return i.jsx(Cp,{context:Z,openInteractionType:k,modal:D,disabled:!M||L===mn,initialFocus:W,returnFocus:g,restoreFocus:"popup",previousFocusableElement:Yt(C)?C:void 0,nextFocusableElement:p.context.triggerFocusTargetRef,beforeContentFocusGuardRef:p.context.beforeContentFocusGuardRef,children:i.jsx(wM,{value:S,children:H})})});function kS({...t}){return i.jsx(hM,{"data-slot":"popover",...t})}function _S({...t}){return i.jsx(bM,{"data-slot":"popover-trigger",...t})}function MS({align:t="start",alignOffset:r=0,side:o="bottom",sideOffset:a=8,className:c,...u}){return i.jsx(vM,{children:i.jsx(EM,{className:"isolate z-50 outline-none",align:t,alignOffset:r,side:o,sideOffset:a,children:i.jsx(CM,{"data-slot":"popover-content",className:$e("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),...u})})})}const RM=100;function AS({value:t,valueName:r,excludeIds:o,onChange:a,placeholder:c="上级设定(选填)"}){const[u,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(""),[x,S]=h.useState(!1),[j,N]=h.useState(!1);async function k(){S(!0),N(!1);try{const E=await Nn("setting",{q:p.trim()||void 0,limit:RM,sort:"name"});b(o&&o.length>0?E.items.filter(w=>!o.includes(w.id)):E.items)}catch{b(null),N(!0)}finally{S(!1)}}h.useEffect(()=>{u&&k()},[u]),h.useEffect(()=>{if(!u)return;const E=setTimeout(()=>{k()},300);return()=>clearTimeout(E)},[p,u]);const O=t?r??g?.find(E=>E.id===t)?.name??t:"";return i.jsxs(kS,{open:u,onOpenChange:m,children:[i.jsx(_S,{render:i.jsxs(me,{variant:"outline",type:"button",className:$e("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(MS,{className:"flex w-72 flex-col gap-2 p-2",children:[i.jsx(_t,{value:p,onChange:E=>y(E.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(E=>{const w=typeof E.summary?.category=="string"?E.summary.category:"";return i.jsxs("button",{type:"button",onClick:()=>{a(E.id),m(!1)},className:$e("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",E.id===t&&"bg-muted/70"),children:[i.jsx("span",{className:"min-w-0 truncate",children:E.name}),w&&i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:w})]},E.id)})})]})]})}function OM(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 u(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=u(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(u(b.id)):o.has(p)||(g=!0,m.push(u(b.id)))}return{roots:m,hasOrphanEdges:g}}const Mc=200;function DS({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:$e("shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",!c&&"invisible"),onClick:()=>a(u=>!u),disabled:!c,children:i.jsx("svg",{viewBox:"0 0 16 16",className:$e("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:()=>cn(`/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(u=>i.jsx(DS,{node:u,depth:r+1},u.id))})]})}function kM({reloadKey:t}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[u,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[N,k]=await Promise.all([Nn("setting",{limit:Mc,sort:"name"}),Ur({source_type:"setting",target_type:"setting",relation_type:"belongs_to",depth:1})]);if(j)return;const O=k.relations.map(w=>({childId:w.sourceId,parentId:w.targetId})),E=OM(N.items,O);o(E.roots),m(E.hasOrphanEdges),c(N.total>Mc)}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,N)=>i.jsx("div",{className:"h-7 animate-pulse rounded bg-muted",style:{marginLeft:`${N%3*16}px`}},N))}):r!==null&&r.length===0?i.jsxs("div",{className:"mt-3 rounded-lg border border-dashed border-border px-6 py-12 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"还没有设定,先新建一个吧"}),i.jsx(me,{className:"mt-4",type:"button",onClick:()=>cn("/entities/setting"),children:"去「设定」tab 新建"})]}):i.jsxs("div",{className:"mt-3",children:[i.jsx("ul",{children:r?.map(j=>i.jsx(DS,{node:j,depth:0},j.id))}),(a||u)&&i.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:[a?`设定数量超过 ${Mc},仅展示前 ${Mc} 个(可按名称搜索定位);`:"",u?"部分设定的上级未在展示范围内,已作为独立节点展示。":""]})]})}function Jc({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 lm(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 va={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},Pv=[{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 im({type:t}){const r=t==="relations",o=t==="setting-tree",a=Ta.includes(t)?t:"character",[c,u]=h.useState(null),[m,g]=h.useState(0),[b,p]=h.useState(!1),[y,x]=h.useState(null),[S,j]=h.useState(""),[N,k]=h.useState(""),[O,E]=h.useState(0),[w,_]=h.useState("updated_at"),[T,V]=h.useState("desc"),[M,L]=h.useState(""),[C,Z]=h.useState([]),[re,ie]=h.useState(0);Ms(()=>ie(q=>q+1));const[te,K]=h.useState(!1),[ne,W]=h.useState(""),[D,z]=h.useState(""),[P,H]=h.useState(null),[F,A]=h.useState(!1),[B,I]=h.useState(null),U=j3[a],G=Rv[a],Q=N3(m,wl),he=Math.floor(O/wl)+1,le=lm(c?.map(q=>q.name)??[]),de=G.key===""?[]:G.input==="tags"?lm((c??[]).flatMap(q=>Array.isArray(q.summary[G.key])?q.summary[G.key]:[])):lm(c?.map(q=>String(q.summary[G.key]??""))??[]);h.useEffect(()=>{j(""),k(""),E(0),_("updated_at"),V("desc"),L(""),u(null),x(null),K(!1),I(null)},[t]),h.useEffect(()=>{const q=setTimeout(()=>{k(S.trim()),E(0)},300);return()=>clearTimeout(q)},[S]),h.useEffect(()=>{if(r||o)return;let q=!1;return p(!0),x(null),Nn(a,{q:N||void 0,offset:O,limit:wl,sort:w,order:T,tag:M||void 0}).then(_e=>{q||(u(_e.items),g(_e.total))}).catch(_e=>{q||(u(null),x(_e instanceof Me?_e.code:ut))}).finally(()=>{q||p(!1)}),()=>{q=!0}},[a,N,O,w,T,re,r,o,M]),h.useEffect(()=>{if(a!=="setting"||r||o){Z([]),L("");return}let q=!1;return Nn("setting",{limit:200}).then(_e=>{if(q)return;const Re=new Set;for(const ke of _e.items)if(Array.isArray(ke.summary.tags))for(const be of ke.summary.tags)typeof be=="string"&&be!==""&&Re.add(be);Z(Array.from(Re).sort())}).catch(()=>{}),()=>{q=!0}},[a,r,o,re]);function He(q){const _e=Pv.find(Re=>Re.value===q);_e&&(_(_e.sort),V(_e.order),E(0))}function ze(){W(""),z(""),I(null),H(null),K(!0)}function we(){K(!1),H(null)}async function Ie(q){q.preventDefault();const _e=ne.trim();if(!_e){H("请输入名称");return}A(!0),H(null);try{const Re=Rv[a],ke={};Re.key!==""&&D.trim()&&(Re.input==="tags"?ke[Re.key]=D.split(/[,,]/).map(Le=>Le.trim()).filter(Le=>Le!==""):ke[Re.key]=D.trim());const be=await Uc(a,{name:_e,data:ke});if(Ce.getState().showToast(`已创建${va[a]}《${_e}》`),a==="setting"&&B)try{await or({source_type:"setting",source_id:be.id,target_type:"setting",target_id:B,relation_type:"belongs_to"})}catch{Ce.getState().showToast("已创建,但上级设定关联失败,可进详情页重新设置","error")}K(!1),ie(Le=>Le+1)}catch(Re){H(Re instanceof Me?Re.message:"创建失败,请重试")}finally{A(!1)}}function ge(){j(""),k(""),E(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-zinc-200 pb-3",children:[i.jsxs("div",{className:"flex gap-1",children:[Ta.map(q=>i.jsx("button",{type:"button",onClick:()=>cn(`/entities/${q}`),className:$e("rounded-md border border-border px-3 py-1.5 text-sm",!r&&!o&&a===q?"bg-zinc-900 text-white":"text-zinc-500 hover:bg-zinc-100 hover:text-zinc-800"),children:va[q]},q)),i.jsx("button",{type:"button",onClick:()=>cn("/entities/relations"),className:$e("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:()=>cn("/entities/setting-tree"),className:$e("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(_t,{value:S,onChange:q=>j(q.target.value),placeholder:`搜索${va[a]}名称…`,className:"w-52"}),!o&&i.jsx(me,{type:"button",onClick:r?()=>K(!0):ze,children:r?"+ 建立关联":"+ 新建"})]})]}),r?i.jsx(vS,{reloadKey:re,onOpenCreate:()=>K(!0)}):o?i.jsx(kM,{reloadKey:re}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"mb-2 mt-3 flex items-center gap-3",children:[i.jsxs("label",{className:"flex items-center gap-2 text-sm text-zinc-500",children:["排序:",i.jsx("select",{value:`${w}:${T}`,onChange:q=>He(q.target.value),className:"rounded-md border border-zinc-300 bg-white px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400",children:Pv.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-zinc-500",children:["标签:",i.jsxs("select",{value:M,onChange:q=>{L(q.target.value),E(0)},className:"rounded-md border border-zinc-300 bg-white px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400",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-zinc-400",children:["共 ",m," 个"]})]}),te&&i.jsxs("form",{id:"create-entity-row",onSubmit:Ie,className:"mb-3 flex flex-wrap items-center gap-2 rounded-md border border-border bg-card px-3 py-2",children:[i.jsx(_t,{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(Jc,{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:tm(a,G.key,q)},q))]}):i.jsx(_t,{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(Jc,{id:`entity-create-first-${a}`,options:de}),a==="setting"&&i.jsx(AS,{value:B,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-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",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-zinc-200",children:Array.from({length:6},(q,_e)=>i.jsxs("div",{className:"flex items-center gap-3 border-b border-zinc-100 px-3 py-3 last:border-0",children:[i.jsx("div",{className:"h-4 w-1/4 animate-pulse rounded bg-zinc-100"}),i.jsx("div",{className:"h-4 w-1/6 animate-pulse rounded bg-zinc-100"}),U.key2&&i.jsx("div",{className:"h-4 w-1/6 animate-pulse rounded bg-zinc-100"}),i.jsx("div",{className:"ml-auto h-4 w-16 animate-pulse rounded bg-zinc-100"})]},_e))}),!b&&c!==null&&c.length===0&&i.jsx("div",{className:"rounded-lg border border-dashed border-zinc-300 px-6 py-12 text-center",children:N?i.jsxs(i.Fragment,{children:[i.jsxs("p",{className:"text-sm text-zinc-600",children:["没有匹配「",N,"」的",va[a]]}),i.jsx(me,{variant:"outline",className:"mt-4",type:"button",onClick:ge,children:"清空搜索"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("p",{className:"text-sm text-zinc-600",children:["还没有",va[a],",新建一个"]}),i.jsxs(me,{className:"mt-4",type:"button",onClick:ze,children:["+ 新建",va[a]]})]})}),!b&&c!==null&&c.length>0&&i.jsx("div",{className:"overflow-hidden rounded-md border border-zinc-200",children:i.jsxs("table",{className:"w-full text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-zinc-200 bg-zinc-50 text-xs text-zinc-400",children:[i.jsx("th",{className:"px-3 py-2 font-normal",children:"名称"}),i.jsx("th",{className:"px-3 py-2 font-normal",children:U.label1}),U.key2&&i.jsx("th",{className:"px-3 py-2 font-normal",children:U.label2}),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-zinc-100 transition-colors last:border-0 hover:bg-zinc-50",onClick:()=>cn(`/entities/${a}/${q.id}`),title:`打开《${q.name}》`,children:[i.jsx("td",{className:"max-w-64 truncate px-3 py-2 font-medium text-zinc-800",children:q.name}),i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-zinc-600",children:tm(a,U.key1,q.summary[U.key1])}),U.key2&&i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-zinc-600",children:tm(a,U.key2,q.summary[U.key2])}),i.jsx("td",{className:"whitespace-nowrap px-3 py-2 text-right text-xs text-zinc-400",children:is(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-zinc-300 px-3 py-1 text-zinc-600 hover:bg-zinc-100 disabled:opacity-40",onClick:()=>E((he-2)*wl),children:"‹ 上一页"}),i.jsxs("span",{className:"text-zinc-500",children:["第 ",he," / ",Q," 页"]}),i.jsx("button",{type:"button",disabled:he>=Q||b,className:"rounded-md border border-zinc-300 px-3 py-1 text-zinc-600 hover:bg-zinc-100 disabled:opacity-40",onClick:()=>E(he*wl),children:"下一页 ›"})]})]}),r&&te&&i.jsx(Qp,{source:null,onCreated:()=>ie(q=>q+1),onClose:()=>K(!1)})]})}function _M({type:t,id:r,currentData:o,deltaCount:a}){const c=Be(w=>w.outline),u=Be(w=>w.config),m=Be(w=>w.loadOutline),[g,b]=h.useState(()=>{const w=Be.getState().config?.currentPosition??"",_=Be.getState().outline?.children??[];return w!==""&&rr(_).some(T=>T.id===w)?w:""}),[p,y]=h.useState(!1),[x,S]=h.useState(null),[j,N]=h.useState(null);h.useEffect(()=>{b(w=>{if(w!=="")return w;const _=u?.currentPosition??"";return _!==""&&rr(c?.children??[]).some(T=>T.id===_)?_:""})},[u?.currentPosition,c]);const k=rr(c?.children??[]),O=new Map(k.map(w=>[w.id,w.label]));async function E(){if(!(!g||p)){y(!0),N(null);try{const w=await t2({target_type:t,target_id:r,at_node_id:g});S(w)}catch(w){S(null),w instanceof Me&&w.code==="OUTLINE_NODE_NOT_FOUND"?N("该节点已不存在,请重新选择计算节点"):N(w instanceof Me?w.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:w=>b(w.target.value),"aria-label":"计算节点",className:$e("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(w=>i.jsxs("option",{value:w.id,children:[" ".repeat(w.depth),w.label]},w.id))]})]}),i.jsx(me,{variant:"outline",size:"sm",type:"button",disabled:!g||p,onClick:()=>{E()},children:p?"计算中…":"计算"})]}),u?.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(MM,{result:x,currentData:o,nodeTitles:O})]})]})}function MM({result:t,currentData:r,nodeTitles:o}){const a=_3(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(Km,{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((u,m)=>i.jsxs("li",{className:"text-xs text-destructive",children:[u.field,":记录应为 ",as(u.expected),",实际为 ",as(u.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(u=>i.jsxs("li",{className:"flex items-baseline gap-2 text-xs",children:[i.jsx("span",{className:"shrink-0 font-medium text-foreground",children:u.field}),i.jsxs("span",{className:"text-muted-foreground",children:[u.from===void 0?"(无)":as(u.from)," →"," ",u.to===void 0?"(已移除)":as(u.to)]})]},u.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((u,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:u.description,children:u.description}),i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:["《",o.get(u.nodeId)??u.nodeId,"》"]})]}),u.skipped!==void 0&&u.skipped.length>0&&i.jsx("ul",{className:"mt-1 space-y-0.5",children:u.skipped.map(g=>i.jsxs("li",{className:"text-xs text-destructive",children:[g.field,":记录应为 ",as(g.expected),",实际 ",as(g.actual),"(已跳过)"]},g.index))}),i.jsx("div",{className:"mt-1.5",children:i.jsx(SS,{changes:u.changes,skipped:u.skipped?.map(g=>g.index)})})]},m))})]})]})}const AM={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"};function Cl(t,r){const o=t[r];return o==null?"":String(o)}function DM({values:t,onChange:r,placeholder:o,suggestions:a,quickTags:c}){return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[t.map((u,m)=>i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(_t,{value:u,onChange:g=>{const b=[...t];b[m]=g.target.value,r(b)},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((g,b)=>b!==m)),children:"删除"})]},m)),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(u=>!t.includes(u)).map(u=>i.jsx("button",{type:"button",onClick:()=>r([...t,u]),className:"rounded-md border border-border px-1.5 py-0.5 text-xs text-foreground hover:bg-muted hover:text-foreground",children:u},u))]}),a&&a.length>0&&i.jsx(Jc,{id:"entity-tags-suggestions",options:a})]})}function zM({value:t,onChange:r}){const[o,a]=h.useState(()=>Object.entries(t??{}).map(([u,m])=>({key:u,value:String(m??"")})));h.useEffect(()=>{a(Object.entries(t??{}).map(([u,m])=>({key:u,value:String(m??"")})))},[t]);function c(u){a(u);const m={};for(const g of u)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((u,m)=>i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(_t,{value:u.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(_t,{value:u.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 LM({type:t,id:r}){const o=t,[a,c]=h.useState(null),[u,m]=h.useState(!1),[g,b]=h.useState(!1),[p,y]=h.useState(null),[x,S]=h.useState(null),[j,N]=h.useState(!1),[k,O]=h.useState(null),[E,w]=h.useState(!1),[_,T]=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 B=!1;return Nn("setting",{limit:200}).then(I=>{if(B)return;const U=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!==""&&U.add(Q);te(Array.from(U).sort())}).catch(()=>{}),()=>{B=!0}},[o]);const K=Xp(o);async function ne(){m(!0),y(null),b(!1);try{const B=await po(o,r);c(B),S(JSON.parse(JSON.stringify(B.data)))}catch(B){c(null),S(null),B instanceof Me&&B.code==="ENTITY_NOT_FOUND"?b(!0):y(B instanceof Me?B.code:ut)}finally{m(!1)}}h.useEffect(()=>{ne()},[o,r]),Ms(()=>{ne()});async function W(){if(!a||!x||j)return;const B=Kp(a.data,x);if(!B){Ce.getState().showToast("没有变更");return}N(!0),O(null);try{await yo(o,r,{data:B}),Ce.getState().showToast("已保存"),await ne()}catch(I){if(I instanceof Me&&I.code==="ENTITY_NOT_FOUND"){b(!0);return}O(I instanceof Me?I.message:"保存失败,请重试")}finally{N(!1)}}function D(B,I){S(U=>U&&{...U,[B]:I})}async function z(){if(a)try{const B=await eu(o,r),I=[];B.cascaded.relations>0&&I.push(`${B.cascaded.relations} 条关联`),B.cascaded.deltas>0&&I.push(`${B.cascaded.deltas} 条变更记录`),Ce.getState().showToast(`已移入回收站,可随时还原${I.length>0?`(含 ${I.join("、")})`:""}`),cn(`/entities/${o}`)}catch(B){Ce.getState().showToast(B instanceof Me?B.message:"删除失败,请重试","error")}}async function P(){if(_)try{await Na(_.id),Ce.getState().showToast("已删除关系"),T(null),await ne()}catch(B){throw B}}async function H(B){if(!a||L)return;const I=nm(a.relations,r).parent;if(B!==I?.parentId){C(!0),re(null);try{await or({source_type:"setting",source_id:r,target_type:"setting",target_id:B,relation_type:"belongs_to"}),I&&await Na(I.relationId),Ce.getState().showToast(I?"已修改上级设定":"已设置上级设定"),await ne()}catch(U){re(U instanceof Me?U.message:"修改上级失败,请重试")}finally{C(!1)}}}async function F(){if(!a||L)return;const B=nm(a.relations,r).parent;if(B){C(!0),re(null);try{await Na(B.relationId),Ce.getState().showToast("已清除上级设定"),await ne()}catch(I){re(I instanceof Me?I.message:"清除上级失败,请重试")}finally{C(!1)}}}function A(B,I){return(I==="source"?B.sourceId:B.targetId)===r?a?.name??"本实体":(I==="source"?B.sourceName:B.targetName)??(I==="source"?B.sourceId:B.targetId)}return g?i.jsx("section",{children:i.jsxs("div",{className:"rounded-lg border border-dashed border-zinc-300 px-6 py-14 text-center",children:[i.jsx("p",{className:"text-sm text-zinc-600",children:"该实体不存在或已被删除"}),i.jsxs("div",{className:"mt-4 flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-zinc-300 px-4 py-1.5 text-sm text-zinc-600 hover:bg-zinc-100",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>cn(`/entities/${o}`),children:"返回列表"})]})]})}):i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(Jp,{items:[{label:"实体",href:"/entities/character"},{label:AM[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-red-600 hover:bg-red-50",onClick:()=>{z()},children:"移入回收站"})]})]}),a&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",is(a.createdAt)," · 更新于 ",is(a.updatedAt)," ·"," ",i.jsxs("button",{type:"button",onClick:()=>M(B=>!B),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(_M,{type:o,id:r,currentData:a.data,deltaCount:a.deltaCount}),u&&!a&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsx("div",{className:"space-y-3 rounded-md border border-zinc-200 p-4",children:Array.from({length:5},(B,I)=>i.jsx("div",{className:"h-9 animate-pulse rounded bg-zinc-100"},I))}),i.jsx("div",{className:"space-y-3 rounded-md border border-zinc-200 p-4",children:Array.from({length:3},(B,I)=>i.jsx("div",{className:"h-9 animate-pulse rounded bg-zinc-100"},I))})]}),!u&&!a&&p!==null&&i.jsxs("div",{className:"rounded-md border border-zinc-200 p-4 text-sm text-zinc-600",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-zinc-200 p-4",children:[i.jsx("h2",{className:"mb-3 text-sm font-semibold text-zinc-700",children:"基础信息"}),i.jsxs("div",{className:"flex flex-col gap-3",children:[K.map(B=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-zinc-700",children:B.label}),i.jsx(IM,{field:B,value:x[B.key],onChange:I=>D(B.key,I),tagPool:o==="setting"?ie:void 0})]},B.key)),"custom_fields"in a.data&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-zinc-700",children:"自定义字段"}),i.jsx(zM,{value:x.custom_fields,onChange:B=>D("custom_fields",B)})]})]}),k&&i.jsx("p",{className:"mt-3 text-sm text-red-600",children:k})]}),i.jsxs("div",{className:"rounded-md border border-zinc-200 p-4",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("h2",{className:"text-sm font-semibold text-zinc-700",children:"关联"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>w(!0),children:"+ 新增关联"})]}),o==="setting"&&(()=>{const B=nm(a.relations,r);return i.jsxs("div",{className:"mb-4 border-b border-zinc-100 pb-4",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-zinc-700",children:"层级(设定父子)"}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(AS,{value:B.parent?.parentId??null,valueName:B.parent?.parentName,excludeIds:[r],onChange:I=>{I&&H(I)},placeholder:"设置上级"}),B.parent&&i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs text-red-600 hover:bg-red-50",disabled:L,onClick:()=>{F()},children:"清除"})]})]}),Z&&i.jsx("p",{className:"mb-2 text-sm text-red-600",children:Z}),i.jsxs("div",{className:"flex flex-col gap-1.5 text-sm",children:[i.jsxs("span",{className:"text-zinc-500",children:["上级:",B.parent?i.jsx("button",{type:"button",title:"打开上级设定",className:"ml-1 rounded-md border border-border px-1.5 py-0.5 text-zinc-700 hover:bg-muted hover:text-foreground",onClick:()=>cn(`/entities/setting/${B.parent.parentId}`),children:B.parent.parentName??B.parent.parentId}):i.jsx("span",{className:"ml-1 text-zinc-400",children:"(独立设定——暂无上级)"})]}),i.jsxs("span",{className:"text-zinc-500",children:["子设定:",B.children.length===0?i.jsx("span",{className:"ml-1 text-zinc-400",children:"(无)"}):B.children.map(I=>i.jsx("button",{type:"button",title:"打开子设定",className:"ml-1 rounded-md border border-border px-1.5 py-0.5 text-zinc-700 hover:bg-muted hover:text-foreground",onClick:()=>cn(`/entities/setting/${I.childId}`),children:I.childName??I.childId},I.relationId))]})]})]})})(),(()=>{const B=o==="setting"?a.relations.filter(I=>!(I.relationType==="belongs_to"&&I.sourceType==="setting"&&I.targetType==="setting")):a.relations;return B.length===0?i.jsx("p",{className:"py-6 text-center text-sm text-zinc-400",children:o==="setting"?"暂无其他关联,新增一个":"暂无关联,新增一个"}):i.jsx("ul",{className:"divide-y divide-zinc-100",children:B.map(I=>{const U=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:"min-w-0 max-w-28 truncate text-zinc-700",children:G}),i.jsxs("span",{className:"shrink-0 rounded bg-zinc-100 px-1.5 py-0.5 text-xs text-zinc-500",children:[go(I.relationType)," ",U?"→":"←"]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-zinc-700",children:Q}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-red-600 hover:bg-red-50",onClick:()=>T(I),children:"删除"})]},I.id)})})})()]})]}),E&&i.jsx(Qp,{source:{type:o,id:r,name:a?.name??""},onCreated:ne,onClose:()=>w(!1)}),_&&i.jsx(ka,{title:"删除关系",description:`删除关系「${A(_,"source")} ${go(_.relationType)} ${A(_,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:P,onClose:()=>T(null)})]})}function IM({field:t,value:r,onChange:o,tagPool:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:Cl({[t.key]:r},t.key),onChange:c=>o(c.target.value),rows:3,className:"w-full rounded-md border border-zinc-300 px-3 py-1.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400"});case"number":return i.jsx(_t,{type:"number",value:Cl({[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(DM,{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:Cl({[t.key]:r},t.key),onChange:c=>o(c.target.value),className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400",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-zinc-900"});case"outline-node":return i.jsx(BM,{value:Cl({[t.key]:r},t.key),onChange:o});default:return i.jsx(_t,{value:Cl({[t.key]:r},t.key),onChange:c=>o(c.target.value),className:"h-8 text-sm"})}}function BM({value:t,onChange:r}){const o=Be(c=>c.outline),a=rr(o?.children??[]);return i.jsxs("select",{value:t,onChange:c=>r(c.target.value===""?null:c.target.value),className:$e("w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-zinc-400",t===""&&"text-zinc-400"),children:[i.jsx("option",{value:"",children:"未设置"}),a.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function HM(t){return t==="resolved"?"resolved":t==="abandoned"?"abandoned":"active"}function UM(t){const r={active:[],resolved:[],abandoned:[]};for(const o of t)r[HM(o.summary.status)].push(o);return r}function Hr(t,r){return t.filter(o=>o.relationType===r)}function zS(t,r){return Hr(t,"depends_on").filter(o=>o.sourceId===r).map(o=>o.targetName??o.targetId)}function PM(t,r){return Hr(t,"depends_on").filter(o=>o.targetId===r).map(o=>o.sourceName??o.sourceId)}function Yv(t,r){return PM(t,r).length}function YM(t,r){return Hr(t,"involves").map(o=>o.sourceId===r?o.targetName??o.targetId:o.sourceName??o.sourceId)}const VM=3;function FM(t){const r=t.maxDepth??VM,o=[],a=new Set([t.startHookId]),c=[{hookId:t.startHookId,depth:0}];for(;c.length>0;){const{hookId:u,depth:m}=c.shift();if(o.push({hookId:u,name:t.names.get(u)??u,depth:m}),!(m>=r))for(const g of t.depsOf.get(u)??[])g.relationType!=="depends_on"||g.sourceId!==u||a.has(g.targetId)||(a.add(g.targetId),c.push({hookId:g.targetId,depth:m+1}))}return o}function LS(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 GM(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 qM(t,r){const o=t?.currentPosition;return o!=null&&o!==""&&LS(r,o)?o:GM(r)}const IS={advance:"progressing",resolve:"resolved",abandon:"abandoned"},$M={advance:"advances",resolve:"resolves"};function Vv(t){const r=t.status;return typeof r=="string"&&r!==""?r:"planted"}function BS(t,r){return{field:"status",op:"update",from:t,to:r}}function XM(t,r,o){return{source_type:"outline_node",source_id:o,target_type:"hook",target_id:r,relation_type:$M[t]}}function KM(t,r){return{source_type:"outline_node",source_id:r,target_type:"hook",target_id:t,relation_type:"plants"}}function HS(t){return{status:t}}async function QM(t){const r=IS[t.kind];await np({node_id:t.nodeId,target_type:"hook",target_id:t.hookId,changes:[BS(t.fromStatus,r)],description:t.description});try{await or(XM(t.kind,t.hookId,t.nodeId))}catch(o){if(!(o instanceof Me&&o.code==="RELATION_EXISTS"))throw o}await yo("hook",t.hookId,{data:HS(r)})}async function ZM(t){await np({node_id:t.nodeId,target_type:"hook",target_id:t.hookId,changes:[BS(t.fromStatus,"abandoned")],description:t.description}),await yo("hook",t.hookId,{data:HS("abandoned")})}const cm={advance:"推进",resolve:"回收",abandon:"废弃"};function JM(t){return t==="resolved"||t==="abandoned"}function Rl(t,r){const o=t[r];return o==null?"":String(o)}function WM(){const[t,r]=h.useState(null),[o,a]=h.useState(!1),[c,u]=h.useState(null),[m,g]=h.useState(0);Ms(()=>g(ae=>ae+1));const[b,p]=h.useState([]),[y,x]=h.useState(!1),[S,j]=h.useState(null),[N,k]=h.useState(!1),[O,E]=h.useState(null),[w,_]=h.useState(null),[T,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,H]=h.useState(null),[F,A]=h.useState(!1),[B,I]=h.useState(!1),[U,G]=h.useState(""),[Q,he]=h.useState({}),[le,de]=h.useState(""),[He,ze]=h.useState(null),[we,Ie]=h.useState(!1),[ge,q]=h.useState({}),_e=Be(ae=>ae.config),Re=Be(ae=>ae.outline),ke=rr(Re?.children??[]),be=t===null?null:UM(t);h.useEffect(()=>{let ae=!1;return a(!0),u(null),x(!1),q({}),Nn("hook",{}).then(Oe=>{ae||r(Oe.items)}).catch(Oe=>{ae||(r(null),u(Oe instanceof Me?Oe.code:ut))}),Ur({source_type:"hook",relation_type:"depends_on",depth:1}).then(Oe=>{ae||p(Oe.relations)}).catch(()=>{ae||x(!0)}).finally(()=>{ae||a(!1)}),()=>{ae=!0}},[m]),h.useEffect(()=>{Be.getState().outline===null&&Be.getState().config!==null&&Be.getState().loadOutline()},[]);async function Le(ae){j(null),k(!0),E(null);try{j(await po("hook",ae.id))}catch(Oe){E(Oe instanceof Me?Oe.message:"详情加载失败,请重试")}finally{k(!1)}}async function Ye(ae,Oe){_(null),ie(null),Z("");try{const Pe=await po("hook",Oe.id),We=Be.getState().config?.currentPosition,pt=We!=null&&We!==""&&LS(Re,We)?We:"";L(pt),V(ae),_(Pe)}catch{Ce.getState().showToast("无法读取伏笔状态,请重试","error")}}async function Ue(){const ae=w;if(!ae||te)return;const Oe=T;K(!0),ie(null);try{if(Oe==="abandon"){const Pe=qM(_e,Re);if(Pe===null){ie("大纲为空,无法记录废弃变更");return}await ZM({hookId:ae.id,fromStatus:Vv(ae.data),nodeId:Pe,description:C.trim()})}else{if(M===""){ie("请选择大纲节点");return}await QM({kind:Oe,hookId:ae.id,fromStatus:Vv(ae.data),nodeId:M,description:C.trim()})}Ce.getState().showToast(`已${cm[Oe]}`),_(null),g(Pe=>Pe+1)}catch(Pe){ie(Pe instanceof Me?Pe.message:"操作失败,请重试")}finally{K(!1)}}async function ee(ae){W(null),H(null);try{const Oe=await po("hook",ae.id);W(Oe),z(JSON.parse(JSON.stringify(Oe.data)))}catch{Ce.getState().showToast("无法读取伏笔数据,请重试","error")}}async function Y(){if(!ne||!D||F)return;const ae=Kp(ne.data,D);if(!ae){Ce.getState().showToast("没有变更"),W(null);return}A(!0),H(null);try{await yo("hook",ne.id,{data:ae}),Ce.getState().showToast("已保存"),W(null),g(Oe=>Oe+1)}catch(Oe){H(Oe instanceof Me?Oe.message:"保存失败,请重试")}finally{A(!1)}}async function $(ae){ae.preventDefault();const Oe=U.trim();if(!Oe){ze("请输入名称");return}Ie(!0),ze(null);try{const Pe=await Uc("hook",{name:Oe,data:Q});if(le!=="")try{await or(KM(Pe.id,le))}catch(We){Ce.getState().showToast(`已创建伏笔《${Oe}》,但埋点关联失败:${We instanceof Me?We.message:"未知错误"}`,"error"),I(!1),g(pt=>pt+1);return}Ce.getState().showToast(`已创建伏笔《${Oe}》`),I(!1),G(""),he({}),de(""),g(We=>We+1)}catch(Pe){ze(Pe instanceof Me?Pe.message:"创建失败,请重试")}finally{Ie(!1)}}async function je(ae){try{const Oe=await eu("hook",ae.id),Pe=[];Oe.cascaded.relations>0&&Pe.push(`${Oe.cascaded.relations} 条关联`),Oe.cascaded.deltas>0&&Pe.push(`${Oe.cascaded.deltas} 条变更记录`),Ce.getState().showToast(`已移入回收站,可随时还原${Pe.length>0?`(含 ${Pe.join("、")})`:""}`),g(We=>We+1)}catch(Oe){Ce.getState().showToast(Oe instanceof Me?Oe.message:"删除失败,请重试","error")}}async function xe(ae){if(ge[ae.id]){q(Oe=>{const Pe={...Oe};return delete Pe[ae.id],Pe});return}q(Oe=>({...Oe,[ae.id]:{status:"loading",nodes:[]}}));try{const Oe=new Map,Pe=new Map,We=[{id:ae.id,depth:0}],pt=new Set;for(;We.length>0;){const{id:mt,depth:wt}=We.shift();if(pt.has(mt))continue;pt.add(mt);const Rt=await po("hook",mt);Pe.set(mt,Rt.name);const zt=Hr(Rt.relations,"depends_on").filter(Te=>Te.sourceId===mt);if(Oe.set(mt,zt),!(wt>=2))for(const Te of zt)Pe.has(Te.targetId)||Pe.set(Te.targetId,Te.targetName??Te.targetId),We.push({id:Te.targetId,depth:wt+1})}const Mt=FM({startHookId:ae.id,depsOf:Oe,names:Pe});q(mt=>({...mt,[ae.id]:{status:"ready",nodes:Mt}}))}catch{q(Oe=>({...Oe,[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:"mb-3 flex items-center gap-2 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",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,Oe)=>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:Oe===0?3:1},(Pe,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))]},Oe))}),!o&&be!==null&&t?.length===0&&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:"还没有伏笔。好伏笔要趁早埋下——先新建一个,或在聊天里让 AI 帮你规划。"}),i.jsx(me,{className:"mt-4",type:"button",onClick:()=>I(!0),children:"+ 新建伏笔"})]}),be!==null&&t&&t.length>0&&i.jsxs("div",{className:"space-y-4",children:[i.jsx(um,{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:Le,onLifecycle:Ye,onEdit:ee,onDelete:ae=>{je(ae)}}),i.jsx(um,{title:"已回收",icon:i.jsx(qm,{className:"size-3.5 shrink-0 text-primary"}),hooks:be.resolved,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:Le,onLifecycle:Ye,onEdit:ee,onDelete:ae=>{je(ae)}}),i.jsx(um,{title:"已废弃",icon:i.jsx(Lj,{className:"size-3.5 shrink-0 text-muted-foreground"}),hooks:be.abandoned,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:Le,onLifecycle:Ye,onEdit:ee,onDelete:ae=>{je(ae)}})]}),i.jsx(ws,{open:B,onOpenChange:ae=>!ae&&I(!1),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Os,{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(_t,{value:U,onChange:ae=>G(ae.target.value),placeholder:"如:身世之谜",maxLength:100})]}),i.jsx(Fv,{fields:tA,data:Q,onChange:he,nodeOptions:ke}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"埋点节点(选填,可空)"}),i.jsx(Bm,{value:le,onChange:de,nodeOptions:ke})]}),He&&i.jsx("p",{className:"text-sm text-destructive",children:He})]}),i.jsxs(Rs,{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(ws,{open:S!==null||N,onOpenChange:ae=>!ae&&j(null),children:i.jsxs(Ts,{className:"sm:max-w-lg",children:[i.jsx(Cs,{children:i.jsx(Os,{children:"伏笔详情"})}),N&&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(eA,{detail:S}),i.jsx(Rs,{children:i.jsx(me,{variant:"outline",type:"button",onClick:()=>j(null),children:"关闭"})})]})}),w&&i.jsx(ws,{open:!0,onOpenChange:ae=>!ae&&!te&&_(null),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsxs(Os,{children:[cm[T],"伏笔《",w.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[T!=="abandon"&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"大纲节点(默认当前位置)"}),i.jsx(Bm,{value:M,onChange:L,nodeOptions:ke,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:T==="abandon"?"说明废弃原因":"说明伏笔如何被推进/回收",className:"w-full 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"})]}),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 → ",IS[T],T==="advance"&&" + advances 关系",T==="resolve"&&" + resolves 关系"," + 同步 status"]}),T==="resolve"&&y&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:"依赖关系加载失败,无法确认依赖者"}),T==="resolve"&&!y&&Yv(b,w.id)>0&&i.jsxs("p",{className:"mt-2 text-sm text-destructive",children:["有 ",Yv(b,w.id)," 个伏笔依赖此伏笔"]})]}),re&&i.jsx("p",{className:"text-sm text-destructive",children:re})]}),i.jsxs(Rs,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>_(null),disabled:te,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Ue()},disabled:te,children:te?"提交中…":`确认${cm[T]}`})]})]})}),ne&&D&&i.jsx(ws,{open:!0,onOpenChange:ae=>!ae&&!F&&W(null),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsxs(Os,{children:["编辑伏笔《",ne.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsx(Fv,{fields:Xp("hook"),data:D,onChange:ae=>z(Oe=>Oe&&{...Oe,...ae}),nodeOptions:ke}),P&&i.jsx("p",{className:"text-sm text-destructive",children:P})]}),i.jsxs(Rs,{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 um({title:t,icon:r,hooks:o,depEdges:a,depEdgesFailed:c,chains:u,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=JM(x.summary.status),j=c?[]:zS(a,x.id),N=u[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($m,{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(wj,{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(t0,{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(fs,{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(Kl,{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(Ql,{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("、")]}),N?.status==="loading"&&i.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"依赖链展开中…"}),N?.status==="error"&&i.jsx("p",{className:"mt-0.5 text-xs text-destructive",children:"依赖链加载失败"}),N?.status==="ready"&&N.nodes.length>1&&i.jsx("ul",{className:"mt-1 space-y-0.5 border-l border-border pl-2",children:N.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 eA({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=Hr(t.relations,"plants"),u=Hr(t.relations,"advances"),m=Hr(t.relations,"resolves"),g=zS(t.relations,r),b=Hr(t.relations,"depends_on").filter(x=>x.targetId===r).map(x=>x.sourceName??x.sourceId),p=YM(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:qp[o]??o})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["创建于 ",is(t.createdAt)," · 更新于 ",is(t.updatedAt)]}),i.jsx(mo,{title:"埋点节点(plants)",items:c.map(x=>x.sourceName??x.sourceId)}),i.jsx(mo,{title:"推进节点(advances)",items:u.map(x=>x.sourceName??x.sourceId)}),i.jsx(mo,{title:"回收节点(resolves)",items:m.map(x=>x.sourceName??x.sourceId)}),i.jsx(mo,{title:"预计回收节点",items:y?[y]:[]}),i.jsx(mo,{title:"依赖(depends_on)",items:g}),i.jsx(mo,{title:"被依赖(其他伏笔依赖本伏笔)",items:b}),i.jsx(mo,{title:"涉及(involves)",items:p})]})}function mo({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 tA=[{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:$p},{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 Fv({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(nA,{field:c,value:r[c.key],nodeOptions:a,onValue:u=>o({...r,[c.key]:u})})]},c.key))})}function nA({field:t,value:r,nodeOptions:o,onValue:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:Rl({[t.key]:r},t.key),onChange:c=>a(c.target.value),rows:2,className:"w-full 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"});case"number":return i.jsx(_t,{type:"number",value:Rl({[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:Rl({[t.key]:r},t.key),onChange:c=>a(c.target.value),className:"w-full 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",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(Bm,{value:Rl({[t.key]:r},t.key),onChange:a,nodeOptions:o});default:return i.jsxs(i.Fragment,{children:[i.jsx(_t,{value:Rl({[t.key]:r},t.key),onChange:c=>a(c.target.value),placeholder:t.key==="category"?`如:${ty.join(" / ")}`:void 0,list:t.key==="category"?"hook-category-suggestions":void 0,className:"h-8 text-sm"}),t.key==="category"&&i.jsx(Jc,{id:"hook-category-suggestions",options:ty})]})}}function Bm({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:$e("w-full 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",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 Hm(t,r,o){const a=o===void 0?t:t.filter(u=>u!==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 Gv(t,r,o){const a=t.map(g=>({timepoint:g,events:[]})),c=new Map(a.map(g=>[g.timepoint.id,g])),u=new Map;for(const g of o)g.relationType!=="occurs_at"||g.sourceType!=="timepoint"||u.has(g.targetId)||u.set(g.targetId,g.sourceId);const m=[];for(const g of r){const b=u.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 sA(t,r,o,a,c){const u=[...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 Hm(u,{kind:a,id:m.id},c);const g=u.find(b=>b!==c);return g===void 0?0:Hm(u,{kind:"before",id:g},c)}function eh(t){const r=t.summary.tags;return Array.isArray(r)?r.filter(o=>typeof o=="string"):[]}function rA(t){const r=t.summary.description;return typeof r=="string"?r:""}function Um(t,r,o=5){const a=t.split(/[,,、\n]/),c=a[a.length-1].trim();if(c==="")return[];const u=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;u.has(p)||b.has(p)||p.toLowerCase().includes(m)&&(b.add(p),g.push(p))}return g}function Pm(t,r){const o=t.split(/[,,、\n]/);return o[o.length-1]=r,o.join(",")+","}function Bc(t){const r=new Set,o=[];for(const a of t)for(const c of eh(a))c!==""&&!r.has(c)&&(r.add(c),o.push(c));return o}function oA(t,r){return r===null||r===""?t:t.filter(o=>eh(o).includes(r))}function US(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 PS(t){return Array.isArray(t)?t.filter(r=>typeof r=="string").join(","):""}function aA(t){const r=t.data;return{name:t.name,description:typeof r.description=="string"?r.description:"",tagsInput:PS(r.tags)}}function YS(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=US(r.tagsInput);(c.length>0||t.data.tags!==void 0)&&(a.tags=c);const u={};for(const m of["description","tags"])JSON.stringify(a[m])!==JSON.stringify(t.data[m])&&(u[m]=a[m]);return Object.keys(u).length>0&&(o.data=u),o.name===void 0&&o.data===void 0?null:o}const VS="occurs_in",FS="occurs_at";function lA(t,r){return t.filter(o=>o.relationType===VS&&o.sourceId===r)}function iA(t,r){return{source_type:"event",source_id:t,target_type:"outline_node",target_id:r,relation_type:VS}}function dm(t,r){const o=t.find(a=>a.relationType===FS&&a.sourceType==="timepoint"&&a.targetId===r);return o===void 0?null:o.sourceId}function cA(t,r){return{source_type:"timepoint",source_id:t,target_type:"event",target_id:r,relation_type:FS}}function uA({ev:t,occursCount:r,hasOccursData:o,dragging:a,busy:c,showInsertBefore:u,showInsertAfter:m,eventDrag:g,onDetail:b,onEdit:p,onDelete:y}){const x=eh(t),S=rA(t),j=r(t.id),[N,k]=h.useState(!1),O=h.useRef(null),[E,w]=h.useState(!1);return h.useLayoutEffect(()=>{const _=O.current;if(_===null)return;const T=()=>{N||w(_.scrollHeight>_.clientHeight+1)};return T(),window.addEventListener("resize",T),()=>window.removeEventListener("resize",T)},[S,N]),i.jsxs("div",{draggable:!c,onDragStart:_=>g.onDragStart(_,t),onDragEnd:g.onDragEnd,onDragOver:_=>g.onDragOver(_,t),onDrop:_=>g.onDrop(_,t),className:$e("relative flex items-start",a&&"opacity-50"),children:[u&&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(Xm,{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($m,{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(Kl,{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(Ql,{className:"size-3.5"})})]})]}),S.trim()!==""&&i.jsxs("div",{className:"mt-1.5",children:[i.jsx("p",{ref:O,className:$e("text-sm leading-relaxed text-muted-foreground",!N&&"line-clamp-2"),children:S}),(N||E)&&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":N,children:N?"收起":"展开"})]})]})]})}function dA({timepoint:t,groupId:r,events:o,collapsed:a,dragSource:c,busy:u,occursCount:m,hasOccursData:g,showInsertBefore:b,showInsertAfter:p,onToggleCollapse:y,onRename:x,onDeleteTimepoint:S,onAddEventAt:j,onDragStart:N,onDragEnd:k,onDragOver:O,onDrop:E,eventDrag:w,eventInsertLines:_,onDetail:T,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&&!u&&!L,onDragStart:N,onDragEnd:k,onDragOver:O,onDrop:E,className:$e("flex items-start",!ie&&K&&"opacity-50"),children:[i.jsx("div",{className:"w-[22px] shrink-0",children:i.jsx("span",{"aria-hidden":"true",className:$e("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(Xm,{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:$e("min-w-0 truncate text-sm font-medium",ie?"italic text-muted-foreground":"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(Kl,{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(Wc,{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(Ql,{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(Fm,{className:$e("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(uA,{ev:D,occursCount:m,hasOccursData:g,dragging:c!==null&&c.kind==="event"&&c.id===D.id,busy:u,showInsertBefore:z.before,showInsertAfter:z.after,eventDrag:w,onDetail:T,onEdit:V,onDelete:M},D.id)})})]})}function fA({timepoints:t,events:r,allEvents:o,occursAtEdges:a,occursCount:c,hasOccursData:u,onMoveTimepoint:m,onMoveEvent:g,onMoveEventTo:b,onRenameTimepoint:p,onDeleteTimepoint:y,onAddEventAt:x,onDetail:S,onEdit:j,onDelete:N}){const k=h.useMemo(()=>Gv(t,r,a),[t,r,a]),O=h.useMemo(()=>Gv(t,o,a),[t,o,a]),E=h.useMemo(()=>[...k.groups.map(U=>({timepoint:U.timepoint,groupId:U.timepoint.id,events:U.events})),...k.ungrouped.length>0?[{timepoint:null,groupId:"",events:k.ungrouped}]:[]],[k]),w=h.useMemo(()=>{const U=new Map;for(const G of k.groups)for(const Q of G.events)U.set(Q.id,G.timepoint.id);for(const G of k.ungrouped)U.set(G.id,"");return U},[k]),_=h.useMemo(()=>t.map(U=>U.id),[t]),[T,V]=h.useState(new Set),[M,L]=h.useState(null),[C,Z]=h.useState(null),[re,ie]=h.useState(!1);function te(U){const G=U.currentTarget.getBoundingClientRect();return U.clientY<G.top+G.height/2?"before":"after"}function K(U){return U===""?-1:O.groups.findIndex(G=>G.timepoint.id===U)}function ne(U,G,Q){U.preventDefault(),U.dataTransfer.dropEffect="move";const he=te(U);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(U,G){G.timepoint!==null&&(U.dataTransfer.setData("text/plain",G.timepoint.id),U.dataTransfer.effectAllowed="move",L({kind:"timepoint",id:G.timepoint.id}),Z(null))}function D(U,G){U.dataTransfer.setData("text/plain",G.id),U.dataTransfer.effectAllowed="move",L({kind:"event",id:G.id}),Z(null)}function z(){L(null),Z(null)}function P(U,G){const Q=M;if(Q===null||Q.kind==="timepoint"&&G.timepoint===null)return;U.preventDefault(),U.dataTransfer.dropEffect="move";const he=te(U);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(U,G.groupId,{at:"group",anchorId:le})}function H(U,G,Q){const he=M;if(he!==null&&!(he.kind==="timepoint"&&Q.timepoint===null)){if(U.preventDefault(),U.dataTransfer.dropEffect="move",he.kind==="timepoint"){const le=te(U);Z(de=>de!==null&&de.kind==="timepoint"&&de.side===le&&de.groupId===Q.groupId?de:{kind:"timepoint",side:le,groupId:Q.groupId});return}ne(U,Q.groupId,{at:"row",anchorId:G.id})}}async function F(U,G,Q){const he=M;if(he===null||he.kind!=="event"||re)return;if(U.preventDefault(),Q===he.id){z();return}const le=te(U),de=sA(O.groups,O.ungrouped,K(G.groupId),le,he.id),He=w.get(he.id)??"";ie(!0);try{G.groupId===He?await g(he.id,de):await b(he.id,G.groupId===""?null:G.groupId,de)}finally{ie(!1),z()}}function A(U,G){const Q=M;if(Q===null||re)return;if(U.preventDefault(),Q.kind==="timepoint"){if(G.timepoint===null)return;if(G.groupId===Q.id){z();return}const de=te(U),He=Hm(_,{kind:de,id:G.groupId},Q.id);ie(!0),m(Q.id,He).finally(()=>{ie(!1),z()});return}const he=te(U),le=G.events.length===0?null:he==="before"?G.events[0].id:G.events[G.events.length-1].id;F(U,G,le)}function B(U,G,Q){const he=M;if(he!==null&&he.kind==="timepoint"){A(U,Q);return}F(U,Q,G.id)}function I(U){V(G=>{const Q=new Set(G);return Q.has(U)?Q.delete(U):Q.add(U),Q})}return i.jsxs("div",{className:"relative flex flex-col gap-2",children:[i.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute bottom-0 left-[11px] top-0 w-0.5 bg-border"}),E.map(U=>{const G=C!==null&&(C.kind==="timepoint"&&C.groupId===U.groupId||C.kind==="event"&&C.at==="group"&&C.groupId===U.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",He={onDragStart:D,onDragEnd:z,onDragOver:(ze,we)=>H(ze,we,U),onDrop:(ze,we)=>B(ze,we,U)};return i.jsx(dA,{timepoint:U.timepoint,groupId:U.groupId,events:U.events,collapsed:T.has(U.groupId),dragSource:M,busy:re,occursCount:c,hasOccursData:u,showInsertBefore:Q,showInsertAfter:he,onToggleCollapse:()=>I(U.groupId),onRename:p,onDeleteTimepoint:y,onAddEventAt:x,onDragStart:ze=>W(ze,U),onDragEnd:z,onDragOver:ze=>P(ze,U),onDrop:ze=>A(ze,U),eventDrag:He,eventInsertLines:ze=>({before:le&&C!==null&&C.kind==="event"&&C.anchorId===ze,after:de&&C!==null&&C.kind==="event"&&C.anchorId===ze}),onDetail:S,onEdit:j,onDelete:N},U.groupId===""?"__ungrouped__":U.groupId)})]})}function Ym({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 Sa={name:"",description:"",tagsInput:""};function mA(){const[t,r]=h.useState(null),[o,a]=h.useState(null),[c,u]=h.useState(!1),[m,g]=h.useState(null),[b,p]=h.useState(0);Ms(()=>p(Te=>Te+1));const[y,x]=h.useState([]),[S,j]=h.useState(!1),[N,k]=h.useState([]),[O,E]=h.useState(!1),[w,_]=h.useState(null),[T,V]=h.useState([]),[M,L]=h.useState(!1),[C,Z]=h.useState(Sa),[re,ie]=h.useState(null),[te,K]=h.useState(""),[ne,W]=h.useState(null),[D,z]=h.useState(!1),[P,H]=h.useState(!1),[F,A]=h.useState(""),[B,I]=h.useState(null),[U,G]=h.useState(!1),[Q,he]=h.useState(null),[le,de]=h.useState(null),[He,ze]=h.useState(null),[we,Ie]=h.useState(!1),ge=Be(Te=>Te.config),q=Be(Te=>Te.outline),_e=rr(q?.children??[]),Re=St(Te=>Te.sendMessage);h.useEffect(()=>{let Te=!1;return u(!0),g(null),j(!1),E(!1),Promise.allSettled([Nn("timepoint",{}).then(Se=>{Te||r(Se.items)}).catch(Se=>{Te||(r(null),g(Se instanceof Me?Se.code:ut))}),Nn("event",{}).then(Se=>{Te||(a(Se.items),V(Bc(Se.items)),Se.items.length>=Se.limit&&Nn("event",{limit:200}).then(Fe=>{Te||V(Bc(Fe.items))}).catch(()=>{}))}).catch(Se=>{Te||(a(null),g(Se instanceof Me?Se.code:ut))}),Ur({source_type:"timepoint",relation_type:"occurs_at",depth:1}).then(Se=>{Te||x(Se.relations)}).catch(()=>{Te||j(!0)}),Ur({source_type:"event",relation_type:"occurs_in",depth:1}).then(Se=>{Te||k(Se.relations)}).catch(()=>{Te||E(!0)})]).finally(()=>{Te||u(!1)}),()=>{Te=!0}},[b]),h.useEffect(()=>{Be.getState().outline===null&&Be.getState().config!==null&&Be.getState().loadOutline()},[]);async function ke(Te){Te.preventDefault();const Se=F.trim();if(!Se){I("请输入名称");return}G(!0),I(null);try{await Uc("timepoint",{name:Se}),Ce.getState().showToast(`已创建时间点《${Se}》`),H(!1),A(""),p(Fe=>Fe+1)}catch(Fe){I(Fe instanceof Me?Fe.message:"创建失败,请重试")}finally{G(!1)}}async function be(Te){Te.preventDefault();const Se=C.name.trim();if(!Se){W("请输入名称");return}z(!0),W(null);try{const Fe={};C.description.trim()!==""&&(Fe.description=C.description.trim());const Ot=US(C.tagsInput);Ot.length>0&&(Fe.tags=Ot);const Pt=await Uc("event",{name:Se,data:Fe});if(re!==null)try{await or(cA(re,Pt.id))}catch(se){Ce.getState().showToast(`已创建事件《${Se}》,但挂载到时间点失败:${se instanceof Me?se.message:"未知错误"}`,"error"),L(!1),Z(Sa),ie(null),K(""),p(ye=>ye+1);return}if(te!=="")try{await or({source_type:"event",source_id:Pt.id,target_type:"outline_node",target_id:te,relation_type:"occurs_in"})}catch(se){Ce.getState().showToast(`已创建事件《${Se}》,但节点关联失败:${se instanceof Me?se.message:"未知错误"}`,"error"),L(!1),Z(Sa),ie(null),K(""),p(ye=>ye+1);return}Ce.getState().showToast(`已创建事件《${Se}》`),L(!1),Z(Sa),ie(null),K(""),p(se=>se+1)}catch(Fe){W(Fe instanceof Me?Fe.message:"创建失败,请重试")}finally{z(!1)}}function Le(Te){const Se=Te.summary;he(Te),ze(null),de({name:Te.name,description:typeof Se.description=="string"?Se.description:"",tagsInput:PS(Se.tags)})}async function Ye(){const Te=Q,Se=le;if(!(!Te||!Se||we)){Ie(!0),ze(null);try{const Fe=YS({name:Te.name,data:Te.summary},Se);if(Fe===null){Ce.getState().showToast("没有变更"),he(null);return}await yo("event",Te.id,Fe),Ce.getState().showToast("已保存"),he(null),p(Ot=>Ot+1)}catch(Fe){ze(Fe instanceof Me?Fe.message:"保存失败,请重试")}finally{Ie(!1)}}}async function Ue(Te){try{const Se=await eu(Te.kind,Te.entity.id),Fe=[];Se.cascaded.relations>0&&Fe.push(`${Se.cascaded.relations} 条关联`),Se.cascaded.deltas>0&&Fe.push(`${Se.cascaded.deltas} 条变更记录`),Ce.getState().showToast(`已移入回收站,可随时还原${Fe.length>0?`(含 ${Fe.join("、")})`:""}`),p(Ot=>Ot+1)}catch(Se){Ce.getState().showToast(Se instanceof Me?Se.message:"删除失败,请重试","error")}}async function ee(Te,Se){try{await JT(Te,{order:Se}),Ce.getState().showToast("已调整时间点顺序")}catch(Fe){Ce.getState().showToast(Fe instanceof Me?`排序失败:${Fe.message}`:"排序失败,请重试","error")}finally{p(Fe=>Fe+1)}}async function Y(Te,Se){try{await ZT(Te,{order:Se}),Ce.getState().showToast("已调整事件顺序")}catch(Fe){Ce.getState().showToast(Fe instanceof Me?`排序失败:${Fe.message}`:"排序失败,请重试","error")}finally{p(Fe=>Fe+1)}}async function $(Te,Se,Fe){try{await j0(Te,{timepoint_id:Se,order:Fe}),Ce.getState().showToast(Se===null?"已移至未挂载区":"已调整事件挂载与顺序")}catch(Ot){Ce.getState().showToast(Ot instanceof Me?`操作失败:${Ot.message}`:"操作失败,请重试","error")}finally{p(Ot=>Ot+1)}}async function je(Te,Se){try{await yo("timepoint",Te,{name:Se}),Ce.getState().showToast("已重命名"),p(Fe=>Fe+1)}catch(Fe){Ce.getState().showToast(Fe instanceof Me?`重命名失败:${Fe.message}`:"重命名失败,请重试","error")}}function xe(Te){Z(Sa),K(""),W(null),ie(Te),L(!0)}function ae(){Z(Sa),K(""),W(null),ie(null),L(!0)}function Oe(){ge!==null&&Re("请按时间标签的语义先后顺序对时间轴时间点排序,并使用 propose_reorder_timepoints 工具生成排序提案。")}const Pe=o===null?[]:Bc(o),We=o===null?null:oA(o,w),pt=Te=>O?0:N.filter(Se=>Se.sourceId===Te).length,Mt=!O,mt=Um(C.tagsInput,T),wt=le===null?[]:Um(le.tagsInput,T);function Rt(Te){Z(Se=>({...Se,tagsInput:Pm(Se.tagsInput,Te)}))}function zt(Te){de(Se=>Se&&{...Se,tagsInput:Pm(Se.tagsInput,Te)})}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:$e("ml-auto",!ge&&"cursor-not-allowed"),title:ge?void 0:"请先打开项目",children:i.jsxs(me,{type:"button",variant:"outline",size:"sm",disabled:!ge,onClick:Oe,"aria-label":"AI 排序",children:[i.jsx($j,{className:"size-3.5"}),"AI 排序"]})}),i.jsx(me,{type:"button",variant:"outline",onClick:ae,children:"+ 新建事件"}),i.jsx(me,{type:"button",onClick:()=>H(!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:$e("rounded-full border px-2.5 py-0.5 text-xs transition-colors",w===null?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:"全部"}),Pe.map(Te=>i.jsx("button",{type:"button",onClick:()=>_(Se=>Se===Te?null:Te),className:$e("rounded-full border px-2.5 py-0.5 text-xs transition-colors",w===Te?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:Te},Te))]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[m!==null&&i.jsxs("div",{className:"mb-3 flex items-center gap-2 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:[m===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"时间轴加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>p(Te=>Te+1),children:"重试"})]}),c&&(t===null||o===null)&&m===null&&i.jsx("div",{className:"space-y-2",children:Array.from({length:4},(Te,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.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:"还没有时间点。先定义一个时间标签点(如「第二天黄昏」),再在其中挂载事件。"}),i.jsx(me,{className:"mt-4",type:"button",onClick:()=>H(!0),children:"+ 新建时间点"})]}),t!==null&&o!==null&&We!==null&&!(w!==null&&We.length===0)&&i.jsx(fA,{timepoints:t,events:We,allEvents:o,occursAtEdges:S?[]:y,occursCount:pt,hasOccursData:Mt,onMoveTimepoint:ee,onMoveEvent:Y,onMoveEventTo:$,onRenameTimepoint:je,onAddEventAt:xe,onDetail:Te=>cn(`/timeline/${Te.id}`),onEdit:Le,onDelete:Te=>{Ue({kind:"event",entity:Te})},onDeleteTimepoint:Te=>{Ue({kind:"timepoint",entity:Te})}}),!c&&o!==null&&o.length>0&&We!==null&&We.length===0&&i.jsxs("div",{className:"rounded-lg border border-dashed border-border px-6 py-8 text-center text-sm text-muted-foreground",children:["没有匹配「",w,"」的事件"]})]}),i.jsx(ws,{open:P,onOpenChange:Te=>!Te&&H(!1),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Os,{children:"新建时间点"})}),i.jsxs("form",{id:"create-timepoint-form",onSubmit:ke,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(_t,{value:F,onChange:Te=>A(Te.target.value),placeholder:"如:第二天黄昏",maxLength:100,autoFocus:!0})]}),B&&i.jsx("p",{className:"text-sm text-destructive",children:B})]}),i.jsxs(Rs,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>H(!1),disabled:U,children:"取消"}),i.jsx(me,{type:"submit",form:"create-timepoint-form",disabled:U,children:"创建"})]})]})}),i.jsx(ws,{open:M,onOpenChange:Te=>!Te&&L(!1),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Os,{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(_t,{value:C.name,onChange:Te=>Z(Se=>({...Se,name:Te.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:Te=>Z(Se=>({...Se,description:Te.target.value})),rows:2,placeholder:"事件发生了什么",className:"w-full 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"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(_t,{value:C.tagsInput,onChange:Te=>Z(Se=>({...Se,tagsInput:Te.target.value})),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Ym,{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(pA,{value:te,onChange:K,nodeOptions:_e})]}),ne&&i.jsx("p",{className:"text-sm text-destructive",children:ne})]}),i.jsxs(Rs,{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(ws,{open:!0,onOpenChange:Te=>!Te&&!we&&he(null),children:i.jsxs(Ts,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsxs(Os,{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(_t,{value:le.name,onChange:Te=>de(Se=>Se&&{...Se,name:Te.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:Te=>de(Se=>Se&&{...Se,description:Te.target.value}),rows:2,className:"w-full 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"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(_t,{value:le.tagsInput,onChange:Te=>de(Se=>Se&&{...Se,tagsInput:Te.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Ym,{suggestions:wt,visible:le.tagsInput.trim()!=="",onPick:zt})]}),He&&i.jsx("p",{className:"text-sm text-destructive",children:He})]}),i.jsxs(Rs,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>he(null),disabled:we,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Ye()},disabled:we,children:we?"保存中…":"保存"})]})]})})]})}function pA({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:$e("w-full 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",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 hA({id:t}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[u,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(null),[x,S]=h.useState(!1),[j,N]=h.useState(null),[k,O]=h.useState(!1),[E,w]=h.useState(""),[_,T]=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),[H,F]=h.useState(null);async function A(){try{const ge=await Nn("event",{limit:200});re(Bc(ge.items))}catch{}}async function B(){D(!1);try{const[ge,q]=await Promise.all([Nn("timepoint",{}),Nn("event",{limit:200})]);te(ge.items),ne(q.items)}catch{te(null),ne(null),D(!0)}}h.useEffect(()=>{A(),B()},[]);const I=Be(ge=>ge.outline),U=rr(I?.children??[]);async function G(){c(!0),b(null),m(!1);try{const ge=await po("event",t);o(ge),y(aA(ge))}catch(ge){o(null),y(null),ge instanceof Me&&ge.code==="ENTITY_NOT_FOUND"?m(!0):b(ge instanceof Me?ge.code:ut)}finally{c(!1)}}h.useEffect(()=>{G()},[t]),Ms(()=>{G(),A(),B()}),h.useEffect(()=>{Be.getState().outline===null&&Be.getState().config!==null&&Be.getState().loadOutline()},[]);async function Q(){if(!r||!p||x)return;const ge=YS({name:r.name,data:r.data},p);if(ge===null){Ce.getState().showToast("没有变更");return}S(!0),N(null);try{await yo("event",t,ge),Ce.getState().showToast("已保存"),await G()}catch(q){if(q instanceof Me&&q.code==="ENTITY_NOT_FOUND"){m(!0);return}N(q instanceof Me?q.message:"保存失败,请重试")}finally{S(!1)}}async function he(ge){if(!r||z||!ie||!K)return;const q=dm(r.relations,t);if(ge===(q??""))return;const _e=K.findIndex(ke=>ke.id===t),Re=_e===-1?K.length:_e;P(!0),F(null);try{await j0(t,{timepoint_id:ge===""?null:ge,order:Re}),Ce.getState().showToast(ge===""?"已移出挂载":"已更新挂载时间点"),await G()}catch(ke){if(ke instanceof Me&&ke.code==="ENTITY_NOT_FOUND"){m(!0);return}F(ke instanceof Me?ke.message:"挂载保存失败,请重试")}finally{P(!1)}}async function le(){if(!(E===""||V)){M(!0),T(null);try{await or(iA(t,E)),Ce.getState().showToast("已关联大纲节点"),O(!1),await G()}catch(ge){if(ge instanceof Me&&ge.code==="RELATION_EXISTS"){T("这条关系已经存在");return}T(ge instanceof Me?ge.message:"关联失败,请重试")}finally{M(!1)}}}async function de(){if(L)try{await Na(L.id),Ce.getState().showToast("已取消关联"),C(null),await G()}catch(ge){throw ge}}async function He(){if(r)try{const ge=await eu("event",t),q=[];ge.cascaded.relations>0&&q.push(`${ge.cascaded.relations} 条关联`),ge.cascaded.deltas>0&&q.push(`${ge.cascaded.deltas} 条变更记录`),Ce.getState().showToast(`已移入回收站,可随时还原${q.length>0?`(含 ${q.join("、")})`:""}`),cn("/timeline")}catch(ge){Ce.getState().showToast(ge instanceof Me?ge.message:"删除失败,请重试","error")}}if(u)return i.jsx("section",{children:i.jsxs("div",{className:"rounded-lg border border-dashed border-border px-6 py-14 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"该事件不存在或已被删除"}),i.jsxs("div",{className:"mt-4 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:()=>cn("/timeline"),children:"返回列表"})]})]})});const ze=r===null?[]:lA(r.relations,t),we=p===null?[]:Um(p.tagsInput,Z);function Ie(ge){y(q=>q&&{...q,tagsInput:Pm(q.tagsInput,ge)})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(Jp,{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:()=>{He()},children:"移入回收站"})]})]}),r&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",is(r.createdAt)," · 更新于 ",is(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(_t,{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:"w-full 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"})]}),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:()=>{B()},children:"重试"})]}):i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"}):i.jsxs("select",{value:dm(r.relations,t)??"",onChange:ge=>{he(ge.target.value)},disabled:z,className:$e("w-full 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",dm(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:"保存中…"}),H&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:H})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(_t,{value:p.tagsInput,onChange:ge=>y(q=>q&&{...q,tagsInput:ge.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Ym,{suggestions:we,visible:p.tagsInput.trim()!=="",onPick:Ie})]}),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(kS,{open:k,onOpenChange:ge=>{ge?(w(""),T(null),O(!0)):V||O(!1)},children:[i.jsx(_S,{render:i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",children:"+ 关联场景/章节"})}),i.jsxs(MS,{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(gA,{value:E,onChange:w,nodeOptions:U,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||E==="",children:V?"关联中…":"关联"})]})]})]})]}),ze.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:ze.map(ge=>i.jsxs("li",{className:"flex items-center gap-2 py-2 text-sm",children:[i.jsx("button",{type:"button",onClick:()=>cn(`/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(ka,{title:"取消关联",description:`取消《${L.targetName??L.targetId}》与事件的关联?物理删除不可恢复,可重新建立。`,confirmLabel:"取消关联",danger:!0,onConfirm:de,onClose:()=>C(null)})]})}function gA({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:$e("w-full 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",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 xA(t,r){const o=[];return t>0&&o.push(`${t} 条关系`),r>0&&o.push(`${r} 条变更记录`),o.length>0?`已还原,连带恢复 ${o.join("、")}`:"已还原"}function bA(t){return t>0?`已还原(含 ${t} 个子节点)`:"已还原"}function yA(t){return/软删祖先\s+([^\s,,]+)/.exec(t)?.[1]??null}const qv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},vA={volume:"卷",chapter:"章",scene:"场"};function $v({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 SA(){const[t,r]=h.useState(null),[o,a]=h.useState(!1),[c,u]=h.useState(null),[m,g]=h.useState(0);Ms(()=>g(T=>T+1));const[b,p]=h.useState(null),[y,x]=h.useState(null);h.useEffect(()=>{let T=!1;return a(!0),u(null),$T().then(V=>{T||r(V)}).catch(V=>{T||u(V instanceof Me?V.code:ut)}).finally(()=>{T||a(!1)}),()=>{T=!0}},[m]);async function S(){g(T=>T+1)}function j(T){return T instanceof Me&&(T.code==="ENTITY_NOT_FOUND"||T.code==="OUTLINE_NODE_NOT_FOUND")}function N(T){Ce.getState().showError(T instanceof Me?T.code:ut,T instanceof Me?T.message:"操作失败,请重试")}async function k(T){try{const V=await XT(T.type,T.id);Ce.getState().showToast(xA(V.restoredRelations,V.restoredDeltas)),await S()}catch(V){if(j(V)){Ce.getState().showToast("该对象已不存在","error"),await S();return}N(V)}}async function O(T){x(null);try{const V=await xy(T.id);Ce.getState().showToast(bA(V.restoredChildren)),await S(),Be.getState().loadOutline()}catch(V){if(V instanceof Me&&V.code==="OUTLINE_ANCESTOR_DELETED"){const M=yA(V.message);if(M===null){Ce.getState().showError("OUTLINE_ANCESTOR_DELETED","上级节点也在回收站,请先还原上级");return}x({node:T,ancestorId:M,ancestorName:t?.nodes.find(L=>L.id===M)?.title??M});return}if(j(V)){Ce.getState().showToast("该对象已不存在","error"),await S();return}N(V)}}async function E(){const T=y;if(T)try{await xy(T.ancestorId),Be.getState().loadOutline(),await O(T.node)}catch(V){if(j(V)){Ce.getState().showToast("该对象已不存在","error"),x(null),await S();return}N(V)}}async function w(){if(b)try{b.kind==="entity"?await KT(b.item.type,b.item.id):(await QT(b.item.id),Be.getState().loadOutline()),Ce.getState().showToast("已彻底删除"),await S()}catch(T){if(j(T)){Ce.getState().showToast("该对象已不存在","error"),await S();return}throw T}}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:"mb-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",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(T=>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))]},T))}),!o&&_&&i.jsx("div",{className:"rounded-lg border border-dashed border-border px-6 py-12 text-center text-sm text-muted-foreground",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(T=>i.jsxs("li",{className:"flex items-center gap-2 px-3 py-2",children:[i.jsx($v,{label:qv[T.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:T.name,children:T.name}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:bo(T.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(T)},children:"还原"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>p({kind:"entity",item:T}),children:"彻底删除"})]})]},T.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(T=>i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx($v,{label:vA[T.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:T.title,children:T.title}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:bo(T.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(T)},children:"还原"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>p({kind:"node",item:T}),children:"彻底删除"})]})]}),y?.node.id===T.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:()=>{E()},children:["还原上级《",y.ancestorName,"》"]})]})]},T.id))})]})]}),b&&i.jsx(ka,{title:"彻底删除",description:b.kind==="entity"?`将彻底删除《${b.item.name}》(${qv[b.item.type]})及其关联关系、变更记录,不可恢复。`:`将彻底删除《${b.item.title}》及整棵子树、关联关系、变更记录,不可恢复。`,confirmLabel:"确认彻底删除",danger:!0,onConfirm:w,onClose:()=>p(null)})]})}function fm(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 Xv(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 Kv=[{value:null,label:"关闭"},...hj.map(t=>({value:t,label:`每 ${t} 分钟`}))],Qv={auto:"自动",manual:"手动"};let Ol=0;function EA(){const t=Ce(z=>z.showToast),r=Ce(z=>z.showError),o=Ce(z=>z.notifyDataChanged),a=Be(z=>z.config),c=Be(z=>z.configLoading),u=Be(z=>z.updateConfig),m=Be(z=>z.loadConfig),g=Be(z=>z.loadOutline),[b,p]=h.useState(!1),[y,x]=h.useState(null),[S,j]=h.useState(!1),[N,k]=h.useState(null),[O,E]=h.useState(!1),[w,_]=h.useState(null),[T,V]=h.useState(""),[M,L]=h.useState(null),C=h.useRef(M);C.current=M;async function Z(){if(Be.getState().config===null)return;const z=++Ol;j(!0),k(null);try{const P=await c2();if(z!==Ol)return;x(P.backups)}catch(P){if(z!==Ol)return;const H=P instanceof Me?P.code:ut;k(H)}finally{z===Ol&&j(!1)}}const re=a?.id??null,ie=h.useRef(null);h.useEffect(()=>{if(re===null){Ol++,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 u({backup_frequency_minutes:P}),t(P===null?"已关闭自动备份":`自动备份频率已设为每 ${P} 分钟`)}catch(H){H instanceof Me&&H.code===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,频率未保存"):t("频率保存失败,请重试","error")}finally{p(!1)}}}async function K(){if(!(a===null||O)){E(!0);try{const z=T.trim();await u2(z.length>0?z:void 0),V(""),t(z.length>0?`已备份「${z}」`:"已备份"),await Z()}catch(z){t(z instanceof Me&&z.code!==ut?z.message:"无法连接服务,备份失败","error")}finally{E(!1)}}}async function ne(){if(w===null)return;const z=await d2(w.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(H=>H.fileName===M.fileName)?.name??"",P=M.value.trim();if(P===z){L(null);return}L({...M,saving:!0,error:null});try{await f2(M.fileName,M.value),L(null),t(P.length>0?`已重命名「${P}」`:"已清除备份名称"),await Z()}catch(H){const F=H instanceof Me&&H.code!==ut?H.message:"无法连接服务,重命名失败";if(C.current===null){t(F,"error");return}L(A=>A===null?A:{...A,saving:!1,error:F})}}const D=a===null?"":Kv.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:Kv.map(z=>i.jsx("option",{value:String(z.value),children:z.label},String(z.value)))}),i.jsx("input",{autoComplete:"off",value:T,onChange:z=>V(z.target.value),maxLength:ny,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(Il,{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:"h-7 animate-pulse rounded-md bg-muted"}),i.jsx("div",{className:"h-7 animate-pulse rounded-md bg-muted"})]}):N!==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:N===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:fm(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:Qv[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:Xv(z.size)}),P?i.jsxs(i.Fragment,{children:[i.jsx("input",{autoComplete:"off",value:M.value,onChange:H=>L(F=>F===null?F:{...F,value:H.target.value,error:null}),onKeyDown:H=>{H.key==="Enter"?W():H.key==="Escape"&&L(null)},onBlur:()=>{C.current?.saving||L(null)},maxLength:ny,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:H=>H.preventDefault(),"aria-label":"确认重命名",title:"确认(Enter)",children:M.saving?i.jsx(Il,{className:"size-3 animate-spin"}):i.jsx(t0,{className:"size-3"})}),i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>L(null),disabled:M.saving,onMouseDown:H=>H.preventDefault(),"aria-label":"取消重命名",title:"取消(Esc)",children:i.jsx(fs,{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":`重命名备份 ${fm(z.createdAt)}`,title:"重命名",children:i.jsx(Kl,{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})]}),w!==null&&i.jsx(ka,{title:"加载备份",description:`${fm(w.createdAt)} · ${Qv[w.kind]}${w.name!==void 0?` · ${w.name}`:""} · ${Xv(w.size)}。将覆盖当前项目数据;覆盖前会自动备份当前状态(可回退)`,confirmLabel:"确认加载",danger:!0,onConfirm:ne,onClose:()=>_(null)})]})}function kl(t){return t instanceof Me?t.code:ut}function NA(){const t=Ce(H=>H.showToast),r=Ce(H=>H.showError),o=Ce(H=>H.notifyDataChanged),a=Be(H=>H.config),c=Be(H=>H.configLoading),u=Be(H=>H.updateConfig),[m,g]=h.useState(!0),[b,p]=h.useState(""),[y,x]=h.useState(!1),[S,j]=h.useState(void 0),[N,k]=h.useState(""),[O,E]=h.useState(!1),[w,_]=h.useState(null),[T,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 H=await p2();p(H.model),x(H.apiKeySet),j(H.apiKeyMasked)}catch(H){r(kl(H),"读取 LLM 配置失败")}finally{g(!1)}}h.useEffect(()=>{ne()},[]),h.useEffect(()=>{const H=Be.getState();H.config===null&&!H.configLoading&&H.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 H=M.trim();await u({prompt:H}),L(H),t("提示词已保存,仅影响新请求"),o()}catch(H){kl(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,提示词未保存"):K("保存失败,请重试")}finally{ie(!1)}}async function D(){if(!b.trim()){_("模型名不能为空");return}_(null),E(!0);try{await If({model:b.trim()}),t("已保存,仅影响新请求"),p(b.trim())}catch(H){kl(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,模型配置未保存"):_("保存失败,请重试")}finally{E(!1)}}async function z(){if(!N.trim()){V("请输入新 key");return}V(null),E(!0);try{await If({api_key:N.trim()}),k(""),t("Key 已保存,仅影响新请求"),await ne()}catch(H){kl(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未保存"):V("保存失败,请重试")}finally{E(!1)}}async function P(){V(null),E(!0);try{await If({api_key:""}),k(""),t("Key 已清除"),await ne()}catch(H){kl(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未清除"):V("清除失败,请重试")}finally{E(!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-zinc-500",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-zinc-700",children:"AI 模型"}),i.jsx("p",{className:"mb-2 text-xs text-zinc-500",children:"默认 deepseek-v4-flash(可在服务端设置页或环境变量覆盖)"}),i.jsxs("div",{className:"flex max-w-sm gap-2",children:[i.jsx(_t,{value:b,onChange:H=>p(H.target.value),placeholder:"deepseek-v4-flash"}),i.jsx(me,{onClick:()=>{D()},disabled:O,type:"button",children:"保存设置"})]}),w&&i.jsx("p",{className:"mt-1 text-sm text-red-600",children:w})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-zinc-700",children:"API Key"}),i.jsxs("p",{className:"mb-2 text-xs text-zinc-500",children:["状态:",y?`已配置(${S??""})`:"未配置"]}),i.jsxs("div",{className:"flex max-w-sm gap-2",children:[i.jsx(_t,{value:N,onChange:H=>k(H.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"})]}),T&&i.jsx("p",{className:"mt-1 text-sm text-red-600",children:T})]}),i.jsxs("div",{className:"rounded-md border border-zinc-200 bg-zinc-50 p-3 text-xs leading-relaxed text-zinc-600",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:H=>L(H.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(EA,{})]})]})}function jA(t){const[r,o,a]=t.segments;switch(r){case void 0:return i.jsx(yv,{});case"outline":return o!==void 0?i.jsx(X3,{nodeId:o},o):i.jsx(E3,{});case"canvas":return i.jsx(fM,{});case"entities":{if(o==="relations")return i.jsx(im,{type:"relations"});if(o==="setting-tree")return i.jsx(im,{type:"setting-tree"});const c=o!==void 0&&Ta.includes(o)?o:"character";return a!==void 0?i.jsx(LM,{type:c,id:a},`${c}:${a}`):i.jsx(im,{type:c})}case"hooks":return i.jsx(WM,{});case"timeline":return o!==void 0?i.jsx(hA,{id:o},o):i.jsx(mA,{});case"trash":return i.jsx(SA,{});case"settings":return i.jsx(NA,{});default:return i.jsx(yv,{})}}function wA(){const t=xj();return i.jsx(p3,{route:t,children:jA(t)})}const GS=document.getElementById("root");if(!GS)throw new Error("#root 元素缺失(index.html)");mj.createRoot(GS).render(i.jsx(h.StrictMode,{children:i.jsx(h3,{children:i.jsx(wA,{})})}));
|