@whispering233/ai-editor-server 0.0.13 → 0.0.15
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-Dw_YYehf.css +1 -0
- package/client-dist/assets/index-Z8xntmCT.js +14 -0
- package/client-dist/index.html +2 -2
- package/dist/routes/chat.d.ts.map +1 -1
- package/dist/routes/chat.js +21 -6
- package/dist/routes/chat.js.map +1 -1
- package/dist/routes/settings.d.ts +5 -0
- package/dist/routes/settings.d.ts.map +1 -1
- package/dist/routes/settings.js +16 -0
- package/dist/routes/settings.js.map +1 -1
- package/package.json +6 -6
- package/client-dist/assets/index-CCE2-NsU.js +0 -14
- package/client-dist/assets/index-DEt_zpEi.css +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
function uj(t,r){for(var o=0;o<r.length;o++){const a=r[o];if(typeof a!="string"&&!Array.isArray(a)){for(const c in a)if(c!=="default"&&!(c in t)){const d=Object.getOwnPropertyDescriptor(a,c);d&&Object.defineProperty(t,c,d.get?d:{enumerable:!0,get:()=>a[c]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))a(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&a(m)}).observe(document,{childList:!0,subtree:!0});function o(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerPolicy&&(d.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?d.credentials="include":c.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function a(c){if(c.ep)return;c.ep=!0;const d=o(c);fetch(c.href,d)}})();function r0(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var If={exports:{}},jl={};var Zb;function dj(){if(Zb)return jl;Zb=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(a,c,d){var m=null;if(d!==void 0&&(m=""+d),c.key!==void 0&&(m=""+c.key),"key"in c){d={};for(var g in c)g!=="key"&&(d[g]=c[g])}else d=c;return c=d.ref,{$$typeof:t,type:a,key:m,ref:c!==void 0?c:null,props:d}}return jl.Fragment=r,jl.jsx=o,jl.jsxs=o,jl}var Jb;function fj(){return Jb||(Jb=1,If.exports=dj()),If.exports}var i=fj(),Bf={exports:{}},ot={};var Wb;function mj(){if(Wb)return ot;Wb=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),S=Symbol.iterator;function j(A){return A===null||typeof A!="object"?null:(A=S&&A[S]||A["@@iterator"],typeof A=="function"?A:null)}var 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 T(){}T.prototype=E.prototype;function _(A,B,I){this.props=A,this.context=B,this.refs=O,this.updater=I||N}var w=_.prototype=new T;w.constructor=_,k(w,E.prototype),w.isPureReactComponent=!0;var V=Array.isArray;function M(){}var L={H:null,A:null,T:null,S:null},C=Object.prototype.hasOwnProperty;function Q(A,B,I){var U=I.ref;return{$$typeof:t,type:A,key:B,ref:U!==void 0?U:null,props:I}}function ne(A,B){return Q(A.type,B,A.props)}function ue(A){return typeof A=="object"&&A!==null&&A.$$typeof===t}function ee(A){var B={"=":"=0",":":"=2"};return"$"+A.replace(/[=:]/g,function(I){return B[I]})}var X=/\/+/g;function te(A,B){return typeof A=="object"&&A!==null&&A.key!=null?ee(""+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 z(A,B,I,U,G){var K=typeof A;(K==="undefined"||K==="boolean")&&(A=null);var xe=!1;if(A===null)xe=!0;else switch(K){case"bigint":case"string":case"number":xe=!0;break;case"object":switch(A.$$typeof){case t:case r:xe=!0;break;case y:return xe=A._init,z(xe(A._payload),B,I,U,G)}}if(xe)return G=G(A),xe=U===""?"."+te(A,0):U,V(G)?(I="",xe!=null&&(I=xe.replace(X,"$&/")+"/"),z(G,B,I,"",function(He){return He})):G!=null&&(ue(G)&&(G=ne(G,I+(G.key==null||A&&A.key===G.key?"":(""+G.key).replace(X,"$&/")+"/")+xe)),B.push(G)),1;xe=0;var se=U===""?".":U+":";if(V(A))for(var le=0;le<A.length;le++)U=A[le],K=se+te(U,le),xe+=z(U,B,I,K,G);else if(le=j(A),typeof le=="function")for(A=le.call(A),le=0;!(U=A.next()).done;)U=U.value,K=se+te(U,le++),xe+=z(U,B,I,K,G);else if(K==="object"){if(typeof A.then=="function")return z(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 xe}function D(A,B,I){if(A==null)return A;var U=[],G=0;return z(A,U,"","",function(K){return B.call(I,K,G++)}),U}function Y(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:D,forEach:function(A,B,I){D(A,function(){B.apply(this,arguments)},I)},count:function(A){var B=0;return D(A,function(){B++}),B},toArray:function(A){return D(A,function(B){return B})||[]},only:function(A){if(!ue(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(K in B.key!==void 0&&(G=""+B.key),B)!C.call(B,K)||K==="key"||K==="__self"||K==="__source"||K==="ref"&&B.ref===void 0||(U[K]=B[K]);var K=arguments.length-2;if(K===1)U.children=I;else if(1<K){for(var xe=Array(K),se=0;se<K;se++)xe[se]=arguments[se+2];U.children=xe}return Q(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:d,_context:A},A},ot.createElement=function(A,B,I){var U,G={},K=null;if(B!=null)for(U in B.key!==void 0&&(K=""+B.key),B)C.call(B,U)&&U!=="key"&&U!=="__self"&&U!=="__source"&&(G[U]=B[U]);var xe=arguments.length-2;if(xe===1)G.children=I;else if(1<xe){for(var se=Array(xe),le=0;le<xe;le++)se[le]=arguments[le+2];G.children=se}if(A&&A.defaultProps)for(U in xe=A.defaultProps,xe)G[U]===void 0&&(G[U]=xe[U]);return Q(A,K,G)},ot.createRef=function(){return{current:null}},ot.forwardRef=function(A){return{$$typeof:g,render:A}},ot.isValidElement=ue,ot.lazy=function(A){return{$$typeof:y,_payload:{_status:-1,_result:A},_init:Y}},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(K){H(K)}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 ey;function Wl(){return ey||(ey=1,Bf.exports=mj()),Bf.exports}var h=Wl();const Be=r0(h),pj=uj({__proto__:null,default:Be},[h]);var Hf={exports:{}},Tl={},Uf={exports:{}},Pf={};var ty;function hj(){return ty||(ty=1,(function(t){function r(z,D){var Y=z.length;z.push(D);e:for(;0<Y;){var H=Y-1>>>1,F=z[H];if(0<c(F,D))z[H]=D,z[Y]=F,Y=H;else break e}}function o(z){return z.length===0?null:z[0]}function a(z){if(z.length===0)return null;var D=z[0],Y=z.pop();if(Y!==D){z[0]=Y;e:for(var H=0,F=z.length,A=F>>>1;H<A;){var B=2*(H+1)-1,I=z[B],U=B+1,G=z[U];if(0>c(I,Y))U<F&&0>c(G,I)?(z[H]=G,z[U]=Y,H=U):(z[H]=I,z[B]=Y,H=B);else if(U<F&&0>c(G,Y))z[H]=G,z[U]=Y,H=U;else break e}}return D}function c(z,D){var Y=z.sortIndex-D.sortIndex;return Y!==0?Y:z.id-D.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;t.unstable_now=function(){return d.now()}}else{var m=Date,g=m.now();t.unstable_now=function(){return m.now()-g}}var b=[],p=[],y=1,x=null,S=3,j=!1,N=!1,k=!1,O=!1,E=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function w(z){for(var D=o(p);D!==null;){if(D.callback===null)a(p);else if(D.startTime<=z)a(p),D.sortIndex=D.expirationTime,r(b,D);else break;D=o(p)}}function V(z){if(k=!1,w(z),!N)if(o(b)!==null)N=!0,M||(M=!0,ee());else{var D=o(p);D!==null&&W(V,D.startTime-z)}}var M=!1,L=-1,C=5,Q=-1;function ne(){return O?!0:!(t.unstable_now()-Q<C)}function ue(){if(O=!1,M){var z=t.unstable_now();Q=z;var D=!0;try{e:{N=!1,k&&(k=!1,T(L),L=-1),j=!0;var Y=S;try{t:{for(w(z),x=o(b);x!==null&&!(x.expirationTime>z&&ne());){var H=x.callback;if(typeof H=="function"){x.callback=null,S=x.priorityLevel;var F=H(x.expirationTime<=z);if(z=t.unstable_now(),typeof F=="function"){x.callback=F,w(z),D=!0;break t}x===o(b)&&a(b),w(z)}else a(b);x=o(b)}if(x!==null)D=!0;else{var A=o(p);A!==null&&W(V,A.startTime-z),D=!1}}break e}finally{x=null,S=Y,j=!1}D=void 0}}finally{D?ee():M=!1}}}var ee;if(typeof _=="function")ee=function(){_(ue)};else if(typeof MessageChannel<"u"){var X=new MessageChannel,te=X.port2;X.port1.onmessage=ue,ee=function(){te.postMessage(null)}}else ee=function(){E(ue,0)};function W(z,D){L=E(function(){z(t.unstable_now())},D)}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(z){z.callback=null},t.unstable_forceFrameRate=function(z){0>z||125<z?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<z?Math.floor(1e3/z):5},t.unstable_getCurrentPriorityLevel=function(){return S},t.unstable_next=function(z){switch(S){case 1:case 2:case 3:var D=3;break;default:D=S}var Y=S;S=D;try{return z()}finally{S=Y}},t.unstable_requestPaint=function(){O=!0},t.unstable_runWithPriority=function(z,D){switch(z){case 1:case 2:case 3:case 4:case 5:break;default:z=3}var Y=S;S=z;try{return D()}finally{S=Y}},t.unstable_scheduleCallback=function(z,D,Y){var H=t.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?H+Y:H):Y=H,z){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=Y+F,z={id:y++,callback:D,priorityLevel:z,startTime:Y,expirationTime:F,sortIndex:-1},Y>H?(z.sortIndex=Y,r(p,z),o(b)===null&&z===o(p)&&(k?(T(L),L=-1):k=!0,W(V,Y-H))):(z.sortIndex=F,r(b,z),N||j||(N=!0,M||(M=!0,ee()))),z},t.unstable_shouldYield=ne,t.unstable_wrapCallback=function(z){var D=S;return function(){var Y=S;S=D;try{return z.apply(this,arguments)}finally{S=Y}}}})(Pf)),Pf}var ny;function gj(){return ny||(ny=1,Uf.exports=hj()),Uf.exports}var Yf={exports:{}},En={};var sy;function xj(){if(sy)return En;sy=1;var t=Wl();function r(b){var p="https://react.dev/errors/"+b;if(1<arguments.length){p+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)p+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+b+"; visit "+p+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var a={d:{f:o,r:function(){throw Error(r(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},c=Symbol.for("react.portal");function d(b,p,y){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:c,key:x==null?null:""+x,children:b,containerInfo:p,implementation:y}}var m=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(b,p){if(b==="font")return"";if(typeof p=="string")return p==="use-credentials"?p:""}return En.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,En.createPortal=function(b,p){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!p||p.nodeType!==1&&p.nodeType!==9&&p.nodeType!==11)throw Error(r(299));return d(b,p,null,y)},En.flushSync=function(b){var p=m.T,y=a.p;try{if(m.T=null,a.p=2,b)return b()}finally{m.T=p,a.p=y,a.d.f()}},En.preconnect=function(b,p){typeof b=="string"&&(p?(p=p.crossOrigin,p=typeof p=="string"?p==="use-credentials"?p:"":void 0):p=null,a.d.C(b,p))},En.prefetchDNS=function(b){typeof b=="string"&&a.d.D(b)},En.preinit=function(b,p){if(typeof b=="string"&&p&&typeof p.as=="string"){var y=p.as,x=g(y,p.crossOrigin),S=typeof p.integrity=="string"?p.integrity:void 0,j=typeof p.fetchPriority=="string"?p.fetchPriority:void 0;y==="style"?a.d.S(b,typeof p.precedence=="string"?p.precedence:void 0,{crossOrigin:x,integrity:S,fetchPriority:j}):y==="script"&&a.d.X(b,{crossOrigin:x,integrity:S,fetchPriority:j,nonce:typeof p.nonce=="string"?p.nonce:void 0})}},En.preinitModule=function(b,p){if(typeof b=="string")if(typeof p=="object"&&p!==null){if(p.as==null||p.as==="script"){var y=g(p.as,p.crossOrigin);a.d.M(b,{crossOrigin:y,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0})}}else p==null&&a.d.M(b)},En.preload=function(b,p){if(typeof b=="string"&&typeof p=="object"&&p!==null&&typeof p.as=="string"){var y=p.as,x=g(y,p.crossOrigin);a.d.L(b,y,{crossOrigin:x,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0,type:typeof p.type=="string"?p.type:void 0,fetchPriority:typeof p.fetchPriority=="string"?p.fetchPriority:void 0,referrerPolicy:typeof p.referrerPolicy=="string"?p.referrerPolicy:void 0,imageSrcSet:typeof p.imageSrcSet=="string"?p.imageSrcSet:void 0,imageSizes:typeof p.imageSizes=="string"?p.imageSizes:void 0,media:typeof p.media=="string"?p.media:void 0})}},En.preloadModule=function(b,p){if(typeof b=="string")if(p){var y=g(p.as,p.crossOrigin);a.d.m(b,{as:typeof p.as=="string"&&p.as!=="script"?p.as:void 0,crossOrigin:y,integrity:typeof p.integrity=="string"?p.integrity:void 0})}else a.d.m(b)},En.requestFormReset=function(b){a.d.r(b)},En.unstable_batchedUpdates=function(b,p){return b(p)},En.useFormState=function(b,p,y){return m.H.useFormState(b,p,y)},En.useFormStatus=function(){return m.H.useHostTransitionStatus()},En.version="19.2.8",En}var ry;function o0(){if(ry)return Yf.exports;ry=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),Yf.exports=xj(),Yf.exports}var oy;function bj(){if(oy)return Tl;oy=1;var t=gj(),r=Wl(),o=o0();function a(e){var n="https://react.dev/errors/"+e;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)n+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function d(e){var n=e,s=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(s=n.return),e=n.return;while(e)}return n.tag===3?s:null}function m(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function g(e){if(e.tag===31){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function b(e){if(d(e)!==e)throw Error(a(188))}function p(e){var n=e.alternate;if(!n){if(n=d(e),n===null)throw Error(a(188));return n!==e?null:e}for(var s=e,l=n;;){var u=s.return;if(u===null)break;var f=u.alternate;if(f===null){if(l=u.return,l!==null){s=l;continue}break}if(u.child===f.child){for(f=u.child;f;){if(f===s)return b(u),e;if(f===l)return b(u),n;f=f.sibling}throw Error(a(188))}if(s.return!==l.return)s=u,l=f;else{for(var v=!1,R=u.child;R;){if(R===s){v=!0,s=u,l=f;break}if(R===l){v=!0,l=u,s=f;break}R=R.sibling}if(!v){for(R=f.child;R;){if(R===s){v=!0,s=f,l=u;break}if(R===l){v=!0,l=f,s=u;break}R=R.sibling}if(!v)throw Error(a(189))}}if(s.alternate!==l)throw Error(a(190))}if(s.tag!==3)throw Error(a(188));return s.stateNode.current===s?e:n}function y(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e;for(e=e.child;e!==null;){if(n=y(e),n!==null)return n;e=e.sibling}return null}var x=Object.assign,S=Symbol.for("react.element"),j=Symbol.for("react.transitional.element"),N=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),_=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),C=Symbol.for("react.lazy"),Q=Symbol.for("react.activity"),ne=Symbol.for("react.memo_cache_sentinel"),ue=Symbol.iterator;function ee(e){return e===null||typeof e!="object"?null:(e=ue&&e[ue]||e["@@iterator"],typeof e=="function"?e:null)}var X=Symbol.for("react.client.reference");function te(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===X?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 Q:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case N:return"Portal";case _:return e.displayName||"Context";case T:return(e._context.displayName||"Context")+".Consumer";case w:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case L:return n=e.displayName||null,n!==null?n:te(e.type)||"Memo";case C:n=e._payload,e=e._init;try{return te(e(n))}catch{}}return null}var W=Array.isArray,z=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={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),K=A(null),xe=A(null);function se(e,n){switch(I(K,n),I(G,e),I(U,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?vb(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=vb(n),e=Sb(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(U),I(U,e)}function le(){B(U),B(G),B(K)}function He(e){e.memoizedState!==null&&I(xe,e);var n=U.current,s=Sb(n,e.type);n!==s&&(I(G,e),I(U,s))}function ze(e){G.current===e&&(B(U),B(G)),xe.current===e&&(B(xe),vl._currentValue=Y)}var Re,Ue;function ge(e){if(Re===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);Re=n&&n[1]||"",Ue=-1<s.stack.indexOf(`
|
|
2
|
-
at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
3
|
-
`+Re+e+Ue}var ie=!1;function Ye(e,n){if(!e||ie)return"";ie=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(n){var Te=function(){throw Error()};if(Object.defineProperty(Te.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Te,[])}catch(he){var me=he}Reflect.construct(e,[],Te)}else{try{Te.call()}catch(he){me=he}e.call(Te.prototype)}}else{try{throw Error()}catch(he){me=he}(Te=e())&&typeof Te.catch=="function"&&Te.catch(function(){})}}catch(he){if(he&&me&&typeof he.stack=="string")return[he.stack,me.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=l.DetermineComponentFrameRoot(),v=f[0],R=f[1];if(v&&R){var $=v.split(`
|
|
4
|
-
`),fe=R.split(`
|
|
5
|
-
`);for(u=l=0;l<$.length&&!$[l].includes("DetermineComponentFrameRoot");)l++;for(;u<fe.length&&!fe[u].includes("DetermineComponentFrameRoot");)u++;if(l===$.length||u===fe.length)for(l=$.length-1,u=fe.length-1;1<=l&&0<=u&&$[l]!==fe[u];)u--;for(;1<=l&&0<=u;l--,u--)if($[l]!==fe[u]){if(l!==1||u!==1)do if(l--,u--,0>u||$[l]!==fe[u]){var Se=`
|
|
6
|
-
`+$[l].replace(" at new "," at ");return e.displayName&&Se.includes("<anonymous>")&&(Se=Se.replace("<anonymous>",e.displayName)),Se}while(1<=l&&0<=u);break}}}finally{ie=!1,Error.prepareStackTrace=s}return(s=e?e.displayName||e.name:"")?ge(s):""}function Ae(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 Ye(e.type,!1);case 11:return Ye(e.type.render,!1);case 1:return Ye(e.type,!0);case 31:return ge("Activity");default:return""}}function Ie(e){try{var n="",s=null;do n+=Ae(e,s),s=e,e=e.return;while(e);return n}catch(l){return`
|
|
7
|
-
Error generating stack: `+l.message+`
|
|
8
|
-
`+l.stack}}var ve=Object.prototype.hasOwnProperty,ce=t.unstable_scheduleCallback,_e=t.unstable_cancelCallback,Me=t.unstable_shouldYield,Z=t.unstable_requestPaint,P=t.unstable_now,q=t.unstable_getCurrentPriorityLevel,we=t.unstable_ImmediatePriority,be=t.unstable_UserBlockingPriority,ae=t.unstable_NormalPriority,ke=t.unstable_LowPriority,Ve=t.unstable_IdlePriority,We=t.log,pt=t.unstable_setDisableYieldValue,At=null,mt=null;function Tt(e){if(typeof We=="function"&&pt(e),mt&&typeof mt.setStrictMode=="function")try{mt.setStrictMode(At,e)}catch{}}var Rt=Math.clz32?Math.clz32:Ee,Lt=Math.log,Ce=Math.LN2;function Ee(e){return e>>>=0,e===0?32:31-(Lt(e)/Ce|0)|0}var Ge=256,Ot=262144,Yt=4194304;function re(e){var n=e&42;if(n!==0)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ye(e,n,s){var l=e.pendingLanes;if(l===0)return 0;var u=0,f=e.suspendedLanes,v=e.pingedLanes;e=e.warmLanes;var R=l&134217727;return R!==0?(l=R&~f,l!==0?u=re(l):(v&=R,v!==0?u=re(v):s||(s=R&~e,s!==0&&(u=re(s))))):(R=l&~f,R!==0?u=re(R):v!==0?u=re(v):s||(s=l&~e,s!==0&&(u=re(s)))),u===0?0:n!==0&&n!==u&&(n&f)===0&&(f=u&-u,s=n&-n,f>=s||f===32&&(s&4194048)!==0)?n:u}function Le(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function Ze(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function nt(){var e=Yt;return Yt<<=1,(Yt&62914560)===0&&(Yt=4194304),e}function at(e){for(var n=[],s=0;31>s;s++)n.push(e);return n}function rt(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function $t(e,n,s,l,u,f){var v=e.pendingLanes;e.pendingLanes=s,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=s,e.entangledLanes&=s,e.errorRecoveryDisabledLanes&=s,e.shellSuspendCounter=0;var R=e.entanglements,$=e.expirationTimes,fe=e.hiddenUpdates;for(s=v&~s;0<s;){var Se=31-Rt(s),Te=1<<Se;R[Se]=0,$[Se]=-1;var me=fe[Se];if(me!==null)for(fe[Se]=null,Se=0;Se<me.length;Se++){var he=me[Se];he!==null&&(he.lane&=-536870913)}s&=~Te}l!==0&&Zn(e,l,0),f!==0&&u===0&&e.tag!==0&&(e.suspendedLanes|=f&~(v&~n))}function Zn(e,n,s){e.pendingLanes|=n,e.suspendedLanes&=~n;var l=31-Rt(n);e.entangledLanes|=n,e.entanglements[l]=e.entanglements[l]|1073741824|s&261930}function Jt(e,n){var s=e.entangledLanes|=n;for(e=e.entanglements;s;){var l=31-Rt(s),u=1<<l;u&n|e[l]&n&&(e[l]|=n),s&=~u}}function gn(e,n){var s=n&-n;return s=(s&42)!==0?1:hr(s),(s&(e.suspendedLanes|n))!==0?0:s}function hr(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Hn(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Ls(){var e=D.p;return e!==0?e:(e=window.event,e===void 0?32:Fb(e.type))}function ii(e,n){var s=D.p;try{return D.p=e,n()}finally{D.p=s}}var xs=Math.random().toString(36).slice(2),an="__reactFiber$"+xs,Rn="__reactProps$"+xs,Do="__reactContainer$"+xs,Cu="__reactEvents$"+xs,WS="__reactListeners$"+xs,eE="__reactHandles$"+xs,lh="__reactResources$"+xs,za="__reactMarker$"+xs;function Ru(e){delete e[an],delete e[Rn],delete e[Cu],delete e[WS],delete e[eE]}function zo(e){var n=e[an];if(n)return n;for(var s=e.parentNode;s;){if(n=s[Do]||s[an]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(e=Rb(e);e!==null;){if(s=e[an])return s;e=Rb(e)}return n}e=s,s=e.parentNode}return null}function Lo(e){if(e=e[an]||e[Do]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function La(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(a(33))}function Io(e){var n=e[lh];return n||(n=e[lh]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function dn(e){e[za]=!0}var ih=new Set,ch={};function Qr(e,n){Bo(e,n),Bo(e+"Capture",n)}function Bo(e,n){for(ch[e]=n,e=0;e<n.length;e++)ih.add(n[e])}var tE=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),uh={},dh={};function nE(e){return ve.call(dh,e)?!0:ve.call(uh,e)?!1:tE.test(e)?dh[e]=!0:(uh[e]=!0,!1)}function ci(e,n,s){if(nE(n))if(s===null)e.removeAttribute(n);else{switch(typeof s){case"undefined":case"function":case"symbol":e.removeAttribute(n);return;case"boolean":var l=n.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){e.removeAttribute(n);return}}e.setAttribute(n,""+s)}}function ui(e,n,s){if(s===null)e.removeAttribute(n);else{switch(typeof s){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttribute(n,""+s)}}function Is(e,n,s,l){if(l===null)e.removeAttribute(s);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(s);return}e.setAttributeNS(n,s,""+l)}}function Jn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function fh(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function sE(e,n,s){var l=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var u=l.get,f=l.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return u.call(this)},set:function(v){s=""+v,f.call(this,v)}}),Object.defineProperty(e,n,{enumerable:l.enumerable}),{getValue:function(){return s},setValue:function(v){s=""+v},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Ou(e){if(!e._valueTracker){var n=fh(e)?"checked":"value";e._valueTracker=sE(e,n,""+e[n])}}function mh(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var s=n.getValue(),l="";return e&&(l=fh(e)?e.checked?"true":"false":e.value),e=l,e!==s?(n.setValue(e),!0):!1}function di(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var rE=/[\n"\\]/g;function Wn(e){return e.replace(rE,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function ku(e,n,s,l,u,f,v,R){e.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?e.type=v:e.removeAttribute("type"),n!=null?v==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+Jn(n)):e.value!==""+Jn(n)&&(e.value=""+Jn(n)):v!=="submit"&&v!=="reset"||e.removeAttribute("value"),n!=null?_u(e,v,Jn(n)):s!=null?_u(e,v,Jn(s)):l!=null&&e.removeAttribute("value"),u==null&&f!=null&&(e.defaultChecked=!!f),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?e.name=""+Jn(R):e.removeAttribute("name")}function ph(e,n,s,l,u,f,v,R){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.type=f),n!=null||s!=null){if(!(f!=="submit"&&f!=="reset"||n!=null)){Ou(e);return}s=s!=null?""+Jn(s):"",n=n!=null?""+Jn(n):s,R||n===e.value||(e.value=n),e.defaultValue=n}l=l??u,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=R?e.checked:!!l,e.defaultChecked=!!l,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(e.name=v),Ou(e)}function _u(e,n,s){n==="number"&&di(e.ownerDocument)===e||e.defaultValue===""+s||(e.defaultValue=""+s)}function Ho(e,n,s,l){if(e=e.options,n){n={};for(var u=0;u<s.length;u++)n["$"+s[u]]=!0;for(s=0;s<e.length;s++)u=n.hasOwnProperty("$"+e[s].value),e[s].selected!==u&&(e[s].selected=u),u&&l&&(e[s].defaultSelected=!0)}else{for(s=""+Jn(s),n=null,u=0;u<e.length;u++){if(e[u].value===s){e[u].selected=!0,l&&(e[u].defaultSelected=!0);return}n!==null||e[u].disabled||(n=e[u])}n!==null&&(n.selected=!0)}}function hh(e,n,s){if(n!=null&&(n=""+Jn(n),n!==e.value&&(e.value=n),s==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=s!=null?""+Jn(s):""}function gh(e,n,s,l){if(n==null){if(l!=null){if(s!=null)throw Error(a(92));if(W(l)){if(1<l.length)throw Error(a(93));l=l[0]}s=l}s==null&&(s=""),n=s}s=Jn(n),e.defaultValue=s,l=e.textContent,l===s&&l!==""&&l!==null&&(e.value=l),Ou(e)}function Uo(e,n){if(n){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=n;return}}e.textContent=n}var oE=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function xh(e,n,s){var l=n.indexOf("--")===0;s==null||typeof s=="boolean"||s===""?l?e.setProperty(n,""):n==="float"?e.cssFloat="":e[n]="":l?e.setProperty(n,s):typeof s!="number"||s===0||oE.has(n)?n==="float"?e.cssFloat=s:e[n]=(""+s).trim():e[n]=s+"px"}function bh(e,n,s){if(n!=null&&typeof n!="object")throw Error(a(62));if(e=e.style,s!=null){for(var l in s)!s.hasOwnProperty(l)||n!=null&&n.hasOwnProperty(l)||(l.indexOf("--")===0?e.setProperty(l,""):l==="float"?e.cssFloat="":e[l]="");for(var u in n)l=n[u],n.hasOwnProperty(u)&&s[u]!==l&&xh(e,u,l)}else for(var f in n)n.hasOwnProperty(f)&&xh(e,f,n[f])}function Mu(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var aE=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),lE=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function fi(e){return lE.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Bs(){}var Au=null;function Du(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Po=null,Yo=null;function yh(e){var n=Lo(e);if(n&&(e=n.stateNode)){var s=e[Rn]||null;e:switch(e=n.stateNode,n.type){case"input":if(ku(e,s.value,s.defaultValue,s.defaultValue,s.checked,s.defaultChecked,s.type,s.name),n=s.name,s.type==="radio"&&n!=null){for(s=e;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll('input[name="'+Wn(""+n)+'"][type="radio"]'),n=0;n<s.length;n++){var l=s[n];if(l!==e&&l.form===e.form){var u=l[Rn]||null;if(!u)throw Error(a(90));ku(l,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name)}}for(n=0;n<s.length;n++)l=s[n],l.form===e.form&&mh(l)}break e;case"textarea":hh(e,s.value,s.defaultValue);break e;case"select":n=s.value,n!=null&&Ho(e,!!s.multiple,n,!1)}}}var zu=!1;function vh(e,n,s){if(zu)return e(n,s);zu=!0;try{var l=e(n);return l}finally{if(zu=!1,(Po!==null||Yo!==null)&&(Wi(),Po&&(n=Po,e=Yo,Yo=Po=null,yh(n),e)))for(n=0;n<e.length;n++)yh(e[n])}}function Ia(e,n){var s=e.stateNode;if(s===null)return null;var l=s[Rn]||null;if(l===null)return null;s=l[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(e=e.type,l=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!l;break e;default:e=!1}if(e)return null;if(s&&typeof s!="function")throw Error(a(231,n,typeof s));return s}var Hs=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Lu=!1;if(Hs)try{var Ba={};Object.defineProperty(Ba,"passive",{get:function(){Lu=!0}}),window.addEventListener("test",Ba,Ba),window.removeEventListener("test",Ba,Ba)}catch{Lu=!1}var gr=null,Iu=null,mi=null;function Sh(){if(mi)return mi;var e,n=Iu,s=n.length,l,u="value"in gr?gr.value:gr.textContent,f=u.length;for(e=0;e<s&&n[e]===u[e];e++);var v=s-e;for(l=1;l<=v&&n[s-l]===u[f-l];l++);return mi=u.slice(e,1<l?1-l:void 0)}function pi(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function hi(){return!0}function Eh(){return!1}function On(e){function n(s,l,u,f,v){this._reactName=s,this._targetInst=u,this.type=l,this.nativeEvent=f,this.target=v,this.currentTarget=null;for(var R in e)e.hasOwnProperty(R)&&(s=e[R],this[R]=s?s(f):f[R]);return this.isDefaultPrevented=(f.defaultPrevented!=null?f.defaultPrevented:f.returnValue===!1)?hi:Eh,this.isPropagationStopped=Eh,this}return x(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=hi)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=hi)},persist:function(){},isPersistent:hi}),n}var Zr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},gi=On(Zr),Ha=x({},Zr,{view:0,detail:0}),iE=On(Ha),Bu,Hu,Ua,xi=x({},Ha,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pu,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Ua&&(Ua&&e.type==="mousemove"?(Bu=e.screenX-Ua.screenX,Hu=e.screenY-Ua.screenY):Hu=Bu=0,Ua=e),Bu)},movementY:function(e){return"movementY"in e?e.movementY:Hu}}),Nh=On(xi),cE=x({},xi,{dataTransfer:0}),uE=On(cE),dE=x({},Ha,{relatedTarget:0}),Uu=On(dE),fE=x({},Zr,{animationName:0,elapsedTime:0,pseudoElement:0}),mE=On(fE),pE=x({},Zr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),hE=On(pE),gE=x({},Zr,{data:0}),jh=On(gE),xE={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},bE={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},yE={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function vE(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=yE[e])?!!n[e]:!1}function Pu(){return vE}var SE=x({},Ha,{key:function(e){if(e.key){var n=xE[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=pi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?bE[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pu,charCode:function(e){return e.type==="keypress"?pi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?pi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),EE=On(SE),NE=x({},xi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Th=On(NE),jE=x({},Ha,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pu}),TE=On(jE),wE=x({},Zr,{propertyName:0,elapsedTime:0,pseudoElement:0}),CE=On(wE),RE=x({},xi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),OE=On(RE),kE=x({},Zr,{newState:0,oldState:0}),_E=On(kE),ME=[9,13,27,32],Yu=Hs&&"CompositionEvent"in window,Pa=null;Hs&&"documentMode"in document&&(Pa=document.documentMode);var AE=Hs&&"TextEvent"in window&&!Pa,wh=Hs&&(!Yu||Pa&&8<Pa&&11>=Pa),Ch=" ",Rh=!1;function Oh(e,n){switch(e){case"keyup":return ME.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Vo=!1;function DE(e,n){switch(e){case"compositionend":return kh(n);case"keypress":return n.which!==32?null:(Rh=!0,Ch);case"textInput":return e=n.data,e===Ch&&Rh?null:e;default:return null}}function zE(e,n){if(Vo)return e==="compositionend"||!Yu&&Oh(e,n)?(e=Sh(),mi=Iu=gr=null,Vo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return wh&&n.locale!=="ko"?null:n.data;default:return null}}var LE={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function _h(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!LE[e.type]:n==="textarea"}function Mh(e,n,s,l){Po?Yo?Yo.push(l):Yo=[l]:Po=l,n=ac(n,"onChange"),0<n.length&&(s=new gi("onChange","change",null,s,l),e.push({event:s,listeners:n}))}var Ya=null,Va=null;function IE(e){pb(e,0)}function bi(e){var n=La(e);if(mh(n))return e}function Ah(e,n){if(e==="change")return n}var Dh=!1;if(Hs){var Vu;if(Hs){var Fu="oninput"in document;if(!Fu){var zh=document.createElement("div");zh.setAttribute("oninput","return;"),Fu=typeof zh.oninput=="function"}Vu=Fu}else Vu=!1;Dh=Vu&&(!document.documentMode||9<document.documentMode)}function Lh(){Ya&&(Ya.detachEvent("onpropertychange",Ih),Va=Ya=null)}function Ih(e){if(e.propertyName==="value"&&bi(Va)){var n=[];Mh(n,Va,e,Du(e)),vh(IE,n)}}function BE(e,n,s){e==="focusin"?(Lh(),Ya=n,Va=s,Ya.attachEvent("onpropertychange",Ih)):e==="focusout"&&Lh()}function HE(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return bi(Va)}function UE(e,n){if(e==="click")return bi(n)}function PE(e,n){if(e==="input"||e==="change")return bi(n)}function YE(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Un=typeof Object.is=="function"?Object.is:YE;function Fa(e,n){if(Un(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var s=Object.keys(e),l=Object.keys(n);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var u=s[l];if(!ve.call(n,u)||!Un(e[u],n[u]))return!1}return!0}function Bh(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Hh(e,n){var s=Bh(e);e=0;for(var l;s;){if(s.nodeType===3){if(l=e+s.textContent.length,e<=n&&l>=n)return{node:s,offset:n-e};e=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Bh(s)}}function Uh(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Uh(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Ph(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=di(e.document);n instanceof e.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)e=n.contentWindow;else break;n=di(e.document)}return n}function Gu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var VE=Hs&&"documentMode"in document&&11>=document.documentMode,Fo=null,qu=null,Ga=null,$u=!1;function Yh(e,n,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;$u||Fo==null||Fo!==di(l)||(l=Fo,"selectionStart"in l&&Gu(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Ga&&Fa(Ga,l)||(Ga=l,l=ac(qu,"onSelect"),0<l.length&&(n=new gi("onSelect","select",null,n,s),e.push({event:n,listeners:l}),n.target=Fo)))}function Jr(e,n){var s={};return s[e.toLowerCase()]=n.toLowerCase(),s["Webkit"+e]="webkit"+n,s["Moz"+e]="moz"+n,s}var Go={animationend:Jr("Animation","AnimationEnd"),animationiteration:Jr("Animation","AnimationIteration"),animationstart:Jr("Animation","AnimationStart"),transitionrun:Jr("Transition","TransitionRun"),transitionstart:Jr("Transition","TransitionStart"),transitioncancel:Jr("Transition","TransitionCancel"),transitionend:Jr("Transition","TransitionEnd")},Xu={},Vh={};Hs&&(Vh=document.createElement("div").style,"AnimationEvent"in window||(delete Go.animationend.animation,delete Go.animationiteration.animation,delete Go.animationstart.animation),"TransitionEvent"in window||delete Go.transitionend.transition);function Wr(e){if(Xu[e])return Xu[e];if(!Go[e])return e;var n=Go[e],s;for(s in n)if(n.hasOwnProperty(s)&&s in Vh)return Xu[e]=n[s];return e}var Fh=Wr("animationend"),Gh=Wr("animationiteration"),qh=Wr("animationstart"),FE=Wr("transitionrun"),GE=Wr("transitionstart"),qE=Wr("transitioncancel"),$h=Wr("transitionend"),Xh=new Map,Ku="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Ku.push("scrollEnd");function fs(e,n){Xh.set(e,n),Qr(n,[e])}var yi=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},es=[],qo=0,Qu=0;function vi(){for(var e=qo,n=Qu=qo=0;n<e;){var s=es[n];es[n++]=null;var l=es[n];es[n++]=null;var u=es[n];es[n++]=null;var f=es[n];if(es[n++]=null,l!==null&&u!==null){var v=l.pending;v===null?u.next=u:(u.next=v.next,v.next=u),l.pending=u}f!==0&&Kh(s,u,f)}}function Si(e,n,s,l){es[qo++]=e,es[qo++]=n,es[qo++]=s,es[qo++]=l,Qu|=l,e.lanes|=l,e=e.alternate,e!==null&&(e.lanes|=l)}function Zu(e,n,s,l){return Si(e,n,s,l),Ei(e)}function eo(e,n){return Si(e,null,null,n),Ei(e)}function Kh(e,n,s){e.lanes|=s;var l=e.alternate;l!==null&&(l.lanes|=s);for(var u=!1,f=e.return;f!==null;)f.childLanes|=s,l=f.alternate,l!==null&&(l.childLanes|=s),f.tag===22&&(e=f.stateNode,e===null||e._visibility&1||(u=!0)),e=f,f=f.return;return e.tag===3?(f=e.stateNode,u&&n!==null&&(u=31-Rt(s),e=f.hiddenUpdates,l=e[u],l===null?e[u]=[n]:l.push(n),n.lane=s|536870912),f):null}function Ei(e){if(50<ml)throw ml=0,af=null,Error(a(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var $o={};function $E(e,n,s,l){this.tag=e,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pn(e,n,s,l){return new $E(e,n,s,l)}function Ju(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Us(e,n){var s=e.alternate;return s===null?(s=Pn(e.tag,n,e.key,e.mode),s.elementType=e.elementType,s.type=e.type,s.stateNode=e.stateNode,s.alternate=e,e.alternate=s):(s.pendingProps=n,s.type=e.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=e.flags&65011712,s.childLanes=e.childLanes,s.lanes=e.lanes,s.child=e.child,s.memoizedProps=e.memoizedProps,s.memoizedState=e.memoizedState,s.updateQueue=e.updateQueue,n=e.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=e.sibling,s.index=e.index,s.ref=e.ref,s.refCleanup=e.refCleanup,s}function Qh(e,n){e.flags&=65011714;var s=e.alternate;return s===null?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=s.childLanes,e.lanes=s.lanes,e.child=s.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=s.memoizedProps,e.memoizedState=s.memoizedState,e.updateQueue=s.updateQueue,e.type=s.type,n=s.dependencies,e.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function Ni(e,n,s,l,u,f){var v=0;if(l=e,typeof e=="function")Ju(e)&&(v=1);else if(typeof e=="string")v=JN(e,s,U.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case Q:return e=Pn(31,s,n,u),e.elementType=Q,e.lanes=f,e;case k:return to(s.children,u,f,n);case O:v=8,u|=24;break;case E:return e=Pn(12,s,n,u|2),e.elementType=E,e.lanes=f,e;case V:return e=Pn(13,s,n,u),e.elementType=V,e.lanes=f,e;case M:return e=Pn(19,s,n,u),e.elementType=M,e.lanes=f,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _:v=10;break e;case T:v=9;break e;case w:v=11;break e;case L:v=14;break e;case C:v=16,l=null;break e}v=29,s=Error(a(130,e===null?"null":typeof e,"")),l=null}return n=Pn(v,s,n,u),n.elementType=e,n.type=l,n.lanes=f,n}function to(e,n,s,l){return e=Pn(7,e,l,n),e.lanes=s,e}function Wu(e,n,s){return e=Pn(6,e,null,n),e.lanes=s,e}function Zh(e){var n=Pn(18,null,null,0);return n.stateNode=e,n}function ed(e,n,s){return n=Pn(4,e.children!==null?e.children:[],e.key,n),n.lanes=s,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var Jh=new WeakMap;function ts(e,n){if(typeof e=="object"&&e!==null){var s=Jh.get(e);return s!==void 0?s:(n={value:e,source:n,stack:Ie(n)},Jh.set(e,n),n)}return{value:e,source:n,stack:Ie(n)}}var Xo=[],Ko=0,ji=null,qa=0,ns=[],ss=0,xr=null,bs=1,ys="";function Ps(e,n){Xo[Ko++]=qa,Xo[Ko++]=ji,ji=e,qa=n}function Wh(e,n,s){ns[ss++]=bs,ns[ss++]=ys,ns[ss++]=xr,xr=e;var l=bs;e=ys;var u=32-Rt(l)-1;l&=~(1<<u),s+=1;var f=32-Rt(n)+u;if(30<f){var v=u-u%5;f=(l&(1<<v)-1).toString(32),l>>=v,u-=v,bs=1<<32-Rt(n)+u|s<<u|l,ys=f+e}else bs=1<<f|s<<u|l,ys=e}function td(e){e.return!==null&&(Ps(e,1),Wh(e,1,0))}function nd(e){for(;e===ji;)ji=Xo[--Ko],Xo[Ko]=null,qa=Xo[--Ko],Xo[Ko]=null;for(;e===xr;)xr=ns[--ss],ns[ss]=null,ys=ns[--ss],ns[ss]=null,bs=ns[--ss],ns[ss]=null}function eg(e,n){ns[ss++]=bs,ns[ss++]=ys,ns[ss++]=xr,bs=n.id,ys=n.overflow,xr=e}var xn=null,Gt=null,Et=!1,br=null,rs=!1,sd=Error(a(519));function yr(e){var n=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw $a(ts(n,e)),sd}function tg(e){var n=e.stateNode,s=e.type,l=e.memoizedProps;switch(n[an]=e,n[Rn]=l,s){case"dialog":gt("cancel",n),gt("close",n);break;case"iframe":case"object":case"embed":gt("load",n);break;case"video":case"audio":for(s=0;s<hl.length;s++)gt(hl[s],n);break;case"source":gt("error",n);break;case"img":case"image":case"link":gt("error",n),gt("load",n);break;case"details":gt("toggle",n);break;case"input":gt("invalid",n),ph(n,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":gt("invalid",n);break;case"textarea":gt("invalid",n),gh(n,l.value,l.defaultValue,l.children)}s=l.children,typeof s!="string"&&typeof s!="number"&&typeof s!="bigint"||n.textContent===""+s||l.suppressHydrationWarning===!0||bb(n.textContent,s)?(l.popover!=null&&(gt("beforetoggle",n),gt("toggle",n)),l.onScroll!=null&>("scroll",n),l.onScrollEnd!=null&>("scrollend",n),l.onClick!=null&&(n.onclick=Bs),n=!0):n=!1,n||yr(e,!0)}function ng(e){for(xn=e.return;xn;)switch(xn.tag){case 5:case 31:case 13:rs=!1;return;case 27:case 3:rs=!0;return;default:xn=xn.return}}function Qo(e){if(e!==xn)return!1;if(!Et)return ng(e),Et=!0,!1;var n=e.tag,s;if((s=n!==3&&n!==27)&&((s=n===5)&&(s=e.type,s=!(s!=="form"&&s!=="button")||Ef(e.type,e.memoizedProps)),s=!s),s&&Gt&&yr(e),ng(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Gt=Cb(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Gt=Cb(e)}else n===27?(n=Gt,Ar(e.type)?(e=Cf,Cf=null,Gt=e):Gt=n):Gt=xn?as(e.stateNode.nextSibling):null;return!0}function no(){Gt=xn=null,Et=!1}function rd(){var e=br;return e!==null&&(An===null?An=e:An.push.apply(An,e),br=null),e}function $a(e){br===null?br=[e]:br.push(e)}var od=A(null),so=null,Ys=null;function vr(e,n,s){I(od,n._currentValue),n._currentValue=s}function Vs(e){e._currentValue=od.current,B(od)}function ad(e,n,s){for(;e!==null;){var l=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,l!==null&&(l.childLanes|=n)):l!==null&&(l.childLanes&n)!==n&&(l.childLanes|=n),e===s)break;e=e.return}}function ld(e,n,s,l){var u=e.child;for(u!==null&&(u.return=e);u!==null;){var f=u.dependencies;if(f!==null){var v=u.child;f=f.firstContext;e:for(;f!==null;){var R=f;f=u;for(var $=0;$<n.length;$++)if(R.context===n[$]){f.lanes|=s,R=f.alternate,R!==null&&(R.lanes|=s),ad(f.return,s,e),l||(v=null);break e}f=R.next}}else if(u.tag===18){if(v=u.return,v===null)throw Error(a(341));v.lanes|=s,f=v.alternate,f!==null&&(f.lanes|=s),ad(v,s,e),v=null}else v=u.child;if(v!==null)v.return=u;else for(v=u;v!==null;){if(v===e){v=null;break}if(u=v.sibling,u!==null){u.return=v.return,v=u;break}v=v.return}u=v}}function Zo(e,n,s,l){e=null;for(var u=n,f=!1;u!==null;){if(!f){if((u.flags&524288)!==0)f=!0;else if((u.flags&262144)!==0)break}if(u.tag===10){var v=u.alternate;if(v===null)throw Error(a(387));if(v=v.memoizedProps,v!==null){var R=u.type;Un(u.pendingProps.value,v.value)||(e!==null?e.push(R):e=[R])}}else if(u===xe.current){if(v=u.alternate,v===null)throw Error(a(387));v.memoizedState.memoizedState!==u.memoizedState.memoizedState&&(e!==null?e.push(vl):e=[vl])}u=u.return}e!==null&&ld(n,e,s,l),n.flags|=262144}function Ti(e){for(e=e.firstContext;e!==null;){if(!Un(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ro(e){so=e,Ys=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function bn(e){return sg(so,e)}function wi(e,n){return so===null&&ro(e),sg(e,n)}function sg(e,n){var s=n._currentValue;if(n={context:n,memoizedValue:s,next:null},Ys===null){if(e===null)throw Error(a(308));Ys=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else Ys=Ys.next=n;return s}var XE=typeof AbortController<"u"?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(s,l){e.push(l)}};this.abort=function(){n.aborted=!0,e.forEach(function(s){return s()})}},KE=t.unstable_scheduleCallback,QE=t.unstable_NormalPriority,tn={$$typeof:_,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function id(){return{controller:new XE,data:new Map,refCount:0}}function Xa(e){e.refCount--,e.refCount===0&&KE(QE,function(){e.controller.abort()})}var Ka=null,cd=0,Jo=0,Wo=null;function ZE(e,n){if(Ka===null){var s=Ka=[];cd=0,Jo=mf(),Wo={status:"pending",value:void 0,then:function(l){s.push(l)}}}return cd++,n.then(rg,rg),n}function rg(){if(--cd===0&&Ka!==null){Wo!==null&&(Wo.status="fulfilled");var e=Ka;Ka=null,Jo=0,Wo=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function JE(e,n){var s=[],l={status:"pending",value:null,reason:null,then:function(u){s.push(u)}};return e.then(function(){l.status="fulfilled",l.value=n;for(var u=0;u<s.length;u++)(0,s[u])(n)},function(u){for(l.status="rejected",l.reason=u,u=0;u<s.length;u++)(0,s[u])(void 0)}),l}var og=z.S;z.S=function(e,n){Yx=P(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&ZE(e,n),og!==null&&og(e,n)};var oo=A(null);function ud(){var e=oo.current;return e!==null?e:Pt.pooledCache}function Ci(e,n){n===null?I(oo,oo.current):I(oo,n.pool)}function ag(){var e=ud();return e===null?null:{parent:tn._currentValue,pool:e}}var ea=Error(a(460)),dd=Error(a(474)),Ri=Error(a(542)),Oi={then:function(){}};function lg(e){return e=e.status,e==="fulfilled"||e==="rejected"}function ig(e,n,s){switch(s=e[s],s===void 0?e.push(n):s!==n&&(n.then(Bs,Bs),n=s),n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,ug(e),e;default:if(typeof n.status=="string")n.then(Bs,Bs);else{if(e=Pt,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=n,e.status="pending",e.then(function(l){if(n.status==="pending"){var u=n;u.status="fulfilled",u.value=l}},function(l){if(n.status==="pending"){var u=n;u.status="rejected",u.reason=l}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,ug(e),e}throw lo=n,ea}}function ao(e){try{var n=e._init;return n(e._payload)}catch(s){throw s!==null&&typeof s=="object"&&typeof s.then=="function"?(lo=s,ea):s}}var lo=null;function cg(){if(lo===null)throw Error(a(459));var e=lo;return lo=null,e}function ug(e){if(e===ea||e===Ri)throw Error(a(483))}var ta=null,Qa=0;function ki(e){var n=Qa;return Qa+=1,ta===null&&(ta=[]),ig(ta,e,n)}function Za(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function _i(e,n){throw n.$$typeof===S?Error(a(525)):(e=Object.prototype.toString.call(n),Error(a(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)))}function dg(e){function n(oe,J){if(e){var de=oe.deletions;de===null?(oe.deletions=[J],oe.flags|=16):de.push(J)}}function s(oe,J){if(!e)return null;for(;J!==null;)n(oe,J),J=J.sibling;return null}function l(oe){for(var J=new Map;oe!==null;)oe.key!==null?J.set(oe.key,oe):J.set(oe.index,oe),oe=oe.sibling;return J}function u(oe,J){return oe=Us(oe,J),oe.index=0,oe.sibling=null,oe}function f(oe,J,de){return oe.index=de,e?(de=oe.alternate,de!==null?(de=de.index,de<J?(oe.flags|=67108866,J):de):(oe.flags|=67108866,J)):(oe.flags|=1048576,J)}function v(oe){return e&&oe.alternate===null&&(oe.flags|=67108866),oe}function R(oe,J,de,je){return J===null||J.tag!==6?(J=Wu(de,oe.mode,je),J.return=oe,J):(J=u(J,de),J.return=oe,J)}function $(oe,J,de,je){var Je=de.type;return Je===k?Se(oe,J,de.props.children,je,de.key):J!==null&&(J.elementType===Je||typeof Je=="object"&&Je!==null&&Je.$$typeof===C&&ao(Je)===J.type)?(J=u(J,de.props),Za(J,de),J.return=oe,J):(J=Ni(de.type,de.key,de.props,null,oe.mode,je),Za(J,de),J.return=oe,J)}function fe(oe,J,de,je){return J===null||J.tag!==4||J.stateNode.containerInfo!==de.containerInfo||J.stateNode.implementation!==de.implementation?(J=ed(de,oe.mode,je),J.return=oe,J):(J=u(J,de.children||[]),J.return=oe,J)}function Se(oe,J,de,je,Je){return J===null||J.tag!==7?(J=to(de,oe.mode,je,Je),J.return=oe,J):(J=u(J,de),J.return=oe,J)}function Te(oe,J,de){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return J=Wu(""+J,oe.mode,de),J.return=oe,J;if(typeof J=="object"&&J!==null){switch(J.$$typeof){case j:return de=Ni(J.type,J.key,J.props,null,oe.mode,de),Za(de,J),de.return=oe,de;case N:return J=ed(J,oe.mode,de),J.return=oe,J;case C:return J=ao(J),Te(oe,J,de)}if(W(J)||ee(J))return J=to(J,oe.mode,de,null),J.return=oe,J;if(typeof J.then=="function")return Te(oe,ki(J),de);if(J.$$typeof===_)return Te(oe,wi(oe,J),de);_i(oe,J)}return null}function me(oe,J,de,je){var Je=J!==null?J.key:null;if(typeof de=="string"&&de!==""||typeof de=="number"||typeof de=="bigint")return Je!==null?null:R(oe,J,""+de,je);if(typeof de=="object"&&de!==null){switch(de.$$typeof){case j:return de.key===Je?$(oe,J,de,je):null;case N:return de.key===Je?fe(oe,J,de,je):null;case C:return de=ao(de),me(oe,J,de,je)}if(W(de)||ee(de))return Je!==null?null:Se(oe,J,de,je,null);if(typeof de.then=="function")return me(oe,J,ki(de),je);if(de.$$typeof===_)return me(oe,J,wi(oe,de),je);_i(oe,de)}return null}function he(oe,J,de,je,Je){if(typeof je=="string"&&je!==""||typeof je=="number"||typeof je=="bigint")return oe=oe.get(de)||null,R(J,oe,""+je,Je);if(typeof je=="object"&&je!==null){switch(je.$$typeof){case j:return oe=oe.get(je.key===null?de:je.key)||null,$(J,oe,je,Je);case N:return oe=oe.get(je.key===null?de:je.key)||null,fe(J,oe,je,Je);case C:return je=ao(je),he(oe,J,de,je,Je)}if(W(je)||ee(je))return oe=oe.get(de)||null,Se(J,oe,je,Je,null);if(typeof je.then=="function")return he(oe,J,de,ki(je),Je);if(je.$$typeof===_)return he(oe,J,de,wi(J,je),Je);_i(J,je)}return null}function Xe(oe,J,de,je){for(var Je=null,wt=null,Ke=J,dt=J=0,yt=null;Ke!==null&&dt<de.length;dt++){Ke.index>dt?(yt=Ke,Ke=null):yt=Ke.sibling;var Ct=me(oe,Ke,de[dt],je);if(Ct===null){Ke===null&&(Ke=yt);break}e&&Ke&&Ct.alternate===null&&n(oe,Ke),J=f(Ct,J,dt),wt===null?Je=Ct:wt.sibling=Ct,wt=Ct,Ke=yt}if(dt===de.length)return s(oe,Ke),Et&&Ps(oe,dt),Je;if(Ke===null){for(;dt<de.length;dt++)Ke=Te(oe,de[dt],je),Ke!==null&&(J=f(Ke,J,dt),wt===null?Je=Ke:wt.sibling=Ke,wt=Ke);return Et&&Ps(oe,dt),Je}for(Ke=l(Ke);dt<de.length;dt++)yt=he(Ke,oe,dt,de[dt],je),yt!==null&&(e&&yt.alternate!==null&&Ke.delete(yt.key===null?dt:yt.key),J=f(yt,J,dt),wt===null?Je=yt:wt.sibling=yt,wt=yt);return e&&Ke.forEach(function(Br){return n(oe,Br)}),Et&&Ps(oe,dt),Je}function et(oe,J,de,je){if(de==null)throw Error(a(151));for(var Je=null,wt=null,Ke=J,dt=J=0,yt=null,Ct=de.next();Ke!==null&&!Ct.done;dt++,Ct=de.next()){Ke.index>dt?(yt=Ke,Ke=null):yt=Ke.sibling;var Br=me(oe,Ke,Ct.value,je);if(Br===null){Ke===null&&(Ke=yt);break}e&&Ke&&Br.alternate===null&&n(oe,Ke),J=f(Br,J,dt),wt===null?Je=Br:wt.sibling=Br,wt=Br,Ke=yt}if(Ct.done)return s(oe,Ke),Et&&Ps(oe,dt),Je;if(Ke===null){for(;!Ct.done;dt++,Ct=de.next())Ct=Te(oe,Ct.value,je),Ct!==null&&(J=f(Ct,J,dt),wt===null?Je=Ct:wt.sibling=Ct,wt=Ct);return Et&&Ps(oe,dt),Je}for(Ke=l(Ke);!Ct.done;dt++,Ct=de.next())Ct=he(Ke,oe,dt,Ct.value,je),Ct!==null&&(e&&Ct.alternate!==null&&Ke.delete(Ct.key===null?dt:Ct.key),J=f(Ct,J,dt),wt===null?Je=Ct:wt.sibling=Ct,wt=Ct);return e&&Ke.forEach(function(cj){return n(oe,cj)}),Et&&Ps(oe,dt),Je}function Ht(oe,J,de,je){if(typeof de=="object"&&de!==null&&de.type===k&&de.key===null&&(de=de.props.children),typeof de=="object"&&de!==null){switch(de.$$typeof){case j:e:{for(var Je=de.key;J!==null;){if(J.key===Je){if(Je=de.type,Je===k){if(J.tag===7){s(oe,J.sibling),je=u(J,de.props.children),je.return=oe,oe=je;break e}}else if(J.elementType===Je||typeof Je=="object"&&Je!==null&&Je.$$typeof===C&&ao(Je)===J.type){s(oe,J.sibling),je=u(J,de.props),Za(je,de),je.return=oe,oe=je;break e}s(oe,J);break}else n(oe,J);J=J.sibling}de.type===k?(je=to(de.props.children,oe.mode,je,de.key),je.return=oe,oe=je):(je=Ni(de.type,de.key,de.props,null,oe.mode,je),Za(je,de),je.return=oe,oe=je)}return v(oe);case N:e:{for(Je=de.key;J!==null;){if(J.key===Je)if(J.tag===4&&J.stateNode.containerInfo===de.containerInfo&&J.stateNode.implementation===de.implementation){s(oe,J.sibling),je=u(J,de.children||[]),je.return=oe,oe=je;break e}else{s(oe,J);break}else n(oe,J);J=J.sibling}je=ed(de,oe.mode,je),je.return=oe,oe=je}return v(oe);case C:return de=ao(de),Ht(oe,J,de,je)}if(W(de))return Xe(oe,J,de,je);if(ee(de)){if(Je=ee(de),typeof Je!="function")throw Error(a(150));return de=Je.call(de),et(oe,J,de,je)}if(typeof de.then=="function")return Ht(oe,J,ki(de),je);if(de.$$typeof===_)return Ht(oe,J,wi(oe,de),je);_i(oe,de)}return typeof de=="string"&&de!==""||typeof de=="number"||typeof de=="bigint"?(de=""+de,J!==null&&J.tag===6?(s(oe,J.sibling),je=u(J,de),je.return=oe,oe=je):(s(oe,J),je=Wu(de,oe.mode,je),je.return=oe,oe=je),v(oe)):s(oe,J)}return function(oe,J,de,je){try{Qa=0;var Je=Ht(oe,J,de,je);return ta=null,Je}catch(Ke){if(Ke===ea||Ke===Ri)throw Ke;var wt=Pn(29,Ke,null,oe.mode);return wt.lanes=je,wt.return=oe,wt}}}var io=dg(!0),fg=dg(!1),Sr=!1;function fd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function md(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Er(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Nr(e,n,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(kt&2)!==0){var u=l.pending;return u===null?n.next=n:(n.next=u.next,u.next=n),l.pending=n,n=Ei(e),Kh(e,null,s),n}return Si(e,l,n,s),Ei(e)}function Ja(e,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194048)!==0)){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Jt(e,s)}}function pd(e,n){var s=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var u=null,f=null;if(s=s.firstBaseUpdate,s!==null){do{var v={lane:s.lane,tag:s.tag,payload:s.payload,callback:null,next:null};f===null?u=f=v:f=f.next=v,s=s.next}while(s!==null);f===null?u=f=n:f=f.next=n}else u=f=n;s={baseState:l.baseState,firstBaseUpdate:u,lastBaseUpdate:f,shared:l.shared,callbacks:l.callbacks},e.updateQueue=s;return}e=s.lastBaseUpdate,e===null?s.firstBaseUpdate=n:e.next=n,s.lastBaseUpdate=n}var hd=!1;function Wa(){if(hd){var e=Wo;if(e!==null)throw e}}function el(e,n,s,l){hd=!1;var u=e.updateQueue;Sr=!1;var f=u.firstBaseUpdate,v=u.lastBaseUpdate,R=u.shared.pending;if(R!==null){u.shared.pending=null;var $=R,fe=$.next;$.next=null,v===null?f=fe:v.next=fe,v=$;var Se=e.alternate;Se!==null&&(Se=Se.updateQueue,R=Se.lastBaseUpdate,R!==v&&(R===null?Se.firstBaseUpdate=fe:R.next=fe,Se.lastBaseUpdate=$))}if(f!==null){var Te=u.baseState;v=0,Se=fe=$=null,R=f;do{var me=R.lane&-536870913,he=me!==R.lane;if(he?(bt&me)===me:(l&me)===me){me!==0&&me===Jo&&(hd=!0),Se!==null&&(Se=Se.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});e:{var Xe=e,et=R;me=n;var Ht=s;switch(et.tag){case 1:if(Xe=et.payload,typeof Xe=="function"){Te=Xe.call(Ht,Te,me);break e}Te=Xe;break e;case 3:Xe.flags=Xe.flags&-65537|128;case 0:if(Xe=et.payload,me=typeof Xe=="function"?Xe.call(Ht,Te,me):Xe,me==null)break e;Te=x({},Te,me);break e;case 2:Sr=!0}}me=R.callback,me!==null&&(e.flags|=64,he&&(e.flags|=8192),he=u.callbacks,he===null?u.callbacks=[me]:he.push(me))}else he={lane:me,tag:R.tag,payload:R.payload,callback:R.callback,next:null},Se===null?(fe=Se=he,$=Te):Se=Se.next=he,v|=me;if(R=R.next,R===null){if(R=u.shared.pending,R===null)break;he=R,R=he.next,he.next=null,u.lastBaseUpdate=he,u.shared.pending=null}}while(!0);Se===null&&($=Te),u.baseState=$,u.firstBaseUpdate=fe,u.lastBaseUpdate=Se,f===null&&(u.shared.lanes=0),Rr|=v,e.lanes=v,e.memoizedState=Te}}function mg(e,n){if(typeof e!="function")throw Error(a(191,e));e.call(n)}function pg(e,n){var s=e.callbacks;if(s!==null)for(e.callbacks=null,e=0;e<s.length;e++)mg(s[e],n)}var na=A(null),Mi=A(0);function hg(e,n){e=Js,I(Mi,e),I(na,n),Js=e|n.baseLanes}function gd(){I(Mi,Js),I(na,na.current)}function xd(){Js=Mi.current,B(na),B(Mi)}var Yn=A(null),os=null;function jr(e){var n=e.alternate;I(Wt,Wt.current&1),I(Yn,e),os===null&&(n===null||na.current!==null||n.memoizedState!==null)&&(os=e)}function bd(e){I(Wt,Wt.current),I(Yn,e),os===null&&(os=e)}function gg(e){e.tag===22?(I(Wt,Wt.current),I(Yn,e),os===null&&(os=e)):Tr()}function Tr(){I(Wt,Wt.current),I(Yn,Yn.current)}function Vn(e){B(Yn),os===e&&(os=null),B(Wt)}var Wt=A(0);function Ai(e){for(var n=e;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||Tf(s)||wf(s)))return n}else if(n.tag===19&&(n.memoizedProps.revealOrder==="forwards"||n.memoizedProps.revealOrder==="backwards"||n.memoizedProps.revealOrder==="unstable_legacy-backwards"||n.memoizedProps.revealOrder==="together")){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Fs=0,ct=null,It=null,nn=null,Di=!1,sa=!1,co=!1,zi=0,tl=0,ra=null,WE=0;function Kt(){throw Error(a(321))}function yd(e,n){if(n===null)return!1;for(var s=0;s<n.length&&s<e.length;s++)if(!Un(e[s],n[s]))return!1;return!0}function vd(e,n,s,l,u,f){return Fs=f,ct=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,z.H=e===null||e.memoizedState===null?Wg:zd,co=!1,f=s(l,u),co=!1,sa&&(f=bg(n,s,l,u)),xg(e),f}function xg(e){z.H=rl;var n=It!==null&&It.next!==null;if(Fs=0,nn=It=ct=null,Di=!1,tl=0,ra=null,n)throw Error(a(300));e===null||sn||(e=e.dependencies,e!==null&&Ti(e)&&(sn=!0))}function bg(e,n,s,l){ct=e;var u=0;do{if(sa&&(ra=null),tl=0,sa=!1,25<=u)throw Error(a(301));if(u+=1,nn=It=null,e.updateQueue!=null){var f=e.updateQueue;f.lastEffect=null,f.events=null,f.stores=null,f.memoCache!=null&&(f.memoCache.index=0)}z.H=ex,f=n(s,l)}while(sa);return f}function eN(){var e=z.H,n=e.useState()[0];return n=typeof n.then=="function"?nl(n):n,e=e.useState()[0],(It!==null?It.memoizedState:null)!==e&&(ct.flags|=1024),n}function Sd(){var e=zi!==0;return zi=0,e}function Ed(e,n,s){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~s}function Nd(e){if(Di){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Di=!1}Fs=0,nn=It=ct=null,sa=!1,tl=zi=0,ra=null}function wn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return nn===null?ct.memoizedState=nn=e:nn=nn.next=e,nn}function en(){if(It===null){var e=ct.alternate;e=e!==null?e.memoizedState:null}else e=It.next;var n=nn===null?ct.memoizedState:nn.next;if(n!==null)nn=n,It=e;else{if(e===null)throw ct.alternate===null?Error(a(467)):Error(a(310));It=e,e={memoizedState:It.memoizedState,baseState:It.baseState,baseQueue:It.baseQueue,queue:It.queue,next:null},nn===null?ct.memoizedState=nn=e:nn=nn.next=e}return nn}function Li(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function nl(e){var n=tl;return tl+=1,ra===null&&(ra=[]),e=ig(ra,e,n),n=ct,(nn===null?n.memoizedState:nn.next)===null&&(n=n.alternate,z.H=n===null||n.memoizedState===null?Wg:zd),e}function Ii(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return nl(e);if(e.$$typeof===_)return bn(e)}throw Error(a(438,String(e)))}function jd(e){var n=null,s=ct.updateQueue;if(s!==null&&(n=s.memoCache),n==null){var l=ct.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(n={data:l.data.map(function(u){return u.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),s===null&&(s=Li(),ct.updateQueue=s),s.memoCache=n,s=n.data[n.index],s===void 0)for(s=n.data[n.index]=Array(e),l=0;l<e;l++)s[l]=ne;return n.index++,s}function Gs(e,n){return typeof n=="function"?n(e):n}function Bi(e){var n=en();return Td(n,It,e)}function Td(e,n,s){var l=e.queue;if(l===null)throw Error(a(311));l.lastRenderedReducer=s;var u=e.baseQueue,f=l.pending;if(f!==null){if(u!==null){var v=u.next;u.next=f.next,f.next=v}n.baseQueue=u=f,l.pending=null}if(f=e.baseState,u===null)e.memoizedState=f;else{n=u.next;var R=v=null,$=null,fe=n,Se=!1;do{var Te=fe.lane&-536870913;if(Te!==fe.lane?(bt&Te)===Te:(Fs&Te)===Te){var me=fe.revertLane;if(me===0)$!==null&&($=$.next={lane:0,revertLane:0,gesture:null,action:fe.action,hasEagerState:fe.hasEagerState,eagerState:fe.eagerState,next:null}),Te===Jo&&(Se=!0);else if((Fs&me)===me){fe=fe.next,me===Jo&&(Se=!0);continue}else Te={lane:0,revertLane:fe.revertLane,gesture:null,action:fe.action,hasEagerState:fe.hasEagerState,eagerState:fe.eagerState,next:null},$===null?(R=$=Te,v=f):$=$.next=Te,ct.lanes|=me,Rr|=me;Te=fe.action,co&&s(f,Te),f=fe.hasEagerState?fe.eagerState:s(f,Te)}else me={lane:Te,revertLane:fe.revertLane,gesture:fe.gesture,action:fe.action,hasEagerState:fe.hasEagerState,eagerState:fe.eagerState,next:null},$===null?(R=$=me,v=f):$=$.next=me,ct.lanes|=Te,Rr|=Te;fe=fe.next}while(fe!==null&&fe!==n);if($===null?v=f:$.next=R,!Un(f,e.memoizedState)&&(sn=!0,Se&&(s=Wo,s!==null)))throw s;e.memoizedState=f,e.baseState=v,e.baseQueue=$,l.lastRenderedState=f}return u===null&&(l.lanes=0),[e.memoizedState,l.dispatch]}function wd(e){var n=en(),s=n.queue;if(s===null)throw Error(a(311));s.lastRenderedReducer=e;var l=s.dispatch,u=s.pending,f=n.memoizedState;if(u!==null){s.pending=null;var v=u=u.next;do f=e(f,v.action),v=v.next;while(v!==u);Un(f,n.memoizedState)||(sn=!0),n.memoizedState=f,n.baseQueue===null&&(n.baseState=f),s.lastRenderedState=f}return[f,l]}function yg(e,n,s){var l=ct,u=en(),f=Et;if(f){if(s===void 0)throw Error(a(407));s=s()}else s=n();var v=!Un((It||u).memoizedState,s);if(v&&(u.memoizedState=s,sn=!0),u=u.queue,Od(Eg.bind(null,l,u,e),[e]),u.getSnapshot!==n||v||nn!==null&&nn.memoizedState.tag&1){if(l.flags|=2048,oa(9,{destroy:void 0},Sg.bind(null,l,u,s,n),null),Pt===null)throw Error(a(349));f||(Fs&127)!==0||vg(l,n,s)}return s}function vg(e,n,s){e.flags|=16384,e={getSnapshot:n,value:s},n=ct.updateQueue,n===null?(n=Li(),ct.updateQueue=n,n.stores=[e]):(s=n.stores,s===null?n.stores=[e]:s.push(e))}function Sg(e,n,s,l){n.value=s,n.getSnapshot=l,Ng(n)&&jg(e)}function Eg(e,n,s){return s(function(){Ng(n)&&jg(e)})}function Ng(e){var n=e.getSnapshot;e=e.value;try{var s=n();return!Un(e,s)}catch{return!0}}function jg(e){var n=eo(e,2);n!==null&&Dn(n,e,2)}function Cd(e){var n=wn();if(typeof e=="function"){var s=e;if(e=s(),co){Tt(!0);try{s()}finally{Tt(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gs,lastRenderedState:e},n}function Tg(e,n,s,l){return e.baseState=s,Td(e,It,typeof l=="function"?l:Gs)}function tN(e,n,s,l,u){if(Pi(e))throw Error(a(485));if(e=n.action,e!==null){var f={payload:u,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){f.listeners.push(v)}};z.T!==null?s(!0):f.isTransition=!1,l(f),s=n.pending,s===null?(f.next=n.pending=f,wg(n,f)):(f.next=s.next,n.pending=s.next=f)}}function wg(e,n){var s=n.action,l=n.payload,u=e.state;if(n.isTransition){var f=z.T,v={};z.T=v;try{var R=s(u,l),$=z.S;$!==null&&$(v,R),Cg(e,n,R)}catch(fe){Rd(e,n,fe)}finally{f!==null&&v.types!==null&&(f.types=v.types),z.T=f}}else try{f=s(u,l),Cg(e,n,f)}catch(fe){Rd(e,n,fe)}}function Cg(e,n,s){s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(function(l){Rg(e,n,l)},function(l){return Rd(e,n,l)}):Rg(e,n,s)}function Rg(e,n,s){n.status="fulfilled",n.value=s,Og(n),e.state=s,n=e.pending,n!==null&&(s=n.next,s===n?e.pending=null:(s=s.next,n.next=s,wg(e,s)))}function Rd(e,n,s){var l=e.pending;if(e.pending=null,l!==null){l=l.next;do n.status="rejected",n.reason=s,Og(n),n=n.next;while(n!==l)}e.action=null}function Og(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function kg(e,n){return n}function _g(e,n){if(Et){var s=Pt.formState;if(s!==null){e:{var l=ct;if(Et){if(Gt){t:{for(var u=Gt,f=rs;u.nodeType!==8;){if(!f){u=null;break t}if(u=as(u.nextSibling),u===null){u=null;break t}}f=u.data,u=f==="F!"||f==="F"?u:null}if(u){Gt=as(u.nextSibling),l=u.data==="F!";break e}}yr(l)}l=!1}l&&(n=s[0])}}return s=wn(),s.memoizedState=s.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:kg,lastRenderedState:n},s.queue=l,s=Qg.bind(null,ct,l),l.dispatch=s,l=Cd(!1),f=Dd.bind(null,ct,!1,l.queue),l=wn(),u={state:n,dispatch:null,action:e,pending:null},l.queue=u,s=tN.bind(null,ct,u,f,s),u.dispatch=s,l.memoizedState=e,[n,s,!1]}function Mg(e){var n=en();return Ag(n,It,e)}function Ag(e,n,s){if(n=Td(e,n,kg)[0],e=Bi(Gs)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var l=nl(n)}catch(v){throw v===ea?Ri:v}else l=n;n=en();var u=n.queue,f=u.dispatch;return s!==n.memoizedState&&(ct.flags|=2048,oa(9,{destroy:void 0},nN.bind(null,u,s),null)),[l,f,e]}function nN(e,n){e.action=n}function Dg(e){var n=en(),s=It;if(s!==null)return Ag(n,s,e);en(),n=n.memoizedState,s=en();var l=s.queue.dispatch;return s.memoizedState=e,[n,l,!1]}function oa(e,n,s,l){return e={tag:e,create:s,deps:l,inst:n,next:null},n=ct.updateQueue,n===null&&(n=Li(),ct.updateQueue=n),s=n.lastEffect,s===null?n.lastEffect=e.next=e:(l=s.next,s.next=e,e.next=l,n.lastEffect=e),e}function zg(){return en().memoizedState}function Hi(e,n,s,l){var u=wn();ct.flags|=e,u.memoizedState=oa(1|n,{destroy:void 0},s,l===void 0?null:l)}function Ui(e,n,s,l){var u=en();l=l===void 0?null:l;var f=u.memoizedState.inst;It!==null&&l!==null&&yd(l,It.memoizedState.deps)?u.memoizedState=oa(n,f,s,l):(ct.flags|=e,u.memoizedState=oa(1|n,f,s,l))}function Lg(e,n){Hi(8390656,8,e,n)}function Od(e,n){Ui(2048,8,e,n)}function sN(e){ct.flags|=4;var n=ct.updateQueue;if(n===null)n=Li(),ct.updateQueue=n,n.events=[e];else{var s=n.events;s===null?n.events=[e]:s.push(e)}}function Ig(e){var n=en().memoizedState;return sN({ref:n,nextImpl:e}),function(){if((kt&2)!==0)throw Error(a(440));return n.impl.apply(void 0,arguments)}}function Bg(e,n){return Ui(4,2,e,n)}function Hg(e,n){return Ui(4,4,e,n)}function Ug(e,n){if(typeof n=="function"){e=e();var s=n(e);return function(){typeof s=="function"?s():n(null)}}if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Pg(e,n,s){s=s!=null?s.concat([e]):null,Ui(4,4,Ug.bind(null,n,e),s)}function kd(){}function Yg(e,n){var s=en();n=n===void 0?null:n;var l=s.memoizedState;return n!==null&&yd(n,l[1])?l[0]:(s.memoizedState=[e,n],e)}function Vg(e,n){var s=en();n=n===void 0?null:n;var l=s.memoizedState;if(n!==null&&yd(n,l[1]))return l[0];if(l=e(),co){Tt(!0);try{e()}finally{Tt(!1)}}return s.memoizedState=[l,n],l}function _d(e,n,s){return s===void 0||(Fs&1073741824)!==0&&(bt&261930)===0?e.memoizedState=n:(e.memoizedState=s,e=Fx(),ct.lanes|=e,Rr|=e,s)}function Fg(e,n,s,l){return Un(s,n)?s:na.current!==null?(e=_d(e,s,l),Un(e,n)||(sn=!0),e):(Fs&42)===0||(Fs&1073741824)!==0&&(bt&261930)===0?(sn=!0,e.memoizedState=s):(e=Fx(),ct.lanes|=e,Rr|=e,n)}function Gg(e,n,s,l,u){var f=D.p;D.p=f!==0&&8>f?f:8;var v=z.T,R={};z.T=R,Dd(e,!1,n,s);try{var $=u(),fe=z.S;if(fe!==null&&fe(R,$),$!==null&&typeof $=="object"&&typeof $.then=="function"){var Se=JE($,l);sl(e,n,Se,qn(e))}else sl(e,n,l,qn(e))}catch(Te){sl(e,n,{then:function(){},status:"rejected",reason:Te},qn())}finally{D.p=f,v!==null&&R.types!==null&&(v.types=R.types),z.T=v}}function rN(){}function Md(e,n,s,l){if(e.tag!==5)throw Error(a(476));var u=qg(e).queue;Gg(e,u,n,Y,s===null?rN:function(){return $g(e),s(l)})}function qg(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gs,lastRenderedState:Y},next:null};var s={};return n.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gs,lastRenderedState:s},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function $g(e){var n=qg(e);n.next===null&&(n=e.alternate.memoizedState),sl(e,n.next.queue,{},qn())}function Ad(){return bn(vl)}function Xg(){return en().memoizedState}function Kg(){return en().memoizedState}function oN(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var s=qn();e=Er(s);var l=Nr(n,e,s);l!==null&&(Dn(l,n,s),Ja(l,n,s)),n={cache:id()},e.payload=n;return}n=n.return}}function aN(e,n,s){var l=qn();s={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},Pi(e)?Zg(n,s):(s=Zu(e,n,s,l),s!==null&&(Dn(s,e,l),Jg(s,n,l)))}function Qg(e,n,s){var l=qn();sl(e,n,s,l)}function sl(e,n,s,l){var u={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(Pi(e))Zg(n,u);else{var f=e.alternate;if(e.lanes===0&&(f===null||f.lanes===0)&&(f=n.lastRenderedReducer,f!==null))try{var v=n.lastRenderedState,R=f(v,s);if(u.hasEagerState=!0,u.eagerState=R,Un(R,v))return Si(e,n,u,0),Pt===null&&vi(),!1}catch{}if(s=Zu(e,n,u,l),s!==null)return Dn(s,e,l),Jg(s,n,l),!0}return!1}function Dd(e,n,s,l){if(l={lane:2,revertLane:mf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Pi(e)){if(n)throw Error(a(479))}else n=Zu(e,s,l,2),n!==null&&Dn(n,e,2)}function Pi(e){var n=e.alternate;return e===ct||n!==null&&n===ct}function Zg(e,n){sa=Di=!0;var s=e.pending;s===null?n.next=n:(n.next=s.next,s.next=n),e.pending=n}function Jg(e,n,s){if((s&4194048)!==0){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Jt(e,s)}}var rl={readContext:bn,use:Ii,useCallback:Kt,useContext:Kt,useEffect:Kt,useImperativeHandle:Kt,useLayoutEffect:Kt,useInsertionEffect:Kt,useMemo:Kt,useReducer:Kt,useRef:Kt,useState:Kt,useDebugValue:Kt,useDeferredValue:Kt,useTransition:Kt,useSyncExternalStore:Kt,useId:Kt,useHostTransitionStatus:Kt,useFormState:Kt,useActionState:Kt,useOptimistic:Kt,useMemoCache:Kt,useCacheRefresh:Kt};rl.useEffectEvent=Kt;var Wg={readContext:bn,use:Ii,useCallback:function(e,n){return wn().memoizedState=[e,n===void 0?null:n],e},useContext:bn,useEffect:Lg,useImperativeHandle:function(e,n,s){s=s!=null?s.concat([e]):null,Hi(4194308,4,Ug.bind(null,n,e),s)},useLayoutEffect:function(e,n){return Hi(4194308,4,e,n)},useInsertionEffect:function(e,n){Hi(4,2,e,n)},useMemo:function(e,n){var s=wn();n=n===void 0?null:n;var l=e();if(co){Tt(!0);try{e()}finally{Tt(!1)}}return s.memoizedState=[l,n],l},useReducer:function(e,n,s){var l=wn();if(s!==void 0){var u=s(n);if(co){Tt(!0);try{s(n)}finally{Tt(!1)}}}else u=n;return l.memoizedState=l.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},l.queue=e,e=e.dispatch=aN.bind(null,ct,e),[l.memoizedState,e]},useRef:function(e){var n=wn();return e={current:e},n.memoizedState=e},useState:function(e){e=Cd(e);var n=e.queue,s=Qg.bind(null,ct,n);return n.dispatch=s,[e.memoizedState,s]},useDebugValue:kd,useDeferredValue:function(e,n){var s=wn();return _d(s,e,n)},useTransition:function(){var e=Cd(!1);return e=Gg.bind(null,ct,e.queue,!0,!1),wn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,s){var l=ct,u=wn();if(Et){if(s===void 0)throw Error(a(407));s=s()}else{if(s=n(),Pt===null)throw Error(a(349));(bt&127)!==0||vg(l,n,s)}u.memoizedState=s;var f={value:s,getSnapshot:n};return u.queue=f,Lg(Eg.bind(null,l,f,e),[e]),l.flags|=2048,oa(9,{destroy:void 0},Sg.bind(null,l,f,s,n),null),s},useId:function(){var e=wn(),n=Pt.identifierPrefix;if(Et){var s=ys,l=bs;s=(l&~(1<<32-Rt(l)-1)).toString(32)+s,n="_"+n+"R_"+s,s=zi++,0<s&&(n+="H"+s.toString(32)),n+="_"}else s=WE++,n="_"+n+"r_"+s.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:Ad,useFormState:_g,useActionState:_g,useOptimistic:function(e){var n=wn();n.memoizedState=n.baseState=e;var s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=s,n=Dd.bind(null,ct,!0,s),s.dispatch=n,[e,n]},useMemoCache:jd,useCacheRefresh:function(){return wn().memoizedState=oN.bind(null,ct)},useEffectEvent:function(e){var n=wn(),s={impl:e};return n.memoizedState=s,function(){if((kt&2)!==0)throw Error(a(440));return s.impl.apply(void 0,arguments)}}},zd={readContext:bn,use:Ii,useCallback:Yg,useContext:bn,useEffect:Od,useImperativeHandle:Pg,useInsertionEffect:Bg,useLayoutEffect:Hg,useMemo:Vg,useReducer:Bi,useRef:zg,useState:function(){return Bi(Gs)},useDebugValue:kd,useDeferredValue:function(e,n){var s=en();return Fg(s,It.memoizedState,e,n)},useTransition:function(){var e=Bi(Gs)[0],n=en().memoizedState;return[typeof e=="boolean"?e:nl(e),n]},useSyncExternalStore:yg,useId:Xg,useHostTransitionStatus:Ad,useFormState:Mg,useActionState:Mg,useOptimistic:function(e,n){var s=en();return Tg(s,It,e,n)},useMemoCache:jd,useCacheRefresh:Kg};zd.useEffectEvent=Ig;var ex={readContext:bn,use:Ii,useCallback:Yg,useContext:bn,useEffect:Od,useImperativeHandle:Pg,useInsertionEffect:Bg,useLayoutEffect:Hg,useMemo:Vg,useReducer:wd,useRef:zg,useState:function(){return wd(Gs)},useDebugValue:kd,useDeferredValue:function(e,n){var s=en();return It===null?_d(s,e,n):Fg(s,It.memoizedState,e,n)},useTransition:function(){var e=wd(Gs)[0],n=en().memoizedState;return[typeof e=="boolean"?e:nl(e),n]},useSyncExternalStore:yg,useId:Xg,useHostTransitionStatus:Ad,useFormState:Dg,useActionState:Dg,useOptimistic:function(e,n){var s=en();return It!==null?Tg(s,It,e,n):(s.baseState=e,[e,s.queue.dispatch])},useMemoCache:jd,useCacheRefresh:Kg};ex.useEffectEvent=Ig;function Ld(e,n,s,l){n=e.memoizedState,s=s(l,n),s=s==null?n:x({},n,s),e.memoizedState=s,e.lanes===0&&(e.updateQueue.baseState=s)}var Id={enqueueSetState:function(e,n,s){e=e._reactInternals;var l=qn(),u=Er(l);u.payload=n,s!=null&&(u.callback=s),n=Nr(e,u,l),n!==null&&(Dn(n,e,l),Ja(n,e,l))},enqueueReplaceState:function(e,n,s){e=e._reactInternals;var l=qn(),u=Er(l);u.tag=1,u.payload=n,s!=null&&(u.callback=s),n=Nr(e,u,l),n!==null&&(Dn(n,e,l),Ja(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var s=qn(),l=Er(s);l.tag=2,n!=null&&(l.callback=n),n=Nr(e,l,s),n!==null&&(Dn(n,e,s),Ja(n,e,s))}};function tx(e,n,s,l,u,f,v){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,f,v):n.prototype&&n.prototype.isPureReactComponent?!Fa(s,l)||!Fa(u,f):!0}function nx(e,n,s,l){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(s,l),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(s,l),n.state!==e&&Id.enqueueReplaceState(n,n.state,null)}function uo(e,n){var s=n;if("ref"in n){s={};for(var l in n)l!=="ref"&&(s[l]=n[l])}if(e=e.defaultProps){s===n&&(s=x({},s));for(var u in e)s[u]===void 0&&(s[u]=e[u])}return s}function sx(e){yi(e)}function rx(e){console.error(e)}function ox(e){yi(e)}function Yi(e,n){try{var s=e.onUncaughtError;s(n.value,{componentStack:n.stack})}catch(l){setTimeout(function(){throw l})}}function ax(e,n,s){try{var l=e.onCaughtError;l(s.value,{componentStack:s.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function Bd(e,n,s){return s=Er(s),s.tag=3,s.payload={element:null},s.callback=function(){Yi(e,n)},s}function lx(e){return e=Er(e),e.tag=3,e}function ix(e,n,s,l){var u=s.type.getDerivedStateFromError;if(typeof u=="function"){var f=l.value;e.payload=function(){return u(f)},e.callback=function(){ax(n,s,l)}}var v=s.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(e.callback=function(){ax(n,s,l),typeof u!="function"&&(Or===null?Or=new Set([this]):Or.add(this));var R=l.stack;this.componentDidCatch(l.value,{componentStack:R!==null?R:""})})}function lN(e,n,s,l,u){if(s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(n=s.alternate,n!==null&&Zo(n,s,u,!0),s=Yn.current,s!==null){switch(s.tag){case 31:case 13:return os===null?ec():s.alternate===null&&Qt===0&&(Qt=3),s.flags&=-257,s.flags|=65536,s.lanes=u,l===Oi?s.flags|=16384:(n=s.updateQueue,n===null?s.updateQueue=new Set([l]):n.add(l),uf(e,l,u)),!1;case 22:return s.flags|=65536,l===Oi?s.flags|=16384:(n=s.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([l])},s.updateQueue=n):(s=n.retryQueue,s===null?n.retryQueue=new Set([l]):s.add(l)),uf(e,l,u)),!1}throw Error(a(435,s.tag))}return uf(e,l,u),ec(),!1}if(Et)return n=Yn.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=u,l!==sd&&(e=Error(a(422),{cause:l}),$a(ts(e,s)))):(l!==sd&&(n=Error(a(423),{cause:l}),$a(ts(n,s))),e=e.current.alternate,e.flags|=65536,u&=-u,e.lanes|=u,l=ts(l,s),u=Bd(e.stateNode,l,u),pd(e,u),Qt!==4&&(Qt=2)),!1;var f=Error(a(520),{cause:l});if(f=ts(f,s),fl===null?fl=[f]:fl.push(f),Qt!==4&&(Qt=2),n===null)return!0;l=ts(l,s),s=n;do{switch(s.tag){case 3:return s.flags|=65536,e=u&-u,s.lanes|=e,e=Bd(s.stateNode,l,e),pd(s,e),!1;case 1:if(n=s.type,f=s.stateNode,(s.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(Or===null||!Or.has(f))))return s.flags|=65536,u&=-u,s.lanes|=u,u=lx(u),ix(u,e,s,l),pd(s,u),!1}s=s.return}while(s!==null);return!1}var Hd=Error(a(461)),sn=!1;function yn(e,n,s,l){n.child=e===null?fg(n,null,s,l):io(n,e.child,s,l)}function cx(e,n,s,l,u){s=s.render;var f=n.ref;if("ref"in l){var v={};for(var R in l)R!=="ref"&&(v[R]=l[R])}else v=l;return ro(n),l=vd(e,n,s,v,f,u),R=Sd(),e!==null&&!sn?(Ed(e,n,u),qs(e,n,u)):(Et&&R&&td(n),n.flags|=1,yn(e,n,l,u),n.child)}function ux(e,n,s,l,u){if(e===null){var f=s.type;return typeof f=="function"&&!Ju(f)&&f.defaultProps===void 0&&s.compare===null?(n.tag=15,n.type=f,dx(e,n,f,l,u)):(e=Ni(s.type,null,l,n,n.mode,u),e.ref=n.ref,e.return=n,n.child=e)}if(f=e.child,!$d(e,u)){var v=f.memoizedProps;if(s=s.compare,s=s!==null?s:Fa,s(v,l)&&e.ref===n.ref)return qs(e,n,u)}return n.flags|=1,e=Us(f,l),e.ref=n.ref,e.return=n,n.child=e}function dx(e,n,s,l,u){if(e!==null){var f=e.memoizedProps;if(Fa(f,l)&&e.ref===n.ref)if(sn=!1,n.pendingProps=l=f,$d(e,u))(e.flags&131072)!==0&&(sn=!0);else return n.lanes=e.lanes,qs(e,n,u)}return Ud(e,n,s,l,u)}function fx(e,n,s,l){var u=l.children,f=e!==null?e.memoizedState:null;if(e===null&&n.stateNode===null&&(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((n.flags&128)!==0){if(f=f!==null?f.baseLanes|s:s,e!==null){for(l=n.child=e.child,u=0;l!==null;)u=u|l.lanes|l.childLanes,l=l.sibling;l=u&~f}else l=0,n.child=null;return mx(e,n,f,s,l)}if((s&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ci(n,f!==null?f.cachePool:null),f!==null?hg(n,f):gd(),gg(n);else return l=n.lanes=536870912,mx(e,n,f!==null?f.baseLanes|s:s,s,l)}else f!==null?(Ci(n,f.cachePool),hg(n,f),Tr(),n.memoizedState=null):(e!==null&&Ci(n,null),gd(),Tr());return yn(e,n,u,s),n.child}function ol(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function mx(e,n,s,l,u){var f=ud();return f=f===null?null:{parent:tn._currentValue,pool:f},n.memoizedState={baseLanes:s,cachePool:f},e!==null&&Ci(n,null),gd(),gg(n),e!==null&&Zo(e,n,l,!0),n.childLanes=u,null}function Vi(e,n){return n=Gi({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function px(e,n,s){return io(n,e.child,null,s),e=Vi(n,n.pendingProps),e.flags|=2,Vn(n),n.memoizedState=null,e}function iN(e,n,s){var l=n.pendingProps,u=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(Et){if(l.mode==="hidden")return e=Vi(n,l),n.lanes=536870912,ol(null,e);if(bd(n),(e=Gt)?(e=wb(e,rs),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:xr!==null?{id:bs,overflow:ys}:null,retryLane:536870912,hydrationErrors:null},s=Zh(e),s.return=n,n.child=s,xn=n,Gt=null)):e=null,e===null)throw yr(n);return n.lanes=536870912,null}return Vi(n,l)}var f=e.memoizedState;if(f!==null){var v=f.dehydrated;if(bd(n),u)if(n.flags&256)n.flags&=-257,n=px(e,n,s);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(a(558));else if(sn||Zo(e,n,s,!1),u=(s&e.childLanes)!==0,sn||u){if(l=Pt,l!==null&&(v=gn(l,s),v!==0&&v!==f.retryLane))throw f.retryLane=v,eo(e,v),Dn(l,e,v),Hd;ec(),n=px(e,n,s)}else e=f.treeContext,Gt=as(v.nextSibling),xn=n,Et=!0,br=null,rs=!1,e!==null&&eg(n,e),n=Vi(n,l),n.flags|=4096;return n}return e=Us(e.child,{mode:l.mode,children:l.children}),e.ref=n.ref,n.child=e,e.return=n,e}function Fi(e,n){var s=n.ref;if(s===null)e!==null&&e.ref!==null&&(n.flags|=4194816);else{if(typeof s!="function"&&typeof s!="object")throw Error(a(284));(e===null||e.ref!==s)&&(n.flags|=4194816)}}function Ud(e,n,s,l,u){return ro(n),s=vd(e,n,s,l,void 0,u),l=Sd(),e!==null&&!sn?(Ed(e,n,u),qs(e,n,u)):(Et&&l&&td(n),n.flags|=1,yn(e,n,s,u),n.child)}function hx(e,n,s,l,u,f){return ro(n),n.updateQueue=null,s=bg(n,l,s,u),xg(e),l=Sd(),e!==null&&!sn?(Ed(e,n,f),qs(e,n,f)):(Et&&l&&td(n),n.flags|=1,yn(e,n,s,f),n.child)}function gx(e,n,s,l,u){if(ro(n),n.stateNode===null){var f=$o,v=s.contextType;typeof v=="object"&&v!==null&&(f=bn(v)),f=new s(l,f),n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Id,n.stateNode=f,f._reactInternals=n,f=n.stateNode,f.props=l,f.state=n.memoizedState,f.refs={},fd(n),v=s.contextType,f.context=typeof v=="object"&&v!==null?bn(v):$o,f.state=n.memoizedState,v=s.getDerivedStateFromProps,typeof v=="function"&&(Ld(n,s,v,l),f.state=n.memoizedState),typeof s.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(v=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),v!==f.state&&Id.enqueueReplaceState(f,f.state,null),el(n,l,f,u),Wa(),f.state=n.memoizedState),typeof f.componentDidMount=="function"&&(n.flags|=4194308),l=!0}else if(e===null){f=n.stateNode;var R=n.memoizedProps,$=uo(s,R);f.props=$;var fe=f.context,Se=s.contextType;v=$o,typeof Se=="object"&&Se!==null&&(v=bn(Se));var Te=s.getDerivedStateFromProps;Se=typeof Te=="function"||typeof f.getSnapshotBeforeUpdate=="function",R=n.pendingProps!==R,Se||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(R||fe!==v)&&nx(n,f,l,v),Sr=!1;var me=n.memoizedState;f.state=me,el(n,l,f,u),Wa(),fe=n.memoizedState,R||me!==fe||Sr?(typeof Te=="function"&&(Ld(n,s,Te,l),fe=n.memoizedState),($=Sr||tx(n,s,$,l,me,fe,v))?(Se||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=fe),f.props=l,f.state=fe,f.context=v,l=$):(typeof f.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{f=n.stateNode,md(e,n),v=n.memoizedProps,Se=uo(s,v),f.props=Se,Te=n.pendingProps,me=f.context,fe=s.contextType,$=$o,typeof fe=="object"&&fe!==null&&($=bn(fe)),R=s.getDerivedStateFromProps,(fe=typeof R=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(v!==Te||me!==$)&&nx(n,f,l,$),Sr=!1,me=n.memoizedState,f.state=me,el(n,l,f,u),Wa();var he=n.memoizedState;v!==Te||me!==he||Sr||e!==null&&e.dependencies!==null&&Ti(e.dependencies)?(typeof R=="function"&&(Ld(n,s,R,l),he=n.memoizedState),(Se=Sr||tx(n,s,Se,l,me,he,$)||e!==null&&e.dependencies!==null&&Ti(e.dependencies))?(fe||typeof f.UNSAFE_componentWillUpdate!="function"&&typeof f.componentWillUpdate!="function"||(typeof f.componentWillUpdate=="function"&&f.componentWillUpdate(l,he,$),typeof f.UNSAFE_componentWillUpdate=="function"&&f.UNSAFE_componentWillUpdate(l,he,$)),typeof f.componentDidUpdate=="function"&&(n.flags|=4),typeof f.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof f.componentDidUpdate!="function"||v===e.memoizedProps&&me===e.memoizedState||(n.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&me===e.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=he),f.props=l,f.state=he,f.context=$,l=Se):(typeof f.componentDidUpdate!="function"||v===e.memoizedProps&&me===e.memoizedState||(n.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&me===e.memoizedState||(n.flags|=1024),l=!1)}return f=l,Fi(e,n),l=(n.flags&128)!==0,f||l?(f=n.stateNode,s=l&&typeof s.getDerivedStateFromError!="function"?null:f.render(),n.flags|=1,e!==null&&l?(n.child=io(n,e.child,null,u),n.child=io(n,null,s,u)):yn(e,n,s,u),n.memoizedState=f.state,e=n.child):e=qs(e,n,u),e}function xx(e,n,s,l){return no(),n.flags|=256,yn(e,n,s,l),n.child}var Pd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Yd(e){return{baseLanes:e,cachePool:ag()}}function Vd(e,n,s){return e=e!==null?e.childLanes&~s:0,n&&(e|=Gn),e}function bx(e,n,s){var l=n.pendingProps,u=!1,f=(n.flags&128)!==0,v;if((v=f)||(v=e!==null&&e.memoizedState===null?!1:(Wt.current&2)!==0),v&&(u=!0,n.flags&=-129),v=(n.flags&32)!==0,n.flags&=-33,e===null){if(Et){if(u?jr(n):Tr(),(e=Gt)?(e=wb(e,rs),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:xr!==null?{id:bs,overflow:ys}:null,retryLane:536870912,hydrationErrors:null},s=Zh(e),s.return=n,n.child=s,xn=n,Gt=null)):e=null,e===null)throw yr(n);return wf(e)?n.lanes=32:n.lanes=536870912,null}var R=l.children;return l=l.fallback,u?(Tr(),u=n.mode,R=Gi({mode:"hidden",children:R},u),l=to(l,u,s,null),R.return=n,l.return=n,R.sibling=l,n.child=R,l=n.child,l.memoizedState=Yd(s),l.childLanes=Vd(e,v,s),n.memoizedState=Pd,ol(null,l)):(jr(n),Fd(n,R))}var $=e.memoizedState;if($!==null&&(R=$.dehydrated,R!==null)){if(f)n.flags&256?(jr(n),n.flags&=-257,n=Gd(e,n,s)):n.memoizedState!==null?(Tr(),n.child=e.child,n.flags|=128,n=null):(Tr(),R=l.fallback,u=n.mode,l=Gi({mode:"visible",children:l.children},u),R=to(R,u,s,null),R.flags|=2,l.return=n,R.return=n,l.sibling=R,n.child=l,io(n,e.child,null,s),l=n.child,l.memoizedState=Yd(s),l.childLanes=Vd(e,v,s),n.memoizedState=Pd,n=ol(null,l));else if(jr(n),wf(R)){if(v=R.nextSibling&&R.nextSibling.dataset,v)var fe=v.dgst;v=fe,l=Error(a(419)),l.stack="",l.digest=v,$a({value:l,source:null,stack:null}),n=Gd(e,n,s)}else if(sn||Zo(e,n,s,!1),v=(s&e.childLanes)!==0,sn||v){if(v=Pt,v!==null&&(l=gn(v,s),l!==0&&l!==$.retryLane))throw $.retryLane=l,eo(e,l),Dn(v,e,l),Hd;Tf(R)||ec(),n=Gd(e,n,s)}else Tf(R)?(n.flags|=192,n.child=e.child,n=null):(e=$.treeContext,Gt=as(R.nextSibling),xn=n,Et=!0,br=null,rs=!1,e!==null&&eg(n,e),n=Fd(n,l.children),n.flags|=4096);return n}return u?(Tr(),R=l.fallback,u=n.mode,$=e.child,fe=$.sibling,l=Us($,{mode:"hidden",children:l.children}),l.subtreeFlags=$.subtreeFlags&65011712,fe!==null?R=Us(fe,R):(R=to(R,u,s,null),R.flags|=2),R.return=n,l.return=n,l.sibling=R,n.child=l,ol(null,l),l=n.child,R=e.child.memoizedState,R===null?R=Yd(s):(u=R.cachePool,u!==null?($=tn._currentValue,u=u.parent!==$?{parent:$,pool:$}:u):u=ag(),R={baseLanes:R.baseLanes|s,cachePool:u}),l.memoizedState=R,l.childLanes=Vd(e,v,s),n.memoizedState=Pd,ol(e.child,l)):(jr(n),s=e.child,e=s.sibling,s=Us(s,{mode:"visible",children:l.children}),s.return=n,s.sibling=null,e!==null&&(v=n.deletions,v===null?(n.deletions=[e],n.flags|=16):v.push(e)),n.child=s,n.memoizedState=null,s)}function Fd(e,n){return n=Gi({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function Gi(e,n){return e=Pn(22,e,null,n),e.lanes=0,e}function Gd(e,n,s){return io(n,e.child,null,s),e=Fd(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function yx(e,n,s){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),ad(e.return,n,s)}function qd(e,n,s,l,u,f){var v=e.memoizedState;v===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:u,treeForkCount:f}:(v.isBackwards=n,v.rendering=null,v.renderingStartTime=0,v.last=l,v.tail=s,v.tailMode=u,v.treeForkCount=f)}function vx(e,n,s){var l=n.pendingProps,u=l.revealOrder,f=l.tail;l=l.children;var v=Wt.current,R=(v&2)!==0;if(R?(v=v&1|2,n.flags|=128):v&=1,I(Wt,v),yn(e,n,l,s),l=Et?qa:0,!R&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&yx(e,s,n);else if(e.tag===19)yx(e,s,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(u){case"forwards":for(s=n.child,u=null;s!==null;)e=s.alternate,e!==null&&Ai(e)===null&&(u=s),s=s.sibling;s=u,s===null?(u=n.child,n.child=null):(u=s.sibling,s.sibling=null),qd(n,!1,u,s,f,l);break;case"backwards":case"unstable_legacy-backwards":for(s=null,u=n.child,n.child=null;u!==null;){if(e=u.alternate,e!==null&&Ai(e)===null){n.child=u;break}e=u.sibling,u.sibling=s,s=u,u=e}qd(n,!0,s,null,f,l);break;case"together":qd(n,!1,null,null,void 0,l);break;default:n.memoizedState=null}return n.child}function qs(e,n,s){if(e!==null&&(n.dependencies=e.dependencies),Rr|=n.lanes,(s&n.childLanes)===0)if(e!==null){if(Zo(e,n,s,!1),(s&n.childLanes)===0)return null}else return null;if(e!==null&&n.child!==e.child)throw Error(a(153));if(n.child!==null){for(e=n.child,s=Us(e,e.pendingProps),n.child=s,s.return=n;e.sibling!==null;)e=e.sibling,s=s.sibling=Us(e,e.pendingProps),s.return=n;s.sibling=null}return n.child}function $d(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&Ti(e)))}function cN(e,n,s){switch(n.tag){case 3:se(n,n.stateNode.containerInfo),vr(n,tn,e.memoizedState.cache),no();break;case 27:case 5:He(n);break;case 4:se(n,n.stateNode.containerInfo);break;case 10:vr(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,bd(n),null;break;case 13:var l=n.memoizedState;if(l!==null)return l.dehydrated!==null?(jr(n),n.flags|=128,null):(s&n.child.childLanes)!==0?bx(e,n,s):(jr(n),e=qs(e,n,s),e!==null?e.sibling:null);jr(n);break;case 19:var u=(e.flags&128)!==0;if(l=(s&n.childLanes)!==0,l||(Zo(e,n,s,!1),l=(s&n.childLanes)!==0),u){if(l)return vx(e,n,s);n.flags|=128}if(u=n.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),I(Wt,Wt.current),l)break;return null;case 22:return n.lanes=0,fx(e,n,s,n.pendingProps);case 24:vr(n,tn,e.memoizedState.cache)}return qs(e,n,s)}function Sx(e,n,s){if(e!==null)if(e.memoizedProps!==n.pendingProps)sn=!0;else{if(!$d(e,s)&&(n.flags&128)===0)return sn=!1,cN(e,n,s);sn=(e.flags&131072)!==0}else sn=!1,Et&&(n.flags&1048576)!==0&&Wh(n,qa,n.index);switch(n.lanes=0,n.tag){case 16:e:{var l=n.pendingProps;if(e=ao(n.elementType),n.type=e,typeof e=="function")Ju(e)?(l=uo(e,l),n.tag=1,n=gx(null,n,e,l,s)):(n.tag=0,n=Ud(null,n,e,l,s));else{if(e!=null){var u=e.$$typeof;if(u===w){n.tag=11,n=cx(null,n,e,l,s);break e}else if(u===L){n.tag=14,n=ux(null,n,e,l,s);break e}}throw n=te(e)||e,Error(a(306,n,""))}}return n;case 0:return Ud(e,n,n.type,n.pendingProps,s);case 1:return l=n.type,u=uo(l,n.pendingProps),gx(e,n,l,u,s);case 3:e:{if(se(n,n.stateNode.containerInfo),e===null)throw Error(a(387));l=n.pendingProps;var f=n.memoizedState;u=f.element,md(e,n),el(n,l,null,s);var v=n.memoizedState;if(l=v.cache,vr(n,tn,l),l!==f.cache&&ld(n,[tn],s,!0),Wa(),l=v.element,f.isDehydrated)if(f={element:l,isDehydrated:!1,cache:v.cache},n.updateQueue.baseState=f,n.memoizedState=f,n.flags&256){n=xx(e,n,l,s);break e}else if(l!==u){u=ts(Error(a(424)),n),$a(u),n=xx(e,n,l,s);break e}else for(e=n.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,Gt=as(e.firstChild),xn=n,Et=!0,br=null,rs=!0,s=fg(n,null,l,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(no(),l===u){n=qs(e,n,s);break e}yn(e,n,l,s)}n=n.child}return n;case 26:return Fi(e,n),e===null?(s=Mb(n.type,null,n.pendingProps,null))?n.memoizedState=s:Et||(s=n.type,e=n.pendingProps,l=lc(K.current).createElement(s),l[an]=n,l[Rn]=e,vn(l,s,e),dn(l),n.stateNode=l):n.memoizedState=Mb(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return He(n),e===null&&Et&&(l=n.stateNode=Ob(n.type,n.pendingProps,K.current),xn=n,rs=!0,u=Gt,Ar(n.type)?(Cf=u,Gt=as(l.firstChild)):Gt=u),yn(e,n,n.pendingProps.children,s),Fi(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&Et&&((u=l=Gt)&&(l=HN(l,n.type,n.pendingProps,rs),l!==null?(n.stateNode=l,xn=n,Gt=as(l.firstChild),rs=!1,u=!0):u=!1),u||yr(n)),He(n),u=n.type,f=n.pendingProps,v=e!==null?e.memoizedProps:null,l=f.children,Ef(u,f)?l=null:v!==null&&Ef(u,v)&&(n.flags|=32),n.memoizedState!==null&&(u=vd(e,n,eN,null,null,s),vl._currentValue=u),Fi(e,n),yn(e,n,l,s),n.child;case 6:return e===null&&Et&&((e=s=Gt)&&(s=UN(s,n.pendingProps,rs),s!==null?(n.stateNode=s,xn=n,Gt=null,e=!0):e=!1),e||yr(n)),null;case 13:return bx(e,n,s);case 4:return se(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=io(n,null,l,s):yn(e,n,l,s),n.child;case 11:return cx(e,n,n.type,n.pendingProps,s);case 7:return yn(e,n,n.pendingProps,s),n.child;case 8:return yn(e,n,n.pendingProps.children,s),n.child;case 12:return yn(e,n,n.pendingProps.children,s),n.child;case 10:return l=n.pendingProps,vr(n,n.type,l.value),yn(e,n,l.children,s),n.child;case 9:return u=n.type._context,l=n.pendingProps.children,ro(n),u=bn(u),l=l(u),n.flags|=1,yn(e,n,l,s),n.child;case 14:return ux(e,n,n.type,n.pendingProps,s);case 15:return dx(e,n,n.type,n.pendingProps,s);case 19:return vx(e,n,s);case 31:return iN(e,n,s);case 22:return fx(e,n,s,n.pendingProps);case 24:return ro(n),l=bn(tn),e===null?(u=ud(),u===null&&(u=Pt,f=id(),u.pooledCache=f,f.refCount++,f!==null&&(u.pooledCacheLanes|=s),u=f),n.memoizedState={parent:l,cache:u},fd(n),vr(n,tn,u)):((e.lanes&s)!==0&&(md(e,n),el(n,null,null,s),Wa()),u=e.memoizedState,f=n.memoizedState,u.parent!==l?(u={parent:l,cache:l},n.memoizedState=u,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=u),vr(n,tn,l)):(l=f.cache,vr(n,tn,l),l!==u.cache&&ld(n,[tn],s,!0))),yn(e,n,n.pendingProps.children,s),n.child;case 29:throw n.pendingProps}throw Error(a(156,n.tag))}function $s(e){e.flags|=4}function Xd(e,n,s,l,u){if((n=(e.mode&32)!==0)&&(n=!1),n){if(e.flags|=16777216,(u&335544128)===u)if(e.stateNode.complete)e.flags|=8192;else if(Xx())e.flags|=8192;else throw lo=Oi,dd}else e.flags&=-16777217}function Ex(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Ib(n))if(Xx())e.flags|=8192;else throw lo=Oi,dd}function qi(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?nt():536870912,e.lanes|=n,ca|=n)}function al(e,n){if(!Et)switch(e.tailMode){case"hidden":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?e.tail=null:s.sibling=null;break;case"collapsed":s=e.tail;for(var l=null;s!==null;)s.alternate!==null&&(l=s),s=s.sibling;l===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function qt(e){var n=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(n)for(var u=e.child;u!==null;)s|=u.lanes|u.childLanes,l|=u.subtreeFlags&65011712,l|=u.flags&65011712,u.return=e,u=u.sibling;else for(u=e.child;u!==null;)s|=u.lanes|u.childLanes,l|=u.subtreeFlags,l|=u.flags,u.return=e,u=u.sibling;return e.subtreeFlags|=l,e.childLanes=s,n}function uN(e,n,s){var l=n.pendingProps;switch(nd(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qt(n),null;case 1:return qt(n),null;case 3:return s=n.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),Vs(tn),le(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(Qo(n)?$s(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,rd())),qt(n),null;case 26:var u=n.type,f=n.memoizedState;return e===null?($s(n),f!==null?(qt(n),Ex(n,f)):(qt(n),Xd(n,u,null,l,s))):f?f!==e.memoizedState?($s(n),qt(n),Ex(n,f)):(qt(n),n.flags&=-16777217):(e=e.memoizedProps,e!==l&&$s(n),qt(n),Xd(n,u,e,l,s)),null;case 27:if(ze(n),s=K.current,u=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&$s(n);else{if(!l){if(n.stateNode===null)throw Error(a(166));return qt(n),null}e=U.current,Qo(n)?tg(n):(e=Ob(u,l,s),n.stateNode=e,$s(n))}return qt(n),null;case 5:if(ze(n),u=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&$s(n);else{if(!l){if(n.stateNode===null)throw Error(a(166));return qt(n),null}if(f=U.current,Qo(n))tg(n);else{var v=lc(K.current);switch(f){case 1:f=v.createElementNS("http://www.w3.org/2000/svg",u);break;case 2:f=v.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;default:switch(u){case"svg":f=v.createElementNS("http://www.w3.org/2000/svg",u);break;case"math":f=v.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;case"script":f=v.createElement("div"),f.innerHTML="<script><\/script>",f=f.removeChild(f.firstChild);break;case"select":f=typeof l.is=="string"?v.createElement("select",{is:l.is}):v.createElement("select"),l.multiple?f.multiple=!0:l.size&&(f.size=l.size);break;default:f=typeof l.is=="string"?v.createElement(u,{is:l.is}):v.createElement(u)}}f[an]=n,f[Rn]=l;e:for(v=n.child;v!==null;){if(v.tag===5||v.tag===6)f.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===n)break e;for(;v.sibling===null;){if(v.return===null||v.return===n)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}n.stateNode=f;e:switch(vn(f,u,l),u){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&$s(n)}}return qt(n),Xd(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,s),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==l&&$s(n);else{if(typeof l!="string"&&n.stateNode===null)throw Error(a(166));if(e=K.current,Qo(n)){if(e=n.stateNode,s=n.memoizedProps,l=null,u=xn,u!==null)switch(u.tag){case 27:case 5:l=u.memoizedProps}e[an]=n,e=!!(e.nodeValue===s||l!==null&&l.suppressHydrationWarning===!0||bb(e.nodeValue,s)),e||yr(n,!0)}else e=lc(e).createTextNode(l),e[an]=n,n.stateNode=e}return qt(n),null;case 31:if(s=n.memoizedState,e===null||e.memoizedState!==null){if(l=Qo(n),s!==null){if(e===null){if(!l)throw Error(a(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(557));e[an]=n}else no(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;qt(n),e=!1}else s=rd(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),e=!0;if(!e)return n.flags&256?(Vn(n),n):(Vn(n),null);if((n.flags&128)!==0)throw Error(a(558))}return qt(n),null;case 13:if(l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=Qo(n),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(a(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(a(317));u[an]=n}else no(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;qt(n),u=!1}else u=rd(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return n.flags&256?(Vn(n),n):(Vn(n),null)}return Vn(n),(n.flags&128)!==0?(n.lanes=s,n):(s=l!==null,e=e!==null&&e.memoizedState!==null,s&&(l=n.child,u=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(u=l.alternate.memoizedState.cachePool.pool),f=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(f=l.memoizedState.cachePool.pool),f!==u&&(l.flags|=2048)),s!==e&&s&&(n.child.flags|=8192),qi(n,n.updateQueue),qt(n),null);case 4:return le(),e===null&&xf(n.stateNode.containerInfo),qt(n),null;case 10:return Vs(n.type),qt(n),null;case 19:if(B(Wt),l=n.memoizedState,l===null)return qt(n),null;if(u=(n.flags&128)!==0,f=l.rendering,f===null)if(u)al(l,!1);else{if(Qt!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(f=Ai(e),f!==null){for(n.flags|=128,al(l,!1),e=f.updateQueue,n.updateQueue=e,qi(n,e),n.subtreeFlags=0,e=s,s=n.child;s!==null;)Qh(s,e),s=s.sibling;return I(Wt,Wt.current&1|2),Et&&Ps(n,l.treeForkCount),n.child}e=e.sibling}l.tail!==null&&P()>Zi&&(n.flags|=128,u=!0,al(l,!1),n.lanes=4194304)}else{if(!u)if(e=Ai(f),e!==null){if(n.flags|=128,u=!0,e=e.updateQueue,n.updateQueue=e,qi(n,e),al(l,!0),l.tail===null&&l.tailMode==="hidden"&&!f.alternate&&!Et)return qt(n),null}else 2*P()-l.renderingStartTime>Zi&&s!==536870912&&(n.flags|=128,u=!0,al(l,!1),n.lanes=4194304);l.isBackwards?(f.sibling=n.child,n.child=f):(e=l.last,e!==null?e.sibling=f:n.child=f,l.last=f)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=P(),e.sibling=null,s=Wt.current,I(Wt,u?s&1|2:s&1),Et&&Ps(n,l.treeForkCount),e):(qt(n),null);case 22:case 23:return Vn(n),xd(),l=n.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(n.flags|=8192):l&&(n.flags|=8192),l?(s&536870912)!==0&&(n.flags&128)===0&&(qt(n),n.subtreeFlags&6&&(n.flags|=8192)):qt(n),s=n.updateQueue,s!==null&&qi(n,s.retryQueue),s=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(s=e.memoizedState.cachePool.pool),l=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(l=n.memoizedState.cachePool.pool),l!==s&&(n.flags|=2048),e!==null&&B(oo),null;case 24:return s=null,e!==null&&(s=e.memoizedState.cache),n.memoizedState.cache!==s&&(n.flags|=2048),Vs(tn),qt(n),null;case 25:return null;case 30:return null}throw Error(a(156,n.tag))}function dN(e,n){switch(nd(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Vs(tn),le(),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(Vn(n),n.alternate===null)throw Error(a(340));no()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(Vn(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(a(340));no()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return B(Wt),null;case 4:return le(),null;case 10:return Vs(n.type),null;case 22:case 23:return Vn(n),xd(),e!==null&&B(oo),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Vs(tn),null;case 25:return null;default:return null}}function Nx(e,n){switch(nd(n),n.tag){case 3:Vs(tn),le();break;case 26:case 27:case 5:ze(n);break;case 4:le();break;case 31:n.memoizedState!==null&&Vn(n);break;case 13:Vn(n);break;case 19:B(Wt);break;case 10:Vs(n.type);break;case 22:case 23:Vn(n),xd(),e!==null&&B(oo);break;case 24:Vs(tn)}}function ll(e,n){try{var s=n.updateQueue,l=s!==null?s.lastEffect:null;if(l!==null){var u=l.next;s=u;do{if((s.tag&e)===e){l=void 0;var f=s.create,v=s.inst;l=f(),v.destroy=l}s=s.next}while(s!==u)}}catch(R){zt(n,n.return,R)}}function wr(e,n,s){try{var l=n.updateQueue,u=l!==null?l.lastEffect:null;if(u!==null){var f=u.next;l=f;do{if((l.tag&e)===e){var v=l.inst,R=v.destroy;if(R!==void 0){v.destroy=void 0,u=n;var $=s,fe=R;try{fe()}catch(Se){zt(u,$,Se)}}}l=l.next}while(l!==f)}}catch(Se){zt(n,n.return,Se)}}function jx(e){var n=e.updateQueue;if(n!==null){var s=e.stateNode;try{pg(n,s)}catch(l){zt(e,e.return,l)}}}function Tx(e,n,s){s.props=uo(e.type,e.memoizedProps),s.state=e.memoizedState;try{s.componentWillUnmount()}catch(l){zt(e,n,l)}}function il(e,n){try{var s=e.ref;if(s!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof s=="function"?e.refCleanup=s(l):s.current=l}}catch(u){zt(e,n,u)}}function vs(e,n){var s=e.ref,l=e.refCleanup;if(s!==null)if(typeof l=="function")try{l()}catch(u){zt(e,n,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(u){zt(e,n,u)}else s.current=null}function wx(e){var n=e.type,s=e.memoizedProps,l=e.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":s.autoFocus&&l.focus();break e;case"img":s.src?l.src=s.src:s.srcSet&&(l.srcset=s.srcSet)}}catch(u){zt(e,e.return,u)}}function Kd(e,n,s){try{var l=e.stateNode;AN(l,e.type,s,n),l[Rn]=n}catch(u){zt(e,e.return,u)}}function Cx(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ar(e.type)||e.tag===4}function Qd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Cx(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Ar(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zd(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s).insertBefore(e,n):(n=s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,n.appendChild(e),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=Bs));else if(l!==4&&(l===27&&Ar(e.type)&&(s=e.stateNode,n=null),e=e.child,e!==null))for(Zd(e,n,s),e=e.sibling;e!==null;)Zd(e,n,s),e=e.sibling}function $i(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?s.insertBefore(e,n):s.appendChild(e);else if(l!==4&&(l===27&&Ar(e.type)&&(s=e.stateNode),e=e.child,e!==null))for($i(e,n,s),e=e.sibling;e!==null;)$i(e,n,s),e=e.sibling}function Rx(e){var n=e.stateNode,s=e.memoizedProps;try{for(var l=e.type,u=n.attributes;u.length;)n.removeAttributeNode(u[0]);vn(n,l,s),n[an]=e,n[Rn]=s}catch(f){zt(e,e.return,f)}}var Xs=!1,rn=!1,Jd=!1,Ox=typeof WeakSet=="function"?WeakSet:Set,fn=null;function fN(e,n){if(e=e.containerInfo,vf=pc,e=Ph(e),Gu(e)){if("selectionStart"in e)var s={start:e.selectionStart,end:e.selectionEnd};else e:{s=(s=e.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var u=l.anchorOffset,f=l.focusNode;l=l.focusOffset;try{s.nodeType,f.nodeType}catch{s=null;break e}var v=0,R=-1,$=-1,fe=0,Se=0,Te=e,me=null;t:for(;;){for(var he;Te!==s||u!==0&&Te.nodeType!==3||(R=v+u),Te!==f||l!==0&&Te.nodeType!==3||($=v+l),Te.nodeType===3&&(v+=Te.nodeValue.length),(he=Te.firstChild)!==null;)me=Te,Te=he;for(;;){if(Te===e)break t;if(me===s&&++fe===u&&(R=v),me===f&&++Se===l&&($=v),(he=Te.nextSibling)!==null)break;Te=me,me=Te.parentNode}Te=he}s=R===-1||$===-1?null:{start:R,end:$}}else s=null}s=s||{start:0,end:0}}else s=null;for(Sf={focusedElem:e,selectionRange:s},pc=!1,fn=n;fn!==null;)if(n=fn,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,fn=e;else for(;fn!==null;){switch(n=fn,f=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(s=0;s<e.length;s++)u=e[s],u.ref.impl=u.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&f!==null){e=void 0,s=n,u=f.memoizedProps,f=f.memoizedState,l=s.stateNode;try{var Xe=uo(s.type,u);e=l.getSnapshotBeforeUpdate(Xe,f),l.__reactInternalSnapshotBeforeUpdate=e}catch(et){zt(s,s.return,et)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,s=e.nodeType,s===9)jf(e);else if(s===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":jf(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(a(163))}if(e=n.sibling,e!==null){e.return=n.return,fn=e;break}fn=n.return}}function kx(e,n,s){var l=s.flags;switch(s.tag){case 0:case 11:case 15:Qs(e,s),l&4&&ll(5,s);break;case 1:if(Qs(e,s),l&4)if(e=s.stateNode,n===null)try{e.componentDidMount()}catch(v){zt(s,s.return,v)}else{var u=uo(s.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(u,n,e.__reactInternalSnapshotBeforeUpdate)}catch(v){zt(s,s.return,v)}}l&64&&jx(s),l&512&&il(s,s.return);break;case 3:if(Qs(e,s),l&64&&(e=s.updateQueue,e!==null)){if(n=null,s.child!==null)switch(s.child.tag){case 27:case 5:n=s.child.stateNode;break;case 1:n=s.child.stateNode}try{pg(e,n)}catch(v){zt(s,s.return,v)}}break;case 27:n===null&&l&4&&Rx(s);case 26:case 5:Qs(e,s),n===null&&l&4&&wx(s),l&512&&il(s,s.return);break;case 12:Qs(e,s);break;case 31:Qs(e,s),l&4&&Ax(e,s);break;case 13:Qs(e,s),l&4&&Dx(e,s),l&64&&(e=s.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(s=SN.bind(null,s),PN(e,s))));break;case 22:if(l=s.memoizedState!==null||Xs,!l){n=n!==null&&n.memoizedState!==null||rn,u=Xs;var f=rn;Xs=l,(rn=n)&&!f?Zs(e,s,(s.subtreeFlags&8772)!==0):Qs(e,s),Xs=u,rn=f}break;case 30:break;default:Qs(e,s)}}function _x(e){var n=e.alternate;n!==null&&(e.alternate=null,_x(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&Ru(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Xt=null,kn=!1;function Ks(e,n,s){for(s=s.child;s!==null;)Mx(e,n,s),s=s.sibling}function Mx(e,n,s){if(mt&&typeof mt.onCommitFiberUnmount=="function")try{mt.onCommitFiberUnmount(At,s)}catch{}switch(s.tag){case 26:rn||vs(s,n),Ks(e,n,s),s.memoizedState?s.memoizedState.count--:s.stateNode&&(s=s.stateNode,s.parentNode.removeChild(s));break;case 27:rn||vs(s,n);var l=Xt,u=kn;Ar(s.type)&&(Xt=s.stateNode,kn=!1),Ks(e,n,s),xl(s.stateNode),Xt=l,kn=u;break;case 5:rn||vs(s,n);case 6:if(l=Xt,u=kn,Xt=null,Ks(e,n,s),Xt=l,kn=u,Xt!==null)if(kn)try{(Xt.nodeType===9?Xt.body:Xt.nodeName==="HTML"?Xt.ownerDocument.body:Xt).removeChild(s.stateNode)}catch(f){zt(s,n,f)}else try{Xt.removeChild(s.stateNode)}catch(f){zt(s,n,f)}break;case 18:Xt!==null&&(kn?(e=Xt,jb(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,s.stateNode),xa(e)):jb(Xt,s.stateNode));break;case 4:l=Xt,u=kn,Xt=s.stateNode.containerInfo,kn=!0,Ks(e,n,s),Xt=l,kn=u;break;case 0:case 11:case 14:case 15:wr(2,s,n),rn||wr(4,s,n),Ks(e,n,s);break;case 1:rn||(vs(s,n),l=s.stateNode,typeof l.componentWillUnmount=="function"&&Tx(s,n,l)),Ks(e,n,s);break;case 21:Ks(e,n,s);break;case 22:rn=(l=rn)||s.memoizedState!==null,Ks(e,n,s),rn=l;break;default:Ks(e,n,s)}}function Ax(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{xa(e)}catch(s){zt(n,n.return,s)}}}function Dx(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{xa(e)}catch(s){zt(n,n.return,s)}}function mN(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new Ox),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new Ox),n;default:throw Error(a(435,e.tag))}}function Xi(e,n){var s=mN(e);n.forEach(function(l){if(!s.has(l)){s.add(l);var u=EN.bind(null,e,l);l.then(u,u)}})}function _n(e,n){var s=n.deletions;if(s!==null)for(var l=0;l<s.length;l++){var u=s[l],f=e,v=n,R=v;e:for(;R!==null;){switch(R.tag){case 27:if(Ar(R.type)){Xt=R.stateNode,kn=!1;break e}break;case 5:Xt=R.stateNode,kn=!1;break e;case 3:case 4:Xt=R.stateNode.containerInfo,kn=!0;break e}R=R.return}if(Xt===null)throw Error(a(160));Mx(f,v,u),Xt=null,kn=!1,f=u.alternate,f!==null&&(f.return=null),u.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)zx(n,e),n=n.sibling}var ms=null;function zx(e,n){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:_n(n,e),Mn(e),l&4&&(wr(3,e,e.return),ll(3,e),wr(5,e,e.return));break;case 1:_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),l&64&&Xs&&(e=e.updateQueue,e!==null&&(l=e.callbacks,l!==null&&(s=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=s===null?l:s.concat(l))));break;case 26:var u=ms;if(_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),l&4){var f=s!==null?s.memoizedState:null;if(l=e.memoizedState,s===null)if(l===null)if(e.stateNode===null){e:{l=e.type,s=e.memoizedProps,u=u.ownerDocument||u;t:switch(l){case"title":f=u.getElementsByTagName("title")[0],(!f||f[za]||f[an]||f.namespaceURI==="http://www.w3.org/2000/svg"||f.hasAttribute("itemprop"))&&(f=u.createElement(l),u.head.insertBefore(f,u.querySelector("head > title"))),vn(f,l,s),f[an]=e,dn(f),l=f;break e;case"link":var v=zb("link","href",u).get(l+(s.href||""));if(v){for(var R=0;R<v.length;R++)if(f=v[R],f.getAttribute("href")===(s.href==null||s.href===""?null:s.href)&&f.getAttribute("rel")===(s.rel==null?null:s.rel)&&f.getAttribute("title")===(s.title==null?null:s.title)&&f.getAttribute("crossorigin")===(s.crossOrigin==null?null:s.crossOrigin)){v.splice(R,1);break t}}f=u.createElement(l),vn(f,l,s),u.head.appendChild(f);break;case"meta":if(v=zb("meta","content",u).get(l+(s.content||""))){for(R=0;R<v.length;R++)if(f=v[R],f.getAttribute("content")===(s.content==null?null:""+s.content)&&f.getAttribute("name")===(s.name==null?null:s.name)&&f.getAttribute("property")===(s.property==null?null:s.property)&&f.getAttribute("http-equiv")===(s.httpEquiv==null?null:s.httpEquiv)&&f.getAttribute("charset")===(s.charSet==null?null:s.charSet)){v.splice(R,1);break t}}f=u.createElement(l),vn(f,l,s),u.head.appendChild(f);break;default:throw Error(a(468,l))}f[an]=e,dn(f),l=f}e.stateNode=l}else Lb(u,e.type,e.stateNode);else e.stateNode=Db(u,l,e.memoizedProps);else f!==l?(f===null?s.stateNode!==null&&(s=s.stateNode,s.parentNode.removeChild(s)):f.count--,l===null?Lb(u,e.type,e.stateNode):Db(u,l,e.memoizedProps)):l===null&&e.stateNode!==null&&Kd(e,e.memoizedProps,s.memoizedProps)}break;case 27:_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),s!==null&&l&4&&Kd(e,e.memoizedProps,s.memoizedProps);break;case 5:if(_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),e.flags&32){u=e.stateNode;try{Uo(u,"")}catch(Xe){zt(e,e.return,Xe)}}l&4&&e.stateNode!=null&&(u=e.memoizedProps,Kd(e,u,s!==null?s.memoizedProps:u)),l&1024&&(Jd=!0);break;case 6:if(_n(n,e),Mn(e),l&4){if(e.stateNode===null)throw Error(a(162));l=e.memoizedProps,s=e.stateNode;try{s.nodeValue=l}catch(Xe){zt(e,e.return,Xe)}}break;case 3:if(uc=null,u=ms,ms=ic(n.containerInfo),_n(n,e),ms=u,Mn(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{xa(n.containerInfo)}catch(Xe){zt(e,e.return,Xe)}Jd&&(Jd=!1,Lx(e));break;case 4:l=ms,ms=ic(e.stateNode.containerInfo),_n(n,e),Mn(e),ms=l;break;case 12:_n(n,e),Mn(e);break;case 31:_n(n,e),Mn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Xi(e,l)));break;case 13:_n(n,e),Mn(e),e.child.flags&8192&&e.memoizedState!==null!=(s!==null&&s.memoizedState!==null)&&(Qi=P()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Xi(e,l)));break;case 22:u=e.memoizedState!==null;var $=s!==null&&s.memoizedState!==null,fe=Xs,Se=rn;if(Xs=fe||u,rn=Se||$,_n(n,e),rn=Se,Xs=fe,Mn(e),l&8192)e:for(n=e.stateNode,n._visibility=u?n._visibility&-2:n._visibility|1,u&&(s===null||$||Xs||rn||fo(e)),s=null,n=e;;){if(n.tag===5||n.tag===26){if(s===null){$=s=n;try{if(f=$.stateNode,u)v=f.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{R=$.stateNode;var Te=$.memoizedProps.style,me=Te!=null&&Te.hasOwnProperty("display")?Te.display:null;R.style.display=me==null||typeof me=="boolean"?"":(""+me).trim()}}catch(Xe){zt($,$.return,Xe)}}}else if(n.tag===6){if(s===null){$=n;try{$.stateNode.nodeValue=u?"":$.memoizedProps}catch(Xe){zt($,$.return,Xe)}}}else if(n.tag===18){if(s===null){$=n;try{var he=$.stateNode;u?Tb(he,!0):Tb($.stateNode,!1)}catch(Xe){zt($,$.return,Xe)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;s===n&&(s=null),n=n.return}s===n&&(s=null),n.sibling.return=n.return,n=n.sibling}l&4&&(l=e.updateQueue,l!==null&&(s=l.retryQueue,s!==null&&(l.retryQueue=null,Xi(e,s))));break;case 19:_n(n,e),Mn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Xi(e,l)));break;case 30:break;case 21:break;default:_n(n,e),Mn(e)}}function Mn(e){var n=e.flags;if(n&2){try{for(var s,l=e.return;l!==null;){if(Cx(l)){s=l;break}l=l.return}if(s==null)throw Error(a(160));switch(s.tag){case 27:var u=s.stateNode,f=Qd(e);$i(e,f,u);break;case 5:var v=s.stateNode;s.flags&32&&(Uo(v,""),s.flags&=-33);var R=Qd(e);$i(e,R,v);break;case 3:case 4:var $=s.stateNode.containerInfo,fe=Qd(e);Zd(e,fe,$);break;default:throw Error(a(161))}}catch(Se){zt(e,e.return,Se)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function Lx(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;Lx(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),e=e.sibling}}function Qs(e,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)kx(e,n.alternate,n),n=n.sibling}function fo(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:wr(4,n,n.return),fo(n);break;case 1:vs(n,n.return);var s=n.stateNode;typeof s.componentWillUnmount=="function"&&Tx(n,n.return,s),fo(n);break;case 27:xl(n.stateNode);case 26:case 5:vs(n,n.return),fo(n);break;case 22:n.memoizedState===null&&fo(n);break;case 30:fo(n);break;default:fo(n)}e=e.sibling}}function Zs(e,n,s){for(s=s&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var l=n.alternate,u=e,f=n,v=f.flags;switch(f.tag){case 0:case 11:case 15:Zs(u,f,s),ll(4,f);break;case 1:if(Zs(u,f,s),l=f,u=l.stateNode,typeof u.componentDidMount=="function")try{u.componentDidMount()}catch(fe){zt(l,l.return,fe)}if(l=f,u=l.updateQueue,u!==null){var R=l.stateNode;try{var $=u.shared.hiddenCallbacks;if($!==null)for(u.shared.hiddenCallbacks=null,u=0;u<$.length;u++)mg($[u],R)}catch(fe){zt(l,l.return,fe)}}s&&v&64&&jx(f),il(f,f.return);break;case 27:Rx(f);case 26:case 5:Zs(u,f,s),s&&l===null&&v&4&&wx(f),il(f,f.return);break;case 12:Zs(u,f,s);break;case 31:Zs(u,f,s),s&&v&4&&Ax(u,f);break;case 13:Zs(u,f,s),s&&v&4&&Dx(u,f);break;case 22:f.memoizedState===null&&Zs(u,f,s),il(f,f.return);break;case 30:break;default:Zs(u,f,s)}n=n.sibling}}function Wd(e,n){var s=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(s=e.memoizedState.cachePool.pool),e=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(e=n.memoizedState.cachePool.pool),e!==s&&(e!=null&&e.refCount++,s!=null&&Xa(s))}function ef(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&Xa(e))}function ps(e,n,s,l){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Ix(e,n,s,l),n=n.sibling}function Ix(e,n,s,l){var u=n.flags;switch(n.tag){case 0:case 11:case 15:ps(e,n,s,l),u&2048&&ll(9,n);break;case 1:ps(e,n,s,l);break;case 3:ps(e,n,s,l),u&2048&&(e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&Xa(e)));break;case 12:if(u&2048){ps(e,n,s,l),e=n.stateNode;try{var f=n.memoizedProps,v=f.id,R=f.onPostCommit;typeof R=="function"&&R(v,n.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch($){zt(n,n.return,$)}}else ps(e,n,s,l);break;case 31:ps(e,n,s,l);break;case 13:ps(e,n,s,l);break;case 23:break;case 22:f=n.stateNode,v=n.alternate,n.memoizedState!==null?f._visibility&2?ps(e,n,s,l):cl(e,n):f._visibility&2?ps(e,n,s,l):(f._visibility|=2,aa(e,n,s,l,(n.subtreeFlags&10256)!==0||!1)),u&2048&&Wd(v,n);break;case 24:ps(e,n,s,l),u&2048&&ef(n.alternate,n);break;default:ps(e,n,s,l)}}function aa(e,n,s,l,u){for(u=u&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var f=e,v=n,R=s,$=l,fe=v.flags;switch(v.tag){case 0:case 11:case 15:aa(f,v,R,$,u),ll(8,v);break;case 23:break;case 22:var Se=v.stateNode;v.memoizedState!==null?Se._visibility&2?aa(f,v,R,$,u):cl(f,v):(Se._visibility|=2,aa(f,v,R,$,u)),u&&fe&2048&&Wd(v.alternate,v);break;case 24:aa(f,v,R,$,u),u&&fe&2048&&ef(v.alternate,v);break;default:aa(f,v,R,$,u)}n=n.sibling}}function cl(e,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var s=e,l=n,u=l.flags;switch(l.tag){case 22:cl(s,l),u&2048&&Wd(l.alternate,l);break;case 24:cl(s,l),u&2048&&ef(l.alternate,l);break;default:cl(s,l)}n=n.sibling}}var ul=8192;function la(e,n,s){if(e.subtreeFlags&ul)for(e=e.child;e!==null;)Bx(e,n,s),e=e.sibling}function Bx(e,n,s){switch(e.tag){case 26:la(e,n,s),e.flags&ul&&e.memoizedState!==null&&WN(s,ms,e.memoizedState,e.memoizedProps);break;case 5:la(e,n,s);break;case 3:case 4:var l=ms;ms=ic(e.stateNode.containerInfo),la(e,n,s),ms=l;break;case 22:e.memoizedState===null&&(l=e.alternate,l!==null&&l.memoizedState!==null?(l=ul,ul=16777216,la(e,n,s),ul=l):la(e,n,s));break;default:la(e,n,s)}}function Hx(e){var n=e.alternate;if(n!==null&&(e=n.child,e!==null)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(e!==null)}}function dl(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];fn=l,Px(l,e)}Hx(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ux(e),e=e.sibling}function Ux(e){switch(e.tag){case 0:case 11:case 15:dl(e),e.flags&2048&&wr(9,e,e.return);break;case 3:dl(e);break;case 12:dl(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,Ki(e)):dl(e);break;default:dl(e)}}function Ki(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];fn=l,Px(l,e)}Hx(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:wr(8,n,n.return),Ki(n);break;case 22:s=n.stateNode,s._visibility&2&&(s._visibility&=-3,Ki(n));break;default:Ki(n)}e=e.sibling}}function Px(e,n){for(;fn!==null;){var s=fn;switch(s.tag){case 0:case 11:case 15:wr(8,s,n);break;case 23:case 22:if(s.memoizedState!==null&&s.memoizedState.cachePool!==null){var l=s.memoizedState.cachePool.pool;l!=null&&l.refCount++}break;case 24:Xa(s.memoizedState.cache)}if(l=s.child,l!==null)l.return=s,fn=l;else e:for(s=e;fn!==null;){l=fn;var u=l.sibling,f=l.return;if(_x(l),l===s){fn=null;break e}if(u!==null){u.return=f,fn=u;break e}fn=f}}}var pN={getCacheForType:function(e){var n=bn(tn),s=n.data.get(e);return s===void 0&&(s=e(),n.data.set(e,s)),s},cacheSignal:function(){return bn(tn).controller.signal}},hN=typeof WeakMap=="function"?WeakMap:Map,kt=0,Pt=null,ht=null,bt=0,Dt=0,Fn=null,Cr=!1,ia=!1,tf=!1,Js=0,Qt=0,Rr=0,mo=0,nf=0,Gn=0,ca=0,fl=null,An=null,sf=!1,Qi=0,Yx=0,Zi=1/0,Ji=null,Or=null,ln=0,kr=null,ua=null,Ws=0,rf=0,of=null,Vx=null,ml=0,af=null;function qn(){return(kt&2)!==0&&bt!==0?bt&-bt:z.T!==null?mf():Ls()}function Fx(){if(Gn===0)if((bt&536870912)===0||Et){var e=Ot;Ot<<=1,(Ot&3932160)===0&&(Ot=262144),Gn=e}else Gn=536870912;return e=Yn.current,e!==null&&(e.flags|=32),Gn}function Dn(e,n,s){(e===Pt&&(Dt===2||Dt===9)||e.cancelPendingCommit!==null)&&(da(e,0),_r(e,bt,Gn,!1)),rt(e,s),((kt&2)===0||e!==Pt)&&(e===Pt&&((kt&2)===0&&(mo|=s),Qt===4&&_r(e,bt,Gn,!1)),Ss(e))}function Gx(e,n,s){if((kt&6)!==0)throw Error(a(327));var l=!s&&(n&127)===0&&(n&e.expiredLanes)===0||Le(e,n),u=l?bN(e,n):cf(e,n,!0),f=l;do{if(u===0){ia&&!l&&_r(e,n,0,!1);break}else{if(s=e.current.alternate,f&&!gN(s)){u=cf(e,n,!1),f=!1;continue}if(u===2){if(f=n,e.errorRecoveryDisabledLanes&f)var v=0;else v=e.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){n=v;e:{var R=e;u=fl;var $=R.current.memoizedState.isDehydrated;if($&&(da(R,v).flags|=256),v=cf(R,v,!1),v!==2){if(tf&&!$){R.errorRecoveryDisabledLanes|=f,mo|=f,u=4;break e}f=An,An=u,f!==null&&(An===null?An=f:An.push.apply(An,f))}u=v}if(f=!1,u!==2)continue}}if(u===1){da(e,0),_r(e,n,0,!0);break}e:{switch(l=e,f=u,f){case 0:case 1:throw Error(a(345));case 4:if((n&4194048)!==n)break;case 6:_r(l,n,Gn,!Cr);break e;case 2:An=null;break;case 3:case 5:break;default:throw Error(a(329))}if((n&62914560)===n&&(u=Qi+300-P(),10<u)){if(_r(l,n,Gn,!Cr),ye(l,0,!0)!==0)break e;Ws=n,l.timeoutHandle=Eb(qx.bind(null,l,s,An,Ji,sf,n,Gn,mo,ca,Cr,f,"Throttled",-0,0),u);break e}qx(l,s,An,Ji,sf,n,Gn,mo,ca,Cr,f,null,-0,0)}}break}while(!0);Ss(e)}function qx(e,n,s,l,u,f,v,R,$,fe,Se,Te,me,he){if(e.timeoutHandle=-1,Te=n.subtreeFlags,Te&8192||(Te&16785408)===16785408){Te={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Bs},Bx(n,f,Te);var Xe=(f&62914560)===f?Qi-P():(f&4194048)===f?Yx-P():0;if(Xe=ej(Te,Xe),Xe!==null){Ws=f,e.cancelPendingCommit=Xe(eb.bind(null,e,n,f,s,l,u,v,R,$,Se,Te,null,me,he)),_r(e,f,v,!fe);return}}eb(e,n,f,s,l,u,v,R,$)}function gN(e){for(var n=e;;){var s=n.tag;if((s===0||s===11||s===15)&&n.flags&16384&&(s=n.updateQueue,s!==null&&(s=s.stores,s!==null)))for(var l=0;l<s.length;l++){var u=s[l],f=u.getSnapshot;u=u.value;try{if(!Un(f(),u))return!1}catch{return!1}}if(s=n.child,n.subtreeFlags&16384&&s!==null)s.return=n,n=s;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function _r(e,n,s,l){n&=~nf,n&=~mo,e.suspendedLanes|=n,e.pingedLanes&=~n,l&&(e.warmLanes|=n),l=e.expirationTimes;for(var u=n;0<u;){var f=31-Rt(u),v=1<<f;l[f]=-1,u&=~v}s!==0&&Zn(e,s,n)}function Wi(){return(kt&6)===0?(pl(0),!1):!0}function lf(){if(ht!==null){if(Dt===0)var e=ht.return;else e=ht,Ys=so=null,Nd(e),ta=null,Qa=0,e=ht;for(;e!==null;)Nx(e.alternate,e),e=e.return;ht=null}}function da(e,n){var s=e.timeoutHandle;s!==-1&&(e.timeoutHandle=-1,LN(s)),s=e.cancelPendingCommit,s!==null&&(e.cancelPendingCommit=null,s()),Ws=0,lf(),Pt=e,ht=s=Us(e.current,null),bt=n,Dt=0,Fn=null,Cr=!1,ia=Le(e,n),tf=!1,ca=Gn=nf=mo=Rr=Qt=0,An=fl=null,sf=!1,(n&8)!==0&&(n|=n&32);var l=e.entangledLanes;if(l!==0)for(e=e.entanglements,l&=n;0<l;){var u=31-Rt(l),f=1<<u;n|=e[u],l&=~f}return Js=n,vi(),s}function $x(e,n){ct=null,z.H=rl,n===ea||n===Ri?(n=cg(),Dt=3):n===dd?(n=cg(),Dt=4):Dt=n===Hd?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,Fn=n,ht===null&&(Qt=1,Yi(e,ts(n,e.current)))}function Xx(){var e=Yn.current;return e===null?!0:(bt&4194048)===bt?os===null:(bt&62914560)===bt||(bt&536870912)!==0?e===os:!1}function Kx(){var e=z.H;return z.H=rl,e===null?rl:e}function Qx(){var e=z.A;return z.A=pN,e}function ec(){Qt=4,Cr||(bt&4194048)!==bt&&Yn.current!==null||(ia=!0),(Rr&134217727)===0&&(mo&134217727)===0||Pt===null||_r(Pt,bt,Gn,!1)}function cf(e,n,s){var l=kt;kt|=2;var u=Kx(),f=Qx();(Pt!==e||bt!==n)&&(Ji=null,da(e,n)),n=!1;var v=Qt;e:do try{if(Dt!==0&&ht!==null){var R=ht,$=Fn;switch(Dt){case 8:lf(),v=6;break e;case 3:case 2:case 9:case 6:Yn.current===null&&(n=!0);var fe=Dt;if(Dt=0,Fn=null,fa(e,R,$,fe),s&&ia){v=0;break e}break;default:fe=Dt,Dt=0,Fn=null,fa(e,R,$,fe)}}xN(),v=Qt;break}catch(Se){$x(e,Se)}while(!0);return n&&e.shellSuspendCounter++,Ys=so=null,kt=l,z.H=u,z.A=f,ht===null&&(Pt=null,bt=0,vi()),v}function xN(){for(;ht!==null;)Zx(ht)}function bN(e,n){var s=kt;kt|=2;var l=Kx(),u=Qx();Pt!==e||bt!==n?(Ji=null,Zi=P()+500,da(e,n)):ia=Le(e,n);e:do try{if(Dt!==0&&ht!==null){n=ht;var f=Fn;t:switch(Dt){case 1:Dt=0,Fn=null,fa(e,n,f,1);break;case 2:case 9:if(lg(f)){Dt=0,Fn=null,Jx(n);break}n=function(){Dt!==2&&Dt!==9||Pt!==e||(Dt=7),Ss(e)},f.then(n,n);break e;case 3:Dt=7;break e;case 4:Dt=5;break e;case 7:lg(f)?(Dt=0,Fn=null,Jx(n)):(Dt=0,Fn=null,fa(e,n,f,7));break;case 5:var v=null;switch(ht.tag){case 26:v=ht.memoizedState;case 5:case 27:var R=ht;if(v?Ib(v):R.stateNode.complete){Dt=0,Fn=null;var $=R.sibling;if($!==null)ht=$;else{var fe=R.return;fe!==null?(ht=fe,tc(fe)):ht=null}break t}}Dt=0,Fn=null,fa(e,n,f,5);break;case 6:Dt=0,Fn=null,fa(e,n,f,6);break;case 8:lf(),Qt=6;break e;default:throw Error(a(462))}}yN();break}catch(Se){$x(e,Se)}while(!0);return Ys=so=null,z.H=l,z.A=u,kt=s,ht!==null?0:(Pt=null,bt=0,vi(),Qt)}function yN(){for(;ht!==null&&!Me();)Zx(ht)}function Zx(e){var n=Sx(e.alternate,e,Js);e.memoizedProps=e.pendingProps,n===null?tc(e):ht=n}function Jx(e){var n=e,s=n.alternate;switch(n.tag){case 15:case 0:n=hx(s,n,n.pendingProps,n.type,void 0,bt);break;case 11:n=hx(s,n,n.pendingProps,n.type.render,n.ref,bt);break;case 5:Nd(n);default:Nx(s,n),n=ht=Qh(n,Js),n=Sx(s,n,Js)}e.memoizedProps=e.pendingProps,n===null?tc(e):ht=n}function fa(e,n,s,l){Ys=so=null,Nd(n),ta=null,Qa=0;var u=n.return;try{if(lN(e,u,n,s,bt)){Qt=1,Yi(e,ts(s,e.current)),ht=null;return}}catch(f){if(u!==null)throw ht=u,f;Qt=1,Yi(e,ts(s,e.current)),ht=null;return}n.flags&32768?(Et||l===1?e=!0:ia||(bt&536870912)!==0?e=!1:(Cr=e=!0,(l===2||l===9||l===3||l===6)&&(l=Yn.current,l!==null&&l.tag===13&&(l.flags|=16384))),Wx(n,e)):tc(n)}function tc(e){var n=e;do{if((n.flags&32768)!==0){Wx(n,Cr);return}e=n.return;var s=uN(n.alternate,n,Js);if(s!==null){ht=s;return}if(n=n.sibling,n!==null){ht=n;return}ht=n=e}while(n!==null);Qt===0&&(Qt=5)}function Wx(e,n){do{var s=dN(e.alternate,e);if(s!==null){s.flags&=32767,ht=s;return}if(s=e.return,s!==null&&(s.flags|=32768,s.subtreeFlags=0,s.deletions=null),!n&&(e=e.sibling,e!==null)){ht=e;return}ht=e=s}while(e!==null);Qt=6,ht=null}function eb(e,n,s,l,u,f,v,R,$){e.cancelPendingCommit=null;do nc();while(ln!==0);if((kt&6)!==0)throw Error(a(327));if(n!==null){if(n===e.current)throw Error(a(177));if(f=n.lanes|n.childLanes,f|=Qu,$t(e,s,f,v,R,$),e===Pt&&(ht=Pt=null,bt=0),ua=n,kr=e,Ws=s,rf=f,of=u,Vx=l,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,NN(ae,function(){return ob(),null})):(e.callbackNode=null,e.callbackPriority=0),l=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||l){l=z.T,z.T=null,u=D.p,D.p=2,v=kt,kt|=4;try{fN(e,n,s)}finally{kt=v,D.p=u,z.T=l}}ln=1,tb(),nb(),sb()}}function tb(){if(ln===1){ln=0;var e=kr,n=ua,s=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||s){s=z.T,z.T=null;var l=D.p;D.p=2;var u=kt;kt|=4;try{zx(n,e);var f=Sf,v=Ph(e.containerInfo),R=f.focusedElem,$=f.selectionRange;if(v!==R&&R&&R.ownerDocument&&Uh(R.ownerDocument.documentElement,R)){if($!==null&&Gu(R)){var fe=$.start,Se=$.end;if(Se===void 0&&(Se=fe),"selectionStart"in R)R.selectionStart=fe,R.selectionEnd=Math.min(Se,R.value.length);else{var Te=R.ownerDocument||document,me=Te&&Te.defaultView||window;if(me.getSelection){var he=me.getSelection(),Xe=R.textContent.length,et=Math.min($.start,Xe),Ht=$.end===void 0?et:Math.min($.end,Xe);!he.extend&&et>Ht&&(v=Ht,Ht=et,et=v);var oe=Hh(R,et),J=Hh(R,Ht);if(oe&&J&&(he.rangeCount!==1||he.anchorNode!==oe.node||he.anchorOffset!==oe.offset||he.focusNode!==J.node||he.focusOffset!==J.offset)){var de=Te.createRange();de.setStart(oe.node,oe.offset),he.removeAllRanges(),et>Ht?(he.addRange(de),he.extend(J.node,J.offset)):(de.setEnd(J.node,J.offset),he.addRange(de))}}}}for(Te=[],he=R;he=he.parentNode;)he.nodeType===1&&Te.push({element:he,left:he.scrollLeft,top:he.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;R<Te.length;R++){var je=Te[R];je.element.scrollLeft=je.left,je.element.scrollTop=je.top}}pc=!!vf,Sf=vf=null}finally{kt=u,D.p=l,z.T=s}}e.current=n,ln=2}}function nb(){if(ln===2){ln=0;var e=kr,n=ua,s=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||s){s=z.T,z.T=null;var l=D.p;D.p=2;var u=kt;kt|=4;try{kx(e,n.alternate,n)}finally{kt=u,D.p=l,z.T=s}}ln=3}}function sb(){if(ln===4||ln===3){ln=0,Z();var e=kr,n=ua,s=Ws,l=Vx;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?ln=5:(ln=0,ua=kr=null,rb(e,e.pendingLanes));var u=e.pendingLanes;if(u===0&&(Or=null),Hn(s),n=n.stateNode,mt&&typeof mt.onCommitFiberRoot=="function")try{mt.onCommitFiberRoot(At,n,void 0,(n.current.flags&128)===128)}catch{}if(l!==null){n=z.T,u=D.p,D.p=2,z.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{z.T=n,D.p=u}}(Ws&3)!==0&&nc(),Ss(e),u=e.pendingLanes,(s&261930)!==0&&(u&42)!==0?e===af?ml++:(ml=0,af=e):ml=0,pl(0)}}function rb(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,Xa(n)))}function nc(){return tb(),nb(),sb(),ob()}function ob(){if(ln!==5)return!1;var e=kr,n=rf;rf=0;var s=Hn(Ws),l=z.T,u=D.p;try{D.p=32>s?32:s,z.T=null,s=of,of=null;var f=kr,v=Ws;if(ln=0,ua=kr=null,Ws=0,(kt&6)!==0)throw Error(a(331));var R=kt;if(kt|=4,Ux(f.current),Ix(f,f.current,v,s),kt=R,pl(0,!1),mt&&typeof mt.onPostCommitFiberRoot=="function")try{mt.onPostCommitFiberRoot(At,f)}catch{}return!0}finally{D.p=u,z.T=l,rb(e,n)}}function ab(e,n,s){n=ts(s,n),n=Bd(e.stateNode,n,2),e=Nr(e,n,2),e!==null&&(rt(e,2),Ss(e))}function zt(e,n,s){if(e.tag===3)ab(e,e,s);else for(;n!==null;){if(n.tag===3){ab(n,e,s);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Or===null||!Or.has(l))){e=ts(s,e),s=lx(2),l=Nr(n,s,2),l!==null&&(ix(s,l,n,e),rt(l,2),Ss(l));break}}n=n.return}}function uf(e,n,s){var l=e.pingCache;if(l===null){l=e.pingCache=new hN;var u=new Set;l.set(n,u)}else u=l.get(n),u===void 0&&(u=new Set,l.set(n,u));u.has(s)||(tf=!0,u.add(s),e=vN.bind(null,e,n,s),n.then(e,e))}function vN(e,n,s){var l=e.pingCache;l!==null&&l.delete(n),e.pingedLanes|=e.suspendedLanes&s,e.warmLanes&=~s,Pt===e&&(bt&s)===s&&(Qt===4||Qt===3&&(bt&62914560)===bt&&300>P()-Qi?(kt&2)===0&&da(e,0):nf|=s,ca===bt&&(ca=0)),Ss(e)}function lb(e,n){n===0&&(n=nt()),e=eo(e,n),e!==null&&(rt(e,n),Ss(e))}function SN(e){var n=e.memoizedState,s=0;n!==null&&(s=n.retryLane),lb(e,s)}function EN(e,n){var s=0;switch(e.tag){case 31:case 13:var l=e.stateNode,u=e.memoizedState;u!==null&&(s=u.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(a(314))}l!==null&&l.delete(n),lb(e,s)}function NN(e,n){return ce(e,n)}var sc=null,ma=null,df=!1,rc=!1,ff=!1,Mr=0;function Ss(e){e!==ma&&e.next===null&&(ma===null?sc=ma=e:ma=ma.next=e),rc=!0,df||(df=!0,TN())}function pl(e,n){if(!ff&&rc){ff=!0;do for(var s=!1,l=sc;l!==null;){if(e!==0){var u=l.pendingLanes;if(u===0)var f=0;else{var v=l.suspendedLanes,R=l.pingedLanes;f=(1<<31-Rt(42|e)+1)-1,f&=u&~(v&~R),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(s=!0,db(l,f))}else f=bt,f=ye(l,l===Pt?f:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(f&3)===0||Le(l,f)||(s=!0,db(l,f));l=l.next}while(s);ff=!1}}function jN(){ib()}function ib(){rc=df=!1;var e=0;Mr!==0&&zN()&&(e=Mr);for(var n=P(),s=null,l=sc;l!==null;){var u=l.next,f=cb(l,n);f===0?(l.next=null,s===null?sc=u:s.next=u,u===null&&(ma=s)):(s=l,(e!==0||(f&3)!==0)&&(rc=!0)),l=u}ln!==0&&ln!==5||pl(e),Mr!==0&&(Mr=0)}function cb(e,n){for(var s=e.suspendedLanes,l=e.pingedLanes,u=e.expirationTimes,f=e.pendingLanes&-62914561;0<f;){var v=31-Rt(f),R=1<<v,$=u[v];$===-1?((R&s)===0||(R&l)!==0)&&(u[v]=Ze(R,n)):$<=n&&(e.expiredLanes|=R),f&=~R}if(n=Pt,s=bt,s=ye(e,e===n?s:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l=e.callbackNode,s===0||e===n&&(Dt===2||Dt===9)||e.cancelPendingCommit!==null)return l!==null&&l!==null&&_e(l),e.callbackNode=null,e.callbackPriority=0;if((s&3)===0||Le(e,s)){if(n=s&-s,n===e.callbackPriority)return n;switch(l!==null&&_e(l),Hn(s)){case 2:case 8:s=be;break;case 32:s=ae;break;case 268435456:s=Ve;break;default:s=ae}return l=ub.bind(null,e),s=ce(s,l),e.callbackPriority=n,e.callbackNode=s,n}return l!==null&&l!==null&&_e(l),e.callbackPriority=2,e.callbackNode=null,2}function ub(e,n){if(ln!==0&&ln!==5)return e.callbackNode=null,e.callbackPriority=0,null;var s=e.callbackNode;if(nc()&&e.callbackNode!==s)return null;var l=bt;return l=ye(e,e===Pt?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l===0?null:(Gx(e,l,n),cb(e,P()),e.callbackNode!=null&&e.callbackNode===s?ub.bind(null,e):null)}function db(e,n){if(nc())return null;Gx(e,n,!0)}function TN(){IN(function(){(kt&6)!==0?ce(we,jN):ib()})}function mf(){if(Mr===0){var e=Jo;e===0&&(e=Ge,Ge<<=1,(Ge&261888)===0&&(Ge=256)),Mr=e}return Mr}function fb(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:fi(""+e)}function mb(e,n){var s=n.ownerDocument.createElement("input");return s.name=n.name,s.value=n.value,e.id&&s.setAttribute("form",e.id),n.parentNode.insertBefore(s,n),e=new FormData(e),s.parentNode.removeChild(s),e}function wN(e,n,s,l,u){if(n==="submit"&&s&&s.stateNode===u){var f=fb((u[Rn]||null).action),v=l.submitter;v&&(n=(n=v[Rn]||null)?fb(n.formAction):v.getAttribute("formAction"),n!==null&&(f=n,v=null));var R=new gi("action","action",null,l,u);e.push({event:R,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Mr!==0){var $=v?mb(u,v):new FormData(u);Md(s,{pending:!0,data:$,method:u.method,action:f},null,$)}}else typeof f=="function"&&(R.preventDefault(),$=v?mb(u,v):new FormData(u),Md(s,{pending:!0,data:$,method:u.method,action:f},f,$))},currentTarget:u}]})}}for(var pf=0;pf<Ku.length;pf++){var hf=Ku[pf],CN=hf.toLowerCase(),RN=hf[0].toUpperCase()+hf.slice(1);fs(CN,"on"+RN)}fs(Fh,"onAnimationEnd"),fs(Gh,"onAnimationIteration"),fs(qh,"onAnimationStart"),fs("dblclick","onDoubleClick"),fs("focusin","onFocus"),fs("focusout","onBlur"),fs(FE,"onTransitionRun"),fs(GE,"onTransitionStart"),fs(qE,"onTransitionCancel"),fs($h,"onTransitionEnd"),Bo("onMouseEnter",["mouseout","mouseover"]),Bo("onMouseLeave",["mouseout","mouseover"]),Bo("onPointerEnter",["pointerout","pointerover"]),Bo("onPointerLeave",["pointerout","pointerover"]),Qr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Qr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Qr("onBeforeInput",["compositionend","keypress","textInput","paste"]),Qr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Qr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Qr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var hl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),ON=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(hl));function pb(e,n){n=(n&4)!==0;for(var s=0;s<e.length;s++){var l=e[s],u=l.event;l=l.listeners;e:{var f=void 0;if(n)for(var v=l.length-1;0<=v;v--){var R=l[v],$=R.instance,fe=R.currentTarget;if(R=R.listener,$!==f&&u.isPropagationStopped())break e;f=R,u.currentTarget=fe;try{f(u)}catch(Se){yi(Se)}u.currentTarget=null,f=$}else for(v=0;v<l.length;v++){if(R=l[v],$=R.instance,fe=R.currentTarget,R=R.listener,$!==f&&u.isPropagationStopped())break e;f=R,u.currentTarget=fe;try{f(u)}catch(Se){yi(Se)}u.currentTarget=null,f=$}}}}function gt(e,n){var s=n[Cu];s===void 0&&(s=n[Cu]=new Set);var l=e+"__bubble";s.has(l)||(hb(n,e,2,!1),s.add(l))}function gf(e,n,s){var l=0;n&&(l|=4),hb(s,e,l,n)}var oc="_reactListening"+Math.random().toString(36).slice(2);function xf(e){if(!e[oc]){e[oc]=!0,ih.forEach(function(s){s!=="selectionchange"&&(ON.has(s)||gf(s,!1,e),gf(s,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[oc]||(n[oc]=!0,gf("selectionchange",!1,n))}}function hb(e,n,s,l){switch(Fb(n)){case 2:var u=sj;break;case 8:u=rj;break;default:u=Mf}s=u.bind(null,n,s,e),u=void 0,!Lu||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(u=!0),l?u!==void 0?e.addEventListener(n,s,{capture:!0,passive:u}):e.addEventListener(n,s,!0):u!==void 0?e.addEventListener(n,s,{passive:u}):e.addEventListener(n,s,!1)}function bf(e,n,s,l,u){var f=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var v=l.tag;if(v===3||v===4){var R=l.stateNode.containerInfo;if(R===u)break;if(v===4)for(v=l.return;v!==null;){var $=v.tag;if(($===3||$===4)&&v.stateNode.containerInfo===u)return;v=v.return}for(;R!==null;){if(v=zo(R),v===null)return;if($=v.tag,$===5||$===6||$===26||$===27){l=f=v;continue e}R=R.parentNode}}l=l.return}vh(function(){var fe=f,Se=Du(s),Te=[];e:{var me=Xh.get(e);if(me!==void 0){var he=gi,Xe=e;switch(e){case"keypress":if(pi(s)===0)break e;case"keydown":case"keyup":he=EE;break;case"focusin":Xe="focus",he=Uu;break;case"focusout":Xe="blur",he=Uu;break;case"beforeblur":case"afterblur":he=Uu;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":he=Nh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":he=uE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":he=TE;break;case Fh:case Gh:case qh:he=mE;break;case $h:he=CE;break;case"scroll":case"scrollend":he=iE;break;case"wheel":he=OE;break;case"copy":case"cut":case"paste":he=hE;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":he=Th;break;case"toggle":case"beforetoggle":he=_E}var et=(n&4)!==0,Ht=!et&&(e==="scroll"||e==="scrollend"),oe=et?me!==null?me+"Capture":null:me;et=[];for(var J=fe,de;J!==null;){var je=J;if(de=je.stateNode,je=je.tag,je!==5&&je!==26&&je!==27||de===null||oe===null||(je=Ia(J,oe),je!=null&&et.push(gl(J,je,de))),Ht)break;J=J.return}0<et.length&&(me=new he(me,Xe,null,s,Se),Te.push({event:me,listeners:et}))}}if((n&7)===0){e:{if(me=e==="mouseover"||e==="pointerover",he=e==="mouseout"||e==="pointerout",me&&s!==Au&&(Xe=s.relatedTarget||s.fromElement)&&(zo(Xe)||Xe[Do]))break e;if((he||me)&&(me=Se.window===Se?Se:(me=Se.ownerDocument)?me.defaultView||me.parentWindow:window,he?(Xe=s.relatedTarget||s.toElement,he=fe,Xe=Xe?zo(Xe):null,Xe!==null&&(Ht=d(Xe),et=Xe.tag,Xe!==Ht||et!==5&&et!==27&&et!==6)&&(Xe=null)):(he=null,Xe=fe),he!==Xe)){if(et=Nh,je="onMouseLeave",oe="onMouseEnter",J="mouse",(e==="pointerout"||e==="pointerover")&&(et=Th,je="onPointerLeave",oe="onPointerEnter",J="pointer"),Ht=he==null?me:La(he),de=Xe==null?me:La(Xe),me=new et(je,J+"leave",he,s,Se),me.target=Ht,me.relatedTarget=de,je=null,zo(Se)===fe&&(et=new et(oe,J+"enter",Xe,s,Se),et.target=de,et.relatedTarget=Ht,je=et),Ht=je,he&&Xe)t:{for(et=kN,oe=he,J=Xe,de=0,je=oe;je;je=et(je))de++;je=0;for(var Je=J;Je;Je=et(Je))je++;for(;0<de-je;)oe=et(oe),de--;for(;0<je-de;)J=et(J),je--;for(;de--;){if(oe===J||J!==null&&oe===J.alternate){et=oe;break t}oe=et(oe),J=et(J)}et=null}else et=null;he!==null&&gb(Te,me,he,et,!1),Xe!==null&&Ht!==null&&gb(Te,Ht,Xe,et,!0)}}e:{if(me=fe?La(fe):window,he=me.nodeName&&me.nodeName.toLowerCase(),he==="select"||he==="input"&&me.type==="file")var wt=Ah;else if(_h(me))if(Dh)wt=PE;else{wt=HE;var Ke=BE}else he=me.nodeName,!he||he.toLowerCase()!=="input"||me.type!=="checkbox"&&me.type!=="radio"?fe&&Mu(fe.elementType)&&(wt=Ah):wt=UE;if(wt&&(wt=wt(e,fe))){Mh(Te,wt,s,Se);break e}Ke&&Ke(e,me,fe),e==="focusout"&&fe&&me.type==="number"&&fe.memoizedProps.value!=null&&_u(me,"number",me.value)}switch(Ke=fe?La(fe):window,e){case"focusin":(_h(Ke)||Ke.contentEditable==="true")&&(Fo=Ke,qu=fe,Ga=null);break;case"focusout":Ga=qu=Fo=null;break;case"mousedown":$u=!0;break;case"contextmenu":case"mouseup":case"dragend":$u=!1,Yh(Te,s,Se);break;case"selectionchange":if(VE)break;case"keydown":case"keyup":Yh(Te,s,Se)}var dt;if(Yu)e:{switch(e){case"compositionstart":var yt="onCompositionStart";break e;case"compositionend":yt="onCompositionEnd";break e;case"compositionupdate":yt="onCompositionUpdate";break e}yt=void 0}else Vo?Oh(e,s)&&(yt="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(yt="onCompositionStart");yt&&(wh&&s.locale!=="ko"&&(Vo||yt!=="onCompositionStart"?yt==="onCompositionEnd"&&Vo&&(dt=Sh()):(gr=Se,Iu="value"in gr?gr.value:gr.textContent,Vo=!0)),Ke=ac(fe,yt),0<Ke.length&&(yt=new jh(yt,e,null,s,Se),Te.push({event:yt,listeners:Ke}),dt?yt.data=dt:(dt=kh(s),dt!==null&&(yt.data=dt)))),(dt=AE?DE(e,s):zE(e,s))&&(yt=ac(fe,"onBeforeInput"),0<yt.length&&(Ke=new jh("onBeforeInput","beforeinput",null,s,Se),Te.push({event:Ke,listeners:yt}),Ke.data=dt)),wN(Te,e,fe,s,Se)}pb(Te,n)})}function gl(e,n,s){return{instance:e,listener:n,currentTarget:s}}function ac(e,n){for(var s=n+"Capture",l=[];e!==null;){var u=e,f=u.stateNode;if(u=u.tag,u!==5&&u!==26&&u!==27||f===null||(u=Ia(e,s),u!=null&&l.unshift(gl(e,u,f)),u=Ia(e,n),u!=null&&l.push(gl(e,u,f))),e.tag===3)return l;e=e.return}return[]}function kN(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function gb(e,n,s,l,u){for(var f=n._reactName,v=[];s!==null&&s!==l;){var R=s,$=R.alternate,fe=R.stateNode;if(R=R.tag,$!==null&&$===l)break;R!==5&&R!==26&&R!==27||fe===null||($=fe,u?(fe=Ia(s,f),fe!=null&&v.unshift(gl(s,fe,$))):u||(fe=Ia(s,f),fe!=null&&v.push(gl(s,fe,$)))),s=s.return}v.length!==0&&e.push({event:n,listeners:v})}var _N=/\r\n?/g,MN=/\u0000|\uFFFD/g;function xb(e){return(typeof e=="string"?e:""+e).replace(_N,`
|
|
9
|
-
`).replace(MN,"")}function bb(e,n){return n=xb(n),xb(e)===n}function Bt(e,n,s,l,u,f){switch(s){case"children":typeof l=="string"?n==="body"||n==="textarea"&&l===""||Uo(e,l):(typeof l=="number"||typeof l=="bigint")&&n!=="body"&&Uo(e,""+l);break;case"className":ui(e,"class",l);break;case"tabIndex":ui(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":ui(e,s,l);break;case"style":bh(e,l,f);break;case"data":if(n!=="object"){ui(e,"data",l);break}case"src":case"href":if(l===""&&(n!=="a"||s!=="href")){e.removeAttribute(s);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=fi(""+l),e.setAttribute(s,l);break;case"action":case"formAction":if(typeof l=="function"){e.setAttribute(s,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof f=="function"&&(s==="formAction"?(n!=="input"&&Bt(e,n,"name",u.name,u,null),Bt(e,n,"formEncType",u.formEncType,u,null),Bt(e,n,"formMethod",u.formMethod,u,null),Bt(e,n,"formTarget",u.formTarget,u,null)):(Bt(e,n,"encType",u.encType,u,null),Bt(e,n,"method",u.method,u,null),Bt(e,n,"target",u.target,u,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=fi(""+l),e.setAttribute(s,l);break;case"onClick":l!=null&&(e.onclick=Bs);break;case"onScroll":l!=null&>("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(u.children!=null)throw Error(a(60));e.innerHTML=s}}break;case"multiple":e.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":e.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){e.removeAttribute("xlink:href");break}s=fi(""+l),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",s);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(s,""+l):e.removeAttribute(s);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(s,""):e.removeAttribute(s);break;case"capture":case"download":l===!0?e.setAttribute(s,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(s,l):e.removeAttribute(s);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?e.setAttribute(s,l):e.removeAttribute(s);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?e.removeAttribute(s):e.setAttribute(s,l);break;case"popover":gt("beforetoggle",e),gt("toggle",e),ci(e,"popover",l);break;case"xlinkActuate":Is(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Is(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Is(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Is(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Is(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Is(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Is(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Is(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Is(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":ci(e,"is",l);break;case"innerText":case"textContent":break;default:(!(2<s.length)||s[0]!=="o"&&s[0]!=="O"||s[1]!=="n"&&s[1]!=="N")&&(s=aE.get(s)||s,ci(e,s,l))}}function yf(e,n,s,l,u,f){switch(s){case"style":bh(e,l,f);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(a(61));if(s=l.__html,s!=null){if(u.children!=null)throw Error(a(60));e.innerHTML=s}}break;case"children":typeof l=="string"?Uo(e,l):(typeof l=="number"||typeof l=="bigint")&&Uo(e,""+l);break;case"onScroll":l!=null&>("scroll",e);break;case"onScrollEnd":l!=null&>("scrollend",e);break;case"onClick":l!=null&&(e.onclick=Bs);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!ch.hasOwnProperty(s))e:{if(s[0]==="o"&&s[1]==="n"&&(u=s.endsWith("Capture"),n=s.slice(2,u?s.length-7:void 0),f=e[Rn]||null,f=f!=null?f[s]:null,typeof f=="function"&&e.removeEventListener(n,f,u),typeof l=="function")){typeof f!="function"&&f!==null&&(s in e?e[s]=null:e.hasAttribute(s)&&e.removeAttribute(s)),e.addEventListener(n,l,u);break e}s in e?e[s]=l:l===!0?e.setAttribute(s,""):ci(e,s,l)}}}function vn(e,n,s){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":gt("error",e),gt("load",e);var l=!1,u=!1,f;for(f in s)if(s.hasOwnProperty(f)){var v=s[f];if(v!=null)switch(f){case"src":l=!0;break;case"srcSet":u=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,n));default:Bt(e,n,f,v,s,null)}}u&&Bt(e,n,"srcSet",s.srcSet,s,null),l&&Bt(e,n,"src",s.src,s,null);return;case"input":gt("invalid",e);var R=f=v=u=null,$=null,fe=null;for(l in s)if(s.hasOwnProperty(l)){var Se=s[l];if(Se!=null)switch(l){case"name":u=Se;break;case"type":v=Se;break;case"checked":$=Se;break;case"defaultChecked":fe=Se;break;case"value":f=Se;break;case"defaultValue":R=Se;break;case"children":case"dangerouslySetInnerHTML":if(Se!=null)throw Error(a(137,n));break;default:Bt(e,n,l,Se,s,null)}}ph(e,f,R,$,fe,v,u,!1);return;case"select":gt("invalid",e),l=v=f=null;for(u in s)if(s.hasOwnProperty(u)&&(R=s[u],R!=null))switch(u){case"value":f=R;break;case"defaultValue":v=R;break;case"multiple":l=R;default:Bt(e,n,u,R,s,null)}n=f,s=v,e.multiple=!!l,n!=null?Ho(e,!!l,n,!1):s!=null&&Ho(e,!!l,s,!0);return;case"textarea":gt("invalid",e),f=u=l=null;for(v in s)if(s.hasOwnProperty(v)&&(R=s[v],R!=null))switch(v){case"value":l=R;break;case"defaultValue":u=R;break;case"children":f=R;break;case"dangerouslySetInnerHTML":if(R!=null)throw Error(a(91));break;default:Bt(e,n,v,R,s,null)}gh(e,l,u,f);return;case"option":for($ in s)s.hasOwnProperty($)&&(l=s[$],l!=null)&&($==="selected"?e.selected=l&&typeof l!="function"&&typeof l!="symbol":Bt(e,n,$,l,s,null));return;case"dialog":gt("beforetoggle",e),gt("toggle",e),gt("cancel",e),gt("close",e);break;case"iframe":case"object":gt("load",e);break;case"video":case"audio":for(l=0;l<hl.length;l++)gt(hl[l],e);break;case"image":gt("error",e),gt("load",e);break;case"details":gt("toggle",e);break;case"embed":case"source":case"link":gt("error",e),gt("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(fe in s)if(s.hasOwnProperty(fe)&&(l=s[fe],l!=null))switch(fe){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,n));default:Bt(e,n,fe,l,s,null)}return;default:if(Mu(n)){for(Se in s)s.hasOwnProperty(Se)&&(l=s[Se],l!==void 0&&yf(e,n,Se,l,s,void 0));return}}for(R in s)s.hasOwnProperty(R)&&(l=s[R],l!=null&&Bt(e,n,R,l,s,null))}function AN(e,n,s,l){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var u=null,f=null,v=null,R=null,$=null,fe=null,Se=null;for(he in s){var Te=s[he];if(s.hasOwnProperty(he)&&Te!=null)switch(he){case"checked":break;case"value":break;case"defaultValue":$=Te;default:l.hasOwnProperty(he)||Bt(e,n,he,null,l,Te)}}for(var me in l){var he=l[me];if(Te=s[me],l.hasOwnProperty(me)&&(he!=null||Te!=null))switch(me){case"type":f=he;break;case"name":u=he;break;case"checked":fe=he;break;case"defaultChecked":Se=he;break;case"value":v=he;break;case"defaultValue":R=he;break;case"children":case"dangerouslySetInnerHTML":if(he!=null)throw Error(a(137,n));break;default:he!==Te&&Bt(e,n,me,he,l,Te)}}ku(e,v,R,$,fe,Se,f,u);return;case"select":he=v=R=me=null;for(f in s)if($=s[f],s.hasOwnProperty(f)&&$!=null)switch(f){case"value":break;case"multiple":he=$;default:l.hasOwnProperty(f)||Bt(e,n,f,null,l,$)}for(u in l)if(f=l[u],$=s[u],l.hasOwnProperty(u)&&(f!=null||$!=null))switch(u){case"value":me=f;break;case"defaultValue":R=f;break;case"multiple":v=f;default:f!==$&&Bt(e,n,u,f,l,$)}n=R,s=v,l=he,me!=null?Ho(e,!!s,me,!1):!!l!=!!s&&(n!=null?Ho(e,!!s,n,!0):Ho(e,!!s,s?[]:"",!1));return;case"textarea":he=me=null;for(R in s)if(u=s[R],s.hasOwnProperty(R)&&u!=null&&!l.hasOwnProperty(R))switch(R){case"value":break;case"children":break;default:Bt(e,n,R,null,l,u)}for(v in l)if(u=l[v],f=s[v],l.hasOwnProperty(v)&&(u!=null||f!=null))switch(v){case"value":me=u;break;case"defaultValue":he=u;break;case"children":break;case"dangerouslySetInnerHTML":if(u!=null)throw Error(a(91));break;default:u!==f&&Bt(e,n,v,u,l,f)}hh(e,me,he);return;case"option":for(var Xe in s)me=s[Xe],s.hasOwnProperty(Xe)&&me!=null&&!l.hasOwnProperty(Xe)&&(Xe==="selected"?e.selected=!1:Bt(e,n,Xe,null,l,me));for($ in l)me=l[$],he=s[$],l.hasOwnProperty($)&&me!==he&&(me!=null||he!=null)&&($==="selected"?e.selected=me&&typeof me!="function"&&typeof me!="symbol":Bt(e,n,$,me,l,he));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)me=s[et],s.hasOwnProperty(et)&&me!=null&&!l.hasOwnProperty(et)&&Bt(e,n,et,null,l,me);for(fe in l)if(me=l[fe],he=s[fe],l.hasOwnProperty(fe)&&me!==he&&(me!=null||he!=null))switch(fe){case"children":case"dangerouslySetInnerHTML":if(me!=null)throw Error(a(137,n));break;default:Bt(e,n,fe,me,l,he)}return;default:if(Mu(n)){for(var Ht in s)me=s[Ht],s.hasOwnProperty(Ht)&&me!==void 0&&!l.hasOwnProperty(Ht)&&yf(e,n,Ht,void 0,l,me);for(Se in l)me=l[Se],he=s[Se],!l.hasOwnProperty(Se)||me===he||me===void 0&&he===void 0||yf(e,n,Se,me,l,he);return}}for(var oe in s)me=s[oe],s.hasOwnProperty(oe)&&me!=null&&!l.hasOwnProperty(oe)&&Bt(e,n,oe,null,l,me);for(Te in l)me=l[Te],he=s[Te],!l.hasOwnProperty(Te)||me===he||me==null&&he==null||Bt(e,n,Te,me,l,he)}function yb(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function DN(){if(typeof performance.getEntriesByType=="function"){for(var e=0,n=0,s=performance.getEntriesByType("resource"),l=0;l<s.length;l++){var u=s[l],f=u.transferSize,v=u.initiatorType,R=u.duration;if(f&&R&&yb(v)){for(v=0,R=u.responseEnd,l+=1;l<s.length;l++){var $=s[l],fe=$.startTime;if(fe>R)break;var Se=$.transferSize,Te=$.initiatorType;Se&&yb(Te)&&($=$.responseEnd,v+=Se*($<R?1:(R-fe)/($-fe)))}if(--l,n+=8*(f+v)/(u.duration/1e3),e++,10<e)break}}if(0<e)return n/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var vf=null,Sf=null;function lc(e){return e.nodeType===9?e:e.ownerDocument}function vb(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Sb(e,n){if(e===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&n==="foreignObject"?0:e}function Ef(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Nf=null;function zN(){var e=window.event;return e&&e.type==="popstate"?e===Nf?!1:(Nf=e,!0):(Nf=null,!1)}var Eb=typeof setTimeout=="function"?setTimeout:void 0,LN=typeof clearTimeout=="function"?clearTimeout:void 0,Nb=typeof Promise=="function"?Promise:void 0,IN=typeof queueMicrotask=="function"?queueMicrotask:typeof Nb<"u"?function(e){return Nb.resolve(null).then(e).catch(BN)}:Eb;function BN(e){setTimeout(function(){throw e})}function Ar(e){return e==="head"}function jb(e,n){var s=n,l=0;do{var u=s.nextSibling;if(e.removeChild(s),u&&u.nodeType===8)if(s=u.data,s==="/$"||s==="/&"){if(l===0){e.removeChild(u),xa(n);return}l--}else if(s==="$"||s==="$?"||s==="$~"||s==="$!"||s==="&")l++;else if(s==="html")xl(e.ownerDocument.documentElement);else if(s==="head"){s=e.ownerDocument.head,xl(s);for(var f=s.firstChild;f;){var v=f.nextSibling,R=f.nodeName;f[za]||R==="SCRIPT"||R==="STYLE"||R==="LINK"&&f.rel.toLowerCase()==="stylesheet"||s.removeChild(f),f=v}}else s==="body"&&xl(e.ownerDocument.body);s=u}while(s);xa(n)}function Tb(e,n){var s=e;e=0;do{var l=s.nextSibling;if(s.nodeType===1?n?(s._stashedDisplay=s.style.display,s.style.display="none"):(s.style.display=s._stashedDisplay||"",s.getAttribute("style")===""&&s.removeAttribute("style")):s.nodeType===3&&(n?(s._stashedText=s.nodeValue,s.nodeValue=""):s.nodeValue=s._stashedText||""),l&&l.nodeType===8)if(s=l.data,s==="/$"){if(e===0)break;e--}else s!=="$"&&s!=="$?"&&s!=="$~"&&s!=="$!"||e++;s=l}while(s)}function jf(e){var n=e.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var s=n;switch(n=n.nextSibling,s.nodeName){case"HTML":case"HEAD":case"BODY":jf(s),Ru(s);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(s.rel.toLowerCase()==="stylesheet")continue}e.removeChild(s)}}function HN(e,n,s,l){for(;e.nodeType===1;){var u=s;if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!l&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(l){if(!e[za])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(f=e.getAttribute("rel"),f==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(f!==u.rel||e.getAttribute("href")!==(u.href==null||u.href===""?null:u.href)||e.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin)||e.getAttribute("title")!==(u.title==null?null:u.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(f=e.getAttribute("src"),(f!==(u.src==null?null:u.src)||e.getAttribute("type")!==(u.type==null?null:u.type)||e.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin))&&f&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(n==="input"&&e.type==="hidden"){var f=u.name==null?null:""+u.name;if(u.type==="hidden"&&e.getAttribute("name")===f)return e}else return e;if(e=as(e.nextSibling),e===null)break}return null}function UN(e,n,s){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!s||(e=as(e.nextSibling),e===null))return null;return e}function wb(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=as(e.nextSibling),e===null))return null;return e}function Tf(e){return e.data==="$?"||e.data==="$~"}function wf(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function PN(e,n){var s=e.ownerDocument;if(e.data==="$~")e._reactRetry=n;else if(e.data!=="$?"||s.readyState!=="loading")n();else{var l=function(){n(),s.removeEventListener("DOMContentLoaded",l)};s.addEventListener("DOMContentLoaded",l),e._reactRetry=l}}function as(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"||n==="F!"||n==="F")break;if(n==="/$"||n==="/&")return null}}return e}var Cf=null;function Cb(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"||s==="/&"){if(n===0)return as(e.nextSibling);n--}else s!=="$"&&s!=="$!"&&s!=="$?"&&s!=="$~"&&s!=="&"||n++}e=e.nextSibling}return null}function Rb(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="$"||s==="$!"||s==="$?"||s==="$~"||s==="&"){if(n===0)return e;n--}else s!=="/$"&&s!=="/&"||n++}e=e.previousSibling}return null}function Ob(e,n,s){switch(n=lc(s),e){case"html":if(e=n.documentElement,!e)throw Error(a(452));return e;case"head":if(e=n.head,!e)throw Error(a(453));return e;case"body":if(e=n.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function xl(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Ru(e)}var ls=new Map,kb=new Set;function ic(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var er=D.d;D.d={f:YN,r:VN,D:FN,C:GN,L:qN,m:$N,X:KN,S:XN,M:QN};function YN(){var e=er.f(),n=Wi();return e||n}function VN(e){var n=Lo(e);n!==null&&n.tag===5&&n.type==="form"?$g(n):er.r(e)}var pa=typeof document>"u"?null:document;function _b(e,n,s){var l=pa;if(l&&typeof n=="string"&&n){var u=Wn(n);u='link[rel="'+e+'"][href="'+u+'"]',typeof s=="string"&&(u+='[crossorigin="'+s+'"]'),kb.has(u)||(kb.add(u),e={rel:e,crossOrigin:s,href:n},l.querySelector(u)===null&&(n=l.createElement("link"),vn(n,"link",e),dn(n),l.head.appendChild(n)))}}function FN(e){er.D(e),_b("dns-prefetch",e,null)}function GN(e,n){er.C(e,n),_b("preconnect",e,n)}function qN(e,n,s){er.L(e,n,s);var l=pa;if(l&&e&&n){var u='link[rel="preload"][as="'+Wn(n)+'"]';n==="image"&&s&&s.imageSrcSet?(u+='[imagesrcset="'+Wn(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(u+='[imagesizes="'+Wn(s.imageSizes)+'"]')):u+='[href="'+Wn(e)+'"]';var f=u;switch(n){case"style":f=ha(e);break;case"script":f=ga(e)}ls.has(f)||(e=x({rel:"preload",href:n==="image"&&s&&s.imageSrcSet?void 0:e,as:n},s),ls.set(f,e),l.querySelector(u)!==null||n==="style"&&l.querySelector(bl(f))||n==="script"&&l.querySelector(yl(f))||(n=l.createElement("link"),vn(n,"link",e),dn(n),l.head.appendChild(n)))}}function $N(e,n){er.m(e,n);var s=pa;if(s&&e){var l=n&&typeof n.as=="string"?n.as:"script",u='link[rel="modulepreload"][as="'+Wn(l)+'"][href="'+Wn(e)+'"]',f=u;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=ga(e)}if(!ls.has(f)&&(e=x({rel:"modulepreload",href:e},n),ls.set(f,e),s.querySelector(u)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(yl(f)))return}l=s.createElement("link"),vn(l,"link",e),dn(l),s.head.appendChild(l)}}}function XN(e,n,s){er.S(e,n,s);var l=pa;if(l&&e){var u=Io(l).hoistableStyles,f=ha(e);n=n||"default";var v=u.get(f);if(!v){var R={loading:0,preload:null};if(v=l.querySelector(bl(f)))R.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":n},s),(s=ls.get(f))&&Rf(e,s);var $=v=l.createElement("link");dn($),vn($,"link",e),$._p=new Promise(function(fe,Se){$.onload=fe,$.onerror=Se}),$.addEventListener("load",function(){R.loading|=1}),$.addEventListener("error",function(){R.loading|=2}),R.loading|=4,cc(v,n,l)}v={type:"stylesheet",instance:v,count:1,state:R},u.set(f,v)}}}function KN(e,n){er.X(e,n);var s=pa;if(s&&e){var l=Io(s).hoistableScripts,u=ga(e),f=l.get(u);f||(f=s.querySelector(yl(u)),f||(e=x({src:e,async:!0},n),(n=ls.get(u))&&Of(e,n),f=s.createElement("script"),dn(f),vn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(u,f))}}function QN(e,n){er.M(e,n);var s=pa;if(s&&e){var l=Io(s).hoistableScripts,u=ga(e),f=l.get(u);f||(f=s.querySelector(yl(u)),f||(e=x({src:e,async:!0,type:"module"},n),(n=ls.get(u))&&Of(e,n),f=s.createElement("script"),dn(f),vn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(u,f))}}function Mb(e,n,s,l){var u=(u=K.current)?ic(u):null;if(!u)throw Error(a(446));switch(e){case"meta":case"title":return null;case"style":return typeof s.precedence=="string"&&typeof s.href=="string"?(n=ha(s.href),s=Io(u).hoistableStyles,l=s.get(n),l||(l={type:"style",instance:null,count:0,state:null},s.set(n,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(s.rel==="stylesheet"&&typeof s.href=="string"&&typeof s.precedence=="string"){e=ha(s.href);var f=Io(u).hoistableStyles,v=f.get(e);if(v||(u=u.ownerDocument||u,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(e,v),(f=u.querySelector(bl(e)))&&!f._p&&(v.instance=f,v.state.loading=5),ls.has(e)||(s={rel:"preload",as:"style",href:s.href,crossOrigin:s.crossOrigin,integrity:s.integrity,media:s.media,hrefLang:s.hrefLang,referrerPolicy:s.referrerPolicy},ls.set(e,s),f||ZN(u,e,s,v.state))),n&&l===null)throw Error(a(528,""));return v}if(n&&l!==null)throw Error(a(529,""));return null;case"script":return n=s.async,s=s.src,typeof s=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=ga(s),s=Io(u).hoistableScripts,l=s.get(n),l||(l={type:"script",instance:null,count:0,state:null},s.set(n,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,e))}}function ha(e){return'href="'+Wn(e)+'"'}function bl(e){return'link[rel="stylesheet"]['+e+"]"}function Ab(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function ZN(e,n,s,l){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?l.loading=1:(n=e.createElement("link"),l.preload=n,n.addEventListener("load",function(){return l.loading|=1}),n.addEventListener("error",function(){return l.loading|=2}),vn(n,"link",s),dn(n),e.head.appendChild(n))}function ga(e){return'[src="'+Wn(e)+'"]'}function yl(e){return"script[async]"+e}function Db(e,n,s){if(n.count++,n.instance===null)switch(n.type){case"style":var l=e.querySelector('style[data-href~="'+Wn(s.href)+'"]');if(l)return n.instance=l,dn(l),l;var u=x({},s,{"data-href":s.href,"data-precedence":s.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),dn(l),vn(l,"style",u),cc(l,s.precedence,e),n.instance=l;case"stylesheet":u=ha(s.href);var f=e.querySelector(bl(u));if(f)return n.state.loading|=4,n.instance=f,dn(f),f;l=Ab(s),(u=ls.get(u))&&Rf(l,u),f=(e.ownerDocument||e).createElement("link"),dn(f);var v=f;return v._p=new Promise(function(R,$){v.onload=R,v.onerror=$}),vn(f,"link",l),n.state.loading|=4,cc(f,s.precedence,e),n.instance=f;case"script":return f=ga(s.src),(u=e.querySelector(yl(f)))?(n.instance=u,dn(u),u):(l=s,(u=ls.get(f))&&(l=x({},s),Of(l,u)),e=e.ownerDocument||e,u=e.createElement("script"),dn(u),vn(u,"link",l),e.head.appendChild(u),n.instance=u);case"void":return null;default:throw Error(a(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(l=n.instance,n.state.loading|=4,cc(l,s.precedence,e));return n.instance}function cc(e,n,s){for(var l=s.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=l.length?l[l.length-1]:null,f=u,v=0;v<l.length;v++){var R=l[v];if(R.dataset.precedence===n)f=R;else if(f!==u)break}f?f.parentNode.insertBefore(e,f.nextSibling):(n=s.nodeType===9?s.head:s,n.insertBefore(e,n.firstChild))}function Rf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function Of(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var uc=null;function zb(e,n,s){if(uc===null){var l=new Map,u=uc=new Map;u.set(s,l)}else u=uc,l=u.get(s),l||(l=new Map,u.set(s,l));if(l.has(e))return l;for(l.set(e,null),s=s.getElementsByTagName(e),u=0;u<s.length;u++){var f=s[u];if(!(f[za]||f[an]||e==="link"&&f.getAttribute("rel")==="stylesheet")&&f.namespaceURI!=="http://www.w3.org/2000/svg"){var v=f.getAttribute(n)||"";v=e+v;var R=l.get(v);R?R.push(f):l.set(v,[f])}}return l}function Lb(e,n,s){e=e.ownerDocument||e,e.head.insertBefore(s,n==="title"?e.querySelector("head > title"):null)}function JN(e,n,s){if(s===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;return n.rel==="stylesheet"?(e=n.disabled,typeof n.precedence=="string"&&e==null):!0;case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function Ib(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function WN(e,n,s,l){if(s.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(s.state.loading&4)===0){if(s.instance===null){var u=ha(l.href),f=n.querySelector(bl(u));if(f){n=f._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=dc.bind(e),n.then(e,e)),s.state.loading|=4,s.instance=f,dn(f);return}f=n.ownerDocument||n,l=Ab(l),(u=ls.get(u))&&Rf(l,u),f=f.createElement("link"),dn(f);var v=f;v._p=new Promise(function(R,$){v.onload=R,v.onerror=$}),vn(f,"link",l),s.instance=f}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(s,n),(n=s.state.preload)&&(s.state.loading&3)===0&&(e.count++,s=dc.bind(e),n.addEventListener("load",s),n.addEventListener("error",s))}}var kf=0;function ej(e,n){return e.stylesheets&&e.count===0&&mc(e,e.stylesheets),0<e.count||0<e.imgCount?function(s){var l=setTimeout(function(){if(e.stylesheets&&mc(e,e.stylesheets),e.unsuspend){var f=e.unsuspend;e.unsuspend=null,f()}},6e4+n);0<e.imgBytes&&kf===0&&(kf=62500*DN());var u=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&mc(e,e.stylesheets),e.unsuspend)){var f=e.unsuspend;e.unsuspend=null,f()}},(e.imgBytes>kf?50:800)+n);return e.unsuspend=s,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(u)}}:null}function dc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)mc(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var fc=null;function mc(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,fc=new Map,n.forEach(tj,e),fc=null,dc.call(e))}function tj(e,n){if(!(n.state.loading&4)){var s=fc.get(e);if(s)var l=s.get(null);else{s=new Map,fc.set(e,s);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f<u.length;f++){var v=u[f];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(s.set(v.dataset.precedence,v),l=v)}l&&s.set(null,l)}u=n.instance,v=u.getAttribute("data-precedence"),f=s.get(v)||l,f===l&&s.set(null,u),s.set(v,u),this.count++,l=dc.bind(this),u.addEventListener("load",l),u.addEventListener("error",l),f?f.parentNode.insertBefore(u,f.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(u,e.firstChild)),n.state.loading|=4}}var vl={$$typeof:_,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function nj(e,n,s,l,u,f,v,R,$){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=at(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=at(0),this.hiddenUpdates=at(null),this.identifierPrefix=l,this.onUncaughtError=u,this.onCaughtError=f,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=$,this.incompleteTransitions=new Map}function Bb(e,n,s,l,u,f,v,R,$,fe,Se,Te){return e=new nj(e,n,s,v,$,fe,Se,Te,R),n=1,f===!0&&(n|=24),f=Pn(3,null,null,n),e.current=f,f.stateNode=e,n=id(),n.refCount++,e.pooledCache=n,n.refCount++,f.memoizedState={element:l,isDehydrated:s,cache:n},fd(f),e}function Hb(e){return e?(e=$o,e):$o}function Ub(e,n,s,l,u,f){u=Hb(u),l.context===null?l.context=u:l.pendingContext=u,l=Er(n),l.payload={element:s},f=f===void 0?null:f,f!==null&&(l.callback=f),s=Nr(e,l,n),s!==null&&(Dn(s,e,n),Ja(s,e,n))}function Pb(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<n?s:n}}function _f(e,n){Pb(e,n),(e=e.alternate)&&Pb(e,n)}function Yb(e){if(e.tag===13||e.tag===31){var n=eo(e,67108864);n!==null&&Dn(n,e,67108864),_f(e,67108864)}}function Vb(e){if(e.tag===13||e.tag===31){var n=qn();n=hr(n);var s=eo(e,n);s!==null&&Dn(s,e,n),_f(e,n)}}var pc=!0;function sj(e,n,s,l){var u=z.T;z.T=null;var f=D.p;try{D.p=2,Mf(e,n,s,l)}finally{D.p=f,z.T=u}}function rj(e,n,s,l){var u=z.T;z.T=null;var f=D.p;try{D.p=8,Mf(e,n,s,l)}finally{D.p=f,z.T=u}}function Mf(e,n,s,l){if(pc){var u=Af(l);if(u===null)bf(e,n,l,hc,s),Gb(e,l);else if(aj(u,e,n,s,l))l.stopPropagation();else if(Gb(e,l),n&4&&-1<oj.indexOf(e)){for(;u!==null;){var f=Lo(u);if(f!==null)switch(f.tag){case 3:if(f=f.stateNode,f.current.memoizedState.isDehydrated){var v=re(f.pendingLanes);if(v!==0){var R=f;for(R.pendingLanes|=2,R.entangledLanes|=2;v;){var $=1<<31-Rt(v);R.entanglements[1]|=$,v&=~$}Ss(f),(kt&6)===0&&(Zi=P()+500,pl(0))}}break;case 31:case 13:R=eo(f,2),R!==null&&Dn(R,f,2),Wi(),_f(f,2)}if(f=Af(l),f===null&&bf(e,n,l,hc,s),f===u)break;u=f}u!==null&&l.stopPropagation()}else bf(e,n,l,null,s)}}function Af(e){return e=Du(e),Df(e)}var hc=null;function Df(e){if(hc=null,e=zo(e),e!==null){var n=d(e);if(n===null)e=null;else{var s=n.tag;if(s===13){if(e=m(n),e!==null)return e;e=null}else if(s===31){if(e=g(n),e!==null)return e;e=null}else if(s===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return hc=e,null}function Fb(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(q()){case we:return 2;case be:return 8;case ae:case ke:return 32;case Ve:return 268435456;default:return 32}default:return 32}}var zf=!1,Dr=null,zr=null,Lr=null,Sl=new Map,El=new Map,Ir=[],oj="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Gb(e,n){switch(e){case"focusin":case"focusout":Dr=null;break;case"dragenter":case"dragleave":zr=null;break;case"mouseover":case"mouseout":Lr=null;break;case"pointerover":case"pointerout":Sl.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":El.delete(n.pointerId)}}function Nl(e,n,s,l,u,f){return e===null||e.nativeEvent!==f?(e={blockedOn:n,domEventName:s,eventSystemFlags:l,nativeEvent:f,targetContainers:[u]},n!==null&&(n=Lo(n),n!==null&&Yb(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,u!==null&&n.indexOf(u)===-1&&n.push(u),e)}function aj(e,n,s,l,u){switch(n){case"focusin":return Dr=Nl(Dr,e,n,s,l,u),!0;case"dragenter":return zr=Nl(zr,e,n,s,l,u),!0;case"mouseover":return Lr=Nl(Lr,e,n,s,l,u),!0;case"pointerover":var f=u.pointerId;return Sl.set(f,Nl(Sl.get(f)||null,e,n,s,l,u)),!0;case"gotpointercapture":return f=u.pointerId,El.set(f,Nl(El.get(f)||null,e,n,s,l,u)),!0}return!1}function qb(e){var n=zo(e.target);if(n!==null){var s=d(n);if(s!==null){if(n=s.tag,n===13){if(n=m(s),n!==null){e.blockedOn=n,ii(e.priority,function(){Vb(s)});return}}else if(n===31){if(n=g(s),n!==null){e.blockedOn=n,ii(e.priority,function(){Vb(s)});return}}else if(n===3&&s.stateNode.current.memoizedState.isDehydrated){e.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}e.blockedOn=null}function gc(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var s=Af(e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);Au=l,s.target.dispatchEvent(l),Au=null}else return n=Lo(s),n!==null&&Yb(n),e.blockedOn=s,!1;n.shift()}return!0}function $b(e,n,s){gc(e)&&s.delete(n)}function lj(){zf=!1,Dr!==null&&gc(Dr)&&(Dr=null),zr!==null&&gc(zr)&&(zr=null),Lr!==null&&gc(Lr)&&(Lr=null),Sl.forEach($b),El.forEach($b)}function xc(e,n){e.blockedOn===n&&(e.blockedOn=null,zf||(zf=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,lj)))}var bc=null;function Xb(e){bc!==e&&(bc=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){bc===e&&(bc=null);for(var n=0;n<e.length;n+=3){var s=e[n],l=e[n+1],u=e[n+2];if(typeof l!="function"){if(Df(l||s)===null)continue;break}var f=Lo(s);f!==null&&(e.splice(n,3),n-=3,Md(f,{pending:!0,data:u,method:s.method,action:l},l,u))}}))}function xa(e){function n($){return xc($,e)}Dr!==null&&xc(Dr,e),zr!==null&&xc(zr,e),Lr!==null&&xc(Lr,e),Sl.forEach(n),El.forEach(n);for(var s=0;s<Ir.length;s++){var l=Ir[s];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Ir.length&&(s=Ir[0],s.blockedOn===null);)qb(s),s.blockedOn===null&&Ir.shift();if(s=(e.ownerDocument||e).$$reactFormReplay,s!=null)for(l=0;l<s.length;l+=3){var u=s[l],f=s[l+1],v=u[Rn]||null;if(typeof f=="function")v||Xb(s);else if(v){var R=null;if(f&&f.hasAttribute("formAction")){if(u=f,v=f[Rn]||null)R=v.formAction;else if(Df(u)!==null)continue}else R=v.action;typeof R=="function"?s[l+1]=R:(s.splice(l,3),l-=3),Xb(s)}}}function Kb(){function e(f){f.canIntercept&&f.info==="react-transition"&&f.intercept({handler:function(){return new Promise(function(v){return u=v})},focusReset:"manual",scroll:"manual"})}function n(){u!==null&&(u(),u=null),l||setTimeout(s,20)}function s(){if(!l&&!navigation.transition){var f=navigation.currentEntry;f&&f.url!=null&&navigation.navigate(f.url,{state:f.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var l=!1,u=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(s,100),function(){l=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),u!==null&&(u(),u=null)}}}function Lf(e){this._internalRoot=e}yc.prototype.render=Lf.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(a(409));var s=n.current,l=qn();Ub(s,l,e,n,null,null)},yc.prototype.unmount=Lf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Ub(e.current,2,null,e,null,null),Wi(),n[Do]=null}};function yc(e){this._internalRoot=e}yc.prototype.unstable_scheduleHydration=function(e){if(e){var n=Ls();e={blockedOn:null,target:e,priority:n};for(var s=0;s<Ir.length&&n!==0&&n<Ir[s].priority;s++);Ir.splice(s,0,e),s===0&&qb(e)}};var Qb=r.version;if(Qb!=="19.2.8")throw Error(a(527,Qb,"19.2.8"));D.findDOMNode=function(e){var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(a(188)):(e=Object.keys(e).join(","),Error(a(268,e)));return e=p(n),e=e!==null?y(e):null,e=e===null?null:e.stateNode,e};var ij={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:z,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var vc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vc.isDisabled&&vc.supportsFiber)try{At=vc.inject(ij),mt=vc}catch{}}return Tl.createRoot=function(e,n){if(!c(e))throw Error(a(299));var s=!1,l="",u=sx,f=rx,v=ox;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(u=n.onUncaughtError),n.onCaughtError!==void 0&&(f=n.onCaughtError),n.onRecoverableError!==void 0&&(v=n.onRecoverableError)),n=Bb(e,1,!1,null,null,s,l,null,u,f,v,Kb),e[Do]=n.current,xf(e),new Lf(n)},Tl.hydrateRoot=function(e,n,s){if(!c(e))throw Error(a(299));var l=!1,u="",f=sx,v=rx,R=ox,$=null;return s!=null&&(s.unstable_strictMode===!0&&(l=!0),s.identifierPrefix!==void 0&&(u=s.identifierPrefix),s.onUncaughtError!==void 0&&(f=s.onUncaughtError),s.onCaughtError!==void 0&&(v=s.onCaughtError),s.onRecoverableError!==void 0&&(R=s.onRecoverableError),s.formState!==void 0&&($=s.formState)),n=Bb(e,1,!0,n,s??null,l,u,$,f,v,R,Kb),n.context=Hb(null),s=n.current,l=qn(),l=hr(l),u=Er(l),u.callback=null,Nr(s,u,l),s=l,n.current.lanes=s,rt(n,s),Ss(n),e[Do]=n.current,xf(e),new yc(n)},Tl.version="19.2.8",Tl}var ay;function yj(){if(ay)return Hf.exports;ay=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),Hf.exports=bj(),Hf.exports}var vj=yj();const ka=["character","setting","location","hook","event","timepoint"],Qm=["belongs_to","owns","masters","ally","rival","mentor","family","kills","appears_in","occurs_at","plot_edge","plants","advances","resolves","depends_on","involves","occurs_in"],Sj="plot_edge",ly=["mystery","relationship","item","character_growth","world_building"],a0=["inner","personal","extra_personal"],Ej=[5,10,15,30,60],iy=30;function ds(t){const r=new Date(t);if(Number.isNaN(r.getTime()))return t;const o=a=>String(a).padStart(2,"0");return`${r.getFullYear()}-${o(r.getMonth()+1)}-${o(r.getDate())} ${o(r.getHours())}:${o(r.getMinutes())}`}function Eo(t){const r=new Date(t);if(Number.isNaN(r.getTime()))return t;const o=Math.floor((Date.now()-r.getTime())/6e4);if(o<1)return"刚刚";if(o<60)return`${o} 分钟前`;const a=Math.floor(o/60);if(a<24)return`${a} 小时前`;const c=Math.floor(a/24);return c<30?`${c} 天前`:ds(t)}const Nj=["outline","entities","canvas","hooks","timeline","trash","settings"];function cy(t){const r=t.replace(/^#/,"").replace(/^\/+/,""),o=r===""?[]:r.split("/").filter(c=>c!=="");return o.length>0&&!Nj.includes(o[0])?{path:"/",segments:[],isFallback:!0}:{path:`/${o.join("/")}`,segments:o,isFallback:!1}}function jj(){const[t,r]=h.useState(()=>cy(window.location.hash));return h.useEffect(()=>{const o=()=>{const a=cy(window.location.hash);r(a),a.isFallback&&window.location.hash!=="#/"&&window.location.replace("#/")};return window.addEventListener("hashchange",o),o(),()=>window.removeEventListener("hashchange",o)},[]),t}function on(t){const r=t.startsWith("#")?t:`#${t.startsWith("/")?t:`/${t}`}`;window.location.hash!==r&&(window.location.hash=r)}const l0=(...t)=>t.filter((r,o,a)=>!!r&&r.trim()!==""&&a.indexOf(r)===o).join(" ").trim();const Tj=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const wj=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(r,o,a)=>a?a.toUpperCase():o.toLowerCase());const uy=t=>{const r=wj(t);return r.charAt(0).toUpperCase()+r.slice(1)};var Vf={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Cj=t=>{for(const r in t)if(r.startsWith("aria-")||r==="role"||r==="title")return!0;return!1},Rj=h.createContext({}),Oj=()=>h.useContext(Rj),kj=h.forwardRef(({color:t,size:r,strokeWidth:o,absoluteStrokeWidth:a,className:c="",children:d,iconNode:m,...g},b)=>{const{size:p=24,strokeWidth:y=2,absoluteStrokeWidth:x=!1,color:S="currentColor",className:j=""}=Oj()??{},N=a??x?Number(o??y)*24/Number(r??p):o??y;return h.createElement("svg",{ref:b,...Vf,width:r??p??Vf.width,height:r??p??Vf.height,stroke:t??S,strokeWidth:N,className:l0("lucide",j,c),...!d&&!Cj(g)&&{"aria-hidden":"true"},...g},[...m.map(([k,O])=>h.createElement(k,O)),...Array.isArray(d)?d:[d]])});const lt=(t,r)=>{const o=h.forwardRef(({className:a,...c},d)=>h.createElement(kj,{ref:d,iconNode:r,className:l0(`lucide-${Tj(uy(t))}`,`lucide-${t}`,a),...c}));return o.displayName=uy(t),o};const _j=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Mj=lt("arrow-up",_j);const Aj=[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]],vm=lt("book-open",Aj);const Dj=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v3",key:"otl347"}],["path",{d:"M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338",key:"7hb8p4"}],["path",{d:"M3 9h5.859",key:"numkqi"}],["path",{d:"M8 2v3",key:"1ioesn"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],zj=lt("calendar-clock",Dj);const Lj=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],i0=lt("check",Lj);const Ij=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Bj=lt("chevron-down",Ij);const Hj=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Zm=lt("chevron-right",Hj);const Uj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],Jm=lt("circle-alert",Uj);const Pj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Wm=lt("circle-check",Pj);const Yj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Vj=lt("circle",Yj);const Fj=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],Gj=lt("download",Fj);const qj=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],ep=lt("eye",qj);const $j=[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]],Xj=lt("fast-forward",$j);const Kj=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],au=lt("grip-vertical",Kj);const Qj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],c0=lt("info",Qj);const Zj=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Jj=lt("layout-grid",Zj);const Wj=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],eT=lt("list-ordered",Wj);const tT=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],nT=lt("list-tree",tT);const sT=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Yl=lt("loader-circle",sT);const rT=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Vl=lt("message-square",rT);const oT=[["path",{d:"M5 12h14",key:"1ays0h"}]],aT=lt("minus",oT);const lT=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],iT=lt("moon",lT);const cT=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],uT=lt("network",cT);const dT=[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],fT=lt("octagon-x",dT);const mT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],pT=lt("panel-left-close",mT);const hT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],gT=lt("panel-left-open",hT);const xT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],bT=lt("panel-right-close",xT);const yT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],vT=lt("panel-right-open",yT);const ST=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],ei=lt("pencil",ST);const ET=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],NT=lt("pin",ET);const jT=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],lu=lt("plus",jT);const TT=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],wT=lt("puzzle",TT);const CT=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],RT=lt("refresh-cw",CT);const OT=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],kT=lt("rotate-ccw",OT);const _T=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],MT=lt("send",_T);const AT=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],DT=lt("settings",AT);const zT=[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]],LT=lt("shapes",zT);const IT=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],u0=lt("sparkles",IT);const BT=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],HT=lt("sun",BT);const UT=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],ti=lt("trash-2",UT);const PT=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],tp=lt("triangle-alert",PT);const YT=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],VT=lt("upload",YT);const FT=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],GT=lt("wrench",FT);const qT=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],hs=lt("x",qT);function np(t){const[r,o]=h.useState(()=>window.matchMedia(t).matches);return h.useEffect(()=>{const a=window.matchMedia(t),c=d=>o(d.matches);return o(a.matches),a.addEventListener("change",c),()=>a.removeEventListener("change",c)},[t]),r}const Fl=160,sp=480,Gl=240,rp=720,$T=320,d0="ai-editor:panels",dy=1024,Sm=1440;function ql(t,r,o){return Math.round(Math.min(Math.max(t,r),o))}function Sc(t){const r=Number.isFinite(t)&&t>0?t:Sm;return{sidebarWidth:r<dy?Fl:ql(r*.1,Fl,sp),chatWidth:r<dy?Gl:ql(r*.4,Gl,rp),collapsedSidebar:!1,collapsedChat:!1}}function XT(t,r){if(!t)return Sc(r);let o;try{o=JSON.parse(t)}catch{return Sc(r)}if(typeof o!="object"||o===null||Array.isArray(o))return Sc(r);const a=o,c=a.sidebarWidth,d=a.chatWidth;return typeof c!="number"||!Number.isFinite(c)||typeof d!="number"||!Number.isFinite(d)?Sc(r):{sidebarWidth:ql(c,Fl,sp),chatWidth:ql(d,Gl,rp),collapsedSidebar:a.collapsedSidebar===!0,collapsedChat:a.collapsedChat===!0}}function fy(t){return JSON.stringify({sidebarWidth:t.sidebarWidth,chatWidth:t.chatWidth,collapsedSidebar:t.collapsedSidebar,collapsedChat:t.collapsedChat})}function KT(){if(typeof window>"u")return null;try{return window.localStorage.getItem(d0)}catch{return null}}function my(t){try{window.localStorage.setItem(d0,t)}catch{}}function QT(){if(typeof window>"u")return Sm;const t=window.innerWidth;return Number.isFinite(t)&&t>0?t:Sm}function ZT(){const[t,r]=h.useState(()=>XT(KT(),QT())),[o,a]=h.useState(null),c=np("(min-width: 1024px)"),d=h.useRef(null);h.useEffect(()=>{!c&&d.current!==null&&(d.current=null,a(null))},[c]);function m(x){const S=x.lastX-x.startX,[j,N]=x.side==="sidebar"?[Fl,sp]:[Gl,rp],k=x.side==="sidebar"?x.startWidth+S:x.startWidth-S;return ql(k,j,N)}function g(x,S){const j=x==="sidebar"?t.sidebarWidth:t.chatWidth;d.current={side:x,startX:S,startWidth:j,lastX:S},a(x)}function b(x,S){const j=d.current;if(!j||j.side!==x)return;j.lastX=S;const N=m(j);r(k=>({...k,...x==="sidebar"?{sidebarWidth:N}:{chatWidth:N}}))}function p(){const x=d.current;if(!x)return;const S=m(x);d.current=null,a(null),r(j=>{const N={...j,...x.side==="sidebar"?{sidebarWidth:S}:{chatWidth:S}};return my(fy(N)),N})}function y(x){r(S=>{const j=x==="sidebar"?{...S,collapsedSidebar:!S.collapsedSidebar}:{...S,collapsedChat:!S.collapsedChat};return my(fy(j)),j})}return{layout:t,isDesktop:c,dragSide:o,toggleCollapse:y,startResize:g,moveResize:b,endResize:p}}function f0(t){var r,o,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var c=t.length;for(r=0;r<c;r++)t[r]&&(o=f0(t[r]))&&(a&&(a+=" "),a+=o)}else for(o in t)t[o]&&(a&&(a+=" "),a+=o);return a}function m0(){for(var t,r,o=0,a="",c=arguments.length;o<c;o++)(t=arguments[o])&&(r=f0(t))&&(a&&(a+=" "),a+=r);return a}const JT=(t,r)=>{const o=new Array(t.length+r.length);for(let a=0;a<t.length;a++)o[a]=t[a];for(let a=0;a<r.length;a++)o[t.length+a]=r[a];return o},WT=(t,r)=>({classGroupId:t,validator:r}),p0=(t=new Map,r=null,o)=>({nextPart:t,validators:r,classGroupId:o}),qc="-",py=[],ew="arbitrary..",tw=t=>{const r=sw(t),{conflictingClassGroups:o,conflictingClassGroupModifiers:a}=t;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return nw(m);const g=m.split(qc),b=g[0]===""&&g.length>1?1:0;return h0(g,b,r)},getConflictingClassGroupIds:(m,g)=>{if(g){const b=a[m],p=o[m];return b?p?JT(p,b):b:p||py}return o[m]||py}}},h0=(t,r,o)=>{if(t.length-r===0)return o.classGroupId;const c=t[r],d=o.nextPart.get(c);if(d){const p=h0(t,r+1,d);if(p)return p}const m=o.validators;if(m===null)return;const g=r===0?t.join(qc):t.slice(r).join(qc),b=m.length;for(let p=0;p<b;p++){const y=m[p];if(y.validator(g))return y.classGroupId}},nw=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=t.slice(1,-1),o=r.indexOf(":"),a=r.slice(0,o);return a?ew+a:void 0})(),sw=t=>{const{theme:r,classGroups:o}=t;return rw(o,r)},rw=(t,r)=>{const o=p0();for(const a in t){const c=t[a];op(c,o,a,r)}return o},op=(t,r,o,a)=>{const c=t.length;for(let d=0;d<c;d++){const m=t[d];ow(m,r,o,a)}},ow=(t,r,o,a)=>{if(typeof t=="string"){aw(t,r,o);return}if(typeof t=="function"){lw(t,r,o,a);return}iw(t,r,o,a)},aw=(t,r,o)=>{const a=t===""?r:g0(r,t);a.classGroupId=o},lw=(t,r,o,a)=>{if(cw(t)){op(t(a),r,o,a);return}r.validators===null&&(r.validators=[]),r.validators.push(WT(o,t))},iw=(t,r,o,a)=>{const c=Object.entries(t),d=c.length;for(let m=0;m<d;m++){const[g,b]=c[m];op(b,g0(r,g),o,a)}},g0=(t,r)=>{let o=t;const a=r.split(qc),c=a.length;for(let d=0;d<c;d++){const m=a[d];let g=o.nextPart.get(m);g||(g=p0(),o.nextPart.set(m,g)),o=g}return o},cw=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,uw=t=>{if(t<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),a=Object.create(null);const c=(d,m)=>{o[d]=m,r++,r>t&&(r=0,a=o,o=Object.create(null))};return{get(d){let m=o[d];if(m!==void 0)return m;if((m=a[d])!==void 0)return c(d,m),m},set(d,m){d in o?o[d]=m:c(d,m)}}},Em="!",hy=":",dw=[],gy=(t,r,o,a,c)=>({modifiers:t,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:a,isExternal:c}),fw=t=>{const{prefix:r,experimentalParseClassName:o}=t;let a=c=>{const d=[];let m=0,g=0,b=0,p;const y=c.length;for(let k=0;k<y;k++){const O=c[k];if(m===0&&g===0){if(O===hy){d.push(c.slice(b,k)),b=k+1;continue}if(O==="/"){p=k;continue}}O==="["?m++:O==="]"?m--:O==="("?g++:O===")"&&g--}const x=d.length===0?c:c.slice(b);let S=x,j=!1;x.endsWith(Em)?(S=x.slice(0,-1),j=!0):x.startsWith(Em)&&(S=x.slice(1),j=!0);const N=p&&p>b?p-b:void 0;return gy(d,j,S,N)};if(r){const c=r+hy,d=a;a=m=>m.startsWith(c)?d(m.slice(c.length)):gy(dw,!1,m,void 0,!0)}if(o){const c=a;a=d=>o({className:d,parseClassName:c})}return a},mw=t=>{const r=new Map;return t.orderSensitiveModifiers.forEach((o,a)=>{r.set(o,1e6+a)}),o=>{const a=[];let c=[];for(let d=0;d<o.length;d++){const m=o[d],g=m[0]==="[",b=r.has(m);g||b?(c.length>0&&(c.sort(),a.push(...c),c=[]),a.push(m)):c.push(m)}return c.length>0&&(c.sort(),a.push(...c)),a}},pw=t=>({cache:uw(t.cacheSize),parseClassName:fw(t),sortModifiers:mw(t),postfixLookupClassGroupIds:hw(t),...tw(t)}),hw=t=>{const r=Object.create(null),o=t.postfixLookupClassGroups;if(o)for(let a=0;a<o.length;a++)r[o[a]]=!0;return r},gw=/\s+/,xw=(t,r)=>{const{parseClassName:o,getClassGroupId:a,getConflictingClassGroupIds:c,sortModifiers:d,postfixLookupClassGroupIds:m}=r,g=[],b=t.trim().split(gw);let p="";for(let y=b.length-1;y>=0;y-=1){const x=b[y],{isExternal:S,modifiers:j,hasImportantModifier:N,baseClassName:k,maybePostfixModifierPosition:O}=o(x);if(S){p=x+(p.length>0?" "+p:p);continue}let E=!!O,T;if(E){const L=k.substring(0,O);T=a(L);const C=T&&m[T]?a(k):void 0;C&&C!==T&&(T=C,E=!1)}else T=a(k);if(!T){if(!E){p=x+(p.length>0?" "+p:p);continue}if(T=a(k),!T){p=x+(p.length>0?" "+p:p);continue}E=!1}const _=j.length===0?"":j.length===1?j[0]:d(j).join(":"),w=N?_+Em:_,V=w+T;if(g.indexOf(V)>-1)continue;g.push(V);const M=c(T,E);for(let L=0;L<M.length;++L){const C=M[L];g.push(w+C)}p=x+(p.length>0?" "+p:p)}return p},bw=(...t)=>{let r=0,o,a,c="";for(;r<t.length;)(o=t[r++])&&(a=x0(o))&&(c&&(c+=" "),c+=a);return c},x0=t=>{if(typeof t=="string")return t;let r,o="";for(let a=0;a<t.length;a++)t[a]&&(r=x0(t[a]))&&(o&&(o+=" "),o+=r);return o},yw=(t,...r)=>{let o,a,c,d;const m=b=>{const p=r.reduce((y,x)=>x(y),t());return o=pw(p),a=o.cache.get,c=o.cache.set,d=g,g(b)},g=b=>{const p=a(b);if(p)return p;const y=xw(b,o);return c(b,y),y};return d=m,(...b)=>d(bw(...b))},vw=[],cn=t=>{const r=o=>o[t]||vw;return r.isThemeGetter=!0,r},b0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,y0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Sw=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Ew=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Nw=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,jw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Tw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ww=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Hr=t=>Sw.test(t),ft=t=>!!t&&!Number.isNaN(Number(t)),Es=t=>!!t&&Number.isInteger(Number(t)),Ff=t=>t.endsWith("%")&&ft(t.slice(0,-1)),tr=t=>Ew.test(t),v0=()=>!0,Cw=t=>Nw.test(t)&&!jw.test(t),ap=()=>!1,Rw=t=>Tw.test(t),Ow=t=>ww.test(t),kw=t=>!Fe(t)&&!qe(t),_w=t=>t.startsWith("@container")&&(t[10]==="/"&&t[11]!==void 0||t[11]==="s"&&t[16]!==void 0&&t.startsWith("-size/",10)||t[11]==="n"&&t[18]!==void 0&&t.startsWith("-normal/",10)),Mw=t=>$r(t,N0,ap),Fe=t=>b0.test(t),po=t=>$r(t,j0,Cw),xy=t=>$r(t,Uw,ft),Aw=t=>$r(t,w0,v0),Dw=t=>$r(t,T0,ap),by=t=>$r(t,S0,ap),zw=t=>$r(t,E0,Ow),Ec=t=>$r(t,C0,Rw),qe=t=>y0.test(t),wl=t=>Ro(t,j0),Lw=t=>Ro(t,T0),yy=t=>Ro(t,S0),Iw=t=>Ro(t,N0),Bw=t=>Ro(t,E0),Nc=t=>Ro(t,C0,!0),Hw=t=>Ro(t,w0,!0),$r=(t,r,o)=>{const a=b0.exec(t);return a?a[1]?r(a[1]):o(a[2]):!1},Ro=(t,r,o=!1)=>{const a=y0.exec(t);return a?a[1]?r(a[1]):o:!1},S0=t=>t==="position"||t==="percentage",E0=t=>t==="image"||t==="url",N0=t=>t==="length"||t==="size"||t==="bg-size",j0=t=>t==="length",Uw=t=>t==="number",T0=t=>t==="family-name",w0=t=>t==="number"||t==="weight",C0=t=>t==="shadow",Pw=()=>{const t=cn("color"),r=cn("font"),o=cn("text"),a=cn("font-weight"),c=cn("tracking"),d=cn("leading"),m=cn("breakpoint"),g=cn("container"),b=cn("spacing"),p=cn("radius"),y=cn("shadow"),x=cn("inset-shadow"),S=cn("text-shadow"),j=cn("drop-shadow"),N=cn("blur"),k=cn("perspective"),O=cn("aspect"),E=cn("ease"),T=cn("animate"),_=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...w(),qe,Fe],M=()=>["auto","hidden","clip","visible","scroll"],L=()=>["auto","contain","none"],C=()=>[qe,Fe,b],Q=()=>[Hr,"full","auto",...C()],ne=()=>[Es,"none","subgrid",qe,Fe],ue=()=>["auto",{span:["full",Es,qe,Fe]},Es,qe,Fe],ee=()=>[Es,"auto",qe,Fe],X=()=>["auto","min","max","fr",qe,Fe],te=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...C()],D=()=>[Hr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],Y=()=>[Hr,"screen","full","dvw","lvw","svw","min","max","fit",...C()],H=()=>[Hr,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],F=()=>[t,qe,Fe],A=()=>[...w(),yy,by,{position:[qe,Fe]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",Iw,Mw,{size:[qe,Fe]}],U=()=>[Ff,wl,po],G=()=>["","none","full",p,qe,Fe],K=()=>["",ft,wl,po],xe=()=>["solid","dashed","dotted","double"],se=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],le=()=>[ft,Ff,yy,by],He=()=>["","none",N,qe,Fe],ze=()=>["none",ft,qe,Fe],Re=()=>["none",ft,qe,Fe],Ue=()=>[ft,qe,Fe],ge=()=>[Hr,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[tr],breakpoint:[tr],color:[v0],container:[tr],"drop-shadow":[tr],ease:["in","out","in-out"],font:[kw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[tr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[tr],shadow:[tr],spacing:["px",ft],text:[tr],"text-shadow":[tr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Hr,Fe,qe,O]}],container:["container"],"container-type":[{"@container":["","normal","size",qe,Fe]}],"container-named":[_w],columns:[{columns:[ft,Fe,qe,g]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:V()}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Q()}],"inset-x":[{"inset-x":Q()}],"inset-y":[{"inset-y":Q()}],start:[{"inset-s":Q(),start:Q()}],end:[{"inset-e":Q(),end:Q()}],"inset-bs":[{"inset-bs":Q()}],"inset-be":[{"inset-be":Q()}],top:[{top:Q()}],right:[{right:Q()}],bottom:[{bottom:Q()}],left:[{left:Q()}],visibility:["visible","invisible","collapse"],z:[{z:[Es,"auto",qe,Fe]}],basis:[{basis:[Hr,"full","auto",g,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ft,Hr,"auto","initial","none",Fe]}],grow:[{grow:["",ft,qe,Fe]}],shrink:[{shrink:["",ft,qe,Fe]}],order:[{order:[Es,"first","last","none",qe,Fe]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:ue()}],"col-start":[{"col-start":ee()}],"col-end":[{"col-end":ee()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:ue()}],"row-start":[{"row-start":ee()}],"row-end":[{"row-end":ee()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":X()}],"auto-rows":[{"auto-rows":X()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...te(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...te()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":te()}],"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:z()}],mx:[{mx:z()}],my:[{my:z()}],ms:[{ms:z()}],me:[{me:z()}],mbs:[{mbs:z()}],mbe:[{mbe:z()}],mt:[{mt:z()}],mr:[{mr:z()}],mb:[{mb:z()}],ml:[{ml:z()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],"inline-size":[{inline:["auto",...Y()]}],"min-inline-size":[{"min-inline":["auto",...Y()]}],"max-inline-size":[{"max-inline":["none",...Y()]}],"block-size":[{block:["auto",...H()]}],"min-block-size":[{"min-block":["auto",...H()]}],"max-block-size":[{"max-block":["none",...H()]}],w:[{w:[g,"screen",...D()]}],"min-w":[{"min-w":[g,"screen","none",...D()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[m]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",o,wl,po]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Hw,Aw]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ff,Fe]}],"font-family":[{font:[Lw,Dw,r]}],"font-features":[{"font-features":[Fe]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,qe,Fe]}],"line-clamp":[{"line-clamp":[ft,"none",qe,xy]}],leading:[{leading:[d,...C()]}],"list-image":[{"list-image":["none",qe,Fe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",qe,Fe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:F()}],"text-color":[{text:F()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...xe(),"wavy"]}],"text-decoration-thickness":[{decoration:[ft,"from-font","auto",qe,po]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[ft,"auto",qe,Fe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"tab-size":[{tab:[Es,qe,Fe]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",qe,Fe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",qe,Fe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:A()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Es,qe,Fe],radial:["",qe,Fe],conic:[Es,qe,Fe]},Bw,zw]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from: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:K()}],"border-w-x":[{"border-x":K()}],"border-w-y":[{"border-y":K()}],"border-w-s":[{"border-s":K()}],"border-w-e":[{"border-e":K()}],"border-w-bs":[{"border-bs":K()}],"border-w-be":[{"border-be":K()}],"border-w-t":[{"border-t":K()}],"border-w-r":[{"border-r":K()}],"border-w-b":[{"border-b":K()}],"border-w-l":[{"border-l":K()}],"divide-x":[{"divide-x":K()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":K()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...xe(),"hidden","none"]}],"divide-style":[{divide:[...xe(),"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:[...xe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ft,qe,Fe]}],"outline-w":[{outline:["",ft,wl,po]}],"outline-color":[{outline:F()}],shadow:[{shadow:["","none",y,Nc,Ec]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":["none",x,Nc,Ec]}],"inset-shadow-color":[{"inset-shadow":F()}],"ring-w":[{ring:K()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:F()}],"ring-offset-w":[{"ring-offset":[ft,po]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":K()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":["none",S,Nc,Ec]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[ft,qe,Fe]}],"mix-blend":[{"mix-blend":[...se(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":se()}],"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":le()}],"mask-image-linear-to-pos":[{"mask-linear-to":le()}],"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":le()}],"mask-image-t-to-pos":[{"mask-t-to":le()}],"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":le()}],"mask-image-r-to-pos":[{"mask-r-to":le()}],"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":le()}],"mask-image-b-to-pos":[{"mask-b-to":le()}],"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":le()}],"mask-image-l-to-pos":[{"mask-l-to":le()}],"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":le()}],"mask-image-x-to-pos":[{"mask-x-to":le()}],"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":le()}],"mask-image-y-to-pos":[{"mask-y-to":le()}],"mask-image-y-from-color":[{"mask-y-from":F()}],"mask-image-y-to-color":[{"mask-y-to":F()}],"mask-image-radial":[{"mask-radial":[qe,Fe]}],"mask-image-radial-from-pos":[{"mask-radial-from":le()}],"mask-image-radial-to-pos":[{"mask-radial-to":le()}],"mask-image-radial-from-color":[{"mask-radial-from":F()}],"mask-image-radial-to-color":[{"mask-radial-to":F()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[ft]}],"mask-image-conic-from-pos":[{"mask-conic-from":le()}],"mask-image-conic-to-pos":[{"mask-conic-to":le()}],"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",qe,Fe]}],filter:[{filter:["","none",qe,Fe]}],blur:[{blur:He()}],brightness:[{brightness:[ft,qe,Fe]}],contrast:[{contrast:[ft,qe,Fe]}],"drop-shadow":[{"drop-shadow":["","none",j,Nc,Ec]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:["",ft,qe,Fe]}],"hue-rotate":[{"hue-rotate":[ft,qe,Fe]}],invert:[{invert:["",ft,qe,Fe]}],saturate:[{saturate:[ft,qe,Fe]}],sepia:[{sepia:["",ft,qe,Fe]}],"backdrop-filter":[{"backdrop-filter":["","none",qe,Fe]}],"backdrop-blur":[{"backdrop-blur":He()}],"backdrop-brightness":[{"backdrop-brightness":[ft,qe,Fe]}],"backdrop-contrast":[{"backdrop-contrast":[ft,qe,Fe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ft,qe,Fe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ft,qe,Fe]}],"backdrop-invert":[{"backdrop-invert":["",ft,qe,Fe]}],"backdrop-opacity":[{"backdrop-opacity":[ft,qe,Fe]}],"backdrop-saturate":[{"backdrop-saturate":[ft,qe,Fe]}],"backdrop-sepia":[{"backdrop-sepia":["",ft,qe,Fe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",qe,Fe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ft,"initial",qe,Fe]}],ease:[{ease:["linear","initial",E,qe,Fe]}],delay:[{delay:[ft,qe,Fe]}],animate:[{animate:["none",T,qe,Fe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,qe,Fe]}],"perspective-origin":[{"perspective-origin":V()}],rotate:[{rotate:ze()}],"rotate-x":[{"rotate-x":ze()}],"rotate-y":[{"rotate-y":ze()}],"rotate-z":[{"rotate-z":ze()}],scale:[{scale:Re()}],"scale-x":[{"scale-x":Re()}],"scale-y":[{"scale-y":Re()}],"scale-z":[{"scale-z":Re()}],"scale-3d":["scale-3d"],skew:[{skew:Ue()}],"skew-x":[{"skew-x":Ue()}],"skew-y":[{"skew-y":Ue()}],transform:[{transform:[qe,Fe,"","none","gpu","cpu"]}],"transform-origin":[{origin:V()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ge()}],"translate-x":[{"translate-x":ge()}],"translate-y":[{"translate-y":ge()}],"translate-z":[{"translate-z":ge()}],"translate-none":["translate-none"],zoom:[{zoom:[Es,qe,Fe]}],accent:[{accent:F()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:F()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",qe,Fe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":F()}],"scrollbar-track-color":[{"scrollbar-track":F()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",qe,Fe]}],fill:[{fill:["none",...F()]}],"stroke-w":[{stroke:[ft,wl,po,xy]}],stroke:[{stroke:["none",...F()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Yw=yw(Pw);function Ne(...t){return Yw(m0(t))}const Dl="flex shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",zl={bar:"h-8 w-6",sm:"size-7",md:"size-8"},Vw="disabled:pointer-events-none disabled:opacity-50",Xn="rounded-md border border-border bg-background px-3 py-1.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",ni="rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",_t="animate-pulse rounded bg-muted",Fw="rounded-xl border border-border bg-card p-4",vy=t=>{let r;const o=new Set,a=(p,y)=>{const x=typeof p=="function"?p(r):p;if(!Object.is(x,r)){const S=r;r=y??(typeof x!="object"||x===null)?x:Object.assign({},r,x),o.forEach(j=>j(r,S))}},c=()=>r,g={setState:a,getState:c,getInitialState:()=>b,subscribe:p=>(o.add(p),()=>o.delete(p))},b=r=t(a,c,g);return g},Gw=(t=>t?vy(t):vy),qw=t=>t;function $w(t,r=qw){const o=Be.useSyncExternalStore(t.subscribe,Be.useCallback(()=>r(t.getState()),[t,r]),Be.useCallback(()=>r(t.getInitialState()),[t,r]));return Be.useDebugValue(o),o}const Sy=t=>{const r=Gw(t),o=a=>$w(r,a);return Object.assign(o,r),o},lp=(t=>t?Sy(t):Sy),Xw="/api/v1",ut="CLIENT_NETWORK_ERROR";class De extends Error{code;constructor(r,o){super(o),this.name="ApiError",this.code=r}}function Kw(t){const r=new URLSearchParams;for(const[a,c]of Object.entries(t))c!=null&&r.set(a,String(c));const o=r.toString();return o?`?${o}`:""}function R0(t,r){const o=t.startsWith("/")?t:`/${t}`;return`${Xw}${o}${Kw(r??{})}`}function Qw(t){return typeof t=="object"&&t!==null&&t.success===!0}function O0(t){if(typeof t!="object"||t===null)return!1;const r=t.error;return t.success===!1&&typeof r=="object"&&r!==null&&typeof r.code=="string"&&typeof r.message=="string"}async function it(t,r={}){const{method:o="GET",body:a,query:c,headers:d,signal:m}=r;let g;try{g=await fetch(R0(t,c),{method:o,headers:a===void 0||a instanceof FormData?d:{"Content-Type":"application/json",...d},body:a===void 0?void 0:a instanceof FormData?a:JSON.stringify(a),signal:m})}catch(p){throw new De(ut,p instanceof Error?p.message:"网络请求失败")}const b=await g.json().catch(()=>null);if(Qw(b))return b.data;throw O0(b)?new De(b.error.code,b.error.message):new De(ut,`非预期响应(HTTP ${g.status})`)}function Zw(){return it("/project/config")}function Jw(t){return it("/project/config",{method:"PUT",body:t})}function Ww(){return it("/outline")}function e2(t){return it("/outline",{method:"POST",body:t})}function k0(t,r){return it(`/outline/${t}`,{method:"PUT",body:r})}function Ey(t,r){return it(`/outline/${t}/move`,{method:"PUT",body:r})}function t2(t){return it(`/outline/${t}`,{method:"DELETE"})}function n2(){return it("/trash")}function s2(t,r){return it(`/trash/entity/${t}/${r}/restore`,{method:"POST"})}function r2(t,r){return it(`/trash/entity/${t}/${r}`,{method:"DELETE"})}function Ny(t){return it(`/trash/outline/${t}/restore`,{method:"POST"})}function o2(t){return it(`/trash/outline/${t}`,{method:"DELETE"})}function jn(t,r={}){return it(`/entity/${t}`,{query:r})}function bo(t,r){return it(`/entity/${t}/${r}`)}function $c(t,r){return it(`/entity/${t}`,{method:"POST",body:r})}function No(t,r,o){return it(`/entity/${t}/${r}`,{method:"PUT",body:o})}function iu(t,r){return it(`/entity/${t}/${r}`,{method:"DELETE"})}function a2(t,r){return it(`/entity/event/${t}/move`,{method:"PUT",body:r})}function l2(t,r){return it(`/entity/timepoint/${t}/move`,{method:"PUT",body:r})}function _0(t,r){return it(`/entity/event/${t}/move_to`,{method:"POST",body:r})}function Fr(t){return it("/relation",{query:{source_type:t.source_type,source_id:t.source_id,target_type:t.target_type,target_id:t.target_id,relation_type:t.relation_type,depth:t.depth}})}function cr(t){return it("/relation",{method:"POST",body:t})}function Ca(t){return it(`/relation/${t}`,{method:"DELETE"})}function i2(t,r){return it(`/relation/${t}`,{method:"PUT",body:{metadata:r}})}function c2(t){return it(`/delta/node/${t}`)}function u2(t){return it("/delta/compute",{method:"POST",body:t})}function ip(t){return it("/delta",{method:"POST",body:t})}function d2(){return it("/project/list")}function f2(t,r){return it("/project/create",{method:"POST",body:{path:t,...r!==void 0?{config:r}:{}}})}function m2(t){return it("/project/open",{method:"POST",body:{path:t}})}function p2(){return it("/project/close",{method:"POST"})}function h2(t){if(t!==null){const r=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(t);if(r)try{return decodeURIComponent(r[1])}catch{}const o=/filename\s*=\s*"?([^";]+)"?/i.exec(t);if(o)return o[1]}return"project.zip"}async function g2(){let t;try{t=await fetch(R0("/project/export"))}catch(o){throw new De(ut,o instanceof Error?o.message:"网络请求失败")}const r=t.headers.get("content-type")??"";if(t.ok&&(r.includes("zip")||r.includes("octet-stream")))return{blob:await t.blob(),filename:h2(t.headers.get("content-disposition"))};if(r.includes("application/json")){const o=await t.json().catch(()=>null);if(O0(o))throw new De(o.error.code,o.error.message)}throw new De(ut,`非预期响应(HTTP ${t.status})`)}async function x2(t,r){const o=new FormData;return o.append("file",t,"backup.zip"),o.append("name",r),it("/project/import",{method:"POST",body:o})}function b2(){return it("/project/backups")}function y2(t){return it("/project/backup",{method:"POST",...t!==void 0?{body:{name:t}}:{}})}function v2(t){return it("/project/backup/restore",{method:"POST",body:{fileName:t}})}function S2(t,r){const o=r?.trim()??"";return it("/project/backup/rename",{method:"POST",body:{fileName:t,name:o}})}function E2(t){return it("/project/rename",{method:"POST",body:{name:t}})}function N2(){return it("/settings/llm")}function Gf(t){return it("/settings/llm",{method:"PUT",body:t})}function j2(){return it("/chat/sessions").then(t=>t.sessions)}function T2(t){return it(`/chat/sessions/${t}/messages`)}function w2(t){return it(`/proposal/${t}/confirm`,{method:"POST"})}function C2(t){return it(`/proposal/${t}/reject`,{method:"POST"})}const Nm=3e3;let R2=0;const Oe=lp((t,r)=>({error:null,showError:(o,a)=>t({error:{code:o,message:a}}),clearError:()=>t({error:null}),toast:null,showToast:(o,a="success")=>{const c=++R2;t({toast:{id:c,kind:a,text:o}}),setTimeout(()=>{t(d=>d.toast?.id===c?{toast:null}:{})},Nm)},clearToast:()=>t({toast:null}),confirmState:null,confirm:o=>new Promise(a=>{t({confirmState:{...o,resolve:a}})}),resolveConfirm:o=>{const a=r().confirmState;a&&(a.resolve(o),t({confirmState:null}))},focusOutlineNodeId:null,setFocusOutlineNode:o=>t({focusOutlineNodeId:o}),clearFocusOutlineNode:()=>t({focusOutlineNodeId:null}),dataVersion:0,notifyDataChanged:()=>t(o=>({dataVersion:o.dataVersion+1}))})),Pe=lp((t,r)=>({config:null,configLoading:!1,loadError:null,outline:null,outlineLoading:!1,bookshelf:null,bookshelfLoading:!1,bookshelfError:null,loadConfig:async()=>{if(!r().configLoading){t({configLoading:!0});try{const o=await Zw();t({config:o,loadError:null})}catch(o){const a=o instanceof De?o.code:"CLIENT_NETWORK_ERROR";t({config:null,loadError:a})}finally{t({configLoading:!1})}}},updateConfig:async o=>{await Jw(o),await r().loadConfig()},loadOutline:async()=>{if(!r().outlineLoading){t({outlineLoading:!0});try{const o=await Ww();t({outline:o})}catch{t({outline:null})}finally{t({outlineLoading:!1})}}},loadBookshelf:async()=>{if(!r().bookshelfLoading){t({bookshelfLoading:!0});try{const o=await d2();t({bookshelf:o,bookshelfError:null})}catch(o){const a=o instanceof De?o.code:"CLIENT_NETWORK_ERROR";t({bookshelf:null,bookshelfError:a})}finally{t({bookshelfLoading:!1})}}},openProjectAt:async o=>{const a=await m2(o);t({config:a.config,loadError:null}),Oe.getState().clearFocusOutlineNode(),a.rebuilt?Oe.getState().showToast(`项目已按新版本重建${a.fromVersion!==void 0?`(v${a.fromVersion})`:""},备份已保留`):a.migrated&&Oe.getState().showToast(`项目数据已自动升级${a.fromVersion!==void 0?`(v${a.fromVersion} → 当前版本)`:""},快照已保留`),await r().loadOutline()},createProjectAt:async(o,a)=>{await f2(o,a),await r().openProjectAt(o)},closeProject:async()=>{await p2(),t({config:null,loadError:null,outline:null}),Oe.getState().clearFocusOutlineNode()}}));function M0(t,r){if(t.id===r)return t;if("children"in t&&t.children)for(const o of t.children){const a=M0(o,r);if(a)return a}return null}function A0(t,r){if(!t||!r)return null;for(const o of t.children){const a=M0(o,r);if(a)return a.title}return null}function D0(t,r){return`${t.replace(/\/+$/,"")}/books/${r.trim()}`}const O2="[DONE]",k2=6e4;function _2(t){const r=[];let o=t,a;for(;(a=o.indexOf(`
|
|
10
|
-
|
|
11
|
-
`))!==-1;)r.push(o.slice(0,a)),o=o.slice(a+2);return{frames:r,rest:o}}function jy(t){let r="message";const o=[];for(const a of t.split(`
|
|
12
|
-
`))if(!(a===""||a.startsWith(":"))){if(a.startsWith("event:"))r=a.slice(6).trim();else if(a.startsWith("data:")){let c=a.slice(5);c.startsWith(" ")&&(c=c.slice(1)),o.push(c)}}return o.length===0?null:{event:r,data:o.join(`
|
|
13
|
-
`)}}function Ty(t){if(typeof t!="object"||t===null)return!1;const r=t.error;return typeof r=="object"&&r!==null&&typeof r.code=="string"&&typeof r.message=="string"}function M2(t,r){const{onEvent:o,timeoutMs:a=k2,onTimeout:c,onEnd:d,signal:m,body:g}=r,b=new AbortController,p=()=>b.abort();m&&(m.aborted?b.abort():m.addEventListener("abort",p));let y="",x=!1,S=!1,j=!1,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)},T=_=>{if(_.data===O2)return!1;let w=_.data;try{w=JSON.parse(_.data)}catch{}return o(_.event,w),_.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=Ty(M)?M.error.code:ut,C=Ty(M)?M.error.message:`SSE 请求失败(HTTP ${_.status})`;x=!0,N=!0,o("error",{code:L,message:C});return}const w=_.body.getReader(),V=new TextDecoder;for(;!x;){const{done:M,value:L}=await w.read();if(M)break;y=(y+V.decode(L,{stream:!0})).replace(/\r\n/g,`
|
|
14
|
-
`);const{frames:C,rest:Q}=_2(y);y=Q;for(const ne of C){const ue=jy(ne);if(ue){if(!T(ue)){x=!0;break}E()}}}if(!x&&y.trim()!==""){const M=jy(y.trim());M&&!T(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&&d?.()}})(),()=>{x||(j=!0,x=!0,O(),b.abort())}}function A2(t,r){return r.includes("HTTP 404")?"聊天服务暂不可用":t==="CLIENT_NETWORK_ERROR"&&!r.includes("HTTP ")?"连接失败,请确认服务已启动":r}function D2(t,r){switch(t){case"INTERNAL_ERROR":return"提案执行失败,请让 AI 重新生成提案";case"CLIENT_NETWORK_ERROR":return"网络请求失败,请重试";default:return r}}let ba=0,ya=0,wy=0,ho=null,Ns=null,va=null;const St=lp((t,r)=>{const o=async(a,c,d)=>{const m=r().proposals.find(g=>g.proposalId===a);if(!(!m||m.status!=="pending"||m.processing===!0)){t(g=>({proposals:g.proposals.map(b=>b.proposalId===a?{...b,processing:!0}:b)}));try{await c(a),t(g=>({proposals:g.proposals.map(b=>b.proposalId===a?{...b,status:d,processing:!1}:b)})),d==="confirmed"&&Oe.getState().notifyDataChanged()}catch(g){const b=g instanceof De?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:Oe.getState().showToast(D2(b,p),"error"),t(y=>({proposals:y.proposals.map(x=>x.proposalId===a?{...x,processing:!1}:x)}));return}}}};return{sessions:null,sessionsLoading:!1,sessionsError:null,currentSessionId:null,messages:[],messagesLoading:!1,loadSessions:async()=>{if(r().sessionsLoading)return;const a=++ba;t({sessionsLoading:!0});try{const c=await j2();if(a!==ba)return;t({sessions:c,sessionsError:null}),r().currentSessionId===null&&c.length>0&&r().setCurrentSession(c[0].id)}catch(c){if(a!==ba)return;const d=c instanceof De?c.code:"CLIENT_NETWORK_ERROR";t({sessions:null,sessionsError:d})}finally{a===ba&&t({sessionsLoading:!1})}},setCurrentSession:a=>{a!==r().currentSessionId&&(ya++,ho?.(),ho=null,Ns=null,va=null,t({currentSessionId:a,messages:[],messagesLoading:!1,streaming:!1,streamError:null,disconnected:!1,focusContext:null,proposals:[],streamTools:[]}),a!==null&&r().loadMessages(a))},newSession:()=>{ba++,r().setCurrentSession(null)},clearSessions:()=>{ba++,ya++,ho?.(),ho=null,Ns=null,va=null,t({sessions:null,sessionsLoading:!1,sessionsError:null,currentSessionId:null,messages:[],messagesLoading:!1,streaming:!1,streamError:null,disconnected:!1,focusContext:null,proposals:[],streamTools:[]})},loadMessages:async a=>{const c=++ya;t({messagesLoading:!0});try{const d=await T2(a);if(c!==ya)return;const m=d.messages.map(g=>({...g,sessionId:d.sessionId}));t({messages:m})}catch{if(c!==ya)return;t({messages:[]})}finally{c===ya&&t({messagesLoading:!1})}},streaming:!1,streamError:null,setStreamError:a=>t({streamError:a}),focusContext:null,setFocusContext:a=>t({focusContext:a}),clearFocusContext:()=>t({focusContext:null}),disconnected:!1,setDisconnected:a=>t({disconnected:a}),proposals:[],streamTools:[],sendMessage:a=>{const{streaming:c,messagesLoading:d,currentSessionId:m,focusContext:g}=r(),b=a.trim();if(!b||c||d)return;ho?.(),ho=null;const p=new Date().toISOString(),y=m??"",x=`local-${++wy}`;Ns=x,va=b,t(j=>({messages:[...j.messages,{id:`local-${++wy}`,sessionId:y,role:"user",content:b,createdAt:p},{id:x,sessionId:y,role:"assistant",content:"",createdAt:p}],streaming:!0,streamError:null,disconnected:!1,proposals:[],streamTools:[]}));const S={message:b};m&&(S.session_id=m),g&&(S.context=g),ho=M2("/api/v1/chat",{body:S,onEvent:(j,N)=>{switch(j){case"ping":break;case"text":{const k=N?.delta??"";Ns&&t(O=>({messages:O.messages.map(E=>E.id===Ns?{...E,content:(E.content??"")+k}:E)}));break}case"tool_call":{const{tool:k,args:O,id:E}=N;if(!E||!k)break;t(T=>({streamTools:[...T.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(T=>({proposals:[...T.proposals,{proposalId:k,type:O,preview:E,status:"pending"}]}));break}case"done":{if(Ns===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:A2(k??"",O??"")});break}}},onTimeout:()=>{Ns===x&&(Ns=null,t({streaming:!1,disconnected:!0,proposals:[],streamTools:[]}))},onEnd:()=>{Ns===x&&(Ns=null,t(j=>j.streaming?{streaming:!1}:{}))}})},resendLast:()=>{const{messages:a,streaming:c}=r();if(c||!va)return;let d=a;d[d.length-1]?.role==="assistant"&&(d=d.slice(0,-1));const g=d[d.length-1];g?.role==="user"&&g.content===va&&(d=d.slice(0,-1)),t({messages:d}),r().sendMessage(va)},confirmProposal:a=>o(a,w2,"confirmed"),rejectProposal:a=>o(a,C2,"rejected")}});let Cy=Pe.getState().config?.id??null;Pe.subscribe(t=>{const r=t.config?.id??null;r!==Cy&&(Cy=r,St.getState().clearSessions(),r!==null&&St.getState().loadSessions())});function cu(){return typeof window<"u"}function Sn(t){return cp(t)?(t.nodeName||"").toLowerCase():"#document"}function Zt(t){var r;return(t==null||(r=t.ownerDocument)==null?void 0:r.defaultView)||window}function mr(t){var r;return(r=(cp(t)?t.ownerDocument:t.document)||window.document)==null?void 0:r.documentElement}function cp(t){return cu()?t instanceof Node||t instanceof Zt(t).Node:!1}function vt(t){return cu()?t instanceof Element||t instanceof Zt(t).Element:!1}function Vt(t){return cu()?t instanceof HTMLElement||t instanceof Zt(t).HTMLElement:!1}function _a(t){return!cu()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Zt(t).ShadowRoot}function Oo(t){const{overflow:r,overflowX:o,overflowY:a,display:c}=Kn(t);return/auto|scroll|overlay|hidden|clip/.test(r+a+o)&&c!=="inline"&&c!=="contents"}function z2(t){return/^(table|td|th)$/.test(Sn(t))}function uu(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const L2=/transform|translate|scale|rotate|perspective|filter/,I2=/paint|layout|strict|content/,go=t=>!!t&&t!=="none";let qf;function up(t){const r=vt(t)?Kn(t):t;return go(r.transform)||go(r.translate)||go(r.scale)||go(r.rotate)||go(r.perspective)||!dp()&&(go(r.backdropFilter)||go(r.filter))||L2.test(r.willChange||"")||I2.test(r.contain||"")}function B2(t){let r=ur(t);for(;Vt(r)&&!rr(r);){if(up(r))return r;if(uu(r))return null;r=ur(r)}return null}function dp(){return qf==null&&(qf=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),qf}function rr(t){return/^(html|body|#document)$/.test(Sn(t))}function Kn(t){return Zt(t).getComputedStyle(t)}function du(t){return vt(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function ur(t){if(Sn(t)==="html")return t;const r=t.assignedSlot||t.parentNode||_a(t)&&t.host||mr(t);return _a(r)?r.host:r}function z0(t){const r=ur(t);return rr(r)?(t.ownerDocument||t).body:Vt(r)&&Oo(r)?r:z0(r)}function $l(t,r,o){var a;r===void 0&&(r=[]),o===void 0&&(o=!0);const c=z0(t),d=c===((a=t.ownerDocument)==null?void 0:a.body),m=Zt(c);if(d){const g=jm(m);return r.concat(m,m.visualViewport||[],Oo(c)?c:[],g&&o?$l(g):[])}else return r.concat(c,$l(c,[],o))}function jm(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}const fp={...pj},Ry={};function In(t,r){const o=h.useRef(Ry);return o.current===Ry&&(o.current=t(r)),o}const $f=fp.useInsertionEffect,H2=$f&&$f!==fp.useLayoutEffect?$f:t=>t();function st(t){const r=In(U2).current;return r.next=t,H2(r.effect),r.trampoline}function U2(){const t={next:void 0,callback:P2,trampoline:(...r)=>t.callback?.(...r),effect:()=>{t.callback=t.next}};return t}function P2(){}const Y2=()=>{},Qe=typeof document<"u"?h.useLayoutEffect:Y2;function Tm(t,r){if(t&&!r)return t;if(!t&&r)return r;if(t||r)return{...t,...r}}const mp={};function or(t,r,o,a,c){if(!o&&!a&&!c&&!t)return Xc(r);let d=Xc(t);return r&&(d=Ll(d,r)),o&&(d=Ll(d,o)),a&&(d=Ll(d,a)),c&&(d=Ll(d,c)),d}function V2(t){if(t.length===0)return mp;if(t.length===1)return Xc(t[0]);let r=Xc(t[0]);for(let o=1;o<t.length;o+=1)r=Ll(r,t[o]);return r}function Xc(t){return pp(t)?{...I0(t,mp)}:F2(t)}function Ll(t,r){return pp(r)?I0(r,t):G2(t,r)}function F2(t){const r={...t};for(const o in r){const a=r[o];L0(o,a)&&(r[o]=B0(a))}return r}function G2(t,r){if(!r)return t;for(const o in r){const a=r[o];switch(o){case"style":{t[o]=Tm(t.style,a);break}case"className":{t[o]=H0(t.className,a);break}default:L0(o,a)?t[o]=q2(t[o],a):t[o]=a}}return t}function L0(t,r){const o=t.charCodeAt(0),a=t.charCodeAt(1),c=t.charCodeAt(2);return o===111&&a===110&&c>=65&&c<=90&&(typeof r=="function"||typeof r>"u")}function pp(t){return typeof t=="function"}function I0(t,r){return pp(t)?t(r):t??mp}function q2(t,r){return r?t?(...o)=>{const a=o[0];if(U0(a)){const d=a;Kc(d);const m=r(...o);return d.baseUIHandlerPrevented||t?.(...o),m}const c=r(...o);return t?.(...o),c}:B0(r):t}function B0(t){return t&&((...r)=>{const o=r[0];return U0(o)&&Kc(o),t(...r)})}function Kc(t){return t.preventBaseUIHandler=()=>{t.baseUIHandlerPrevented=!0},t}function H0(t,r){return r?t?r+" "+t:r:t}function U0(t){return t!=null&&typeof t=="object"&&"nativeEvent"in t}function $2(t,r){return function(a,...c){const d=new URL(t);return d.searchParams.set("code",a.toString()),c.forEach(m=>d.searchParams.append("args[]",m)),`${r} error #${a}; visit ${d} for the full message.`}}const Tn=$2("https://base-ui.com/production-error","Base UI"),X2=h.createContext(void 0);function hp(t=!1){const r=h.useContext(X2);if(r===void 0&&!t)throw new Error(Tn(16));return r}function K2(t){const{focusableWhenDisabled:r,disabled:o,composite:a=!1,tabIndex:c=0,isNativeButton:d}=t,m=a&&r!==!1,g=a&&r===!1;return{props:h.useMemo(()=>{const p={onKeyDown(y){o&&r&&y.key!=="Tab"&&y.preventDefault()}};return a||(p.tabIndex=c,!d&&o&&(p.tabIndex=r?c:-1)),(d&&(r||m)||!d&&o)&&(p["aria-disabled"]=o),d&&(!r||g)&&(p.disabled=o),p},[a,o,r,m,g,d,c])}}function si(t={}){const{disabled:r=!1,focusableWhenDisabled:o,tabIndex:a=0,native:c=!0,composite:d}=t,m=h.useRef(null),g=hp(!0),b=d??g!==void 0,{props:p}=K2({focusableWhenDisabled:o,disabled:r,composite:b,tabIndex:a,isNativeButton:c}),y=h.useCallback(()=>{const j=m.current;Xf(j)&&b&&r&&p.disabled===void 0&&j.disabled&&(j.disabled=!1)},[r,p.disabled,b]);Qe(y,[y]);const x=h.useCallback((j={})=>{const{onClick:N,onMouseDown:k,onKeyUp:O,onKeyDown:E,onPointerDown:T,..._}=j;return or({onClick(w){if(r){w.preventDefault();return}N?.(w)},onMouseDown(w){r||k?.(w)},onKeyDown(w){if(r||(Kc(w),E?.(w),w.baseUIHandlerPrevented))return;const V=w.target===w.currentTarget,M=w.currentTarget,L=Xf(M),C=!c&&Q2(M),Q=V&&(c?L:!C),ne=w.key==="Enter",ue=w.key===" ",ee=M.getAttribute("role"),X=ee?.startsWith("menuitem")||ee==="option"||ee==="gridcell";if(V&&b&&ue){if(w.defaultPrevented&&X)return;w.preventDefault(),C||c&&L?(M.click(),w.preventBaseUIHandler()):Q&&(N?.(w),w.preventBaseUIHandler());return}Q&&(!c&&(ue||ne)&&w.preventDefault(),!c&&ne&&N?.(w))},onKeyUp(w){if(!r){if(Kc(w),O?.(w),w.target===w.currentTarget&&c&&b&&Xf(w.currentTarget)&&w.key===" "){w.preventDefault();return}w.baseUIHandlerPrevented||w.target===w.currentTarget&&!c&&!b&&w.key===" "&&N?.(w)}},onPointerDown(w){if(r){w.preventDefault();return}T?.(w)}},c?{type:"button"}:{role:"button"},p,_)},[r,p,b,c]),S=st(j=>{m.current=j,y()});return{getButtonProps:x,buttonRef:S}}function Xf(t){return Vt(t)&&t.tagName==="BUTTON"}function Q2(t){return!!(t?.tagName==="A"&&t?.href)}function Ma(t,r,o,a){const c=In(P0).current;return J2(c,t,r,o,a)&&Y0(c,[t,r,o,a]),c.callback}function Z2(t){const r=In(P0).current;return W2(r,t)&&Y0(r,t),r.callback}function P0(){return{callback:null,cleanup:null,refs:[]}}function J2(t,r,o,a,c){return t.refs[0]!==r||t.refs[1]!==o||t.refs[2]!==a||t.refs[3]!==c}function W2(t,r){return t.refs.length!==r.length||t.refs.some((o,a)=>o!==r[a])}function Y0(t,r){if(t.refs=r,r.every(o=>o==null)){t.callback=null;return}t.callback=o=>{if(t.cleanup&&(t.cleanup(),t.cleanup=null),o!=null){const a=Array(r.length).fill(null);for(let c=0;c<r.length;c+=1){const d=r[c];if(d!=null)switch(typeof d){case"function":{const m=d(o);typeof m=="function"&&(a[c]=m);break}case"object":{d.current=o;break}}}t.cleanup=()=>{for(let c=0;c<r.length;c+=1){const d=r[c];if(d!=null)switch(typeof d){case"function":{const m=a[c];typeof m=="function"?m():d(null);break}case"object":{d.current=null;break}}}}}}}const eC=parseInt(h.version,10);function gp(t){return eC>=t}function Oy(t){if(!h.isValidElement(t))return null;const r=t,o=r.props;return(gp(19)?o?.ref:r.ref)??null}function mn(){}const Qc=Object.freeze([]),Ft=Object.freeze({});function tC(t,r){const o={};for(const a in t){const c=t[a];if(r?.hasOwnProperty(a)){const d=r[a](c);d!=null&&Object.assign(o,d);continue}c===!0?o[`data-${a.toLowerCase()}`]="":c&&(o[`data-${a.toLowerCase()}`]=c.toString())}return o}function nC(t,r){return typeof t=="function"?t(r):t}function sC(t,r){return typeof t=="function"?t(r):t}function hn(t,r,o={}){const a=r.render,c=rC(r,o);if(o.enabled===!1)return null;const d=o.state??Ft;return lC(t,a,c,d)}function rC(t,r={}){const{className:o,style:a,render:c}=t,{state:d=Ft,ref:m,props:g,stateAttributesMapping:b,enabled:p=!0}=r,y=p?nC(o,d):void 0,x=p?sC(a,d):void 0,S=p?tC(d,b):Ft,j=p&&g?oC(g):void 0,N=p?Tm(S,j)??{}:Ft;return typeof document<"u"&&(p?Array.isArray(m)?N.ref=Z2([N.ref,Oy(c),...m]):N.ref=Ma(N.ref,Oy(c),m):Ma(null,null)),p?(y!==void 0&&(N.className=H0(N.className,y)),x!==void 0&&(N.style=Tm(N.style,x)),N):Ft}function oC(t){return Array.isArray(t)?V2(t):or(void 0,t)}const aC=Symbol.for("react.lazy");function lC(t,r,o,a){if(r){if(typeof r=="function")return r(o,a);const c=or(o,r.props);c.ref=o.ref;let d=r;return d?.$$typeof===aC&&(d=h.Children.toArray(r)[0]),h.cloneElement(d,c)}if(t&&typeof t=="string")return iC(t,o);throw new Error(Tn(8))}function iC(t,r){return t==="button"?h.createElement("button",{type:"button",...r,key:r.key}):t==="img"?h.createElement("img",{alt:"",...r,key:r.key}):h.createElement(t,r)}const cC=h.forwardRef(function(r,o){const{render:a,className:c,disabled:d=!1,focusableWhenDisabled:m=!1,nativeButton:g=!0,style:b,...p}=r,{getButtonProps:y,buttonRef:x}=si({disabled:d,focusableWhenDisabled:m,native:g});return hn("button",r,{state:{disabled:d},ref:[o,x],props:[p,y]})}),ky=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,_y=m0,uC=(t,r)=>o=>{var a;if(r?.variants==null)return _y(t,o?.class,o?.className);const{variants:c,defaultVariants:d}=r,m=Object.keys(c).map(p=>{const y=o?.[p],x=d?.[p];if(y===null)return null;const S=ky(y)||ky(x);return c[p][S]}),g=o&&Object.entries(o).reduce((p,y)=>{let[x,S]=y;return S===void 0||(p[x]=S),p},{}),b=r==null||(a=r.compoundVariants)===null||a===void 0?void 0:a.reduce((p,y)=>{let{class:x,className:S,...j}=y;return Object.entries(j).every(N=>{let[k,O]=N;return Array.isArray(O)?O.includes({...d,...g}[k]):{...d,...g}[k]===O})?[...p,x,S]:p},[]);return _y(t,m,b,o?.class,o?.className)},wm=uC("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function pe({className:t,variant:r="default",size:o="default",...a}){return i.jsx(cC,{"data-slot":"button",className:Ne(wm({variant:r,size:o,className:t})),...a})}const V0=h.createContext(void 0);function F0(t){const r=h.useContext(V0);if(r===void 0&&!t)throw new Error(Tn(33));return r}const G0=h.createContext(void 0);function ko(t){const r=h.useContext(G0);if(r===void 0&&!t)throw new Error(Tn(36));return r}let Xl=(function(t){return t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t})({});const dC={[Xl.startingStyle]:""},fC={[Xl.endingStyle]:""},fu={transitionStatus(t){return t==="starting"?dC:t==="ending"?fC:null}};let yo=(function(t){return t.open="data-open",t.closed="data-closed",t[t.startingStyle=Xl.startingStyle]="startingStyle",t[t.endingStyle=Xl.endingStyle]="endingStyle",t.anchorHidden="data-anchor-hidden",t.side="data-side",t.align="data-align",t})({}),Cm=(function(t){return t.popupOpen="data-popup-open",t.pressed="data-pressed",t})({});const mC={[Cm.popupOpen]:""},pC={[Cm.popupOpen]:"",[Cm.pressed]:""},hC={[yo.open]:""},gC={[yo.closed]:""},xC={[yo.anchorHidden]:""},bC={open(t){return t?mC:null}},Rm={open(t){return t?pC:null}},ri={open(t){return t?hC:gC},anchorHidden(t){return t?xC:null}},yC=h.createContext(void 0);function mu(t=!0){const r=h.useContext(yC);if(r===void 0&&!t)throw new Error(Tn(25));return r}const q0="none",jo="trigger-press",pn="trigger-hover",Hl="trigger-focus",xp="outside-press",$0="item-press",X0="close-press",To="focus-out",pu="escape-key",Om="list-navigation",vC="cancel-open",Il="sibling-open",bp="imperative-action";function SC({controlled:t,default:r,name:o,state:a="value"}){const{current:c}=h.useRef(t!==void 0),[d,m]=h.useState(r),g=c?t:d,b=h.useCallback(p=>{c||m(p)},[]);return[g,b]}function EC(){return typeof navigator>"u"?{userAgent:"",platform:"",maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??0}}const{userAgent:NC,platform:jC,maxTouchPoints:TC}=EC(),hu=NC.toLowerCase(),Kl=jC.toLowerCase(),gu=/^i(os$|p)/.test(Kl)||Kl==="macintel"&&TC>1,My="android",km=Kl===My||hu.includes(My),yp=!gu&&Kl.startsWith("mac");Kl.startsWith("win");const wC=yp||gu,_o=typeof CSS<"u"&&!!CSS.supports?.("-webkit-backdrop-filter:none");!_o&&hu.includes("firefox");!_o&&hu.includes("chrom");const CC=wC,vp=/jsdom|happydom/.test(hu);function RC(t){const{closeOnClick:r,highlighted:o,id:a,nodeId:c,store:d,typingRef:m,itemRef:g,itemMetadata:b}=t,{events:p}=d.useState("floatingTreeRoot"),y=d.useState("open"),x=mu(!0),S=x!==void 0;return h.useMemo(()=>({id:a,role:"menuitem",tabIndex:y&&o?0:-1,onKeyDown(j){j.key===" "&&m?.current&&j.preventDefault()},onMouseMove(j){c&&p.emit("itemhover",{nodeId:c,target:j.currentTarget})},onClick(j){r&&p.emit("close",{domEvent:j,reason:$0})},onMouseUp(j){if(x){const 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&&!yp&&j.button===2)return}g.current&&d.context.allowMouseUpTriggerRef.current&&(!S||j.button===2)&&(!b||b.type==="regular-item")&&g.current.click()}}),[r,o,a,p,c,y,d,m,g,x,S,b])}const OC={type:"regular-item"};function kC(t){const{closeOnClick:r,disabled:o=!1,highlighted:a,id:c,store:d,typingRef:m=d.context.typingRef,nativeButton:g,itemMetadata:b,nodeId:p}=t,y=d.useState("disabled"),x=o||y,S=h.useRef(null),{getButtonProps:j,buttonRef:N}=si({disabled:x,focusableWhenDisabled:!0,native:g,composite:!0}),k=RC({closeOnClick:r,highlighted:a,id:c,nodeId:p,store:d,typingRef:m,itemRef:S,itemMetadata:b}),O=h.useCallback(T=>or(k,{onMouseEnter(){b.type==="submenu-trigger"&&b.setActive()}},T,j),[k,j,b]),E=Ma(S,N);return h.useMemo(()=>({getItemProps:O,itemRef:E}),[O,E])}const K0=h.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function _C(){return h.useContext(K0)}let MC=(function(t){return t[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t})({});function Q0(t={}){const{label:r,metadata:o,textRef:a,indexGuessBehavior:c,index:d}=t,{register:m,unregister:g,subscribeMapChange:b,elementsRef:p,labelsRef:y,nextIndexRef:x}=_C(),S=h.useRef(-1),[j,N]=h.useState(d??(c===MC.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 T=r!==void 0;y.current[j]=T?r:a?.current?.textContent??E.textContent}},[j,p,y,r,a]);return Qe(()=>{if(d!=null)return;const E=k.current;if(E)return m(E,o),()=>{g(E)}},[d,m,g,o]),Qe(()=>{if(d==null)return b(E=>{const T=k.current?E.get(k.current)?.index:null;T!=null&&N(T)})},[d,b,N]),{ref:O,index:j}}let Ay=0;function AC(t,r="mui"){const[o,a]=h.useState(t),c=t||o;return h.useEffect(()=>{o==null&&(Ay+=1,a(`${r}-${Ay}`))},[o,r]),c}const Dy=fp.useId;function wo(t,r){if(Dy!==void 0){const o=Dy();return t??(r?`${r}-${o}`:o)}return AC(t,r)}function Mo(t){return wo(t,"base-ui")}function jt(t,r,o,a){let c=!1,d=!1;const m=Ft;return{reason:t,event:r??new Event("base-ui"),cancel(){c=!0},allowPropagation(){d=!0},get isCanceled(){return c},get isPropagationAllowed(){return d},trigger:o,...m}}const DC=[];function Sp(t){h.useEffect(t,DC)}const jc=null;class zC{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=r=>{this.isScheduled=!1;const o=this.callbacks,a=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,a>0)for(let c=0;c<o.length;c+=1)o[c]?.(r)};request(r){const o=this.nextId;return this.nextId+=1,this.callbacks.push(r),this.callbacksCount+=1,!this.isScheduled&&(requestAnimationFrame(this.tick),this.isScheduled=!0),o}cancel(r){const o=r-this.startId;o<0||o>=this.callbacks.length||(this.callbacks[o]=null,this.callbacksCount-=1)}}const Tc=new zC;class ws{static create(){return new ws}static request(r){return Tc.request(r)}static cancel(r){return Tc.cancel(r)}currentId=jc;request(r){this.cancel(),this.currentId=Tc.request(()=>{this.currentId=jc,r()})}cancel=()=>{this.currentId!==jc&&(Tc.cancel(this.currentId),this.currentId=jc)};disposeEffect=()=>this.cancel}function Ql(){const t=In(ws.create).current;return Sp(t.disposeEffect),t}function LC(t,r=!1,o=!1){const[a,c]=h.useState(t&&r?"idle":void 0),[d,m]=h.useState(t);return t&&!d&&(m(!0),c("starting")),!t&&d&&a!=="ending"&&!o&&c("ending"),!t&&!d&&a==="ending"&&c(void 0),Qe(()=>{if(!t&&d&&a!=="ending"&&o){const g=ws.request(()=>{c("ending")});return()=>{ws.cancel(g)}}},[t,d,a,o]),Qe(()=>{if(!t||r)return;const g=ws.request(()=>{c(void 0)});return()=>{ws.cancel(g)}},[r,t]),Qe(()=>{if(!t||!r)return;t&&d&&a!=="idle"&&c("starting");const g=ws.request(()=>{c("idle")});return()=>{ws.cancel(g)}},[r,t,d,a]),{mounted:d,setMounted:m,transitionStatus:a}}var dr=o0();const IC=r0(dr);function nr(t){return t==null?t:"current"in t?t.current:t}function Ep(t,r=!1,o=!0){const a=Ql();return st((c,d=null)=>{a.cancel();const m=nr(t);if(m==null)return;const g=m,b=()=>{dr.flushSync(c)};if(typeof g.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){c();return}function p(){Promise.all(g.getAnimations().map(y=>y.finished)).then(()=>{d?.aborted||b()}).catch(()=>{if(o){d?.aborted||b();return}const y=g.getAnimations();!d?.aborted&&y.length>0&&y.some(x=>x.pending||x.playState!=="finished")&&p()})}if(r){const y=Xl.startingStyle;if(!g.hasAttribute(y)){a.request(p);return}const x=new MutationObserver(()=>{g.hasAttribute(y)||(x.disconnect(),p())});x.observe(g,{attributes:!0,attributeFilter:[y]}),d?.addEventListener("abort",()=>x.disconnect(),{once:!0});return}a.request(p)})}function xu(t){const{enabled:r=!0,open:o,ref:a,onComplete:c}=t,d=st(c),m=Ep(a,o,!1);h.useEffect(()=>{if(!r)return;const g=new AbortController;return m(d,g.signal),()=>{g.abort()}},[r,o,d,m])}const Z0=h.createContext(void 0);function BC(){const t=h.useContext(Z0);if(t===void 0)throw new Error(Tn(31));return t}const HC=h.forwardRef(function(r,o){const{render:a,className:c,style:d,...m}=r,[g,b]=h.useState(void 0),p=hn("div",r,{ref:o,props:{role:"group","aria-labelledby":g,...m}});return i.jsx(Z0.Provider,{value:b,children:p})}),UC=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:m,...g}=r,b=Mo(m),p=BC();return Qe(()=>(p(b),()=>{p(void 0)}),[p,b]),hn("div",r,{ref:o,props:{id:b,role:"presentation",...g}})}),PC=h.forwardRef(function(r,o){const{render:a,className:c,id:d,label:m,nativeButton:g=!1,disabled:b=!1,closeOnClick:p=!0,style:y,...x}=r,S=Q0({label:m}),j=F0(!0),N=Mo(d),{store:k}=ko(),O=k.useState("isActive",S.index),E=k.useState("itemProps"),{getItemProps:T,itemRef:_}=kC({closeOnClick:p,disabled:b,highlighted:O,id:N,store:k,nativeButton:g,nodeId:j?.context.nodeId,itemMetadata:OC});return hn("div",r,{state:{disabled:b,highlighted:O},props:[E,x,T],ref:[_,o,S.ref]})}),Cl=0;class gs{static create(){return new gs}currentId=Cl;start(r,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=Cl,o()},r)}isStarted(){return this.currentId!==Cl}clear=()=>{this.currentId!==Cl&&(clearTimeout(this.currentId),this.currentId=Cl)};disposeEffect=()=>this.clear}function Qn(){const t=In(gs.create).current;return Sp(t.disposeEffect),t}function Ts(t){t.preventDefault(),t.stopPropagation()}function YC(t){return"nativeEvent"in t}function J0(t){return t.pointerType===""&&t.isTrusted?!0:km&&t.pointerType?t.type==="click"&&t.buttons===1:t.detail===0&&!t.pointerType}function W0(t){return vp?!1:!km&&t.width===0&&t.height===0||km&&t.width===1&&t.height===1&&t.pressure===0&&t.detail===0&&t.pointerType==="mouse"||t.width<1&&t.height<1&&t.pressure===0&&t.detail===0&&t.pointerType==="touch"}function Zl(t,r){const o=["mouse","pen"];return r||o.push("",void 0),o.includes(t)}function VC(t){const r=t.type;return r==="click"||r==="mousedown"||r==="keydown"||r==="keyup"}const _m="data-base-ui-focusable",e1="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",bu="ArrowLeft",yu="ArrowRight",t1="ArrowUp",Np="ArrowDown";function Cn(t){let r=t.activeElement;for(;r?.shadowRoot?.activeElement!=null;)r=r.shadowRoot.activeElement;return r}function tt(t,r){if(!t||!r)return!1;const o=r.getRootNode?.();if(t.contains(r))return!0;if(o&&_a(o)){let a=r;for(;a;){if(t===a)return!0;a=a.parentNode||a.host}}return!1}function Ln(t){return"composedPath"in t?t.composedPath()[0]:t.target}function Zc(t,r){if(!vt(t))return!1;const o=t;if(r.hasElement(o))return!o.hasAttribute("data-trigger-disabled");for(const[,a]of r.entries())if(tt(a,o))return!a.hasAttribute("data-trigger-disabled");return!1}function Kf(t,r){if(r==null)return!1;if("composedPath"in t)return t.composedPath().includes(r);const o=t;return o.target!=null&&r.contains(o.target)}function FC(t){return t.matches("html,body")}function vu(t){return Vt(t)&&t.matches(e1)}function GC(t){return t?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${e1}`)!=null}function Mm(t){return t?t.getAttribute("role")==="combobox"&&vu(t):!1}function qC(t){if(!t||vp)return!0;try{return t.matches(":focus-visible")}catch{return!0}}function Am(t){return t?t.hasAttribute(_m)?t:t.querySelector(`[${_m}]`)||t:null}function $C(t,r){return r!=null&&!Zl(r)?0:typeof t=="function"?t():t}function Dm(t,r,o){const a=$C(t,o);return typeof a=="number"?a:a?.[r]}function zy(t){return typeof t=="function"?t():t}function n1(t,r){return r||t==="click"||t==="mousedown"}function XC(t){return t?.includes("mouse")&&t!=="mousedown"}function xt(t,r,o,a){return t.addEventListener(r,o,a),()=>{t.removeEventListener(r,o,a)}}function Ds(...t){return()=>{for(let r=0;r<t.length;r+=1){const o=t[r];o&&o()}}}function un(t){const r=In(KC,t).current;return r.next=t,Qe(r.effect),r}function KC(t){const r={current:t,next:t,effect:()=>{r.current=r.next}};return r}function Nt(t){return t?.ownerDocument||document}const QC={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},ZC={...QC,position:"fixed",top:0,left:0},Gr=h.forwardRef(function(r,o){const[a,c]=h.useState();Qe(()=>{CC&&_o&&c("button")},[]);const d={tabIndex:0,role:a};return i.jsx("span",{...r,ref:o,style:ZC,"aria-hidden":a?void 0:!0,...d,"data-base-ui-focus-guard":""})}),JC=["top","right","bottom","left"],Aa=Math.min,ar=Math.max,Jc=Math.round,wc=Math.floor,lr=t=>({x:t,y:t}),WC={left:"right",right:"left",bottom:"top",top:"bottom"};function s1(t,r,o){return ar(t,Aa(r,o))}function fr(t,r){return typeof t=="function"?t(r):t}function $n(t){return t.split("-")[0]}function Xr(t){return t.split("-")[1]}function jp(t){return t==="x"?"y":"x"}function Tp(t){return t==="y"?"height":"width"}function us(t){const r=t[0];return r==="t"||r==="b"?"y":"x"}function wp(t){return jp(us(t))}function eR(t,r,o){o===void 0&&(o=!1);const a=Xr(t),c=wp(t),d=Tp(c);let m=c==="x"?a===(o?"end":"start")?"right":"left":a==="start"?"bottom":"top";return r.reference[d]>r.floating[d]&&(m=Wc(m)),[m,Wc(m)]}function tR(t){const r=Wc(t);return[zm(t),r,zm(r)]}function zm(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const Ly=["left","right"],Iy=["right","left"],nR=["top","bottom"],sR=["bottom","top"];function rR(t,r,o){switch(t){case"top":case"bottom":return o?r?Iy:Ly:r?Ly:Iy;case"left":case"right":return r?nR:sR;default:return[]}}function oR(t,r,o,a){const c=Xr(t);let d=rR($n(t),o==="start",a);return c&&(d=d.map(m=>m+"-"+c),r&&(d=d.concat(d.map(zm)))),d}function Wc(t){const r=$n(t);return WC[r]+t.slice(r.length)}function aR(t){var r,o,a,c;return{top:(r=t.top)!=null?r:0,right:(o=t.right)!=null?o:0,bottom:(a=t.bottom)!=null?a:0,left:(c=t.left)!=null?c:0}}function r1(t){return typeof t!="number"?aR(t):{top:t,right:t,bottom:t,left:t}}function eu(t){const{x:r,y:o,width:a,height:c}=t;return{width:a,height:c,top:o,left:r,right:r+a,bottom:o+c,x:r,y:o}}function By(t,r){return r<0||r>=t.length}function Qf(t,r){return wa(t.current,{disabledIndices:r})}function Hy(t,r){return wa(t.current,{decrement:!0,startingIndex:t.current.length,disabledIndices:r})}function wa(t,{startingIndex:r=-1,decrement:o=!1,disabledIndices:a,amount:c=1}={}){let d=r;do d+=o?-c:c;while(d>=0&&d<=t.length-1&&o1(t,d,a));return d}function o1(t,r,o){if(typeof o=="function"?o(r):o?.includes(r)??!1)return!0;const c=t[r];return c?Su(c)?!o&&(c.hasAttribute("disabled")||c.getAttribute("aria-disabled")==="true"):!0:!1}function lR(t){return t.visibility==="hidden"||t.visibility==="collapse"}function Su(t,r=t?Kn(t):null){return!t||!t.isConnected||!r||lR(r)?!1:typeof t.checkVisibility=="function"?t.checkVisibility():r.display!=="none"&&r.display!=="contents"}const iR='a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';function cR(t){const r=t.assignedSlot;if(r)return r;if(t.parentElement)return t.parentElement;const o=t.getRootNode();return _a(o)?o.host:null}function Lm(t){for(const r of Array.from(t.children))if(Sn(r)==="summary")return r;return null}function uR(t,r){const o=Lm(r);return!!o&&(t===o||tt(o,t))}function a1(t){const r=t?Sn(t):"";return t!=null&&t.matches(iR)&&(r!=="summary"||t.parentElement!=null&&Sn(t.parentElement)==="details"&&Lm(t.parentElement)===t)&&(r!=="details"||Lm(t)==null)&&(r!=="input"||t.type!=="hidden")}function l1(t){if(!a1(t)||!t.isConnected||t.matches(":disabled"))return!1;for(let r=t;r;r=cR(r)){const o=r!==t,a=Sn(r)==="slot";if(r.hasAttribute("inert")||o&&Sn(r)==="details"&&!r.open&&!uR(t,r)||r.hasAttribute("hidden")||!a&&!dR(r,o))return!1}return!0}function dR(t,r){const o=Kn(t);return r?o.display!=="none":Su(t,o)}function i1(t){const r=t.tabIndex;if(r<0){const o=Sn(t);if(o==="details"||o==="audio"||o==="video"||Vt(t)&&t.isContentEditable)return 0}return r}function Zf(t){if(Sn(t)!=="input")return null;const r=t;return r.type==="radio"&&r.name!==""?r:null}function fR(t,r){const o=Zf(t);if(!o)return!0;const a=r.find(c=>{const d=Zf(c);return d?.name===o.name&&d.form===o.form&&d.checked});return a?a===o:r.find(c=>{const d=Zf(c);return d?.name===o.name&&d.form===o.form})===o}function c1(t){if(Vt(t)&&Sn(t)==="slot"){const r=t.assignedElements({flatten:!0});if(r.length>0)return r}return Vt(t)&&t.shadowRoot?Array.from(t.shadowRoot.children):Array.from(t.children)}function u1(t,r){c1(t).forEach(o=>{a1(o)&&r.push(o),u1(o,r)})}function d1(t,r,o){c1(t).forEach(a=>{Vt(a)&&a.matches(r)&&o.push(a),d1(a,r,o)})}function Cp(t){return l1(t)&&i1(t)>=0}function f1(t){const r=[];return u1(t,r),r.filter(l1)}function oi(t){const r=f1(t);return r.filter(o=>i1(o)>=0&&fR(o,r))}function m1(t,r){const o=oi(t),a=o.length;if(a===0)return;const c=Cn(Nt(t)),d=o.indexOf(c),m=d===-1?r===1?0:a-1:d+r;return o[m]}function Rp(t){return m1(Nt(t).body,1)||t}function p1(t){return m1(Nt(t).body,-1)||t}function h1(t,r){if(!t)return null;const o=oi(Nt(t).body),a=o.length;if(a===0)return null;const c=o.indexOf(t);if(c===-1)return null;const d=(c+r+a)%a;return o[d]}function mR(t){return h1(t,1)}function pR(t){return h1(t,-1)}function Ra(t,r){const o=r||t.currentTarget,a=t.relatedTarget;return!a||!tt(o,a)}function hR(t){oi(t).forEach(o=>{o.dataset.tabindex=o.getAttribute("tabindex")||"",o.setAttribute("tabindex","-1")})}function Uy(t){const r=[];d1(t,"[data-tabindex]",r),r.forEach(o=>{const a=o.dataset.tabindex;delete o.dataset.tabindex,a?o.setAttribute("tabindex",a):o.removeAttribute("tabindex")})}function qr(t,r,o=!0){return t.filter(c=>c.parentId===r).flatMap(c=>[...!o||c.context?.open?[c]:[],...qr(t,c.id,o)])}function Py(t,r){let o=[],a=t.find(c=>c.id===r)?.parentId;for(;a;){const c=t.find(d=>d.id===a);a=c?.parentId,c&&(o=o.concat(c))}return o}function Jl(t){return`data-base-ui-${t}`}let Cc=0;function Uc(t,r={}){const{preventScroll:o=!1,sync:a=!1,shouldFocus:c}=r;cancelAnimationFrame(Cc);function d(){c&&!c()||t?.focus({preventScroll:o})}if(a)return d(),mn;const m=requestAnimationFrame(d);return Cc=m,()=>{Cc===m&&(cancelAnimationFrame(m),Cc=0)}}const Jf={inert:new WeakMap,"aria-hidden":new WeakMap},Yy="data-base-ui-inert",Im={inert:new WeakSet,"aria-hidden":new WeakSet};let Rl=new WeakMap,Wf=0;function gR(t){return Im[t]}function g1(t){return t?_a(t)?t.host:g1(t.parentNode):null}const Vy=(t,r)=>r.map(o=>{if(t.contains(o))return o;const a=g1(o);return t.contains(a)?a:null}).filter(o=>o!=null),Fy=t=>{const r=new Set;return t.forEach(o=>{let a=o;for(;a&&!r.has(a);)r.add(a),a=a.parentNode}),r},Gy=(t,r,o)=>{const a=[],c=d=>{!d||o.has(d)||Array.from(d.children).forEach(m=>{Sn(m)!=="script"&&(r.has(m)?c(m):a.push(m))})};return c(t),a};function xR(t,r,o,a,{mark:c=!0}){let d=null;a?d="inert":o&&(d="aria-hidden");let m=null,g=null;const b=Vy(r,t),p=c?Gy(r,Fy(b),new Set(b)):[],y=[],x=[];if(d){const S=Jf[d],j=gR(d);g=j,m=S;const N=Vy(r,Array.from(r.querySelectorAll("[aria-live]"))),k=b.concat(N);Gy(r,Fy(k),new Set(k)).forEach(E=>{const T=E.getAttribute(d),_=T!==null&&T!=="false",w=(S.get(E)||0)+1;S.set(E,w),y.push(E),w===1&&_&&j.add(E),_||E.setAttribute(d,d==="inert"?"":"true")})}return c&&p.forEach(S=>{const j=(Rl.get(S)||0)+1;Rl.set(S,j),x.push(S),j===1&&S.setAttribute(Yy,"")}),Wf+=1,()=>{m&&y.forEach(S=>{const N=(m.get(S)||0)-1;m.set(S,N),N||(!g?.has(S)&&d&&S.removeAttribute(d),g?.delete(S))}),c&&x.forEach(S=>{const j=(Rl.get(S)||0)-1;Rl.set(S,j),j||S.removeAttribute(Yy)}),Wf-=1,Wf||(Jf.inert=new WeakMap,Jf["aria-hidden"]=new WeakMap,Im.inert=new WeakSet,Im["aria-hidden"]=new WeakSet,Rl=new WeakMap)}}function qy(t,r={}){const{ariaHidden:o=!1,inert:a=!1,mark:c=!0}=r,d=Nt(t[0]).body;return xR(t,d,o,a,{mark:c})}const bR=500,x1=500,yR={style:{transition:"none"}},b1="data-base-ui-click-trigger",vR={fallbackAxisSide:"none"},y1={fallbackAxisSide:"end"},SR={clipPath:"inset(50%)",position:"fixed",top:0,left:0},v1=h.createContext(null),S1=()=>h.useContext(v1),ER=Jl("portal");function NR(t={}){const{ref:r,container:o,componentProps:a=Ft,elementProps:c}=t,d=wo(),g=S1()?.portalNode,[b,p]=h.useState(null),[y,x]=h.useState(null),S=st(O=>{O!==null&&x(O)}),j=h.useRef(null);Qe(()=>{if(o===null){j.current&&(j.current=null,x(null),p(null));return}if(d==null)return;const O=(o&&(cp(o)?o:o.current))??g??document.body;if(O==null){j.current&&(j.current=null,x(null),p(null));return}j.current!==O&&(j.current=O,x(null),p(O))},[o,g,d]);const N=hn("div",a,{ref:[r,S],props:[{id:d,[ER]:""},c]});return{portalNode:y,portalSubtree:b&&N?dr.createPortal(N,b):null}}const Op=h.forwardRef(function(r,o){const{render:a,className:c,style:d,children:m,container:g,renderGuards:b,...p}=r,{portalNode:y,portalSubtree:x}=NR({container:g,ref:o,componentProps:r,elementProps:p}),S=h.useRef(null),j=h.useRef(null),N=h.useRef(null),k=h.useRef(null),[O,E]=h.useState(null),T=h.useRef(!1),_=O?.modal,w=O?.open,V=typeof b=="boolean"?b:!!O&&!O.modal&&O.open&&!!y;h.useEffect(()=>{if(!y||_)return;function L(C){y&&C.relatedTarget&&Ra(C)&&(C.type==="focusin"?T.current&&(Uy(y),T.current=!1):(hR(y),T.current=!0))}return Ds(xt(y,"focusin",L,!0),xt(y,"focusout",L,!0))},[y,_]),Qe(()=>{!y||w!==!0||!T.current||(Uy(y),T.current=!1)},[w,y]);const M=h.useMemo(()=>({beforeOutsideRef:S,afterOutsideRef:j,beforeInsideRef:N,afterInsideRef:k,portalNode:y,setFocusManagerState:E}),[y]);return i.jsxs(h.Fragment,{children:[x,i.jsxs(v1.Provider,{value:M,children:[V&&y&&i.jsx(Gr,{"data-type":"outside",ref:S,onFocus:L=>{if(Ra(L,y))N.current?.focus();else{const C=O?O.domReference:null;p1(C)?.focus()}}}),V&&y&&i.jsx("span",{"aria-owns":y.id,style:SR}),y&&dr.createPortal(m,y),V&&y&&i.jsx(Gr,{"data-type":"outside",ref:j,onFocus:L=>{if(Ra(L,y))k.current?.focus();else{const C=O?O.domReference:null;Rp(C)?.focus(),O?.closeOnFocusOut&&O?.onOpenChange(!1,jt(To,L.nativeEvent))}}})]})]})});function E1(){const t=new Map;return{emit(r,o){t.get(r)?.forEach(a=>a(o))},on(r,o){t.has(r)||t.set(r,new Set),t.get(r).add(o)},off(r,o){t.get(r)?.delete(o)}}}class kp{nodesRef={current:[]};events=E1();addNode(r){this.nodesRef.current.push(r)}removeNode(r){const o=this.nodesRef.current.findIndex(a=>a===r);o!==-1&&this.nodesRef.current.splice(o,1)}}const N1=h.createContext(null),j1=h.createContext(null),pr=()=>h.useContext(N1)?.id||null,Kr=t=>{const r=h.useContext(j1);return t??r};function _p(t){const r=wo(),o=Kr(t),a=pr();return Qe(()=>{if(!r)return;const c={id:r,parentId:a};return o?.addNode(c),()=>{o?.removeNode(c)}},[o,r,a]),r}function T1(t){const{children:r,id:o}=t,a=pr();return i.jsx(N1.Provider,{value:h.useMemo(()=>({id:o,parentId:a}),[o,a]),children:r})}function w1(t){const{children:r,externalTree:o}=t,a=In(()=>o??new kp).current;return i.jsx(j1.Provider,{value:a,children:r})}function jR(t,r){const o=Zt(Ln(t));return t instanceof o.KeyboardEvent?"keyboard":t instanceof o.FocusEvent?r||"keyboard":"pointerType"in t?t.pointerType||"keyboard":"touches"in t?"touch":t instanceof o.MouseEvent?r||(t.detail===0?"keyboard":"mouse"):""}const $y=20;let Pr=[];function Mp(){Pr=Pr.filter(t=>t.deref()?.isConnected)}function Xy(t){Mp(),t&&Sn(t)!=="body"&&(Pr.push(new WeakRef(t)),Pr.length>$y&&(Pr=Pr.slice(-$y)))}function Ky(){return Mp(),Pr[Pr.length-1]?.deref()}function TR(t){return t?Cp(t)?t:oi(t)[0]||t:null}function Qy(t){if(t.hasAttribute("tabindex")&&!t.hasAttribute("data-tabindex")||!t.getAttribute("role")?.includes("dialog"))return;const o=f1(t).filter(c=>{const d=c.getAttribute("data-tabindex")||"";return Cp(c)||c.hasAttribute("data-tabindex")&&!d.startsWith("-")}),a=t.getAttribute("tabindex");o.length===0?a!=="0"&&(t.setAttribute("tabindex","0"),t.setAttribute("data-tabindex","0")):(a!=="-1"||t.hasAttribute("data-tabindex")&&t.getAttribute("data-tabindex")!=="-1")&&(t.setAttribute("tabindex","-1"),t.setAttribute("data-tabindex","-1"))}function Ap(t){const{context:r,children:o,disabled:a=!1,initialFocus:c=!0,returnFocus:d=!0,restoreFocus:m=!1,modal:g=!0,closeOnFocusOut:b=!0,openInteractionType:p="",nextFocusableElement:y,previousFocusableElement:x,beforeContentFocusGuardRef:S,externalTree:j,getInsideElements:N}=t,k="rootStore"in r?r.rootStore:r,O=k.useState("open"),E=k.useState("domReferenceElement"),T=k.useState("floatingElement"),{events:_,dataRef:w}=k.context,V=st(()=>w.current.floatingContext?.nodeId),M=c===!1,L=Mm(E)&&M,C=un(c),Q=un(d),ne=un(p),ue=un(O),ee=Kr(j),X=S1(),te=h.useRef(!1),W=h.useRef(!1),z=h.useRef(!1),D=h.useRef(null),Y=h.useRef(""),H=h.useRef(""),F=h.useRef(null),A=h.useRef(null),B=Ma(F,S,X?.beforeInsideRef),I=Ma(A,X?.afterInsideRef),U=Qn(),G=Qn(),K=Ql(),xe=X!=null,se=Am(T),le=st((Re=se)=>Re?oi(Re):[]),He=st(()=>N?.().filter(Re=>Re!=null)??[]);h.useEffect(()=>{if(a||!g)return;function Re(ge){ge.key==="Tab"&&tt(se,Cn(Nt(se)))&&le().length===0&&!L&&Ts(ge)}const Ue=Nt(se);return xt(Ue,"keydown",Re)},[a,se,g,L,le]),h.useEffect(()=>{if(a||!O)return;const Re=Nt(se);function Ue(){z.current=!1}function ge(Ye){const Ae=Ln(Ye),Ie=He(),ve=tt(T,Ae)||tt(E,Ae)||tt(X?.portalNode,Ae)||Ie.some(ce=>ce===Ae||tt(ce,Ae));z.current=!ve,H.current=Ye.pointerType||"keyboard",Ae?.closest(`[${b1}]`)&&(W.current=!0,G.start(0,()=>{W.current=!1}))}function ie(){H.current="keyboard"}return Ds(xt(Re,"pointerdown",ge,!0),xt(Re,"pointerup",Ue,!0),xt(Re,"pointercancel",Ue,!0),xt(Re,"keydown",ie,!0),Ue)},[a,T,E,se,O,X,G,He]),h.useEffect(()=>{if(a||!b)return;const Re=Nt(se);function Ue(){W.current=!0,G.start(0,()=>{W.current=!1})}function ge(Ie){const ve=Ln(Ie);Cp(ve)&&(D.current=ve)}function ie(Ie){const ve=Ie.relatedTarget,ce=Ie.currentTarget,_e=Ln(Ie);g&&ve==null&&_e!=null&&tt(T,_e)&&Xy(_e),queueMicrotask(()=>{const Me=V(),Z=k.context.triggerElements,P=He(),q=ve?.hasAttribute(Jl("focus-guard"))&&[F.current,A.current,X?.beforeInsideRef.current,X?.afterInsideRef.current,X?.beforeOutsideRef.current,X?.afterOutsideRef.current,nr(x),nr(y)].includes(ve),we=!(tt(E,ve)||tt(T,ve)||tt(ve,T)||tt(X?.portalNode,ve)||P.some(be=>be===ve||tt(be,ve))||ve!=null&&Z.hasElement(ve)||Z.hasMatchingElement(be=>tt(be,ve))||q||ee&&(qr(ee.nodesRef.current,Me).find(be=>tt(be.context?.elements.floating,ve)||tt(be.context?.elements.domReference,ve))||Py(ee.nodesRef.current,Me).find(be=>[be.context?.elements.floating,Am(be.context?.elements.floating)].includes(ve)||be.context?.elements.domReference===ve)));if(ce===E&&se&&Qy(se),m&&ce!==E&&!Su(_e)&&Cn(Re)===Re.body){if(Vt(se)&&(se.focus(),m==="popup")){K.request(()=>{se.focus()});return}const be=le(),ae=D.current,ke=(ae&&be.includes(ae)?ae:null)||be[be.length-1]||se;Vt(ke)&&ke.focus()}if(w.current.insideReactTree){w.current.insideReactTree=!1;return}(L||!g)&&ve&&we&&!W.current&&(L||ve!==Ky())&&(te.current=!0,k.setOpen(!1,jt(To,Ie)))})}function Ye(){z.current||(w.current.insideReactTree=!0,U.start(0,()=>{w.current.insideReactTree=!1}))}const Ae=Vt(E)?E:null;if(!(!T&&!Ae))return Ds(Ae&&xt(Ae,"focusout",ie),Ae&&xt(Ae,"pointerdown",Ue),T&&xt(T,"focusin",ge),T&&xt(T,"focusout",ie),T&&X&&xt(T,"focusout",Ye,!0))},[a,E,T,se,g,ee,X,k,b,m,le,L,V,w,U,G,K,y,x,He]),h.useEffect(()=>{if(a||!T||!O)return;const Re=Array.from(X?.portalNode?.querySelectorAll(`[${Jl("portal")}]`)||[]),ge=(ee?Py(ee.nodesRef.current,V()):[]).find(ce=>Mm(ce.context?.elements.domReference||null))?.context?.elements.domReference,Ye=[...[T,...Re,F.current,A.current,X?.beforeOutsideRef.current,X?.afterOutsideRef.current,...He()],ge,nr(x),nr(y),L?E:null].filter(ce=>ce!=null),Ae=qy(Ye,{ariaHidden:g||L,mark:!1}),Ie=[T,...Re].filter(ce=>ce!=null),ve=qy(Ie);return()=>{ve(),Ae()}},[O,a,E,T,g,X,L,ee,V,y,x,He]),Qe(()=>{if(!O||a||!Vt(se))return;const Re=Nt(se),Ue=Cn(Re);queueMicrotask(()=>{const ge=C.current,ie=typeof ge=="function"?ge(ne.current||""):ge;if(ie===void 0||ie===!1||tt(se,Ue))return;let Ae=null;const Ie=()=>(Ae==null&&(Ae=le(se)),Ae[0]||se);let ve;ie===!0||ie===null?ve=Ie():ve=nr(ie),ve=ve||Ie();const ce=tt(se,Cn(Re));Uc(ve,{preventScroll:ve===se,shouldFocus(){if(!ue.current)return!1;if(ce)return!0;const _e=Cn(Re);return!(_e!==ve&&tt(se,_e))}})})},[a,O,se,le,C,ne,ue]),Qe(()=>{if(a||!se)return;const Re=Nt(se),Ue=Cn(Re),ge=ne.current==null;Xy(Ue);function ie(Ae){if(Ae.open||(Y.current=jR(Ae.nativeEvent,H.current)),Ae.reason===pn&&Ae.nativeEvent.type==="mouseleave"&&(te.current=!0),Ae.reason===xp)if(Ae.nested)te.current=!1;else if(J0(Ae.nativeEvent)||W0(Ae.nativeEvent))te.current=!1;else{let Ie=!1;Nt(se).createElement("div").focus({get preventScroll(){return Ie=!0,!1}}),Ie?te.current=!1:te.current=!0}}_.on("openchange",ie);function Ye(){const Ae=Q.current;let Ie=typeof Ae=="function"?Ae(Y.current):Ae;if(Ie===void 0||Ie===!1)return null;Ie===null&&(Ie=!0);const ve=E?.isConnected?E:null,ce=Ue?.isConnected&&Sn(Ue)!=="body"?Ue:null;let _e=ge?ce||ve:ve||ce;return _e||(_e=Ky()||null),typeof Ie=="boolean"?_e:nr(Ie)||_e||null}return()=>{_.off("openchange",ie);const Ae=Cn(Re),Ie=He(),ve=tt(T,Ae)||Ie.some(Me=>Me===Ae||tt(Me,Ae))||ee&&qr(ee.nodesRef.current,V(),!1).some(Me=>tt(Me.context?.elements.floating,Ae)),ce=Q.current,_e=Ye();queueMicrotask(()=>{const Me=TR(_e),Z=typeof ce!="boolean";ce&&!te.current&&Vt(Me)&&(!(!Z&&Me!==Ae&&Ae!==Re.body)||ve)&&Me.focus({preventScroll:!0}),te.current=!1})}},[a,T,se,Q,ne,_,ee,E,V,He]),Qe(()=>{if(!_o||O||!T)return;const Re=Cn(Nt(T));!Vt(Re)||!vu(Re)||tt(T,Re)&&Re.blur()},[O,T]),Qe(()=>{if(!(a||!X))return X.setFocusManagerState({modal:g,closeOnFocusOut:b,open:O,onOpenChange:k.setOpen,domReference:E}),()=>{X.setFocusManagerState(null)}},[a,X,g,O,k,b,E]),Qe(()=>{if(!(a||!se))return Qy(se),()=>{queueMicrotask(Mp)}},[a,se]);const ze=!a&&(g?!L:!0)&&(xe||g);return i.jsxs(h.Fragment,{children:[ze&&i.jsx(Gr,{"data-type":"inside",ref:B,onFocus:Re=>{if(g){const Ue=le();Uc(Ue[Ue.length-1])}else X?.portalNode&&(te.current=!1,Ra(Re,X.portalNode)?Rp(E)?.focus():nr(x??X.beforeOutsideRef)?.focus())}}),o,ze&&i.jsx(Gr,{"data-type":"inside",ref:I,onFocus:Re=>{g?Uc(le()[0]):X?.portalNode&&(b&&(te.current=!0),Ra(Re,X.portalNode)?p1(E)?.focus():nr(y??X.afterOutsideRef)?.focus())}})]})}function C1(t,r={}){const{enabled:o=!0,event:a="click",toggle:c=!0,ignoreMouse:d=!1,stickIfOpen:m=!0,touchOpenDelay:g=0,reason:b=jo}=r,p="rootStore"in t?t.rootStore:t,y=p.context.dataRef,x=h.useRef(void 0),S=Ql(),j=Qn(),N=h.useMemo(()=>{function k(E,T,_,w){const V=jt(b,T,_);E&&w==="touch"&&g>0?j.start(g,()=>{p.setOpen(!0,V)}):p.setOpen(E,V)}function O(E,T,_){const w=y.current.openEvent,V=p.select("domReferenceElement")!==T;return E&&V||!E||!c?!0:w&&m?!_(w.type):!1}return{onPointerDown(E){x.current=E.pointerType},onMouseDown(E){const T=x.current,_=E.nativeEvent,w=p.select("open");if(E.button!==0||a==="click"||Zl(T,!0)&&d)return;const V=O(w,E.currentTarget,C=>C==="click"||C==="mousedown"),M=Ln(_);if(vu(M)){k(V,_,M,T);return}const L=E.currentTarget;S.request(()=>{k(V,_,L,T)})},onClick(E){if(a==="mousedown-only")return;const T=x.current;if(a==="mousedown"&&T){x.current=void 0;return}if(Zl(T,!0)&&d)return;const _=p.select("open"),w=O(_,E.currentTarget,V=>V==="click"||V==="mousedown"||V==="keydown"||V==="keyup");k(w,E.nativeEvent,E.currentTarget,T)},onKeyDown(){x.current=void 0}}},[y,a,d,b,p,m,c,S,j,g]);return h.useMemo(()=>o?{reference:N}:Ft,[o,N])}function wR(){return!1}function CR(t){return{escapeKey:typeof t=="boolean"?t:t?.escapeKey??!1,outsidePress:typeof t=="boolean"?t:t?.outsidePress??!0}}function Dp(t,r={}){const{enabled:o=!0,escapeKey:a=!0,outsidePress:c=!0,outsidePressEvent:d="sloppy",referencePress:m=wR,bubbles:g,externalTree:b}=r,p="rootStore"in t?t.rootStore:t,y=p.useState("open"),x=p.useState("floatingElement"),{dataRef:S}=p.context,j=Kr(b),N=st(typeof c=="function"?c:()=>!1),k=typeof c=="function"?N:c,O=k!==!1,E=st(()=>d),{escapeKey:T,outsidePress:_}=CR(g),w=h.useRef(!1),V=h.useRef(!1),M=h.useRef(!1),L=h.useRef(!1),C=h.useRef(""),Q=h.useRef(null),ne=Qn(),ue=Qn(),ee=st(()=>{ue.clear(),S.current.insideReactTree=!1}),X=st(B=>{const I=S.current.floatingContext?.nodeId;return(j?qr(j.nodesRef.current,I):[]).some(G=>G.context?.open&&!G.context.dataRef.current[B])}),te=st(B=>Kf(B,p.select("floatingElement"))||Kf(B,p.select("domReferenceElement"))),W=st(B=>{m()&&p.setOpen(!1,jt(jo,B.nativeEvent))}),z=st(B=>{if(!y||!o||!a||B.key!=="Escape"||L.current||!T&&X("__escapeKeyBubbles"))return;const I=YC(B)?B.nativeEvent:B,U=jt(pu,I);p.setOpen(!1,U),U.isCanceled||B.preventDefault(),!T&&!U.isPropagationAllowed&&B.stopPropagation()}),D=st(()=>{S.current.insideReactTree=!0,ue.start(0,ee)}),Y=st(B=>{if(!y||!o||B.button!==0)return;const I=Ln(B.nativeEvent);tt(p.select("floatingElement"),I)&&(w.current||(w.current=!0,V.current=!1))}),H=st(B=>{!y||!o||(B.defaultPrevented||B.nativeEvent.defaultPrevented)&&w.current&&(V.current=!0)});h.useEffect(()=>{if(!y||!o)return;S.current.__escapeKeyBubbles=T,S.current.__outsidePressBubbles=_;const B=new gs,I=new gs;function U(){B.clear(),L.current=!0}function G(){B.start(_o?5:0,()=>{L.current=!1})}function K(){M.current=!0,I.start(0,()=>{M.current=!1})}function xe(){w.current=!1,V.current=!1}function se(){const P=C.current,q=P==="pen"||!P?"mouse":P,we=E(),be=typeof we=="function"?we():we;return typeof be=="string"?be:be[q]}function le(P){const q=se();return q==="intentional"&&P.type!=="click"||q==="sloppy"&&P.type==="click"}function He(P){const q=S.current.floatingContext?.nodeId,we=j&&qr(j.nodesRef.current,q).some(be=>Kf(P,be.context?.elements.floating));return te(P)||we}function ze(P){if(le(P)){P.type!=="click"&&!te(P)&&(I.clear(),M.current=!1),ee();return}if(S.current.insideReactTree){ee();return}const q=Ln(P),we=`[${Jl("inert")}]`,be=vt(q)?q.getRootNode():null,ae=Array.from((_a(be)?be:Nt(p.select("floatingElement"))).querySelectorAll(we)),ke=p.context.triggerElements;if(q&&(ke.hasElement(q)||ke.hasMatchingElement(We=>tt(We,q))))return;let Ve=vt(q)?q:null;for(;Ve&&!rr(Ve);){const We=ur(Ve);if(rr(We)||!vt(We))break;Ve=We}if(!(ae.length&&vt(q)&&!FC(q)&&!tt(q,p.select("floatingElement"))&&ae.every(We=>!tt(Ve,We)))){if(Vt(q)&&!("touches"in P)){const We=rr(q),pt=Kn(q),At=/auto|scroll/,mt=We||At.test(pt.overflowX),Tt=We||At.test(pt.overflowY),Rt=mt&&q.clientWidth>0&&q.scrollWidth>q.clientWidth,Lt=Tt&&q.clientHeight>0&&q.scrollHeight>q.clientHeight,Ce=pt.direction==="rtl",Ee=Lt&&(Ce?P.offsetX<=q.offsetWidth-q.clientWidth:P.offsetX>q.clientWidth),Ge=Rt&&P.offsetY>q.clientHeight;if(Ee||Ge)return}if(!He(P)){if(se()==="intentional"&&M.current){I.clear(),M.current=!1;return}typeof k=="function"&&!k(P)||X("__outsidePressBubbles")||(p.setOpen(!1,jt(xp,P)),ee())}}}function Re(P){se()!=="sloppy"||P.pointerType==="touch"||!p.select("open")||!o||te(P)||ze(P)}function Ue(P){if(se()!=="sloppy"||!p.select("open")||!o||te(P))return;const q=P.touches[0];q&&(Q.current={startTime:Date.now(),startX:q.clientX,startY:q.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},ne.start(1e3,()=>{Q.current&&(Q.current.dismissOnTouchEnd=!1,Q.current.dismissOnMouseDown=!1)}))}function ge(P,q){const we=Ln(P);if(!we)return;const be=xt(we,P.type,()=>{q(P),be()})}function ie(P){C.current="touch",ge(P,Ue)}function Ye(P){ne.clear(),P.type==="pointerdown"&&(C.current=P.pointerType),!(P.type==="mousedown"&&Q.current&&!Q.current.dismissOnMouseDown)&&ge(P,q=>{q.type==="pointerdown"?Re(q):ze(q)})}function Ae(P){if(!w.current)return;const q=V.current;if(xe(),se()==="intentional"){if(P.type==="pointercancel"){q&&K();return}if(!He(P)){if(q){K();return}typeof k=="function"&&!k(P)||(I.clear(),M.current=!0,ee())}}}function Ie(P){if(se()!=="sloppy"||!Q.current||te(P))return;const q=P.touches[0];if(!q)return;const we=Math.abs(q.clientX-Q.current.startX),be=Math.abs(q.clientY-Q.current.startY),ae=Math.sqrt(we*we+be*be);ae>5&&(Q.current.dismissOnTouchEnd=!0),ae>10&&(ze(P),ne.clear(),Q.current=null)}function ve(P){ge(P,Ie)}function ce(P){se()!=="sloppy"||!Q.current||te(P)||(Q.current.dismissOnTouchEnd&&ze(P),ne.clear(),Q.current=null)}function _e(P){ge(P,ce)}const Me=Nt(x),Z=Ds(a&&Ds(xt(Me,"keydown",z),xt(Me,"compositionstart",U),xt(Me,"compositionend",G)),O&&Ds(xt(Me,"click",Ye,!0),xt(Me,"pointerdown",Ye,!0),xt(Me,"pointerup",Ae,!0),xt(Me,"pointercancel",Ae,!0),xt(Me,"mousedown",Ye,!0),xt(Me,"mouseup",Ae,!0),xt(Me,"touchstart",ie,!0),xt(Me,"touchmove",ve,!0),xt(Me,"touchend",_e,!0)));return()=>{Z(),B.clear(),I.clear(),xe(),M.current=!1}},[S,x,a,O,k,y,o,T,_,z,ee,E,X,te,j,p,ne]),h.useEffect(ee,[k,ee]);const F=h.useMemo(()=>({onKeyDown:z,onPointerDown:W,onClick:W}),[z,W]),A=h.useMemo(()=>({onKeyDown:z,onPointerDown:H,onMouseDown:H,onClickCapture:D,onMouseDownCapture(B){D(),Y(B)},onPointerDownCapture(B){D(),Y(B)},onMouseUpCapture:D,onTouchEndCapture:D,onTouchMoveCapture:D}),[z,D,Y,H]);return h.useMemo(()=>o?{reference:F,floating:A,trigger:F}:{},[o,F,A])}function Zy(t,r,o){let{reference:a,floating:c}=t;const d=us(r),m=wp(r),g=Tp(m),b=$n(r),p=d==="y",y=a.x+a.width/2-c.width/2,x=a.y+a.height/2-c.height/2,S=a[g]/2-c[g]/2;let j;switch(b){case"top":j={x:y,y:a.y-c.height};break;case"bottom":j={x:y,y:a.y+a.height};break;case"right":j={x:a.x+a.width,y:x};break;case"left":j={x:a.x-c.width,y:x};break;default:j={x:a.x,y:a.y}}const N=Xr(r);return N&&(j[m]+=S*(N==="end"?1:-1)*(o&&p?-1:1)),j}async function RR(t,r){var o;r===void 0&&(r={});const{x:a,y:c,platform:d,rects:m,elements:g,strategy:b}=t,{boundary:p="clippingAncestors",rootBoundary:y="viewport",elementContext:x="floating",altBoundary:S=!1,padding:j=0}=fr(r,t),N=r1(j),O=g[S?x==="floating"?"reference":"floating":x],E=eu(await d.getClippingRect({element:(o=await(d.isElement==null?void 0:d.isElement(O)))==null||o?O:O.contextElement||await(d.getDocumentElement==null?void 0:d.getDocumentElement(g.floating)),boundary:p,rootBoundary:y,strategy:b})),T=x==="floating"?{x:a,y:c,width:m.floating.width,height:m.floating.height}:m.reference,_=await(d.getOffsetParent==null?void 0:d.getOffsetParent(g.floating)),w=await(d.isElement==null?void 0:d.isElement(_))&&await(d.getScale==null?void 0:d.getScale(_))||{x:1,y:1},V=eu(d.convertOffsetParentRelativeRectToViewportRelativeRect?await d.convertOffsetParentRelativeRectToViewportRelativeRect({elements:g,rect:T,offsetParent:_,strategy:b}):T);return{top:(E.top-V.top+N.top)/w.y,bottom:(V.bottom-E.bottom+N.bottom)/w.y,left:(E.left-V.left+N.left)/w.x,right:(V.right-E.right+N.right)/w.x}}const OR=50,kR=async(t,r,o)=>{const{placement:a="bottom",strategy:c="absolute",middleware:d=[],platform:m}=o,g=m.detectOverflow?m:{...m,detectOverflow:RR},b=await(m.isRTL==null?void 0:m.isRTL(r));let p=await m.getElementRects({reference:t,floating:r,strategy:c}),{x:y,y:x}=Zy(p,a,b),S=a,j=0;const N={};for(let k=0;k<d.length;k++){const O=d[k];if(!O)continue;const{name:E,fn:T}=O,{x:_,y:w,data:V,reset:M}=await T({x:y,y:x,initialPlacement:a,placement:S,strategy:c,middlewareData:N,rects:p,platform:g,elements:{reference:t,floating:r}});y=_??y,x=w??x,N[E]={...N[E],...V},M&&j<OR&&(j++,typeof M=="object"&&(M.placement&&(S=M.placement),M.rects&&(p=M.rects===!0?await m.getElementRects({reference:t,floating:r,strategy:c}):M.rects),{x:y,y:x}=Zy(p,S,b)),k=-1)}return{x:y,y:x,placement:S,strategy:c,middlewareData:N}},_R=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(r){var o,a;const{placement:c,middlewareData:d,rects:m,initialPlacement:g,platform:b,elements:p}=r,{mainAxis:y=!0,crossAxis:x=!0,fallbackPlacements:S,fallbackStrategy:j="bestFit",fallbackAxisSideDirection:N="none",flipAlignment:k=!0,...O}=fr(t,r);if((o=d.arrow)!=null&&o.alignmentOffset)return{};const E=$n(c),T=us(g),_=$n(g)===g,w=await(b.isRTL==null?void 0:b.isRTL(p.floating)),V=S||(_||!k?[Wc(g)]:tR(g)),M=N!=="none";!S&&M&&V.push(...oR(g,k,N,w));const L=[g,...V],C=await b.detectOverflow(r,O),Q=[];let ne=((a=d.flip)==null?void 0:a.overflows)||[];if(y&&Q.push(C[E]),x){const te=eR(c,m,w);Q.push(C[te[0]],C[te[1]])}if(ne=[...ne,{placement:c,overflows:Q}],!Q.every(te=>te<=0)){var ue,ee;const te=(((ue=d.flip)==null?void 0:ue.index)||0)+1,W=L[te];if(W&&(!(x==="alignment"?T!==us(W):!1)||ne.every(Y=>us(Y.placement)===T?Y.overflows[0]>0:!0)))return{data:{index:te,overflows:ne},reset:{placement:W}};let z=(ee=ne.filter(D=>D.overflows[0]<=0).sort((D,Y)=>D.overflows[1]-Y.overflows[1])[0])==null?void 0:ee.placement;if(!z)switch(j){case"bestFit":{var X;const D=(X=ne.filter(Y=>{if(M){const H=us(Y.placement);return H===T||H==="y"}return!0}).map(Y=>[Y.placement,Y.overflows.filter(H=>H>0).reduce((H,F)=>H+F,0)]).sort((Y,H)=>Y[1]-H[1])[0])==null?void 0:X[0];D&&(z=D);break}case"initialPlacement":z=g;break}if(c!==z)return{reset:{placement:z}}}return{}}}};function Jy(t,r){return{top:t.top-r.height,right:t.right-r.width,bottom:t.bottom-r.height,left:t.left-r.width}}function Wy(t){return JC.some(r=>t[r]>=0)}const MR=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(r){const{rects:o,platform:a}=r,{strategy:c="referenceHidden",...d}=fr(t,r);switch(c){case"referenceHidden":{const m=await a.detectOverflow(r,{...d,elementContext:"reference"}),g=Jy(m,o.reference);return{data:{referenceHiddenOffsets:g,referenceHidden:Wy(g)}}}case"escaped":{const m=await a.detectOverflow(r,{...d,altBoundary:!0}),g=Jy(m,o.floating);return{data:{escapedOffsets:g,escaped:Wy(g)}}}default:return{}}}}},R1=new Set(["left","top"]);async function AR(t,r){const{placement:o,platform:a,elements:c}=t,d=await(a.isRTL==null?void 0:a.isRTL(c.floating)),m=$n(o),g=Xr(o),b=us(o)==="y",p=R1.has(m)?-1:1,y=d&&b?-1:1,x=fr(r,t);let{mainAxis:S,crossAxis:j,alignmentAxis: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 DR=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(r){var o,a;const{x:c,y:d,placement:m,middlewareData:g}=r,b=await AR(r,t);return m===((o=g.offset)==null?void 0:o.placement)&&(a=g.arrow)!=null&&a.alignmentOffset?{}:{x:c+b.x,y:d+b.y,data:{...b,placement:m}}}}},zR=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(r){const{x:o,y:a,placement:c,platform:d}=r,{mainAxis:m=!0,crossAxis:g=!1,limiter:b={fn:T=>{let{x:_,y:w}=T;return{x:_,y:w}}},...p}=fr(t,r),y={x:o,y:a},x=await d.detectOverflow(r,p),S=us(c),j=jp(S);let N=y[j],k=y[S];const O=(T,_)=>s1(_+x[T==="y"?"top":"left"],_,_-x[T==="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}}}}}},LR=function(t){return t===void 0&&(t={}),{options:t,fn(r){var o,a;const{x:c,y:d,placement:m,rects:g,middlewareData:b}=r,{offset:p=0,mainAxis:y=!0,crossAxis:x=!0}=fr(t,r),S={x:c,y:d},j=us(m),N=jp(j);let k=S[N],O=S[j];const E=fr(p,r),T=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]+T.mainAxis,L=g.reference[N]+g.reference[V]-T.mainAxis;k<M?k=M:k>L&&(k=L)}if(x){var _,w;const V=N==="y"?"width":"height",M=R1.has($n(m)),L=g.reference[j]-g.floating[V]+(M&&((_=b.offset)==null?void 0:_[j])||0)+(M?0:T.crossAxis),C=g.reference[j]+g.reference[V]+(M?0:((w=b.offset)==null?void 0:w[j])||0)-(M?T.crossAxis:0);O<L?O=L:O>C&&(O=C)}return{[N]:k,[j]:O}}}},IR=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(r){const{placement:o,rects:a,platform:c,elements:d}=r,{apply:m=()=>{},...g}=fr(t,r),b=await c.detectOverflow(r,g),p=$n(o),y=Xr(o),x=us(o)==="y",{width:S,height:j}=a.floating;let N,k;p==="top"||p==="bottom"?(N=p,k=y===(await(c.isRTL==null?void 0:c.isRTL(d.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,T=Aa(j-b[N],O),_=Aa(S-b[k],E),w=r.middlewareData.shift,V=!w;let M=T,L=_;w!=null&&w.enabled.x&&(L=E),w!=null&&w.enabled.y&&(M=O),V&&!y&&(x?L=S-2*ar(b.left,b.right):M=j-2*ar(b.top,b.bottom)),await m({...r,availableWidth:L,availableHeight:M});const C=await c.getDimensions(d.floating);return S!==C.width||j!==C.height?{reset:{rects:!0}}:{}}}};function O1(t){const r=Kn(t);let o=parseFloat(r.width)||0,a=parseFloat(r.height)||0;const c=Vt(t),d=c?t.offsetWidth:o,m=c?t.offsetHeight:a,g=Jc(o)!==d||Jc(a)!==m;return g&&(o=d,a=m),{width:o,height:a,$:g}}function zp(t){return vt(t)?t:t.contextElement}function Oa(t){const r=zp(t);if(!Vt(r))return lr(1);const o=r.getBoundingClientRect(),{width:a,height:c,$:d}=O1(r);let m=(d?Jc(o.width):o.width)/a,g=(d?Jc(o.height):o.height)/c;return(!m||!Number.isFinite(m))&&(m=1),(!g||!Number.isFinite(g))&&(g=1),{x:m,y:g}}const BR=lr(0);function k1(t){const r=Zt(t);return!dp()||!r.visualViewport?BR:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function HR(t,r,o){return r===void 0&&(r=!1),!!o&&r&&o===Zt(t)}function Co(t,r,o,a){r===void 0&&(r=!1),o===void 0&&(o=!1);const c=t.getBoundingClientRect(),d=zp(t);let m=lr(1);r&&(a?vt(a)&&(m=Oa(a)):m=Oa(t));const g=HR(d,o,a)?k1(d):lr(0);let b=(c.left+g.x)/m.x,p=(c.top+g.y)/m.y,y=c.width/m.x,x=c.height/m.y;if(d&&a){const S=Zt(d),j=vt(a)?Zt(a):a;let N=S,k=jm(N);for(;k&&j!==N;){const O=Oa(k),E=k.getBoundingClientRect(),T=Kn(k),_=E.left+(k.clientLeft+parseFloat(T.paddingLeft))*O.x,w=E.top+(k.clientTop+parseFloat(T.paddingTop))*O.y;b*=O.x,p*=O.y,y*=O.x,x*=O.y,b+=_,p+=w,N=Zt(k),k=jm(N)}}return eu({width:y,height:x,x:b,y:p})}function Eu(t,r){const o=du(t).scrollLeft;return r?r.left+o:Co(mr(t)).left+o}function _1(t,r){const o=t.getBoundingClientRect(),a=o.left+r.scrollLeft-Eu(t,o),c=o.top+r.scrollTop;return{x:a,y:c}}function UR(t){let{elements:r,rect:o,offsetParent:a,strategy:c}=t;const d=c==="fixed",m=mr(a),g=r?uu(r.floating):!1;if(a===m||g&&d)return o;let b={scrollLeft:0,scrollTop:0},p=lr(1);const y=lr(0),x=Vt(a);if((x||!d)&&((Sn(a)!=="body"||Oo(m))&&(b=du(a)),x)){const j=Co(a);p=Oa(a),y.x=j.x+a.clientLeft,y.y=j.y+a.clientTop}const S=m&&!x&&!d?_1(m,b):lr(0);return{width:o.width*p.x,height:o.height*p.y,x:o.x*p.x-b.scrollLeft*p.x+y.x+S.x,y:o.y*p.y-b.scrollTop*p.y+y.y+S.y}}function PR(t){return t.getClientRects?Array.from(t.getClientRects()):[]}function YR(t){const r=du(t),o=t.ownerDocument.body,a=ar(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),c=ar(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let d=-r.scrollLeft+Eu(t);const m=-r.scrollTop;return Kn(o).direction==="rtl"&&(d+=ar(t.clientWidth,o.clientWidth)-a),{width:a,height:c,x:d,y:m}}const VR=25;function FR(t,r,o){o===void 0&&(o="viewport");const a=o==="layoutViewport",c=Zt(t),d=mr(t),m=c.visualViewport;let g=d.clientWidth,b=d.clientHeight,p=0,y=0;if(m){const S=!dp()||r==="fixed";a?S||(p=-m.offsetLeft,y=-m.offsetTop):(g=m.width,b=m.height,S&&(p=m.offsetLeft,y=m.offsetTop))}if(Eu(d)<=0){const S=d.ownerDocument,j=S.body,N=getComputedStyle(j),k=S.compatMode==="CSS1Compat"&&parseFloat(N.marginLeft)+parseFloat(N.marginRight)||0,O=Math.abs(d.clientWidth-j.clientWidth-k),E=getComputedStyle(d).scrollbarGutter==="stable both-edges"?O/2:O;E<=VR&&(g-=E)}return{width:g,height:b,x:p,y}}function GR(t,r){const o=Co(t,!0,r==="fixed"),a=o.top+t.clientTop,c=o.left+t.clientLeft,d=Oa(t),m=t.clientWidth*d.x,g=t.clientHeight*d.y,b=c*d.x,p=a*d.y;return{width:m,height:g,x:b,y:p}}function ev(t,r,o){let a;if(r==="viewport"||r==="layoutViewport")a=FR(t,o,r);else if(r==="document")a=YR(mr(t));else if(vt(r))a=GR(r,o);else{const c=k1(t);a={x:r.x-c.x,y:r.y-c.y,width:r.width,height:r.height}}return eu(a)}function qR(t,r){const o=r.get(t);if(o)return o;let a=$l(t,[],!1).filter(g=>vt(g)&&Sn(g)!=="body"),c=null;const d=Kn(t).position==="fixed";let m=d?ur(t):t;for(;vt(m)&&!rr(m);){const g=Kn(m),b=up(m),p=c?c.position:d?"fixed":"";!b&&(p==="fixed"||p==="absolute"&&g.position==="static")?a=a.filter(x=>x!==m):c=g,m=ur(m)}return r.set(t,a),a}function $R(t){let{element:r,boundary:o,rootBoundary:a,strategy:c}=t;const m=[...o==="clippingAncestors"?uu(r)?[]:qR(r,this._c):[].concat(o),a],g=ev(r,m[0],c);let b=g.top,p=g.right,y=g.bottom,x=g.left;for(let S=1;S<m.length;S++){const j=ev(r,m[S],c);b=ar(j.top,b),p=Aa(j.right,p),y=Aa(j.bottom,y),x=ar(j.left,x)}return{width:p-x,height:y-b,x,y:b}}function XR(t){const{width:r,height:o}=O1(t);return{width:r,height:o}}function KR(t,r,o){const a=Vt(r),c=mr(r),d=o==="fixed",m=Co(t,!0,d,r);let g={scrollLeft:0,scrollTop:0};const b=lr(0);if((a||!d)&&((Sn(r)!=="body"||Oo(c))&&(g=du(r)),a)){const S=Co(r,!0,d,r);b.x=S.x+r.clientLeft,b.y=S.y+r.clientTop}!a&&c&&(b.x=Eu(c));const p=c&&!a&&!d?_1(c,g):lr(0),y=m.left+g.scrollLeft-b.x-p.x,x=m.top+g.scrollTop-b.y-p.y;return{x:y,y:x,width:m.width,height:m.height}}function em(t){return Kn(t).position==="static"}function tv(t,r){if(!Vt(t)||Kn(t).position==="fixed")return null;if(r)return r(t);let o=t.offsetParent;return mr(t)===o&&(o=o.ownerDocument.body),o}function M1(t,r){const o=Zt(t);if(uu(t))return o;if(!Vt(t)){let c=ur(t);for(;c&&!rr(c);){if(vt(c)&&!em(c))return c;c=ur(c)}return o}let a=tv(t,r);for(;a&&z2(a)&&em(a);)a=tv(a,r);return a&&rr(a)&&em(a)&&!up(a)?o:a||B2(t)||o}const QR=async function(t){const r=this.getOffsetParent||M1,o=this.getDimensions,a=await o(t.floating);return{reference:KR(t.reference,await r(t.floating),t.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function ZR(t){return Kn(t).direction==="rtl"}const JR={convertOffsetParentRelativeRectToViewportRelativeRect:UR,getDocumentElement:mr,getClippingRect:$R,getOffsetParent:M1,getElementRects:QR,getClientRects:PR,getDimensions:XR,getScale:Oa,isElement:vt,isRTL:ZR};function A1(t,r){return t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height}function WR(t,r,o){let a=null,c;const d=mr(t);function m(){var y;clearTimeout(c),(y=a)==null||y.disconnect(),a=null}function g(y,x){y===void 0&&(y=!1),x===void 0&&(x=1),m();const S=t.getBoundingClientRect(),{left:j,top:N,width:k,height:O}=S;if(y||r(),!k||!O)return;const E=wc(N),T=wc(d.clientWidth-(j+k)),_=wc(d.clientHeight-(N+O)),w=wc(j),M={rootMargin:-E+"px "+-T+"px "+-_+"px "+-w+"px",threshold:ar(0,Aa(1,x))||1};let L=!0;function C(Q){const ne=Q[0].intersectionRatio;if(!A1(S,t.getBoundingClientRect()))return g();if(ne!==x){if(!L)return g();ne?g(!1,ne):c=setTimeout(()=>{g(!1,1e-7)},1e3)}L=!1}try{a=new IntersectionObserver(C,{...M,root:d.ownerDocument})}catch{a=new IntersectionObserver(C,M)}a.observe(t)}const b=Zt(t),p=()=>g(o);return b.addEventListener("resize",p),g(!0),()=>{b.removeEventListener("resize",p),m()}}function nv(t,r,o,a){a===void 0&&(a={});const{ancestorScroll:c=!0,ancestorResize:d=!0,elementResize:m=typeof ResizeObserver=="function",layoutShift:g=typeof IntersectionObserver=="function",animationFrame:b=!1}=a,p=zp(t),y=c||d?[...p?$l(p):[],...r?$l(r):[]]:[];y.forEach(E=>{c&&E.addEventListener("scroll",o),d&&E.addEventListener("resize",o)});const x=p&&g?WR(p,o,d):null;let S=-1,j=null;m&&(j=new ResizeObserver(E=>{let[T]=E;T&&T.target===p&&j&&r&&(j.unobserve(r),cancelAnimationFrame(S),S=requestAnimationFrame(()=>{var _;(_=j)==null||_.observe(r)})),o()}),p&&!b&&j.observe(p),r&&j.observe(r));let N,k=b?Co(t):null;b&&O();function O(){const E=Co(t);k&&!A1(k,E)&&o(),k=E,N=requestAnimationFrame(O)}return o(),()=>{var E;y.forEach(T=>{c&&T.removeEventListener("scroll",o),d&&T.removeEventListener("resize",o)}),x?.(),(E=j)==null||E.disconnect(),j=null,b&&cancelAnimationFrame(N)}}const eO=DR,tO=zR,nO=_R,sO=IR,rO=MR,oO=LR,aO=(t,r,o)=>{const a=new Map,c=o??{},d={...JR,...c.platform,_c:a};return kR(t,r,{...c,platform:d})};var lO=typeof document<"u",iO=function(){},Pc=lO?h.useLayoutEffect:iO;function tu(t,r){if(t===r)return!0;if(typeof t!=typeof r)return!1;if(typeof t=="function"&&t.toString()===r.toString())return!0;let o,a,c;if(t&&r&&typeof t=="object"){if(Array.isArray(t)){if(o=t.length,o!==r.length)return!1;for(a=o;a--!==0;)if(!tu(t[a],r[a]))return!1;return!0}if(c=Object.keys(t),o=c.length,o!==Object.keys(r).length)return!1;for(a=o;a--!==0;)if(!{}.hasOwnProperty.call(r,c[a]))return!1;for(a=o;a--!==0;){const d=c[a];if(!(d==="_owner"&&t.$$typeof)&&!tu(t[d],r[d]))return!1}return!0}return t!==t&&r!==r}function D1(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function sv(t,r){const o=D1(t);return Math.round(r*o)/o}function tm(t){const r=h.useRef(t);return Pc(()=>{r.current=t}),r}function cO(t){t===void 0&&(t={});const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:c,elements:{reference:d,floating:m}={},transform:g=!0,whileElementsMounted:b,open:p}=t,[y,x]=h.useState({x:0,y:0,strategy:o,placement:r,middlewareData:{},isPositioned:!1}),[S,j]=h.useState(a);tu(S,a)||j(a);const[N,k]=h.useState(null),[O,E]=h.useState(null),T=h.useCallback(Y=>{Y!==M.current&&(M.current=Y,k(Y))},[]),_=h.useCallback(Y=>{Y!==L.current&&(L.current=Y,E(Y))},[]),w=d||N,V=m||O,M=h.useRef(null),L=h.useRef(null),C=h.useRef(y),Q=b!=null,ne=tm(b),ue=tm(c),ee=tm(p),X=h.useCallback(()=>{if(!M.current||!L.current)return;const Y={placement:r,strategy:o,middleware:S};ue.current&&(Y.platform=ue.current),aO(M.current,L.current,Y).then(H=>{const F={...H,isPositioned:ee.current!==!1};te.current&&!tu(C.current,F)&&(C.current=F,dr.flushSync(()=>{x(F)}))})},[S,r,o,ue,ee]);Pc(()=>{p===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,x(Y=>({...Y,isPositioned:!1})))},[p]);const te=h.useRef(!1);Pc(()=>(te.current=!0,()=>{te.current=!1}),[]),Pc(()=>{if(w&&(M.current=w),V&&(L.current=V),w&&V){if(ne.current)return ne.current(w,V,X);X()}},[w,V,X,ne,Q]);const W=h.useMemo(()=>({reference:M,floating:L,setReference:T,setFloating:_}),[T,_]),z=h.useMemo(()=>({reference:w,floating:V}),[w,V]),D=h.useMemo(()=>{const Y={position:o,left:0,top:0};if(!z.floating)return Y;const H=sv(z.floating,y.x),F=sv(z.floating,y.y);return g?{...Y,transform:"translate("+H+"px, "+F+"px)",...D1(z.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:H,top:F}},[o,g,z.floating,y.x,y.y]);return h.useMemo(()=>({...y,update:X,refs:W,elements:z,floatingStyles:D}),[y,X,W,z,D])}const uO=(t,r)=>{const o=eO(t);return{name:o.name,fn:o.fn,options:[t,r]}},dO=(t,r)=>{const o=tO(t);return{name:o.name,fn:o.fn,options:[t,r]}},fO=(t,r)=>({fn:oO(t).fn,options:[t,r]}),mO=(t,r)=>{const o=nO(t);return{name:o.name,fn:o.fn,options:[t,r]}},pO=(t,r)=>{const o=sO(t);return{name:o.name,fn:o.fn,options:[t,r]}},hO=(t,r)=>{const o=rO(t);return{name:o.name,fn:o.fn,options:[t,r]}};function z1(t){const r=h.useRef(!0);r.current&&(r.current=!1,t())}const $e=(t,r,o,a,c,d,...m)=>{if(m.length>0)throw new Error(Tn(1));let g;if(t)g=t;else throw new Error("Missing arguments");return g};var nm={exports:{}},sm={};var rv;function gO(){if(rv)return sm;rv=1;var t=Wl();function r(x,S){return x===S&&(x!==0||1/x===1/S)||x!==x&&S!==S}var o=typeof Object.is=="function"?Object.is:r,a=t.useState,c=t.useEffect,d=t.useLayoutEffect,m=t.useDebugValue;function g(x,S){var j=S(),N=a({inst:{value:j,getSnapshot:S}}),k=N[0].inst,O=N[1];return d(function(){k.value=j,k.getSnapshot=S,b(k)&&O({inst:k})},[x,j,S]),c(function(){return b(k)&&O({inst:k}),x(function(){b(k)&&O({inst:k})})},[x]),m(j),j}function b(x){var S=x.getSnapshot;x=x.value;try{var j=S();return!o(x,j)}catch{return!0}}function p(x,S){return S()}var y=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?p:g;return sm.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:y,sm}var ov;function L1(){return ov||(ov=1,nm.exports=gO()),nm.exports}var I1=L1(),rm={exports:{}},om={};var av;function xO(){if(av)return om;av=1;var t=Wl(),r=L1();function o(p,y){return p===y&&(p!==0||1/p===1/y)||p!==p&&y!==y}var a=typeof Object.is=="function"?Object.is:o,c=r.useSyncExternalStore,d=t.useRef,m=t.useEffect,g=t.useMemo,b=t.useDebugValue;return om.useSyncExternalStoreWithSelector=function(p,y,x,S,j){var N=d(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(!T){if(T=!0,_=M,M=S(M),j!==void 0&&k.hasValue){var L=k.value;if(j(L,M))return w=L}return w=M}if(L=w,a(_,M))return L;var C=S(M);return j!==void 0&&j(L,C)?(_=M,L):(_=M,w=C)}var T=!1,_,w,V=x===void 0?null:x;return[function(){return 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},om}var lv;function bO(){return lv||(lv=1,rm.exports=xO()),rm.exports}var yO=bO();const Bm=[];let Hm;function vO(){return Hm}function SO(t){Bm.push(t)}function B1(t){const r=(o,a)=>{const c=In(NO).current;let d;try{Hm=c;for(const m of Bm)m.before(c);d=t(o,a);for(const m of Bm)m.after(c);c.didInitialize=!0}finally{Hm=void 0}return d};return r.displayName=t.displayName||t.name,r}function EO(t){return h.forwardRef(B1(t))}function NO(){return{didInitialize:!1}}const jO=gp(19),TO=jO?CO:RO;function H1(t,r,o,a,c){return TO(t,r,o,a,c)}function wO(t,r,o,a,c){const d=h.useCallback(()=>r(t.getSnapshot(),o,a,c),[t,r,o,a,c]);return I1.useSyncExternalStore(t.subscribe,d,d)}SO({before(t){t.syncIndex=0,t.didInitialize||(t.syncTick=1,t.syncHooks=[],t.didChangeStore=!0,t.getSnapshot=()=>{let r=!1;for(let o=0;o<t.syncHooks.length;o+=1){const a=t.syncHooks[o],c=a.selector(a.store.state,a.a1,a.a2,a.a3);Object.is(a.value,c)||(r=!0,a.value=c)}return r&&(t.syncTick+=1),t.syncTick})},after(t){t.syncHooks.length>0&&(t.didChangeStore&&(t.didChangeStore=!1,t.subscribe=r=>{const o=new Set;for(const c of t.syncHooks)o.add(c.store);const a=[];for(const c of o)a.push(c.subscribe(r));return()=>{for(const c of a)c()}}),I1.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot))}});function CO(t,r,o,a,c){const d=vO();if(!d)return wO(t,r,o,a,c);const m=d.syncIndex;d.syncIndex+=1;let g;return d.didInitialize?(g=d.syncHooks[m],(g.store!==t||g.selector!==r||!Object.is(g.a1,o)||!Object.is(g.a2,a)||!Object.is(g.a3,c))&&(g.store!==t&&(d.didChangeStore=!0),g.store=t,g.selector=r,g.a1=o,g.a2=a,g.a3=c,g.value=r(t.getSnapshot(),o,a,c))):(g={store:t,selector:r,a1:o,a2:a,a3:c,value:r(t.getSnapshot(),o,a,c)},d.syncHooks.push(g)),g.value}function RO(t,r,o,a,c){return yO.useSyncExternalStoreWithSelector(t.subscribe,t.getSnapshot,t.getSnapshot,d=>r(d,o,a,c))}class OO{constructor(r){this.state=r,this.listeners=new Set,this.updateTick=0}subscribe=r=>(this.listeners.add(r),()=>{this.listeners.delete(r)});getSnapshot=()=>this.state;setState(r){if(this.state===r)return;this.state=r,this.updateTick+=1;const o=this.updateTick;for(const a of this.listeners){if(o!==this.updateTick)return;a(r)}}update(r){for(const o in r)if(!Object.is(this.state[o],r[o])){this.setState({...this.state,...r});return}}set(r,o){Object.is(this.state[r],o)||this.setState({...this.state,[r]:o})}notifyAll(){const r={...this.state};this.setState(r)}use(r,o,a,c){return H1(this,r,o,a,c)}}class Nu extends OO{constructor(r,o={},a){super(r),this.context=o,this.selectors=a}useSyncedValue(r,o){h.useDebugValue(r);const a=this;Qe(()=>{a.state[r]!==o&&a.set(r,o)},[a,r,o])}useSyncedValueWithCleanup(r,o){const a=this;Qe(()=>(a.state[r]!==o&&a.set(r,o),()=>{a.set(r,void 0)}),[a,r,o])}useSyncedValues(r){const o=this,a=Object.values(r);Qe(()=>{o.update(r)},[o,...a])}useControlledProp(r,o){h.useDebugValue(r);const a=this,c=o!==void 0;Qe(()=>{c&&!Object.is(a.state[r],o)&&a.setState({...a.state,[r]:o})},[a,r,o,c])}select(r,o,a,c){const d=this.selectors[r];return d(this.state,o,a,c)}useState(r,o,a,c){return h.useDebugValue(r),H1(this,this.selectors[r],o,a,c)}useContextCallback(r,o){h.useDebugValue(r);const a=st(o??mn);this.context[r]=a}useStateSetter(r){const o=h.useRef(void 0);return o.current===void 0&&(o.current=a=>{this.set(r,a)}),o.current}observe(r,o){let a;typeof r=="function"?a=r:a=this.selectors[r];let c=a(this.state);return o(c,c,this),this.subscribe(d=>{const m=a(d);if(!Object.is(c,m)){const g=c;c=m,o(m,g,this)}})}}const kO={open:$e(t=>t.open),transitionStatus:$e(t=>t.transitionStatus),domReferenceElement:$e(t=>t.domReferenceElement),referenceElement:$e(t=>t.positionReference??t.referenceElement),floatingElement:$e(t=>t.floatingElement),floatingId:$e(t=>t.floatingId)};class ju extends Nu{constructor(r){const{syncOnly:o,nested:a,onOpenChange:c,triggerElements:d,...m}=r;super({...m,positionReference:m.referenceElement,domReferenceElement:m.referenceElement},{onOpenChange:c,dataRef:{current:{}},events:E1(),nested:a,triggerElements:d},kO),this.syncOnly=o}syncOpenEvent=(r,o)=>{(!r||!this.state.open||o!=null&&VC(o))&&(this.context.dataRef.current.openEvent=r?o:void 0)};dispatchOpenChange=(r,o)=>{this.syncOpenEvent(r,o.event);const a={open:r,reason:o.reason,nativeEvent:o.event,nested:this.context.nested,triggerElement:o.trigger};this.context.events.emit("openchange",a)};setOpen=(r,o)=>{if(this.syncOnly){this.context.onOpenChange?.(r,o);return}this.dispatchOpenChange(r,o),this.context.onOpenChange?.(r,o)}}function U1(t){const{popupStore:r,treatPopupAsFloatingElement:o=!1,floatingRootContext:a,floatingId:c,nested:d,onOpenChange:m}=t,g=r.useState("open"),b=r.useState("activeTriggerElement"),p=r.useState(o?"popupElement":"positionerElement"),y=r.context.triggerElements,x=m,S=h.useRef(null);a===void 0&&S.current===null&&(S.current=new ju({open:g,transitionStatus:void 0,referenceElement:b,floatingElement:p,triggerElements:y,onOpenChange:x,floatingId:c,syncOnly:!0,nested:d}));const j=a??S.current;return r.useSyncedValue("floatingId",c),Qe(()=>{const 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=d,j}const Tu={tabIndex:-1,[_m]:""};function P1(t){return r=>r==="touch"?t.current:!0}function Y1(t,r,o=!1){const a=wo(),c=pr()!=null,d=h.useRef(null);t===void 0&&d.current===null&&(d.current=r(a,c));const m=t??d.current;return U1({popupStore:m,treatPopupAsFloatingElement:o,floatingRootContext:m.state.floatingRootContext,floatingId:a,nested:c,onOpenChange:m.setOpen}),{store:m,internalStore:d.current}}function _O(t,r){const o=h.useRef(null),a=h.useRef(null);return h.useCallback(c=>{if(t===void 0)return;let d=!1;if(o.current!==null){const m=o.current,g=a.current,b=r.context.triggerElements.getById(m);g&&b===g&&(r.context.triggerElements.delete(m),d=!0),o.current=null,a.current=null}if(c!==null&&(o.current=t,a.current=c,r.context.triggerElements.add(t,c),d=!0),d){const m=r.context.triggerElements.size;r.select("open")&&r.state.triggerCount!==m&&r.set("triggerCount",m)}},[r,t])}function Lp(t,r,o,a=!1){r?t.preventUnmountingOnClose=!1:a&&(t.preventUnmountingOnClose=!0);const c=o?.id??null;(c||r)&&(t.activeTriggerId=c,t.activeTriggerElement=o??null)}function V1(t){let r=!1;return t.preventUnmountOnClose=()=>{r=!0},()=>r}function F1(t,r,o,a){z1(()=>{r===void 0&&t.state.open===!1&&o&&(t.state={...t.state,open:!0,activeTriggerId:a,preventUnmountingOnClose:!1})})}function G1(t,r,o,a){const c=o.useState("isMountedByTrigger",t),d=_O(t,o),m=st(g=>{if(d(g),!g)return;const b=o.select("open"),p=o.select("activeTriggerId");if(p===t){o.update({activeTriggerElement:g,...b?a:null});return}p==null&&b&&o.update({activeTriggerId:t,activeTriggerElement:g,...a})});return Qe(()=>{c&&o.update({activeTriggerElement:r.current,...a})},[c,o,r,...Object.values(a)]),{registerTrigger:m,isMountedByThisTrigger:c}}function Ip(t,r={}){const{closeOnActiveTriggerUnmount:o=!1}=r,a=t.useState("open"),c=t.useState("triggerCount");Qe(()=>{if(!a){t.state.triggerCount!==0&&t.set("triggerCount",0);return}const d=t.context.triggerElements.size,m={};t.state.triggerCount!==d&&(m.triggerCount=d);const g=t.select("activeTriggerId");let b=null;if(g){const p=t.context.triggerElements.getById(g);p?p!==t.state.activeTriggerElement&&(m.activeTriggerElement=p):b=g}if(!b&&!g&&d===1){const p=t.context.triggerElements.entries().next();if(!p.done){const[y,x]=p.value;m.activeTriggerId=y,m.activeTriggerElement=x}}(m.triggerCount!==void 0||m.activeTriggerId!==void 0||m.activeTriggerElement!==void 0)&&t.update(m),b&&o&&queueMicrotask(()=>{if(t.select("open")&&t.select("activeTriggerId")===b&&!t.context.triggerElements.getById(b)){const p=jt(q0);t.setOpen(!1,p),p.isCanceled||t.update({activeTriggerId:null,activeTriggerElement:null})}})},[a,t,c,o])}function Bp(t,r,o){const{mounted:a,setMounted:c,transitionStatus:d}=LC(t),m=r.useState("preventUnmountingOnClose"),g=t?!1:m;r.useSyncedValues({mounted:a,transitionStatus:d,preventUnmountingOnClose:g});const b=st(()=>{c(!1),r.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),o?.(),r.context.onOpenChangeComplete?.(!1)});return xu({enabled:a&&!t&&!g,open:t,ref:r.context.popupRef,onComplete(){t||b()}}),{forceUnmount:b,transitionStatus:d}}function Hp(t,r){t.useSyncedValues(r),Qe(()=>()=>{t.update({activeTriggerProps:Ft,inactiveTriggerProps:Ft,popupProps:Ft})},[t])}function q1(t,r){Qe(()=>{!r&&t.state.openMethod!==null&&t.set("openMethod",null)},[r,t]),Qe(()=>()=>{t.state.openMethod!==null&&t.set("openMethod",null)},[t])}class ai{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(r,o){const a=this.idMap.get(r);a!==o&&(a!==void 0&&this.elementsSet.delete(a),this.elementsSet.add(o),this.idMap.set(r,o))}delete(r){const o=this.idMap.get(r);o&&(this.elementsSet.delete(o),this.idMap.delete(r))}hasElement(r){return this.elementsSet.has(r)}hasMatchingElement(r){for(const o of this.elementsSet)if(r(o))return!0;return!1}getById(r){return this.idMap.get(r)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}}function MO(){return new ju({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new ai,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function Up(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:MO(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:Ft,inactiveTriggerProps:Ft,popupProps:Ft}}function $1(t,r,o=!1){return new ju({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:t,floatingId:r,syncOnly:!0,nested:o,onOpenChange:void 0})}const Ul=$e(t=>t.triggerIdProp??t.activeTriggerId),Pp=$e(t=>t.openProp??t.open),iv=$e(t=>(t.popupElement?.id??t.floatingId)||void 0);function X1(t,r){return r!==void 0&&Pp(t)&&Ul(t)===r}function AO(t,r){return X1(t,r)?!0:r!==void 0&&Pp(t)&&Ul(t)==null&&t.triggerCount===1}const Yp={open:Pp,mounted:$e(t=>t.mounted),transitionStatus:$e(t=>t.transitionStatus),floatingRootContext:$e(t=>t.floatingRootContext),triggerCount:$e(t=>t.triggerCount),preventUnmountingOnClose:$e(t=>t.preventUnmountingOnClose),payload:$e(t=>t.payload),activeTriggerId:Ul,activeTriggerElement:$e(t=>t.mounted?t.activeTriggerElement:null),popupId:iv,isTriggerActive:$e((t,r)=>r!==void 0&&Ul(t)===r),isOpenedByTrigger:$e((t,r)=>X1(t,r)),isMountedByTrigger:$e((t,r)=>r!==void 0&&Ul(t)===r&&t.mounted),triggerProps:$e((t,r)=>r?t.activeTriggerProps:t.inactiveTriggerProps),triggerPopupId:$e((t,r)=>AO(t,r)?iv(t):void 0),popupProps:$e(t=>t.popupProps),popupElement:$e(t=>t.popupElement),positionerElement:$e(t=>t.positionerElement)};function DO(t){const{open:r=!1,onOpenChange:o,elements:a={}}=t,c=wo(),d=pr()!=null,m=In(()=>new ju({open:r,transitionStatus:void 0,onOpenChange:o,referenceElement:a.reference??null,floatingElement:a.floating??null,triggerElements:new ai,floatingId:c,syncOnly:!1,nested:d})).current;return Qe(()=>{const g={open:r,floatingId:c};a.reference!==void 0&&(g.referenceElement=a.reference,g.domReferenceElement=vt(a.reference)?a.reference:null),a.floating!==void 0&&(g.floatingElement=a.floating),m.update(g)},[r,c,a.reference,a.floating,m]),m.context.onOpenChange=o,m.context.nested=d,m}function zO(t={}){const{nodeId:r,externalTree:o}=t,a=DO(t),c=t.rootContext||a,d=c.useState("referenceElement"),m=c.useState("floatingElement"),g=c.useState("domReferenceElement"),b=c.useState("open"),p=c.useState("floatingId"),[y,x]=h.useState(null),[S,j]=h.useState(void 0),[N,k]=h.useState(void 0),O=h.useRef(null),E=Kr(o),T=h.useMemo(()=>({reference:d,floating:m,domReference:g}),[d,m,g]),_=cO({...t,elements:{...T,...y&&{reference:y}}}),w=vt(S)?S:null,V=N===void 0?c.state.floatingElement:N;c.useSyncedValue("referenceElement",S??null),c.useSyncedValue("domReferenceElement",S===void 0?g:w),c.useSyncedValue("floatingElement",V);const M=h.useCallback(ee=>{const X=vt(ee)?{getBoundingClientRect:()=>ee.getBoundingClientRect(),getClientRects:()=>ee.getClientRects(),contextElement:ee}:ee;x(X),_.refs.setReference(X)},[_.refs]),L=h.useCallback(ee=>{(vt(ee)||ee===null)&&(O.current=ee,j(ee)),(vt(_.refs.reference.current)||_.refs.reference.current===null||ee!==null&&!vt(ee))&&_.refs.setReference(ee)},[_.refs,j]),C=h.useCallback(ee=>{k(ee),_.refs.setFloating(ee)},[_.refs]),Q=h.useMemo(()=>({..._.refs,setReference:L,setFloating:C,setPositionReference:M,domReference:O}),[_.refs,L,C,M]),ne=h.useMemo(()=>({..._.elements,domReference:g}),[_.elements,g]),ue=h.useMemo(()=>({..._,dataRef:c.context.dataRef,open:b,onOpenChange:c.setOpen,events:c.context.events,floatingId:p,refs:Q,elements:ne,nodeId:r,rootStore:c}),[_,Q,ne,r,c,b,p]);return Qe(()=>{g&&(O.current=g)},[g]),Qe(()=>{c.context.dataRef.current.floatingContext=ue;const ee=E?.nodesRef.current.find(X=>X.id===r);ee&&(ee.context=ue)}),h.useMemo(()=>({..._,context:ue,refs:Q,elements:ne,rootStore:c}),[_,Q,ne,ue,c])}const am=yp&&_o;function LO(t,r={}){const{enabled:o=!0,delay:a}=r,c="rootStore"in t?t.rootStore:t,{events:d,dataRef:m}=c.context,g=h.useRef(!1),b=h.useRef(null),p=h.useRef(!0),y=Qn();h.useEffect(()=>{const S=c.select("domReferenceElement");if(!o)return;const j=Zt(S);function N(){const E=c.select("domReferenceElement");!c.select("open")&&Vt(E)&&E===Cn(Nt(E))&&(g.current=!0)}function k(){p.current=!0}function O(){p.current=!1}return Ds(xt(j,"blur",N),am&&xt(j,"keydown",k,!0),am&&xt(j,"pointerdown",O,!0))},[c,o]),h.useEffect(()=>{if(!o)return;function S(j){if(j.reason===jo||j.reason===pu){const N=c.select("domReferenceElement");vt(N)&&(b.current=N,g.current=!0)}}return d.on("openchange",S),()=>{d.off("openchange",S)}},[d,o,c]);const x=h.useMemo(()=>{function S(){g.current=!1,b.current=null}return{onMouseLeave(){S()},onFocus(j){const N=j.currentTarget;if(g.current){if(b.current===N)return;S()}const k=Ln(j.nativeEvent);if(vt(k)){if(am&&!j.relatedTarget){if(!p.current&&!vu(k))return}else if(!qC(k))return}const O=Zc(j.relatedTarget,c.context.triggerElements),{nativeEvent:E,currentTarget:T}=j,_=typeof a=="function"?a():a;if(c.select("open")&&O||_===0||_===void 0){c.setOpen(!0,jt(Hl,E,T));return}y.start(_,()=>{g.current||c.setOpen(!0,jt(Hl,E,T))})},onBlur(j){S();const N=j.relatedTarget,k=j.nativeEvent,O=vt(N)&&N.hasAttribute(Jl("focus-guard"))&&N.getAttribute("data-type")==="outside";y.start(0,()=>{const E=c.select("domReferenceElement"),T=Cn(Nt(E));!N&&T===E||tt(m.current.floatingContext?.refs.floating.current,T)||tt(E,T)||O||Zc(N??T,c.context.triggerElements)||c.setOpen(!1,jt(Hl,k))})}}},[m,a,c,y]);return h.useMemo(()=>o?{reference:x,trigger:x}:{},[o,x])}class Vp{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new gs,this.restTimeout=new gs,this.handleCloseOptions=void 0}static create(){return new Vp}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const nu=new WeakMap;function su(t){if(!t.performedPointerEventsMutation)return;const r=t.pointerEventsScopeElement;r&&nu.get(r)===t&&(t.pointerEventsScopeElement?.style.removeProperty("pointer-events"),t.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),t.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),nu.delete(r)),t.performedPointerEventsMutation=!1,t.pointerEventsScopeElement=null,t.pointerEventsReferenceElement=null,t.pointerEventsFloatingElement=null}function K1(t,r){const{scopeElement:o,referenceElement:a,floatingElement:c}=r,d=nu.get(o);d&&d!==t&&su(d),su(t),t.performedPointerEventsMutation=!0,t.pointerEventsScopeElement=o,t.pointerEventsReferenceElement=a,t.pointerEventsFloatingElement=c,nu.set(o,t),o.style.pointerEvents="none",a.style.pointerEvents="auto",c.style.pointerEvents="auto"}function Q1(t){const r=t.context.dataRef.current,o=In(()=>r.hoverInteractionState??Vp.create()).current;return r.hoverInteractionState||(r.hoverInteractionState=o),Sp(r.hoverInteractionState.disposeEffect),r.hoverInteractionState}function Z1(t,r={}){const{enabled:o=!0,closeDelay:a=0,nodeId:c}=r,d="rootStore"in t?t.rootStore:t,m=d.useState("open"),g=d.useState("floatingElement"),b=d.useState("domReferenceElement"),{dataRef:p}=d.context,y=Kr(),x=pr(),S=Q1(d),j=Qn(),N=st(()=>n1(p.current.openEvent?.type,S.interactedInside)),k=st(()=>XC(p.current.openEvent?.type)),O=st(()=>{su(S)});Qe(()=>{m||(S.pointerType=void 0,S.restTimeoutPending=!1,S.interactedInside=!1,O())},[m,S,O]),h.useEffect(()=>O,[O]),Qe(()=>{if(o&&m&&S.handleCloseOptions?.blockPointerEvents&&k()&&vt(b)&&g){const E=b,T=g,_=Nt(g),w=y?.nodesRef.current.find(C=>C.id===x)?.context?.elements.floating;w&&(w.style.pointerEvents="");const V=S.pointerEventsScopeElement!==T?S.pointerEventsScopeElement:null,M=w!==T?w:null,L=S.handleCloseOptions?.getScope?.()??V??M??E.closest("[data-rootownerid]")??_.body;return K1(S,{scopeElement:L,referenceElement:E,floatingElement:T}),()=>{O()}}},[o,m,b,g,S,k,y,x,O]),h.useEffect(()=>{if(!o)return;function E(){return!!(y&&x&&qr(y.nodesRef.current,x).length>0)}function T(C){const Q=Dm(a,"close",S.pointerType),ne=()=>{d.setOpen(!1,jt(pn,C)),y?.events.emit("floating.closed",C)};Q?S.openChangeTimeout.start(Q,ne):(S.openChangeTimeout.clear(),ne())}function _(C){const Q=Ln(C);if(!GC(Q)){S.interactedInside=!1;return}S.interactedInside=Q?.closest("[aria-haspopup]")!=null}function w(){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(Zc(C.relatedTarget,d.context.triggerElements))return;const Q=p.current.floatingContext?.nodeId??c,ne=C.relatedTarget;if(!(y&&Q&&vt(ne)&&qr(y.nodesRef.current,Q,!1).some(ee=>tt(ee.context?.elements.floating,ne)))){if(S.handler){S.handler(C);return}O(),k()&&!N()&&T(C)}}function M(C){!y||!x||E()||j.start(0,()=>{y.events.off("floating.closed",M),d.setOpen(!1,jt(pn,C)),y.events.emit("floating.closed",C)})}const L=g;return Ds(L&&xt(L,"mouseenter",w),L&&xt(L,"mouseleave",V),L&&xt(L,"pointerdown",_,!0),()=>{y?.events.off("floating.closed",M)})},[o,g,d,p,a,c,k,N,O,S,y,x,j])}const IO={current:null};function J1(t,r={}){const{enabled:o=!0,delay:a=0,handleClose:c=null,mouseOnly:d=!1,restMs:m=0,move:g=!0,triggerElementRef:b=IO,externalTree:p,isActiveTrigger:y=!0,getHandleCloseContext:x,isClosing:S,shouldOpen:j}=r,N="rootStore"in t?t.rootStore:t,{dataRef:k,events:O}=N.context,E=Kr(p),T=Q1(N),_=h.useRef(!1),w=un(c),V=un(a),M=un(m),L=un(o),C=un(j),Q=un(S),ne=st(()=>n1(k.current.openEvent?.type,T.interactedInside)),ue=st(()=>C.current?.()!==!1),ee=st((W,z,D)=>{const Y=N.context.triggerElements;if(Y.hasElement(z))return!W||!tt(W,z);if(!vt(D))return!1;const H=D;return Y.hasMatchingElement(F=>tt(F,H))&&(!W||!tt(W,H))}),X=st(()=>{if(!T.handler)return;Nt(N.select("domReferenceElement")).removeEventListener("mousemove",T.handler),T.handler=void 0}),te=st(()=>{su(T)});return y&&(T.handleCloseOptions=w.current?.__options),h.useEffect(()=>X,[X]),h.useEffect(()=>{if(!o)return;function W(z){z.open?_.current=!1:(_.current=z.reason===pn,X(),T.openChangeTimeout.clear(),T.restTimeout.clear(),T.blockMouseMove=!0,T.restTimeoutPending=!1)}return O.on("openchange",W),()=>{O.off("openchange",W)}},[o,O,T,X]),h.useEffect(()=>{if(!o)return;function W(H,F=!0){const A=Dm(V.current,"close",T.pointerType);A?T.openChangeTimeout.start(A,()=>{N.setOpen(!1,jt(pn,H)),E?.events.emit("floating.closed",H)}):F&&(T.openChangeTimeout.clear(),N.setOpen(!1,jt(pn,H)),E?.events.emit("floating.closed",H))}const z=b.current??(y?N.select("domReferenceElement"):null);if(!vt(z))return;function D(H){if(T.openChangeTimeout.clear(),T.blockMouseMove=!1,d&&!Zl(T.pointerType))return;const F=zy(M.current),A=Dm(V.current,"open",T.pointerType),B=Ln(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 K=G==null?!1:ee(U,G,B),xe=N.select("open"),se=Q.current?.()??N.select("transitionStatus")==="ending",le=!xe&&se&&_.current,He=!K&&vt(G)&&vt(U)&&tt(U,G)&&le,ze=F>0&&!A,Re=K&&(xe||le)||He,Ue=!xe||K;if(Re){ue()&&N.setOpen(!0,jt(pn,H,G));return}ze||(A?T.openChangeTimeout.start(A,()=>{Ue&&ue()&&N.setOpen(!0,jt(pn,H,G))}):Ue&&ue()&&N.setOpen(!0,jt(pn,H,G)))}function Y(H){if(ne()){te();return}X();const F=N.select("domReferenceElement"),A=Nt(F);T.restTimeout.clear(),T.restTimeoutPending=!1;const B=k.current.floatingContext??x?.();if(Zc(H.relatedTarget,N.context.triggerElements))return;if(w.current&&B){N.select("open")||T.openChangeTimeout.clear();const U=b.current;T.handler=w.current({...B,tree:E,x:H.clientX,y:H.clientY,onClose(){te(),X(),L.current&&!ne()&&U===N.select("domReferenceElement")&&W(H,!0)}}),A.addEventListener("mousemove",T.handler),T.handler(H);return}(T.pointerType!=="touch"||!tt(N.select("floatingElement"),H.relatedTarget))&&W(H)}return g?Ds(xt(z,"mousemove",D,{once:!0}),xt(z,"mouseenter",D),xt(z,"mouseleave",Y)):Ds(xt(z,"mouseenter",D),xt(z,"mouseleave",Y))},[X,te,k,V,N,o,w,T,y,ee,ne,d,g,M,b,E,L,x,Q,ue]),h.useMemo(()=>{if(!o)return;function W(z){T.pointerType=z.pointerType}return{onPointerDown:W,onPointerEnter:W,onMouseMove(z){const{nativeEvent:D}=z,Y=z.currentTarget,H=N.select("domReferenceElement"),F=N.select("open"),A=ee(H,Y,z.target);if(d&&!Zl(T.pointerType))return;if(F&&A&&T.handleCloseOptions?.blockPointerEvents){const U=N.select("floatingElement");if(U){const G=T.handleCloseOptions?.getScope?.()??Y.ownerDocument.body;K1(T,{scopeElement:G,referenceElement:Y,floatingElement:U})}}const B=zy(M.current);if(F&&!A||B===0||!A&&T.restTimeoutPending&&z.movementX**2+z.movementY**2<2)return;T.restTimeout.clear();function I(){if(T.restTimeoutPending=!1,ne())return;const U=N.select("open");!T.blockMouseMove&&(!U||A)&&ue()&&N.setOpen(!0,jt(pn,D,Y))}T.pointerType==="touch"?dr.flushSync(()=>{I()}):A&&F?I():(T.restTimeoutPending=!0,T.restTimeout.start(B,I))}}},[o,T,ne,ee,d,N,M,ue])}const BO="Escape";function wu(t,r,o){switch(t){case"vertical":return r;case"horizontal":return o;default:return r||o}}function Rc(t,r){return wu(r,t===t1||t===Np,t===bu||t===yu)}function lm(t,r,o){return wu(r,t===Np,o?t===bu:t===yu)||t==="Enter"||t===" "||t===""}function HO(t,r,o){return wu(r,o?t===bu:t===yu,t===Np)}function UO(t,r,o,a){const c=o?t===yu:t===bu,d=t===t1;return r==="both"||r==="horizontal"&&a?t===BO:wu(r,c,d)}function PO(t,r){const{listRef:o,activeIndex:a,onNavigate:c=()=>{},enabled:d=!0,selectedIndex:m=null,allowEscape:g=!1,loopFocus:b=!1,nested:p=!1,rtl:y=!1,virtual:x=!1,focusItemOnOpen:S="auto",focusItemOnHover:j=!0,openOnArrowKeyDown:N=!0,disabledIndices:k=void 0,orientation:O="vertical",parentOrientation:E,id:T,resetOnPointerLeave:_=!0,externalTree:w,grid:V}=r,M=V!=null,L="rootStore"in t?t.rootStore:t,C=L.useState("open"),Q=L.useState("floatingElement"),ne=L.useState("domReferenceElement"),ue=L.context.dataRef,ee=Am(Q),X=Mm(ne),te=un(ee),W=pr(),z=Kr(w),D=h.useRef(S),Y=h.useRef(m??-1),H=h.useRef(null),F=h.useRef(!0),A=st(P=>{c(Y.current===-1?null:Y.current,P)}),B=h.useRef(!!Q),I=h.useRef(C),U=h.useRef(!1),G=h.useRef(!1),K=h.useRef(null),xe=un(k),se=un(C),le=un(m),He=un(_),ze=Ql(),Re=Ql(),Ue=st(()=>{function P(ae){x?z?.events.emit("virtualfocus",ae):K.current=Uc(ae,{sync:U.current,preventScroll:!0})}const q=o.current[Y.current],we=G.current;q&&P(q),(U.current?ae=>ae():ae=>ze.request(ae))(()=>{const ae=o.current[Y.current]||q;if(!ae)return;q||P(ae),ve&&(we||!F.current)&&ae.scrollIntoView?.({block:"nearest",inline:"nearest"})})});Qe(()=>{ue.current.orientation=O},[ue,O]),Qe(()=>{d&&(C&&Q?(Y.current=m??-1,D.current&&m!=null&&(G.current=!0,A())):B.current&&(Y.current=-1,A()))},[d,C,Q,m,A]),Qe(()=>{if(d){if(!C){U.current=!1;return}if(Q)if(a==null){if(U.current=!1,le.current!=null)return;if(B.current&&(Y.current=-1,Ue()),(!I.current||!B.current)&&D.current&&(H.current!=null||D.current===!0&&H.current==null)){let P=0;const q=()=>{o.current[0]==null?(P<2&&(P?be=>Re.request(be):queueMicrotask)(q),P+=1):(Y.current=H.current==null||lm(H.current,O,y)||p?Qf(o):Hy(o),H.current=null,A())};q()}}else By(o.current,a)||(Y.current=a,Ue(),G.current=!1)}},[d,C,Q,a,le,p,o,O,y,A,Ue,Re]),Qe(()=>{if(!d||Q||!z||x||!B.current)return;const P=z.nodesRef.current,q=P.find(ae=>ae.id===W)?.context?.elements.floating,we=Cn(Nt(ne??q??null)),be=P.some(ae=>ae.context&&tt(ae.context.elements.floating,we));q&&!be&&F.current&&q.focus({preventScroll:!0})},[d,Q,ne,z,W,x]),Qe(()=>{I.current=C,B.current=!!Q}),Qe(()=>{C||(H.current=null,D.current=S)},[C,S]);const ge=a!=null,ie=st(P=>{if(!se.current)return;const q=o.current.indexOf(P.currentTarget);q!==-1&&(Y.current!==q||a!==q)&&(Y.current=q,A(P))}),Ye=st(()=>E??z?.nodesRef.current.find(P=>P.id===W)?.context?.dataRef?.current.orientation),Ae=st(()=>Qf(o,xe.current)),Ie=st(P=>{if(F.current=!1,U.current=!0,P.which===229||!se.current&&P.currentTarget===te.current)return;if(p&&UO(P.key,O,y,M)){Rc(P.key,Ye())||Ts(P),L.setOpen(!1,jt(Om,P.nativeEvent)),Vt(ne)&&(x?z?.events.emit("virtualfocus",ne):ne.focus());return}const q=Y.current,we=Qf(o,k),be=Hy(o,k);if(X||(P.key==="Home"&&(Ts(P),Y.current=we,A(P)),P.key==="End"&&(Ts(P),Y.current=be,A(P))),V!=null){const ae=V(P,Y.current,o,O,b,y,k,we,be);if(ae!=null&&(Y.current=ae,A(P)),O==="both")return}if(Rc(P.key,O)){if(Ts(P),C&&!x&&Cn(P.currentTarget.ownerDocument)===P.currentTarget){Y.current=lm(P.key,O,y)?we:be,A(P);return}lm(P.key,O,y)?b?q>=be?g&&q!==o.current.length?Y.current=-1:(U.current=!1,Y.current=we):Y.current=wa(o.current,{startingIndex:q,disabledIndices:k}):Y.current=Math.min(be,wa(o.current,{startingIndex:q,disabledIndices:k})):b?q<=we?g&&q!==-1?Y.current=o.current.length:(U.current=!1,Y.current=be):Y.current=wa(o.current,{startingIndex:q,decrement:!0,disabledIndices:k}):Y.current=Math.max(we,wa(o.current,{startingIndex:q,decrement:!0,disabledIndices:k})),By(o.current,Y.current)&&(Y.current=-1),A(P)}}),ve=h.useMemo(()=>({onFocus(q){U.current=!0,ie(q)},onClick:({currentTarget:q})=>q.focus({preventScroll:!0}),onMouseMove(q){U.current=!0,G.current=!1,j&&ie(q)},onPointerLeave(q){if(!se.current||!F.current||q.pointerType==="touch")return;U.current=!0;const we=q.relatedTarget;if(!(!j||o.current.includes(we))&&He.current&&(K.current?.(),K.current=null,Y.current=-1,A(q),!x)){const be=te.current,ae=Cn(Nt(be));be&&tt(be,ae)&&be.focus({preventScroll:!0})}}}),[ie,se,te,j,o,A,He,x]),ce=h.useMemo(()=>x&&C&&ge&&{"aria-activedescendant":`${T}-${a}`},[x,C,ge,T,a]),_e=h.useMemo(()=>({"aria-orientation":O==="both"?void 0:O,...X?{}:ce,onKeyDown(P){if(P.key==="Tab"&&P.shiftKey&&C&&!x){const q=Ln(P.nativeEvent);if(q&&!tt(te.current,q))return;Ts(P),L.setOpen(!1,jt(To,P.nativeEvent)),Vt(ne)&&ne.focus();return}Ie(P)},onPointerMove(){F.current=!0}}),[ce,Ie,te,O,X,L,C,x,ne]),Me=h.useMemo(()=>{function P(be){L.setOpen(!0,jt(Om,be.nativeEvent,be.currentTarget))}function q(be){S==="auto"&&J0(be.nativeEvent)&&(D.current=!x)}function we(be){D.current=S,S==="auto"&&W0(be.nativeEvent)&&(D.current=!0)}return{onKeyDown(be){const ae=L.select("open");F.current=!1;const ke=be.key.startsWith("Arrow"),Ve=HO(be.key,Ye(),y),We=Rc(be.key,O),pt=(p?Ve:We)||be.key==="Enter"||be.key.trim()==="";if(x&&ae)return Ie(be);if(!(!ae&&!N&&ke)){if(pt){const At=Rc(be.key,Ye());H.current=p&&At?null:be.key}if(p){Ve&&(Ts(be),ae?(Y.current=Ae(),A(be)):P(be));return}We&&(le.current!=null&&(Y.current=le.current),Ts(be),!ae&&N?P(be):Ie(be),ae&&A(be))}},onFocus(be){L.select("open")&&!x&&(Y.current=-1,A(be))},onPointerDown:we,onPointerEnter:we,onMouseDown:q,onClick:q}},[Ie,S,Ae,p,A,L,N,O,Ye,y,le,x]),Z=h.useMemo(()=>({...ce,...Me}),[ce,Me]);return h.useMemo(()=>d?{reference:Z,floating:_e,item:ve,trigger:Me}:{},[d,Z,_e,Me,ve])}function YO(t,r){const{listRef:o,elementsRef:a,activeIndex:c,onMatch:d,disabledIndices:m,onTyping:g,enabled:b=!0,resetMs:p=750,selectedIndex:y=null}=r,x="rootStore"in t?t.rootStore:t,S=x.useState("open"),j=Qn(),N=h.useRef(""),k=h.useRef(y??c??-1),O=h.useRef(null),E=st(w=>{function V(te){const W=a?.current[te];return!W||Su(W)}function M(te){return V(te)?m==null||!o1(Qc,te,m):!1}function L(te,W,z=0){if(te.length===0)return-1;const D=(z%te.length+te.length)%te.length,Y=W.toLowerCase();for(let H=0;H<te.length;H+=1){const F=(D+H)%te.length;if(!(!te[F]?.toLowerCase().startsWith(Y)||!M(F)))return F}return-1}const C=o.current;if(N.current.length>0&&w.key===" "&&(Ts(w),g?.(!0)),N.current.length>0&&N.current[0]!==" "&&L(C,N.current)===-1&&w.key!==" "&&g?.(!1),C==null||w.key.length!==1||w.ctrlKey||w.metaKey||w.altKey)return;S&&w.key!==" "&&(Ts(w),g?.(!0));const Q=N.current==="";Q&&(k.current=y??c??-1),C.every((te,W)=>te&&M(W)?te[0]?.toLowerCase()!==te[1]?.toLowerCase():!0)&&N.current===w.key&&(N.current="",k.current=O.current),N.current+=w.key,j.start(p,()=>{N.current="",k.current=O.current,g?.(!1)});const ee=((Q?y??c??-1:k.current)??0)+1,X=L(C,N.current,ee);X!==-1?(d?.(X),O.current=X):w.key!==" "&&(N.current="",g?.(!1))}),T=st(w=>{const V=w.relatedTarget,M=x.select("domReferenceElement"),L=x.select("floatingElement");tt(M,V)||tt(L,V)||(j.clear(),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:T}),[E,T]);return h.useMemo(()=>b?{reference:_,floating:_}:{},[b,_])}const cv=.1,VO=cv*cv,Ut=.5;function Oc(t,r,o,a,c,d){return a>=r!=d>=r&&t<=(c-o)*(r-a)/(d-a)+o}function kc(t,r,o,a,c,d,m,g,b,p){let y=!1;return Oc(t,r,o,a,c,d)&&(y=!y),Oc(t,r,c,d,m,g)&&(y=!y),Oc(t,r,m,g,b,p)&&(y=!y),Oc(t,r,b,p,o,a)&&(y=!y),y}function FO(t,r,o){return t>=o.x&&t<=o.x+o.width&&r>=o.y&&r<=o.y+o.height}function _c(t,r,o,a,c,d){const m=Math.min(o,c),g=Math.max(o,c),b=Math.min(a,d),p=Math.max(a,d);return t>=m&&t<=g&&r>=b&&r<=p}function W1(t={}){const{blockPointerEvents:r=!1}=t,o=new gs,a=({x:c,y:d,placement:m,elements:g,onClose:b,nodeId:p,tree:y})=>{const x=m?.split("-")[0];let S=!1,j=null,N=null,k=typeof performance<"u"?performance.now():0;function O(T,_){const w=performance.now(),V=w-k;if(j===null||N===null||V===0)return j=T,N=_,k=w,!1;const M=T-j,L=_-N,C=M*M+L*L,Q=V*V*VO;return j=T,N=_,k=w,C<Q}function E(){o.clear(),b()}return function(_){o.clear();const w=g.domReference,V=g.floating;if(!w||!V||x==null||c==null||d==null)return;const{clientX:M,clientY:L}=_,C=Ln(_),Q=_.type==="mouseleave",ne=tt(V,C),ue=tt(w,C);if(ne&&(S=!0,!Q))return;if(ue&&(S=!1,!Q)){S=!0;return}if(Q&&vt(_.relatedTarget)&&tt(V,_.relatedTarget))return;function ee(){return!!(y&&qr(y.nodesRef.current,p).length>0)}function X(){ee()||E()}if(ee())return;const te=w.getBoundingClientRect(),W=V.getBoundingClientRect(),z=c>W.right-W.width/2,D=d>W.bottom-W.height/2,Y=W.width>te.width,H=W.height>te.height,F=(Y?te:W).left,A=(Y?te:W).right,B=(H?te:W).top,I=(H?te:W).bottom;if(x==="top"&&d>=te.bottom-1||x==="bottom"&&d<=te.top+1||x==="left"&&c>=te.right-1||x==="right"&&c<=te.left+1){X();return}let U=!1;switch(x){case"top":U=_c(M,L,F,te.top+1,A,W.bottom-1);break;case"bottom":U=_c(M,L,F,W.top+1,A,te.bottom-1);break;case"left":U=_c(M,L,W.right-1,I,te.left+1,B);break;case"right":U=_c(M,L,te.right-1,I,W.left+1,B);break}if(U)return;if(S&&!FO(M,L,te)){X();return}if(!Q&&O(M,L)){X();return}let G=!1;switch(x){case"top":{const K=Y?Ut/2:Ut*4,xe=Y||z?c+K:c-K,se=Y?c-K:z?c+K:c-K,le=d+Ut+1,He=z||Y?W.bottom-Ut:W.top,ze=z?Y?W.bottom-Ut:W.top:W.bottom-Ut;G=kc(M,L,xe,le,se,le,W.left,He,W.right,ze);break}case"bottom":{const K=Y?Ut/2:Ut*4,xe=Y||z?c+K:c-K,se=Y?c-K:z?c+K:c-K,le=d-Ut,He=z||Y?W.top+Ut:W.bottom,ze=z?Y?W.top+Ut:W.bottom:W.top+Ut;G=kc(M,L,xe,le,se,le,W.left,He,W.right,ze);break}case"left":{const K=H?Ut/2:Ut*4,xe=H||D?d+K:d-K,se=H?d-K:D?d+K:d-K,le=c+Ut+1,He=D||H?W.right-Ut:W.left,ze=D?H?W.right-Ut:W.left:W.right-Ut;G=kc(M,L,He,W.top,ze,W.bottom,le,xe,le,se);break}case"right":{const K=H?Ut/2:Ut*4,xe=H||D?d+K:d-K,se=H?d-K:D?d+K:d-K,le=c-Ut,He=D||H?W.left+Ut:W.right,ze=D?H?W.left+Ut:W.right:W.left+Ut;G=kc(M,L,le,xe,le,se,He,W.top,ze,W.bottom);break}}G?S||o.start(40,X):X()}};return a.__options={...t,blockPointerEvents:r},a}const GO=h.createContext(void 0);function eS(t){return h.useContext(GO)}const qO="ArrowUp",$O="ArrowDown",XO="ArrowLeft",KO="ArrowRight",QO="Home",ZO="End",JO=new Set([XO,KO]),WO=new Set([qO,$O]),ek=new Set([...JO,...WO]),Fp=new Set([...ek,QO,ZO]);function Gp(t){return t==="starting"?yR:Ft}const tk={...ri,...fu},nk=h.forwardRef(function(r,o){const{render:a,className:c,style:d,finalFocus:m,...g}=r,{store:b}=ko(),{side:p,align:y}=F0(),x=eS()!=null,S=b.useState("open"),j=b.useState("transitionStatus"),N=b.useState("popupProps"),k=b.useState("mounted"),O=b.useState("instantType"),E=b.useState("activeTriggerElement"),T=b.useState("parent"),_=b.useState("lastOpenChangeReason"),w=b.useState("rootId"),V=b.useState("floatingRootContext"),M=b.useState("floatingTreeRoot"),L=b.useState("closeDelay"),C=b.useState("activeTriggerElement"),Q=b.useState("hoverEnabled"),ne=b.useState("disabled"),ue=b.useState("openMethod"),ee=T.type==="context-menu";xu({open:S,ref:b.context.popupRef,onComplete(){S&&b.context.onOpenChangeComplete?.(!0)}}),h.useEffect(()=>{function D(Y){b.setOpen(!1,jt(Y.reason,Y.domEvent))}return M.events.on("close",D),()=>{M.events.off("close",D)}},[M.events,b]),Z1(V,{enabled:Q&&!ne&&!ee&&T.type!=="menubar",closeDelay:L});const X=h.useCallback(D=>{b.set("popupElement",D)},[b]),te={transitionStatus:j,side:p,align:y,open:S,nested:T.type==="menu",instant:O},W=hn("div",r,{state:te,ref:[o,b.context.popupRef,X],stateAttributesMapping:tk,props:[N,{onKeyDown(D){x&&Fp.has(D.key)&&D.stopPropagation()}},Gp(j),g,{"data-rootownerid":w}]});let z=T.type===void 0||ee;return(E||T.type==="menubar"&&_!==xp)&&(z=!0),i.jsx(Ap,{context:V,openInteractionType:ue,modal:ee,disabled:!k,returnFocus:m===void 0?z:m,initialFocus:T.type!=="menu",restoreFocus:!0,externalTree:T.type!=="menubar"?M:void 0,previousFocusableElement:C,nextFocusableElement:T.type===void 0?b.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:T.type===void 0?b.context.beforeContentFocusGuardRef:void 0,children:W})}),tS=h.createContext(void 0);function sk(){const t=h.useContext(tS);if(t===void 0)throw new Error(Tn(32));return t}const rk=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=ko();return d.useState("mounted")||a?i.jsx(tS.Provider,{value:a,children:i.jsx(Op,{ref:o,...c})}):null});function qp(t){return gp(19)?t:t?"true":void 0}const ok=h.createContext(void 0);function nS(){return h.useContext(ok)?.direction??"ltr"}const ak=t=>({name:"arrow",options:t,async fn(r){const{x:o,y:a,placement:c,rects:d,platform:m,elements:g,middlewareData:b}=r,{element:p,padding:y=0,offsetParent:x="real"}=fr(t,r)||{};if(p==null)return{};const S=r1(y),j={x:o,y:a},N=wp(c),k=Tp(N),O=await m.getDimensions(p),E=N==="y",T=E?"top":"left",_=E?"bottom":"right",w=E?"clientHeight":"clientWidth",V=d.reference[k]+d.reference[N]-j[N]-d.floating[k],M=j[N]-d.reference[N],L=x==="real"?await m.getOffsetParent?.(p):g.floating;let C=g.floating[w]||d.floating[k];(!C||!await m.isElement?.(L))&&(C=g.floating[w]||d.floating[k]);const Q=V/2-M/2,ne=C/2-O[k]/2-1,ue=Math.min(S[T],ne),ee=Math.min(S[_],ne),X=ue,te=C-O[k]-ee,W=C/2-O[k]/2+Q,z=s1(X,W,te),D=!b.arrow&&Xr(c)!=null&&W!==z&&d.reference[k]/2-(W<X?ue:ee)-O[k]/2<0,Y=D?W<X?W-X:W-te:0;return{[N]:j[N]+Y,data:{[N]:z,centerOffset:W-z-Y,...D&&{alignmentOffset:Y}},reset:D}}}),lk=(t,r)=>({...ak(t),options:[t,r]}),ik=hO().fn,ck={name:"hide",async fn(t){const{width:r,height:o,x:a,y:c}=t.rects.reference,d=r===0&&o===0&&a===0&&c===0;return{data:{referenceHidden:(await ik(t)).data?.referenceHidden||d}}}},Yc={sideX:"left",sideY:"top"},sS={name:"adaptiveOrigin",async fn(t){const{x:r,y:o,rects:{floating:a},elements:{floating:c},platform:d,strategy:m,placement:g}=t,b=Zt(c),p=b.getComputedStyle(c);if(!(p.transitionDuration!=="0s"&&p.transitionDuration!==""))return{x:r,y:o,data:Yc};const x=await d.getOffsetParent?.(c);let S={width:0,height:0};if(m==="fixed"&&b?.visualViewport)S={width:b.visualViewport.width,height:b.visualViewport.height};else if(x===b){const T=Nt(c);S={width:T.documentElement.clientWidth,height:T.documentElement.clientHeight}}else await d.isElement?.(x)&&(S=await d.getDimensions(x));const j=$n(g);let 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":Yc.sideX,E=j==="top"?"bottom":Yc.sideY;return{x:N,y:k,data:{sideX:O,sideY:E}}}};function rS(t,r,o){const a=t==="inline-start"||t==="inline-end";return{top:"top",right:a?o?"inline-start":"inline-end":"right",bottom:"bottom",left:a?o?"inline-end":"inline-start":"left"}[r]}function uv(t,r,o){const{rects:a,placement:c}=t;return{side:rS(r,$n(c),o),align:Xr(c)||"center",anchor:{width:a.reference.width,height:a.reference.height},positioner:{width:a.floating.width,height:a.floating.height}}}function oS(t){const{anchor:r,positionMethod:o="absolute",side:a="bottom",sideOffset:c=0,align:d="center",alignOffset:m=0,collisionBoundary:g,collisionPadding:b=5,sticky:p=!1,arrowPadding:y=5,disableAnchorTracking:x=!1,inline:S,keepMounted:j=!1,floatingRootContext:N,mounted:k,collisionAvoidance:O,shiftCrossAxis:E=!1,nodeId:T,adaptiveOrigin:_,lazyFlip:w=!1,externalTree:V}=t,[M,L]=h.useState(null);!k&&M!==null&&L(null);const C=O.side||"flip",Q=O.align||"flip",ne=O.fallbackAxisSide||"end",ue=typeof r=="function"?r:void 0,ee=st(ue),X=ue?ee:r,te=un(r),W=un(k),D=nS()==="rtl",Y=M||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":D?"left":"right","inline-start":D?"right":"left"}[a],H=d==="center"?Y:`${Y}-${d}`;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 K={boundary:g==="clipping-ancestors"?"clippingAncestors":g,padding:F},xe=h.useRef(null),se=un(c),le=un(m),He=typeof c!="function"?c:0,ze=typeof m!="function"?m:0,Re=[];S&&Re.push(S),Re.push(uO(Ee=>{const Ge=uv(Ee,a,D),Ot=typeof se.current=="function"?se.current(Ge):se.current,Yt=typeof le.current=="function"?le.current(Ge):le.current;return{mainAxis:Ot,crossAxis:Yt,alignmentAxis:Yt}},[He,ze,D,a]));const Ue=Q==="none"&&C!=="shift",ge=!Ue&&(p||E||C==="shift"),ie=C==="none"?null:mO({...K,padding:{top:F.top+A,right:F.right+A,bottom:F.bottom+A,left:F.left+A},mainAxis:!E&&C==="flip",crossAxis:Q==="flip"?"alignment":!1,fallbackAxisSideDirection:ne}),Ye=Ue?null:dO(Ee=>{const Ge=Nt(Ee.elements.floating).documentElement;return{...K,rootBoundary:E?{x:0,y:0,width:Ge.clientWidth,height:Ge.clientHeight}:void 0,mainAxis:Q!=="none",crossAxis:ge,limiter:p||E?void 0:fO(Ot=>{if(!xe.current)return{};const{width:Yt,height:re}=xe.current.getBoundingClientRect(),ye=us($n(Ot.placement)),Le=ye==="y"?Yt:re,Ze=ye==="y"?F.left+F.right:F.top+F.bottom;return{offset:Le/2+Ze/2}})}},[K,p,E,F,Q]);C==="shift"||Q==="shift"||d==="center"?Re.push(Ye,ie):Re.push(ie,Ye),Re.push(pO({...K,apply({elements:{floating:Ee},availableWidth:Ge,availableHeight:Ot,rects:Yt}){if(!W.current)return;const re=Ee.style;re.setProperty("--available-width",`${Ge}px`),re.setProperty("--available-height",`${Ot}px`);const ye=Zt(Ee).devicePixelRatio||1,{x:Le,y:Ze,width:nt,height:at}=Yt.reference,rt=(Math.round((Le+nt)*ye)-Math.round(Le*ye))/ye,$t=(Math.round((Ze+at)*ye)-Math.round(Ze*ye))/ye;re.setProperty("--anchor-width",`${rt}px`),re.setProperty("--anchor-height",`${$t}px`)}}),lk(Ee=>({element:xe.current||Nt(Ee.elements.floating).createElement("div"),padding:y,offsetParent:"floating"}),[y]),{name:"transformOrigin",fn(Ee){const{elements:Ge,middlewareData:Ot,placement:Yt,rects:re,y:ye}=Ee,Le=$n(Yt),Ze=us(Le),nt=xe.current,at=Ot.arrow?.x||0,rt=Ot.arrow?.y||0,$t=nt?.clientWidth||0,Zn=nt?.clientHeight||0,Jt=at+$t/2,gn=rt+Zn/2,hr=Math.abs(Ot.shift?.y||0),Hn=re.reference.height/2,Ls=typeof c=="function"?c(uv(Ee,a,D)):c,ii=hr>Ls,xs={top:`${Jt}px calc(100% + ${Ls}px)`,bottom:`${Jt}px ${-Ls}px`,left:`calc(100% + ${Ls}px) ${gn}px`,right:`${-Ls}px ${gn}px`}[Le],an=`${Jt}px ${re.reference.y+Hn-ye}px`;return Ge.floating.style.setProperty("--transform-origin",ge&&Ze==="y"&&ii?an:xs),{}}},ck,_),Qe(()=>{!k&&N&&N.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[k,N]);const Ae=h.useMemo(()=>({elementResize:!x&&typeof ResizeObserver<"u",layoutShift:!x&&typeof IntersectionObserver<"u"}),[x]),{refs:Ie,elements:ve,x:ce,y:_e,middlewareData:Me,update:Z,placement:P,context:q,isPositioned:we,floatingStyles:be}=zO({rootContext:N,open:j?k:void 0,placement:H,middleware:Re,strategy:o,whileElementsMounted:j?void 0:(...Ee)=>nv(...Ee,Ae),nodeId:T,externalTree:V}),{sideX:ae,sideY:ke}=Me.adaptiveOrigin||Yc,Ve=we?o:"fixed",We=h.useMemo(()=>{const Ee=_?{position:Ve,[ae]:ce,[ke]:_e}:{position:Ve,...be};return we||(Ee.opacity=0),Ee},[_,Ve,ae,ce,ke,_e,be,we]),pt=h.useRef(null);Qe(()=>{if(!k)return;const Ee=te.current,Ge=typeof Ee=="function"?Ee():Ee,Yt=(dv(Ge)?Ge.current:Ge)||null||null;Yt!==pt.current&&(Ie.setPositionReference(Yt),pt.current=Yt)},[k,Ie,X,te]),h.useEffect(()=>{if(!k)return;const Ee=te.current;typeof Ee!="function"&&dv(Ee)&&Ee.current!==pt.current&&(Ie.setPositionReference(Ee.current),pt.current=Ee.current)},[k,Ie,X,te]),h.useEffect(()=>{if(j&&k&&ve.reference&&ve.floating)return nv(ve.reference,ve.floating,Z,Ae)},[j,k,ve,Z,Ae]);const At=$n(P),mt=rS(a,At,D),Tt=Xr(P)||"center",Rt=!!Me.hide?.referenceHidden;Qe(()=>{w&&k&&we&&L(At)},[w,k,we,At]);const Lt=h.useMemo(()=>({position:"absolute",top:Me.arrow?.y,left:Me.arrow?.x}),[Me.arrow]),Ce=Me.arrow?.centerOffset!==0;return h.useMemo(()=>({positionerStyles:We,arrowStyles:Lt,arrowRef:xe,arrowUncentered:Ce,side:mt,align:Tt,physicalSide:At,anchorHidden:Rt,refs:Ie,context:q,isPositioned:we,update:Z}),[We,Lt,xe,Ce,mt,Tt,At,Rt,Ie,q,we,Z])}function dv(t){return t!=null&&"current"in t}function uk(t){const{children:r,elementsRef:o,labelsRef:a,onMapChange:c}=t,d=st(c),m=h.useRef(0),g=In(fk).current,b=In(dk).current,[p,y]=h.useState(0),x=h.useRef(p),S=st((E,T)=>{b.set(E,T??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(mk).forEach((_,w)=>{const V=b.get(_)??{};E.set(_,{...V,index:w})}),E},[b,p]);Qe(()=>{if(typeof MutationObserver!="function"||N.size===0)return;const E=new MutationObserver(T=>{const _=new Set,w=V=>_.has(V)?_.delete(V):_.add(V);T.forEach(V=>{V.removedNodes.forEach(w),V.addedNodes.forEach(w)}),_.size===0&&(x.current+=1,y(x.current))});return N.forEach((T,_)=>{_.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),d(N)},[d,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(K0.Provider,{value:O,children:r})}function dk(){return new Map}function fk(){return new Set}function mk(t,r){const o=t.compareDocumentPosition(r);return o&Node.DOCUMENT_POSITION_FOLLOWING||o&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:o&Node.DOCUMENT_POSITION_PRECEDING||o&Node.DOCUMENT_POSITION_CONTAINS?1:0}const $p=h.forwardRef(function(r,o){const{cutout:a,...c}=r;let d;if(a){const m=a.getBoundingClientRect();d=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${m.left}px ${m.top}px,${m.left}px ${m.bottom}px,${m.right}px ${m.bottom}px,${m.right}px ${m.top}px,${m.left}px ${m.top}px)`}return i.jsx("div",{ref:o,role:"presentation","data-base-ui-inert":"",...c,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:d}})});function aS(t,r,{styles:o,transitionStatus:a,props:c,refs:d,hidden:m,inert:g=!1}){const b={...o};return g&&(b.pointerEvents="none"),hn("div",t,{state:r,ref:d,props:[{role:"presentation",hidden:m,style:b},Gp(a),c],stateAttributesMapping:ri})}let fv={},mv={},pv="";function pk(t){if(typeof document>"u")return!1;const r=Nt(t);return Zt(r).innerWidth-r.documentElement.clientWidth>0}function hk(t){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const o=Nt(t),a=o.documentElement,c=o.body,d=Oo(a)?a:c,m=d.style.overflowY,g=a.style.scrollbarGutter;a.style.scrollbarGutter="stable",d.style.overflowY="scroll";const b=d.offsetWidth;d.style.overflowY="hidden";const p=d.offsetWidth;return d.style.overflowY=m,a.style.scrollbarGutter=g,b===p}function gk(t){const r=Nt(t),o=r.documentElement,a=r.body,c=Oo(o)?o:a,d={overflowY:c.style.overflowY,overflowX:c.style.overflowX};return Object.assign(c.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(c.style,d)}}function xk(t){const r=Nt(t),o=r.documentElement,a=r.body,c=Zt(o);let d=0,m=0,g=!1;const b=ws.create();if(_o&&(c.visualViewport?.scale??1)!==1)return()=>{};function p(){const j=c.getComputedStyle(o),N=c.getComputedStyle(a),E=(j.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";d=o.scrollTop,m=o.scrollLeft,fv={scrollbarGutter:o.style.scrollbarGutter,overflowY:o.style.overflowY,overflowX:o.style.overflowX},pv=o.style.scrollBehavior,mv={position:a.style.position,height:a.style.height,width:a.style.width,boxSizing:a.style.boxSizing,overflowY:a.style.overflowY,overflowX:a.style.overflowX,scrollBehavior:a.style.scrollBehavior};const T=o.scrollHeight>o.clientHeight,_=o.scrollWidth>o.clientWidth,w=j.overflowY==="scroll"||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),Q=parseFloat(N.marginLeft)+parseFloat(N.marginRight),ne=Oo(o)?o:a;if(g=hk(t),g){o.style.scrollbarGutter=E,ne.style.overflowY="hidden",ne.style.overflowX="hidden";return}Object.assign(o.style,{scrollbarGutter:E,overflowY:"hidden",overflowX:"hidden"}),(T||w)&&(o.style.overflowY="scroll"),(_||V)&&(o.style.overflowX="scroll"),Object.assign(a.style,{position:"relative",height:C||L?`calc(100dvh - ${C+L}px)`:"100dvh",width:Q||M?`calc(100vw - ${Q+M}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),a.scrollTop=d,a.scrollLeft=m,o.setAttribute("data-base-ui-scroll-locked",""),o.style.scrollBehavior="unset"}function y(){Object.assign(o.style,fv),Object.assign(a.style,mv),g||(o.scrollTop=d,o.scrollLeft=m,o.removeAttribute("data-base-ui-scroll-locked"),o.style.scrollBehavior=pv)}function x(){y(),b.request(p)}p();const S=xt(c,"resize",x);return()=>{b.cancel(),y(),typeof c.removeEventListener=="function"&&S()}}class bk{lockCount=0;restore=null;timeoutLock=gs.create();timeoutUnlock=gs.create();acquire(r){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(r)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(r){if(this.lockCount===0||this.restore!==null)return;const a=Nt(r).documentElement,c=Zt(a).getComputedStyle(a).overflowY;if(c==="hidden"||c==="clip"){this.restore=mn;return}const d=gu||!pk(r);this.restore=d?gk(r):xk(r)}}const yk=new bk;function lS(t=!0,r=null){Qe(()=>{if(t)return yk.acquire(r)},[t,r])}const vk=20;function iS(t,r,o,a){const[c,d]=h.useState(!1);Qe(()=>{if(!t||!r||o==null){d(!1);return}const m=Nt(o).documentElement.clientWidth,g=o.offsetWidth;d(m>0&&g>0&&g>=m-vk)},[t,r,o]),lS(t&&(!r||c),a)}const Sk=h.forwardRef(function(r,o){const{anchor:a,positionMethod:c="absolute",className:d,render:m,side:g,align:b,sideOffset:p=0,alignOffset:y=0,collisionBoundary:x="clipping-ancestors",collisionPadding:S=5,arrowPadding:j=5,sticky:N=!1,disableAnchorTracking:k=!1,collisionAvoidance:O=vR,style:E,...T}=r,{store:_}=ko(),w=sk(),V=mu(!0),M=_.useState("parent"),L=_.useState("floatingRootContext"),C=_.useState("floatingTreeRoot"),Q=_.useState("mounted"),ne=_.useState("open"),ue=_.useState("modal"),ee=_.useState("openMethod"),X=_.useState("activeTriggerElement"),te=_.useState("transitionStatus"),W=_.useState("positionerElement"),z=_.useState("instantType"),D=_.useState("hasViewport"),Y=_.useState("lastOpenChangeReason"),H=_.useState("floatingNodeId"),F=_.useState("floatingParentNodeId"),A=L.useState("domReferenceElement"),B=h.useRef(null),I=Ep(W,!1,!1);let U=a,G=p,K=y,xe=b,se=O;M.type==="context-menu"&&(U=a??M.context?.anchor,xe=xe??"start",!g&&xe!=="center"&&(K=r.alignOffset??2,G=r.sideOffset??-5));let le=g,He=xe;M.type==="menu"?(le=le??"inline-end",He=He??"start",se=r.collisionAvoidance??y1):M.type==="menubar"&&(le=le??(M.context.orientation==="vertical"?"inline-end":"bottom"),He=He??"start");const ze=M.type==="context-menu",Re=oS({anchor:U,floatingRootContext:L,positionMethod:V?"fixed":c,mounted:Q,side:le,sideOffset:G,align:He,alignOffset:K,arrowPadding:ze?0:j,collisionBoundary:x,collisionPadding:S,sticky:N,nodeId:H,keepMounted:w,disableAnchorTracking:k,collisionAvoidance:se,shiftCrossAxis:ze&&!("side"in se&&se.side==="flip"),externalTree:C,adaptiveOrigin:D?sS:void 0});h.useEffect(()=>{function ce(_e){_e.open&&(_e.parentNodeId===H&&_.set("hoverEnabled",!1),_e.nodeId!==H&&_e.parentNodeId===_.select("floatingParentNodeId")&&_.setOpen(!1,jt(Il)))}return C.events.on("menuopenchange",ce),()=>{C.events.off("menuopenchange",ce)}},[_,C.events,H]),h.useEffect(()=>{if(_.select("floatingParentNodeId")==null)return;function ce(_e){if(_e.open||_e.nodeId!==_.select("floatingParentNodeId"))return;const Me=_e.reason??Il;_.setOpen(!1,jt(Me))}return C.events.on("menuopenchange",ce),()=>{C.events.off("menuopenchange",ce)}},[C.events,_]);const Ue=Qn();h.useEffect(()=>{ne||Ue.clear()},[ne,Ue]),h.useEffect(()=>{function ce(_e){if(!(!ne||_e.nodeId!==_.select("floatingParentNodeId")))if(_e.target&&X&&X!==_e.target){const Me=_.select("closeDelay");Me>0?Ue.isStarted()||Ue.start(Me,()=>{_.setOpen(!1,jt(Il))}):_.setOpen(!1,jt(Il))}else Ue.clear()}return C.events.on("itemhover",ce),()=>{C.events.off("itemhover",ce)}},[C.events,ne,X,_,Ue]),h.useEffect(()=>{const ce={open:ne,nodeId:H,parentNodeId:F,reason:_.select("lastOpenChangeReason")};C.events.emit("menuopenchange",ce)},[C.events,ne,_,H,F]),Qe(()=>{const ce=A,_e=B.current;if(ce&&(B.current=ce),_e&&ce&&ce!==_e){_.set("instantType",void 0);const Me=new AbortController;return I(()=>{_.set("instantType","trigger-change")},Me.signal),()=>{Me.abort()}}},[A,I,_]);const ge={open:ne,side:Re.side,align:Re.align,anchorHidden:Re.anchorHidden,nested:M.type==="menu",instant:z},ie=M.type==="menubar"&&M.context.modal;iS(ne&&(ie||ue&&Y!==pn),ee==="touch",W,X);const Ae=aS(r,ge,{styles:Re.positionerStyles,transitionStatus:te,props:T,refs:[o,_.useStateSetter("positionerElement")],hidden:!Q,inert:!ne}),Ie=Q&&M.type!=="menu"&&(M.type!=="menubar"&&ue&&Y!==pn||M.type==="menubar"&&M.context.modal);let ve=null;return M.type==="menubar"?ve=M.context.contentElement:M.type===void 0&&(ve=X),i.jsxs(V0.Provider,{value:Re,children:[Ie&&i.jsx($p,{ref:M.type==="context-menu"||M.type==="nested-context-menu"?M.context.internalBackdropRef:null,inert:qp(!ne),cutout:ve}),i.jsx(T1,{id:H,children:i.jsx(uk,{elementsRef:_.context.itemDomElements,labelsRef:_.context.itemLabels,children:Ae})})]})}),Ek=h.createContext(null);function cS(t){return h.useContext(Ek)}function Nk(t){const r=h.useRef(""),o=h.useCallback(c=>{c.defaultPrevented||(r.current=c.pointerType,t(c,c.pointerType))},[t]);return{onClick:h.useCallback(c=>{if(c.detail===0){t(c,"keyboard");return}"pointerType"in c?t(c,c.pointerType):t(c,r.current),r.current=""},[t]),onPointerDown:o}}function jk(t,r){const o=h.useRef(t),a=st(r);Qe(()=>{o.current!==t&&a(o.current)},[t,a]),Qe(()=>{o.current=t},[t])}function uS(t,r){const o=st((d,m)=>{(typeof t=="function"?t():t)||r(m||(gu?"touch":""))}),{onClick:a,onPointerDown:c}=Nk(o);return h.useMemo(()=>({onClick:a,onPointerDown:c}),[a,c])}function Tk(t){const[r,o]=h.useState(null),a=uS(t,o);return jk(t,c=>{c&&!t&&o(null)}),h.useMemo(()=>({openMethod:r,triggerProps:a}),[r,a])}const wk={...Yp,disabled:$e(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:$e(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:$e(t=>t.openMethod),allowMouseEnter:$e(t=>t.allowMouseEnter),highlightItemOnHover:$e(t=>t.highlightItemOnHover),stickIfOpen:$e(t=>t.stickIfOpen),parent:$e(t=>t.parent),rootId:$e(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:$e(t=>t.activeIndex),isActive:$e((t,r)=>t.activeIndex===r),hoverEnabled:$e(t=>t.hoverEnabled),instantType:$e(t=>t.instantType),lastOpenChangeReason:$e(t=>t.openChangeReason),floatingTreeRoot:$e(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:$e(t=>t.floatingNodeId),floatingParentNodeId:$e(t=>t.floatingParentNodeId),itemProps:$e(t=>t.itemProps),closeDelay:$e(t=>t.closeDelay),hasViewport:$e(t=>t.hasViewport),keyboardEventRelay:$e(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})};class Xp extends Nu{constructor(r){super({...Ck(),...r},{positionerRef:h.createRef(),popupRef:h.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:h.createRef(),beforeContentFocusGuardRef:h.createRef(),onOpenChangeComplete:void 0,triggerElements:new ai},wk),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let a=o.store.select("rootId"),c=o.store.select("floatingTreeRoot"),d=o.store.select("keyboardEventRelay");this.unsubscribeParentListener=o.store.subscribe(()=>{const m=o.store.select("rootId"),g=o.store.select("floatingTreeRoot"),b=o.store.select("keyboardEventRelay");a===m&&c===g&&d===b||(a=m,c=g,d=b,this.notifyAll())}),this.context.allowMouseUpTriggerRef=o.store.context.allowMouseUpTriggerRef;return}o.type!==void 0&&(this.context.allowMouseUpTriggerRef=o.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(r,o){this.state.floatingRootContext.context.events.emit("setOpen",{open:r,eventDetails:o})}static useStore(r,o){const a=In(()=>new Xp(o)).current;return r??a}unsubscribeParentListener=null}function Ck(){return{...Up(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new kp,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:Ft,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}const Rk=h.createContext(void 0);function Ok(){return h.useContext(Rk)}const kk=B1(function(r){const{children:o,open:a,onOpenChange:c,onOpenChangeComplete:d,defaultOpen:m=!1,disabled:g=!1,modal:b,loopFocus:p=!0,orientation:y="vertical",actionsRef:x,closeParentOnEsc:S=!1,handle:j,triggerId:N,defaultTriggerId:k=null,highlightItemOnHover:O=!0}=r,E=mu(!0),T=ko(!0),_=cS(!0),w=Ok(),V=h.useMemo(()=>w&&T?{type:"menu",store:T.store}:_?{type:"menubar",context:_}:E&&!T?{type:"context-menu",context:E}:{type:void 0},[E,T,_,w]),M=Xp.useStore(j?.store,{open:m,openProp:a,activeTriggerId:k,triggerIdProp:N,parent:V});F1(M,a,m,k),M.useControlledProp("openProp",a),M.useControlledProp("triggerIdProp",N),M.useContextCallback("onOpenChangeComplete",d);const L=wo(),C=wo(),Q=M.useState("floatingTreeRoot"),ne=_p(Q),ue=pr(),ee=M.useState("open"),X=M.useState("activeTriggerElement"),te=M.useState("positionerElement"),W=M.useState("hoverEnabled"),z=M.useState("disabled"),D=M.useState("lastOpenChangeReason"),Y=M.useState("parent"),H=M.useState("activeIndex"),F=M.useState("payload"),A=M.useState("floatingParentNodeId"),B=h.useRef(null),I=h.useRef(Y.type!=="context-menu"),U=Qn(),G=h.useRef(!0),K=Qn(),xe=A!=null,{openMethod:se,triggerProps:le}=Tk(ee);M.useSyncedValues({disabled:g,highlightItemOnHover:O,modal:Y.type===void 0?b:void 0,openMethod:se,rootId:L}),Ip(M);const{forceUnmount:He}=Bp(ee,M,()=>{M.update({allowMouseEnter:!1,stickIfOpen:!0})});Qe(()=>{E&&!T?M.update({parent:{type:"context-menu",context:E},floatingNodeId:ne,floatingParentNodeId:ue}):T&&M.update({floatingNodeId:ne,floatingParentNodeId:ue})},[E,T,ne,ue,M]),h.useEffect(()=>{if(ee||(B.current=null),Y.type==="context-menu"){if(!ee){U.clear(),I.current=!1;return}U.start(500,()=>{I.current=!0})}},[U,ee,Y.type]),Qe(()=>{!ee&&!W&&M.set("hoverEnabled",!0)},[ee,W,M]);const ze=st((ae,ke)=>{const Ve=ke.reason;if(ee===ae&&ke.trigger===X&&D===Ve)return;const We=V1(ke);if(!ae&&ke.trigger==null&&(ke.trigger=X??void 0),c?.(ae,ke),ke.isCanceled)return;M.state.floatingRootContext.dispatchOpenChange(ae,ke);const pt=ke.event;if(ae===!1&&pt?.type==="click"&&pt.pointerType==="touch"&&!G.current)return;ae&&Ve===Hl?(G.current=!1,K.start(300,()=>{G.current=!0})):(G.current=!0,K.clear());const At=(Ve===jo||Ve===$0)&&pt.detail===0&&pt?.isTrusted,mt=!ae&&(Ve===pu||Ve==null),Tt={open:ae,openChangeReason:Ve};B.current=ke.event??null,Lp(Tt,ae,ke.trigger,We()),M.update(Tt),Y.type==="menubar"&&(Ve===Hl||Ve===To||Ve===pn||Ve===Om||Ve===Il)?M.set("instantType","group"):At||mt?M.set("instantType",At?"click":"dismiss"):M.set("instantType",void 0)}),Re=U1({popupStore:M,floatingId:C,nested:ue!=null,onOpenChange:ze}),Ue=Re.context.events;h.useEffect(()=>{const ae=({open:ke,eventDetails:Ve})=>ze(ke,Ve);return Ue.on("setOpen",ae),()=>{Ue?.off("setOpen",ae)}},[Ue,ze]);const ge=h.useCallback(()=>{M.setOpen(!1,jt(bp))},[M]);h.useImperativeHandle(x,()=>({unmount:He,close:ge}),[He,ge]);let ie;Y.type==="context-menu"&&(ie=Y.context),h.useImperativeHandle(ie?.positionerRef,()=>te,[te]),h.useImperativeHandle(ie?.actionsRef,()=>({setOpen:ze}),[ze]);const Ye=Dp(Re,{enabled:!z,bubbles:{escapeKey:S&&Y.type==="menu"},outsidePress(){return Y.type!=="context-menu"||B.current?.type==="contextmenu"?!0:I.current},externalTree:xe?Q:void 0}),Ae=nS(),Ie=h.useCallback(ae=>{M.select("activeIndex")!==ae&&M.set("activeIndex",ae)},[M]),ve=PO(Re,{enabled:!z,listRef:M.context.itemDomElements,activeIndex:H,nested:Y.type!==void 0,loopFocus:p,orientation:y,parentOrientation:Y.type==="menubar"?Y.context.orientation:void 0,rtl:Ae==="rtl",disabledIndices:Qc,onNavigate:Ie,openOnArrowKeyDown:Y.type!=="context-menu",externalTree:xe?Q:void 0,focusItemOnHover:O}),ce=h.useCallback(ae=>{M.context.typingRef.current=ae},[M]),_e=YO(Re,{enabled:!z,listRef:M.context.itemLabels,elementsRef:M.context.itemDomElements,activeIndex:H,resetMs:bR,onMatch:ae=>{ee&&ae!==H&&M.set("activeIndex",ae)},onTyping:ce}),Me=h.useMemo(()=>{const ae=or(_e.reference,ve.reference,Ye.reference,{onMouseMove(){M.set("allowMouseEnter",!0)}},le);return ae["aria-haspopup"]="menu",ae["aria-expanded"]=ee,ae},[M,_e.reference,ve.reference,Ye.reference,le,ee]),Z=h.useMemo(()=>{const ae=or(ve.trigger,Ye.trigger,le);return ae["aria-haspopup"]="menu",ae["aria-expanded"]=!1,ae},[ve.trigger,Ye.trigger,le]),P=h.useMemo(()=>or(Tu,{id:C,role:"menu","aria-labelledby":X?.id,onMouseMove(){M.set("allowMouseEnter",!0),Y.type==="menu"&&M.set("hoverEnabled",!1)},onClick(){M.select("hoverEnabled")&&M.set("hoverEnabled",!1)},onKeyDown(ae){const ke=M.select("keyboardEventRelay");ke&&!ae.isPropagationStopped()&&ke(ae)}},_e.floating,ve.floating,Ye.floating),[X,C,Y.type,M,_e.floating,ve.floating,Ye.floating]),q=ve.item??Ft;Hp(M,{floatingRootContext:Re,activeTriggerProps:Me,inactiveTriggerProps:Z,popupProps:P,itemProps:q});const we=h.useMemo(()=>({store:M,parent:V}),[M,V]),be=i.jsx(G0.Provider,{value:we,children:typeof o=="function"?o({payload:F}):o});return Y.type===void 0||Y.type==="context-menu"?i.jsx(w1,{externalTree:Q,children:be}):be});function _k(t){const r=t.getBoundingClientRect(),o=Zt(t);if(vp)return r;const a=o.getComputedStyle(t,"::before"),c=o.getComputedStyle(t,"::after");if(!(a.content!=="none"||c.content!=="none"))return r;const m=parseFloat(a.width)||0,g=parseFloat(a.height)||0,b=parseFloat(c.width)||0,p=parseFloat(c.height)||0,y=Math.max(r.width,m,b),x=Math.max(r.height,g,p),S=y-r.width,j=x-r.height;return{left:r.left-S/2,right:r.right+S/2,top:r.top-j/2,bottom:r.bottom+j/2}}function Mk(t={}){const{highlightItemOnHover:r,highlightedIndex:o,onHighlightedIndexChange:a}=hp(),{ref:c,index:d}=Q0(t),m=o===d,g=h.useRef(null),b=Ma(c,g);return{compositeProps:{tabIndex:m?0:-1,onFocus(){a(d)},onMouseMove(){const y=g.current;if(!r||!y)return;const x=y.hasAttribute("disabled")||y.ariaDisabled==="true";!m&&!x&&y.focus()}},compositeRef:b,index:d}}function Ak(t){const{render:r,className:o,style:a,state:c=Ft,props:d=Qc,refs:m=Qc,metadata:g,stateAttributesMapping:b,tag:p="div",...y}=t,{compositeProps:x,compositeRef:S}=Mk({metadata:g});return hn(p,t,{state:c,ref:[...m,S],props:[x,...d,y],stateAttributesMapping:b})}function dS(t){if(Vt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!rr(t))return dS(ur(t))}function fS(t,r){const o=h.useRef(null);function a(d){dr.flushSync(()=>{t.setOpen(!1,jt(To,d.nativeEvent,d.currentTarget))}),pR(o.current)?.focus()}function c(d){const m=t.select("positionerElement");if(m&&Ra(d,m))t.context.beforeContentFocusGuardRef.current?.focus();else{dr.flushSync(()=>{t.setOpen(!1,jt(To,d.nativeEvent,d.currentTarget))});let g=mR(t.context.triggerFocusTargetRef.current||r.current);for(;g!==null&&tt(m,g);){const b=g;if(g=Rp(g),g===b)break}g?.focus()}}return{preFocusGuardRef:o,handlePreFocusGuardFocus:a,handleFocusTargetFocus:c}}function Dk(t){const{enabled:r=!0,mouseDownAction:o,open:a}=t,c=h.useRef(!1);return h.useMemo(()=>r?{onMouseDown:d=>{(o==="open"&&!a||o==="close"&&a)&&(c.current=!0,Nt(d.currentTarget).addEventListener("click",()=>{c.current=!1},{once:!0}))},onClick:d=>{c.current&&(c.current=!1,d.preventBaseUIHandler())}}:Ft,[r,o,a])}const Mc=2,zk=EO(function(r,o){const{render:a,className:c,style:d,disabled:m=!1,nativeButton:g=!0,id:b,openOnHover:p,delay:y=100,closeDelay:x=0,handle:S,payload:j,...N}=r,k=ko(!0),O=S?.store??k?.store;if(!O)throw new Error(Tn(85));const E=Mo(b),T=O.useState("isTriggerActive",E),_=O.useState("floatingRootContext"),w=O.useState("isOpenedByTrigger",E),V=O.useState("triggerPopupId",E),M=h.useRef(null),L=Ik(),C=hp(!0),Q=Kr(),ne=h.useMemo(()=>Q??new kp,[Q]),ue=_p(ne),ee=pr(),{registerTrigger:X,isMountedByThisTrigger:te}=G1(E,M,O,{payload:j,closeDelay:x,parent:L,floatingTreeRoot:ne,floatingNodeId:ue,floatingParentNodeId:ee,keyboardEventRelay:C?.relayKeyboardEvent}),W=L.type==="menubar",z=O.useState("disabled"),D=m||z||W&&L.context.disabled,{getButtonProps:Y,buttonRef:H}=si({disabled:D,native:g});h.useEffect(()=>{!w&&L.type===void 0&&(O.context.allowMouseUpTriggerRef.current=!1)},[O,w,L.type]);const F=h.useRef(null),A=Qn(),B=st(ve=>{if(!F.current)return;A.clear(),O.context.allowMouseUpTriggerRef.current=!1;const ce=ve.target;if(tt(F.current,ce)||tt(O.select("positionerElement"),ce)||ce===F.current||ce!=null&&dS(ce)===O.select("rootId"))return;const _e=_k(F.current);ve.clientX>=_e.left-Mc&&ve.clientX<=_e.right+Mc&&ve.clientY>=_e.top-Mc&&ve.clientY<=_e.bottom+Mc||ne.events.emit("close",{domEvent:ve,reason:vC})});h.useEffect(()=>{w&&O.select("lastOpenChangeReason")===pn&&Nt(F.current).addEventListener("mouseup",B,{once:!0})},[w,B,O]);const I=W&&L.context.hasSubmenuOpen,G=J1(_,{enabled:(p??I)&&!D&&L.type!=="context-menu"&&(!W||I&&!te),handleClose:W1({blockPointerEvents:!W}),mouseOnly:!0,move:!1,restMs:L.type===void 0?y:void 0,delay:{close:x},triggerElementRef:M,externalTree:ne,isActiveTrigger:T,isClosing:()=>O.select("transitionStatus")==="ending"}),K=Lk(w,O.select("lastOpenChangeReason")),xe=C1(_,{enabled:!D&&L.type!=="context-menu",event:w&&W?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:L.type===void 0?K:!1}),se=LO(_,{enabled:!D&&I}),le=Dk({open:w,enabled:W,mouseDownAction:"open"}),He=h.useMemo(()=>or(se.reference,xe.reference),[se.reference,xe.reference]),ze=O.useState("triggerProps",te),{preFocusGuardRef:Re,handlePreFocusGuardFocus:Ue,handleFocusTargetFocus:ge}=fS(O,M),ie={disabled:D,open:w},Ye=[F,o,H,X,M],Ae=[He,G??Ft,ze,{"aria-haspopup":"menu","aria-controls":V,id:E,onMouseDown:ve=>{if(O.select("open"))return;A.start(200,()=>{O.context.allowMouseUpTriggerRef.current=!0}),Nt(ve.currentTarget).addEventListener("mouseup",B,{once:!0})}},W?{role:"menuitem"}:{},le,N,Y],Ie=hn("button",r,{enabled:!W,stateAttributesMapping:Rm,state:ie,ref:Ye,props:Ae});return W?i.jsx(Ak,{tag:"button",render:a,className:c,style:d,state:ie,refs:Ye,props:Ae,stateAttributesMapping:Rm}):w?i.jsxs(h.Fragment,{children:[i.jsx(Gr,{ref:Re,onFocus:Ue},`${E}-pre-focus-guard`),i.jsx(h.Fragment,{children:Ie},E),i.jsx(Gr,{ref:O.context.triggerFocusTargetRef,onFocus:ge},`${E}-post-focus-guard`)]}):i.jsx(h.Fragment,{children:Ie},E)});function Lk(t,r){const o=Qn(),[a,c]=h.useState(!1);return Qe(()=>{t&&r==="trigger-hover"?(c(!0),o.start(x1,()=>{c(!1)})):t||(o.clear(),c(!1))},[t,r,o]),a}function Ik(){const t=mu(!0),r=ko(!0),o=cS();return h.useMemo(()=>o?{type:"menubar",context:o}:t&&!r?{type:"context-menu",context:t}:{type:void 0},[t,r,o])}const Bk=h.forwardRef(function(r,o){const{className:a,render:c,orientation:d="horizontal",style:m,...g}=r;return hn("div",r,{state:{orientation:d},ref:o,props:[{role:"separator","aria-orientation":d},g]})});function Hk({...t}){return i.jsx(kk,{"data-slot":"dropdown-menu",...t})}function Uk({...t}){return i.jsx(zk,{"data-slot":"dropdown-menu-trigger",...t})}function Pk({align:t="start",alignOffset:r=0,side:o="bottom",sideOffset:a=4,className:c,...d}){return i.jsx(rk,{children:i.jsx(Sk,{className:"isolate z-50 outline-none",align:t,alignOffset:r,side:o,sideOffset:a,children:i.jsx(nk,{"data-slot":"dropdown-menu-content",className:Ne("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",c),...d})})})}function Yk({...t}){return i.jsx(HC,{"data-slot":"dropdown-menu-group",...t})}function Vk({className:t,inset:r,...o}){return i.jsx(UC,{"data-slot":"dropdown-menu-label","data-inset":r,className:Ne("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7",t),...o})}function Fk({className:t,inset:r,variant:o="default",...a}){return i.jsx(PC,{"data-slot":"dropdown-menu-item","data-inset":r,"data-variant":o,className:Ne("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",t),...a})}function Gk({className:t,...r}){return i.jsx(Bk,{"data-slot":"dropdown-menu-separator",className:Ne("-mx-1 my-1 h-px bg-border",t),...r})}const qk={propose_create_entity:"新建实体",propose_update_entity:"更新实体",propose_add_relation:"新增关系",propose_outline_node:"新建大纲节点",propose_reorder_timepoints:"重排时间轴时间点"},$k={character:"角色",setting:"设定",location:"地点",hook:"伏笔"};function Xk(t){const r=t.focus_entity_id??t.focus_node_id??"",o=t.focus_entity_type?$k[t.focus_entity_type]??t.focus_entity_type:t.focus_node_id?"大纲节点":"";return o?`${o} ${r}`:r||"当前内容"}const Kk=t=>typeof t=="object"&&t!==null?t:{};function Qk({disabled:t,onClose:r,onToggleCollapse:o}){const a=St(p=>p.sessions),c=St(p=>p.currentSessionId),d=St(p=>p.setCurrentSession),m=St(p=>p.newSession),g=a?.find(p=>p.id===c)??null,b=g?g.lastMessage||"(空会话)":"新会话";return i.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-1 border-b border-border px-2.5",children:[i.jsx(Vl,{className:"size-4 shrink-0 text-muted-foreground"}),i.jsxs(Hk,{children:[i.jsx(Uk,{render:i.jsxs(pe,{variant:"outline",size:"sm",disabled:t,className:"max-w-44 justify-start gap-1 px-1.5",children:[i.jsx("span",{className:"truncate text-sm font-medium",title:b,children:b}),i.jsx(Bj,{className:"size-3.5 shrink-0 text-muted-foreground"})]})}),i.jsxs(Pk,{align:"start",className:"w-64",children:[i.jsx(Yk,{children:i.jsx(Vk,{children:"会话(本项目)"})}),i.jsx(Gk,{}),a&&a.length===0&&i.jsx("div",{className:"px-2 py-2 text-xs text-muted-foreground",children:"暂无历史会话"}),a?.map(p=>i.jsx(Fk,{onClick:()=>d(p.id),className:Ne(p.id===c&&"bg-accent text-accent-foreground"),children:i.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[i.jsx("span",{className:"truncate text-sm",children:p.lastMessage||"(空会话)"}),i.jsxs("span",{className:"text-xs text-muted-foreground",children:[p.messageCount," 条 · ",Eo(p.updatedAt)]})]})},p.id))]})]}),i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"shrink-0 text-muted-foreground",disabled:t,onClick:m,"aria-label":"新会话",title:"新会话",children:i.jsx(lu,{className:"size-4"})}),o&&i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:o,"aria-label":"收起聊天面板",title:"收起聊天面板",children:i.jsx(bT,{className:"size-4"})}),r&&i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:r,"aria-label":"关闭聊天面板",children:i.jsx(hs,{className:"size-4"})})]})}function Zk(){const t=St(a=>a.disconnected),r=St(a=>a.setDisconnected),o=St(a=>a.resendLast);return t?i.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-xs text-destructive",children:[i.jsx(tp,{className:"size-3.5 shrink-0"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:"上次会话已取消"}),i.jsx(pe,{size:"xs",variant:"outline",className:"shrink-0",onClick:o,children:"重新发送"}),i.jsx("button",{className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",onClick:()=>r(!1),"aria-label":"关闭断连提示",children:i.jsx(hs,{className:"size-3.5"})})]}):null}function Jk(){const t=St(o=>o.streamError),r=St(o=>o.setStreamError);return t?i.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-xs text-destructive",children:[i.jsx(Jm,{className:"size-3.5 shrink-0"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),i.jsx("button",{className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",onClick:()=>r(null),"aria-label":"关闭错误提示",children:i.jsx(hs,{className:"size-3.5"})})]}):null}function mS({toolName:t,args:r,result:o,status:a}){const[c,d]=h.useState(!1),m=a==="ok"||o!==void 0;return i.jsxs("div",{className:"rounded-md border border-border/70 bg-muted/40 px-2 py-1",children:[i.jsxs("button",{className:"flex w-full items-center gap-1.5 rounded-md border border-border px-2 py-1 text-left text-xs text-muted-foreground",onClick:()=>d(g=>!g),"aria-expanded":c,children:[i.jsx(Zm,{className:Ne("size-3 shrink-0 transition-transform",c&&"rotate-90")}),i.jsx(GT,{className:"size-3 shrink-0"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["调用了 ",t]}),a==="error"&&i.jsx("span",{className:"shrink-0 text-destructive",children:"✗"}),m&&i.jsx("span",{className:"shrink-0 text-primary",children:"✓"})]}),c&&i.jsx("pre",{className:"mt-1 max-h-40 overflow-auto text-xs whitespace-pre-wrap text-muted-foreground",children:typeof r=="string"?r:JSON.stringify(r??{},null,2)})]})}function Wk({message:t,toolResults:r}){if(t.role==="user")return i.jsx("div",{className:"flex justify-end",children:i.jsx("div",{className:"max-w-[85%] rounded-lg bg-secondary px-3 py-2 text-sm text-secondary-foreground",children:t.content})});if(t.role==="tool")return null;const o=Array.isArray(t.toolCalls)?t.toolCalls:[];return i.jsxs("div",{className:"space-y-1.5",children:[o.map((a,c)=>{const d=Kk(a),m=d.id??`hist-${c}`,g=m?r.get(m):void 0;return i.jsx(mS,{toolName:d.tool??d.name??"工具",args:d.args,result:g?.content,status:g?"ok":void 0},m)}),t.content?i.jsx("p",{className:"font-serif text-[17px] leading-[1.72] whitespace-pre-wrap text-foreground",children:t.content}):null]})}function e_({proposal:t}){const r=St(d=>d.confirmProposal),o=St(d=>d.rejectProposal),a=qk[t.type]??t.type,c=t.status!=="pending"||t.processing===!0;return i.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-2.5",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-foreground",children:[i.jsx(u0,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["提案:",a]}),t.status==="confirmed"&&i.jsx("span",{className:"shrink-0 text-xs text-primary",children:"✓ 已确认"}),t.status==="rejected"&&i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:"已拒绝"}),t.status==="stale"&&i.jsx("span",{className:"shrink-0 text-xs text-destructive",children:"⚠ 数据已变化,此提案已失效"})]}),t.preview!==void 0&&i.jsx("pre",{className:"mt-1 max-h-32 overflow-auto text-xs whitespace-pre-wrap text-muted-foreground",children:typeof t.preview=="string"?t.preview:JSON.stringify(t.preview,null,2)}),i.jsxs("div",{className:"mt-2 flex gap-1.5",children:[i.jsx(pe,{size:"xs",disabled:c,onClick:()=>{r(t.proposalId)},children:"确认"}),i.jsx(pe,{size:"xs",variant:"outline",disabled:c,onClick:()=>{o(t.proposalId)},children:"拒绝"})]})]})}function t_(){const t=St(o=>o.focusContext),r=St(o=>o.clearFocusContext);return t?i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5 border-t border-border bg-accent/40 px-3 py-1.5 text-xs",children:[i.jsx(u0,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate text-muted-foreground",children:["正在讨论:",Xk(t)]}),i.jsx("button",{className:"shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted",onClick:r,"aria-label":"清除讨论上下文",children:i.jsx(hs,{className:"size-3.5"})})]}):null}function n_({disabled:t}){const[r,o]=h.useState(""),a=St(g=>g.streaming),c=St(g=>g.sendMessage),d=!t&&!a&&r.trim().length>0,m=()=>{d&&(c(r),o(""))};return i.jsx("div",{className:"shrink-0 border-t border-border p-3",children:i.jsxs("div",{className:"flex items-end gap-2",children:[i.jsx("textarea",{value:r,onChange:g=>o(g.target.value),onKeyDown:g=>{g.key==="Enter"&&!g.shiftKey&&!g.nativeEvent.isComposing&&(g.preventDefault(),m())},placeholder:a?"AI 思考中…":"输入消息…",rows:1,disabled:t||a,className:"max-h-32 min-h-9 flex-1 resize-none rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs(pe,{onClick:m,disabled:!d,className:"shrink-0",children:[a?i.jsx(Yl,{className:"size-4 animate-spin"}):i.jsx(MT,{className:"size-4"}),a?"思考中":"发送"]})]})})}function s_({disabled:t}){const r=St(p=>p.messages),o=St(p=>p.messagesLoading),a=St(p=>p.streamTools),c=St(p=>p.proposals),d=h.useRef(null),m=h.useMemo(()=>{const p=new Map;for(const y of r)y.role==="tool"&&y.toolCallId&&p.set(y.toolCallId,y);return p},[r]),g=r.length;if(h.useEffect(()=>{const p=d.current;p&&(p.scrollTop=p.scrollHeight)},[g,o,a.length,c.length]),t)return i.jsxs("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-2 p-4",children:[i.jsx(Vl,{className:"size-8 text-muted-foreground/40"}),i.jsx("p",{className:"text-sm text-muted-foreground/70",children:"打开项目后可用"})]});if(o)return i.jsx("div",{className:"flex min-h-0 flex-1 flex-col gap-3 p-4",children:[0,1].map(p=>i.jsx("div",{className:Ne(_t,"rounded-lg bg-muted/60"),style:{height:40,width:p%2?"70%":"90%"}},p))});const b=r.length===0&&a.length===0&&c.length===0;return i.jsx("div",{ref:d,className:"min-h-0 flex-1 overflow-y-auto px-3 py-3",children:b?i.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-1.5 p-4 text-center",children:[i.jsx(Vl,{className:"size-7 text-muted-foreground/40"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"试试问:这个设定有没有漏洞?"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"第 4 章剧情往哪走合理?"})]}):i.jsxs("div",{className:"flex flex-col gap-3",children:[r.map(p=>i.jsx(Wk,{message:p,toolResults:m},p.id)),a.map(p=>i.jsx(mS,{toolName:p.tool,args:p.args,result:p.result,status:p.status},p.id)),c.map(p=>i.jsx(e_,{proposal:p},p.proposalId))]})})}function hv({onClose:t,onToggleCollapse:r}){const a=!Pe(c=>c.config);return i.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[i.jsx(Qk,{disabled:a,onClose:t,onToggleCollapse:r}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(Zk,{}),i.jsx(Jk,{})]}),i.jsx(s_,{disabled:a}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(t_,{}),i.jsx(n_,{disabled:a})]})]})}function r_({open:t,onClose:r,width:o,onToggleCollapse:a}){return np("(min-width: 1024px)")?i.jsx("aside",{className:"flex min-w-0 flex-[4_1_40%] flex-col border-l border-border bg-background",style:o!==void 0?{flex:`0 1 ${o}px`,minWidth:Gl}:void 0,children:i.jsx(hv,{onToggleCollapse:a})}):t?i.jsxs("div",{className:"fixed inset-0 z-50",children:[i.jsx("div",{className:"absolute inset-0 animate-in bg-foreground/40 fade-in",onClick:r}),i.jsx("div",{className:"absolute inset-y-0 right-0 w-[85vw] max-w-md animate-in border-l border-border bg-background shadow-xl duration-300 slide-in-from-right",children:i.jsx(hv,{onClose:r})})]}):null}function o_(t){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}const a_=t=>{switch(t){case"success":return c_;case"info":return d_;case"warning":return u_;case"error":return f_;default:return null}},l_=Array(12).fill(0),i_=({visible:t,className:r})=>Be.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":t},Be.createElement("div",{className:"sonner-spinner"},l_.map((o,a)=>Be.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),c_=Be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Be.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),u_=Be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Be.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),d_=Be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Be.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),f_=Be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Be.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),m_=Be.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"},Be.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Be.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),p_=()=>{const[t,r]=Be.useState(document.hidden);return Be.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),t};let Um=1;class h_{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{const o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;const{message:a,...c}=r,d=typeof r?.id=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:Um++,m=this.toasts.find(b=>b.id===d),g=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(d)&&this.dismissedToasts.delete(d),m?this.toasts=this.toasts.map(b=>b.id===d?(this.publish({...b,...r,id:d,title:a}),{...b,...r,id:d,dismissible:g,title:a}):b):this.addToast({title:a,...c,dismissible:g,id:d}),d},this.dismiss=r=>(r?(this.dismissedToasts.add(r),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:r,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(a=>a({id:o.id,dismiss:!0}))}),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let a;o.loading!==void 0&&(a=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const c=Promise.resolve(r instanceof Function?r():r);let d=a!==void 0,m;const g=c.then(async p=>{if(m=["resolve",p],Be.isValidElement(p))d=!1,this.create({id:a,type:"default",message:p});else if(x_(p)&&!p.ok){d=!1;const x=typeof o.error=="function"?await o.error(`HTTP error! status: ${p.status}`):o.error,S=typeof o.description=="function"?await o.description(`HTTP error! status: ${p.status}`):o.description,N=typeof x=="object"&&!Be.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...N})}else if(p instanceof Error){d=!1;const x=typeof o.error=="function"?await o.error(p):o.error,S=typeof o.description=="function"?await o.description(p):o.description,N=typeof x=="object"&&!Be.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...N})}else if(o.success!==void 0){d=!1;const x=typeof o.success=="function"?await o.success(p):o.success,S=typeof o.description=="function"?await o.description(p):o.description,N=typeof x=="object"&&!Be.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){d=!1;const y=typeof o.error=="function"?await o.error(p):o.error,x=typeof o.description=="function"?await o.description(p):o.description,j=typeof y=="object"&&!Be.isValidElement(y)?y:{message:y};this.create({id:a,type:"error",description:x,...j})}}).finally(()=>{d&&(this.dismiss(a),a=void 0),o.finally==null||o.finally.call(o)}),b=()=>new Promise((p,y)=>g.then(()=>m[0]==="reject"?y(m[1]):p(m[1])).catch(y));return typeof a!="string"&&typeof a!="number"?{unwrap:b}:Object.assign(a,{unwrap:b})},this.custom=(r,o)=>{const a=o?.id||Um++;return this.create({jsx:r(a),id:a,...o}),a},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const zn=new h_,g_=(t,r)=>{const o=r?.id||Um++;return zn.addToast({title:t,...r,id:o}),o},x_=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",b_=g_,y_=()=>zn.toasts,v_=()=>zn.getActiveToasts(),gv=Object.assign(b_,{success:zn.success,info:zn.info,warning:zn.warning,error:zn.error,custom:zn.custom,message:zn.message,promise:zn.promise,dismiss:zn.dismiss,loading:zn.loading},{getHistory:y_,getToasts:v_});o_("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ac(t){return t.label!==void 0}const S_=3,E_="24px",N_="16px",xv=4e3,j_=356,T_=14,w_=45,C_=200;function js(...t){return t.filter(Boolean).join(" ")}function R_(t){const[r,o]=t.split("-"),a=[];return r&&a.push(r),o&&a.push(o),a}const O_=t=>{var r,o,a,c,d,m,g,b,p;const{invert:y,toast:x,unstyled:S,interacting:j,setHeights:N,visibleToasts:k,heights:O,index:E,toasts:T,expanded:_,removeToast:w,defaultRichColors:V,closeButton:M,style:L,cancelButtonStyle:C,actionButtonStyle:Q,className:ne="",descriptionClassName:ue="",duration:ee,position:X,gap:te,expandByDefault:W,classNames:z,icons:D,closeButtonAriaLabel:Y="Close toast"}=t,[H,F]=Be.useState(null),[A,B]=Be.useState(null),[I,U]=Be.useState(!1),[G,K]=Be.useState(!1),[xe,se]=Be.useState(!1),[le,He]=Be.useState(!1),[ze,Re]=Be.useState(!1),[Ue,ge]=Be.useState(0),[ie,Ye]=Be.useState(0),Ae=Be.useRef(x.duration||ee||xv),Ie=Be.useRef(null),ve=Be.useRef(null),ce=E===0,_e=E+1<=k,Me=x.type,Z=x.dismissible!==!1,P=x.className||"",q=x.descriptionClassName||"",we=Be.useMemo(()=>O.findIndex(ye=>ye.toastId===x.id)||0,[O,x.id]),be=Be.useMemo(()=>{var ye;return(ye=x.closeButton)!=null?ye:M},[x.closeButton,M]),ae=Be.useMemo(()=>x.duration||ee||xv,[x.duration,ee]),ke=Be.useRef(0),Ve=Be.useRef(0),We=Be.useRef(0),pt=Be.useRef(null),[At,mt]=X.split("-"),Tt=Be.useMemo(()=>O.reduce((ye,Le,Ze)=>Ze>=we?ye:ye+Le.height,0),[O,we]),Rt=p_(),Lt=x.invert||y,Ce=Me==="loading";Ve.current=Be.useMemo(()=>we*te+Tt,[we,Tt]),Be.useEffect(()=>{Ae.current=ae},[ae]),Be.useEffect(()=>{U(!0)},[]),Be.useEffect(()=>{const ye=ve.current;if(ye){const Le=ye.getBoundingClientRect().height;return Ye(Le),N(Ze=>[{toastId:x.id,height:Le,position:x.position},...Ze]),()=>N(Ze=>Ze.filter(nt=>nt.toastId!==x.id))}},[N,x.id]),Be.useLayoutEffect(()=>{if(!I)return;const ye=ve.current,Le=ye.style.height;ye.style.height="auto";const Ze=ye.getBoundingClientRect().height;ye.style.height=Le,Ye(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 Ee=Be.useCallback(()=>{K(!0),ge(Ve.current),N(ye=>ye.filter(Le=>Le.toastId!==x.id)),setTimeout(()=>{w(x)},C_)},[x,w,N,Ve]);Be.useEffect(()=>{if(x.promise&&Me==="loading"||x.duration===1/0||x.type==="loading")return;let ye;return _||j||Rt?(()=>{if(We.current<ke.current){const nt=new Date().getTime()-ke.current;Ae.current=Ae.current-nt}We.current=new Date().getTime()})():Ae.current!==1/0&&(ke.current=new Date().getTime(),ye=setTimeout(()=>{x.onAutoClose==null||x.onAutoClose.call(x,x),Ee()},Ae.current)),()=>clearTimeout(ye)},[_,j,x,Me,Rt,Ee]),Be.useEffect(()=>{x.delete&&(Ee(),x.onDismiss==null||x.onDismiss.call(x,x))},[Ee,x.delete]);function Ge(){var ye;if(D?.loading){var Le;return Be.createElement("div",{className:js(z?.loader,x==null||(Le=x.classNames)==null?void 0:Le.loader,"sonner-loader"),"data-visible":Me==="loading"},D.loading)}return Be.createElement(i_,{className:js(z?.loader,x==null||(ye=x.classNames)==null?void 0:ye.loader),visible:Me==="loading"})}const Ot=x.icon||D?.[Me]||a_(Me);var Yt,re;return Be.createElement("li",{tabIndex:0,ref:ve,className:js(ne,P,z?.toast,x==null||(r=x.classNames)==null?void 0:r.toast,z?.default,z?.[Me],x==null||(o=x.classNames)==null?void 0:o[Me]),"data-sonner-toast":"","data-rich-colors":(Yt=x.richColors)!=null?Yt:V,"data-styled":!(x.jsx||x.unstyled||S),"data-mounted":I,"data-promise":!!x.promise,"data-swiped":ze,"data-removed":G,"data-visible":_e,"data-y-position":At,"data-x-position":mt,"data-index":E,"data-front":ce,"data-swiping":xe,"data-dismissible":Z,"data-type":Me,"data-invert":Lt,"data-swipe-out":le,"data-swipe-direction":A,"data-expanded":!!(_||W&&I),"data-testid":x.testId,style:{"--index":E,"--toasts-before":E,"--z-index":T.length-E,"--offset":`${G?Ue:Ve.current}px`,"--initial-height":W?"auto":`${ie}px`,...L,...x.style},onDragEnd:()=>{se(!1),F(null),pt.current=null},onPointerDown:ye=>{ye.button!==2&&(Ce||!Z||(Ie.current=new Date,ge(Ve.current),ye.target.setPointerCapture(ye.pointerId),ye.target.tagName!=="BUTTON"&&(se(!0),pt.current={x:ye.clientX,y:ye.clientY})))},onPointerUp:()=>{var ye,Le,Ze;if(le||!Z)return;pt.current=null;const nt=Number(((ye=ve.current)==null?void 0:ye.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),at=Number(((Le=ve.current)==null?void 0:Le.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),rt=new Date().getTime()-((Ze=Ie.current)==null?void 0:Ze.getTime()),$t=H==="x"?nt:at,Zn=Math.abs($t)/rt;if(Math.abs($t)>=w_||Zn>.11){ge(Ve.current),x.onDismiss==null||x.onDismiss.call(x,x),B(H==="x"?nt>0?"right":"left":at>0?"down":"up"),Ee(),He(!0);return}else{var Jt,gn;(Jt=ve.current)==null||Jt.style.setProperty("--swipe-amount-x","0px"),(gn=ve.current)==null||gn.style.setProperty("--swipe-amount-y","0px")}Re(!1),se(!1),F(null)},onPointerMove:ye=>{var Le,Ze,nt;if(!pt.current||!Z||((Le=window.getSelection())==null?void 0:Le.toString().length)>0)return;const rt=ye.clientY-pt.current.y,$t=ye.clientX-pt.current.x;var Zn;const Jt=(Zn=t.swipeDirections)!=null?Zn:R_(X);!H&&(Math.abs($t)>1||Math.abs(rt)>1)&&F(Math.abs($t)>Math.abs(rt)?"x":"y");let gn={x:0,y:0};const hr=Hn=>1/(1.5+Math.abs(Hn)/20);if(H==="y"){if(Jt.includes("top")||Jt.includes("bottom"))if(Jt.includes("top")&&rt<0||Jt.includes("bottom")&&rt>0)gn.y=rt;else{const Hn=rt*hr(rt);gn.y=Math.abs(Hn)<Math.abs(rt)?Hn:rt}}else if(H==="x"&&(Jt.includes("left")||Jt.includes("right")))if(Jt.includes("left")&&$t<0||Jt.includes("right")&&$t>0)gn.x=$t;else{const Hn=$t*hr($t);gn.x=Math.abs(Hn)<Math.abs($t)?Hn:$t}(Math.abs(gn.x)>0||Math.abs(gn.y)>0)&&Re(!0),(Ze=ve.current)==null||Ze.style.setProperty("--swipe-amount-x",`${gn.x}px`),(nt=ve.current)==null||nt.style.setProperty("--swipe-amount-y",`${gn.y}px`)}},be&&!x.jsx&&Me!=="loading"?Be.createElement("button",{"aria-label":Y,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!Z?()=>{}:()=>{Ee(),x.onDismiss==null||x.onDismiss.call(x,x)},className:js(z?.closeButton,x==null||(a=x.classNames)==null?void 0:a.closeButton)},(re=D?.close)!=null?re:m_):null,(Me||x.icon||x.promise)&&x.icon!==null&&(D?.[Me]!==null||x.icon)?Be.createElement("div",{"data-icon":"",className:js(z?.icon,x==null||(c=x.classNames)==null?void 0:c.icon)},x.promise||x.type==="loading"&&!x.icon?x.icon||Ge():null,x.type!=="loading"?Ot:null):null,Be.createElement("div",{"data-content":"",className:js(z?.content,x==null||(d=x.classNames)==null?void 0:d.content)},Be.createElement("div",{"data-title":"",className:js(z?.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?Be.createElement("div",{"data-description":"",className:js(ue,q,z?.description,x==null||(g=x.classNames)==null?void 0:g.description)},typeof x.description=="function"?x.description():x.description):null),Be.isValidElement(x.cancel)?x.cancel:x.cancel&&Ac(x.cancel)?Be.createElement("button",{"data-button":!0,"data-cancel":!0,style:x.cancelButtonStyle||C,onClick:ye=>{Ac(x.cancel)&&Z&&(x.cancel.onClick==null||x.cancel.onClick.call(x.cancel,ye),Ee())},className:js(z?.cancelButton,x==null||(b=x.classNames)==null?void 0:b.cancelButton)},x.cancel.label):null,Be.isValidElement(x.action)?x.action:x.action&&Ac(x.action)?Be.createElement("button",{"data-button":!0,"data-action":!0,style:x.actionButtonStyle||Q,onClick:ye=>{Ac(x.action)&&(x.action.onClick==null||x.action.onClick.call(x.action,ye),!ye.defaultPrevented&&Ee())},className:js(z?.actionButton,x==null||(p=x.classNames)==null?void 0:p.actionButton)},x.action.label):null)};function bv(){if(typeof window>"u"||typeof document>"u")return"ltr";const t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}function k_(t,r){const o={};return[t,r].forEach((a,c)=>{const d=c===1,m=d?"--mobile-offset":"--offset",g=d?N_:E_;function b(p){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof p=="number"?`${p}px`:p})}typeof a=="number"||typeof a=="string"?b(a):typeof a=="object"?["top","right","bottom","left"].forEach(p=>{a[p]===void 0?o[`${m}-${p}`]=g:o[`${m}-${p}`]=typeof a[p]=="number"?`${a[p]}px`:a[p]}):b(g)}),o}const __=Be.forwardRef(function(r,o){const{id:a,invert:c,position:d="bottom-right",hotkey:m=["altKey","KeyT"],expand:g,closeButton:b,className:p,offset:y,mobileOffset:x,theme:S="light",richColors:j,duration:N,style:k,visibleToasts:O=S_,toastOptions:E,dir:T=bv(),gap:_=T_,icons:w,containerAriaLabel:V="Notifications"}=r,[M,L]=Be.useState([]),C=Be.useMemo(()=>a?M.filter(I=>I.toasterId===a):M.filter(I=>!I.toasterId),[M,a]),Q=Be.useMemo(()=>Array.from(new Set([d].concat(C.filter(I=>I.position).map(I=>I.position)))),[C,d]),[ne,ue]=Be.useState([]),[ee,X]=Be.useState(!1),[te,W]=Be.useState(!1),[z,D]=Be.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),Y=Be.useRef(null),H=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),F=Be.useRef(null),A=Be.useRef(!1),B=Be.useCallback(I=>{L(U=>{var G;return(G=U.find(K=>K.id===I.id))!=null&&G.delete||zn.dismiss(I.id),U.filter(({id:K})=>K!==I.id)})},[]);return Be.useEffect(()=>zn.subscribe(I=>{if(I.dismiss){requestAnimationFrame(()=>{L(U=>U.map(G=>G.id===I.id?{...G,delete:!0}:G))});return}setTimeout(()=>{IC.flushSync(()=>{L(U=>{const G=U.findIndex(K=>K.id===I.id);return G!==-1?[...U.slice(0,G),{...U[G],...I},...U.slice(G+1)]:[I,...U]})})})}),[M]),Be.useEffect(()=>{if(S!=="system"){D(S);return}if(S==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?D("dark"):D("light")),typeof window>"u")return;const I=window.matchMedia("(prefers-color-scheme: dark)");try{I.addEventListener("change",({matches:U})=>{D(U?"dark":"light")})}catch{I.addListener(({matches:G})=>{try{D(G?"dark":"light")}catch(K){console.error(K)}})}},[S]),Be.useEffect(()=>{M.length<=1&&X(!1)},[M]),Be.useEffect(()=>{const I=U=>{var G;if(m.every(se=>U[se]||U.code===se)){var xe;X(!0),(xe=Y.current)==null||xe.focus()}U.code==="Escape"&&(document.activeElement===Y.current||(G=Y.current)!=null&&G.contains(document.activeElement))&&X(!1)};return document.addEventListener("keydown",I),()=>document.removeEventListener("keydown",I)},[m]),Be.useEffect(()=>{if(Y.current)return()=>{F.current&&(F.current.focus({preventScroll:!0}),F.current=null,A.current=!1)}},[Y.current]),Be.createElement("section",{ref:o,"aria-label":`${V} ${H}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Q.map((I,U)=>{var G;const[K,xe]=I.split("-");return C.length?Be.createElement("ol",{key:I,dir:T==="auto"?bv():T,tabIndex:-1,ref:Y,className:p,"data-sonner-toaster":!0,"data-sonner-theme":z,"data-y-position":K,"data-x-position":xe,style:{"--front-toast-height":`${((G=ne[0])==null?void 0:G.height)||0}px`,"--width":`${j_}px`,"--gap":`${_}px`,...k,...k_(y,x)},onBlur:se=>{A.current&&!se.currentTarget.contains(se.relatedTarget)&&(A.current=!1,F.current&&(F.current.focus({preventScroll:!0}),F.current=null))},onFocus:se=>{se.target instanceof HTMLElement&&se.target.dataset.dismissible==="false"||A.current||(A.current=!0,F.current=se.relatedTarget)},onMouseEnter:()=>X(!0),onMouseMove:()=>X(!0),onMouseLeave:()=>{te||X(!1)},onDragEnd:()=>X(!1),onPointerDown:se=>{se.target instanceof HTMLElement&&se.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},C.filter(se=>!se.position&&U===0||se.position===I).map((se,le)=>{var He,ze;return Be.createElement(O_,{key:se.id,icons:w,index:le,toast:se,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:te,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(Re=>Re.position==se.position),heights:ne.filter(Re=>Re.position==se.position),setHeights:ue,expandByDefault:g,gap:_,expanded:ee,swipeDirections:r.swipeDirections})})):null}))}),pS=h.createContext(!1),hS=h.createContext(void 0);function Ao(t){const r=h.useContext(hS);if(t===!1&&r===void 0)throw new Error(Tn(27));return r}const M_={...ri,...fu},A_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,forceRender:m=!1,...g}=r,{store:b}=Ao(),p=b.useState("open"),y=b.useState("nested"),x=b.useState("mounted"),S=b.useState("transitionStatus");return hn("div",r,{state:{open:p,transitionStatus:S},ref:[b.context.backdropRef,o],stateAttributesMapping:M_,props:[{role:"presentation",hidden:!x,style:{userSelect:"none",WebkitUserSelect:"none"}},g],enabled:m||!y})}),gS=h.forwardRef(function(r,o){const{render:a,className:c,style:d,disabled:m=!1,nativeButton:g=!0,...b}=r,{store:p}=Ao(),y=p.useState("open"),{getButtonProps:x,buttonRef:S}=si({disabled:m,native:g}),j={disabled:m};function N(k){y&&p.setOpen(!1,jt(X0,k.nativeEvent))}return hn("button",r,{state:j,ref:[o,S],props:[{onClick:N},b,x]})}),D_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:m,...g}=r,{store:b}=Ao(),p=Mo(m);return b.useSyncedValueWithCleanup("descriptionElementId",p),hn("p",r,{ref:o,props:[{id:p},g]})});let z_=(function(t){return t.nestedDialogs="--nested-dialogs",t})({}),L_=(function(t){return t[t.open=yo.open]="open",t[t.closed=yo.closed]="closed",t[t.startingStyle=yo.startingStyle]="startingStyle",t[t.endingStyle=yo.endingStyle]="endingStyle",t.nested="data-nested",t.nestedDialogOpen="data-nested-dialog-open",t})({});const xS=h.createContext(void 0);function I_(){const t=h.useContext(xS);if(t===void 0)throw new Error(Tn(26));return t}const B_={...ri,...fu,nestedDialogOpen(t){return t?{[L_.nestedDialogOpen]:""}:null}},H_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,finalFocus:m,initialFocus:g,...b}=r,{store:p}=Ao(),y=p.useState("descriptionElementId"),x=p.useState("disablePointerDismissal"),S=p.useState("floatingRootContext"),j=p.useState("popupProps"),N=p.useState("modal"),k=p.useState("mounted"),O=p.useState("nested"),E=p.useState("nestedOpenDialogCount"),T=p.useState("open"),_=p.useState("openMethod"),w=p.useState("titleElementId"),V=p.useState("transitionStatus"),M=p.useState("role"),L=S.useState("floatingId"),C=b.id??L;I_(),xu({open:T,ref:p.context.popupRef,onComplete(){T&&p.context.onOpenChangeComplete?.(!0)}});const Q=g===void 0?P1(p.context.popupRef):g,ne=E>0,ue=p.useStateSetter("popupElement"),X=hn("div",r,{state:{open:T,nested:O,transitionStatus:V,nestedDialogOpen:ne},props:[j,{id:C,"aria-labelledby":w??void 0,"aria-describedby":y??void 0,role:M,...Tu,hidden:!k,onKeyDown(te){Fp.has(te.key)&&te.stopPropagation()},style:{[z_.nestedDialogs]:E}},b],ref:[o,p.context.popupRef,ue],stateAttributesMapping:B_});return i.jsx(Ap,{context:S,openInteractionType:_,disabled:!k,closeOnFocusOut:!x,initialFocus:Q,returnFocus:m,modal:N!==!1,restoreFocus:"popup",children:X})}),U_=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=Ao(),m=d.useState("mounted"),g=d.useState("modal"),b=d.useState("open");return m||a?i.jsx(xS.Provider,{value:a,children:i.jsxs(Op,{ref:o,...c,children:[m&&g===!0&&i.jsx($p,{ref:d.context.internalBackdropRef,inert:qp(!b)}),r.children]})}):null});function P_(t){const{store:r,actionsRef:o}=t,a=r.useState("open");q1(r,a),Ip(r);const{forceUnmount:c}=Bp(a,r),d=h.useCallback(()=>{r.setOpen(!1,jt(bp))},[r]);h.useImperativeHandle(o,()=>({unmount:c,close:d}),[c,d])}function Y_({store:t,parentContext:r,isDrawer:o}){const a=t.useState("open"),c=t.useState("disablePointerDismissal"),d=t.useState("modal"),m=t.useState("popupElement"),g=t.useState("floatingRootContext"),[b,p]=h.useState(0),[y,x]=h.useState(0),S=b===0,j=Dp(g,{outsidePressEvent(){return t.context.internalBackdropRef.current||t.context.backdropRef.current?"intentional":{mouse:d==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(E){if(!t.context.outsidePressEnabledRef.current||"button"in E&&E.button!==0||"touches"in E&&E.touches.length!==1)return!1;const T=Ln(E);return S&&!c?d&&(t.context.internalBackdropRef.current||t.context.backdropRef.current)?t.context.internalBackdropRef.current===T||t.context.backdropRef.current===T||tt(T,m)&&!T?.hasAttribute("data-base-ui-portal"):!0:!1},escapeKey:S});lS(a&&d===!0,m),t.useContextCallback("onNestedDialogOpen",(E,T)=>{p(E),x(T)}),t.useContextCallback("onNestedDialogClose",()=>{p(0),x(0)}),h.useEffect(()=>(r?.onNestedDialogOpen&&a&&r.onNestedDialogOpen(b+1,y+(o?1:0)),r?.onNestedDialogClose&&!a&&r.onNestedDialogClose(),()=>{r?.onNestedDialogClose&&a&&r.onNestedDialogClose()}),[o,a,b,y,r]);const N=j.reference??Ft,k=j.trigger??Ft,O=j.floating??Ft;return Hp(t,{activeTriggerProps:N,inactiveTriggerProps:k,popupProps:O,nestedOpenDialogCount:b,nestedOpenDrawerCount:y}),null}const V_={...Yp,modal:$e(t=>t.modal),nested:$e(t=>t.nested),nestedOpenDialogCount:$e(t=>t.nestedOpenDialogCount),nestedOpenDrawerCount:$e(t=>t.nestedOpenDrawerCount),disablePointerDismissal:$e(t=>t.disablePointerDismissal),openMethod:$e(t=>t.openMethod),descriptionElementId:$e(t=>t.descriptionElementId),titleElementId:$e(t=>t.titleElementId),viewportElement:$e(t=>t.viewportElement),role:$e(t=>t.role)};class Kp extends Nu{constructor(r,o,a=!1){const c=new ai,d=F_(r);d.floatingRootContext=$1(c,o,a),super(d,{popupRef:h.createRef(),backdropRef:h.createRef(),internalBackdropRef:h.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:c,onOpenChange:void 0,onOpenChangeComplete:void 0},V_)}setOpen=(r,o)=>{if(o.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!r&&o.trigger==null&&this.state.activeTriggerId!=null&&(o.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(r,o),o.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(r,o);const a={open:r};Lp(a,r,o.trigger),this.update(a)};static useStore(r,o){return Y1(r,(c,d)=>new Kp(o,c,d),!0).store}}function F_(t={}){return{...Up(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...t}}function G_(t,r="dialog"){const{children:o,open:a,defaultOpen:c=!1,onOpenChange:d,onOpenChangeComplete:m,disablePointerDismissal:g=!1,modal:b=!0,actionsRef:p,handle:y,triggerId:x,defaultTriggerId:S=null}=t,j=r==="drawer",N=r==="alert-dialog",k=N?!0:b,O=N||g,E=N?"alertdialog":"dialog",T=Ao(!0),w={modal:k,disablePointerDismissal:O,nested:!!T,role:E},V=Kp.useStore(y?.store,{open:c,openProp:a,activeTriggerId:S,triggerIdProp:x,...w});z1(()=>{const ue=a===void 0&&V.state.open===!1&&c===!0?{open:!0,activeTriggerId:S}:null;N?V.update(ue?{...w,...ue}:w):ue&&V.update(ue)}),V.useControlledProp("openProp",a),V.useControlledProp("triggerIdProp",x),V.useSyncedValues(w),V.useContextCallback("onOpenChange",d),V.useContextCallback("onOpenChangeComplete",m);const M=V.useState("open"),L=V.useState("mounted"),C=V.useState("payload");P_({store:V,actionsRef:p});const Q=M||L,ne=h.useMemo(()=>({store:V}),[V]);return i.jsx(pS.Provider,{value:!1,children:i.jsxs(hS.Provider,{value:ne,children:[Q&&i.jsx(Y_,{store:V,parentContext:T?.store.context,isDrawer:j}),typeof o=="function"?o({payload:C}):o]})})}function q_(t){const r=h.useContext(pS)?"drawer":"dialog";return G_(t,r)}const $_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:m,...g}=r,{store:b}=Ao(),p=Mo(m);return b.useSyncedValueWithCleanup("titleElementId",p),hn("h2",r,{ref:o,props:[{id:p},g]})});function Rs({...t}){return i.jsx(q_,{"data-slot":"dialog",...t})}function X_({...t}){return i.jsx(U_,{"data-slot":"dialog-portal",...t})}function K_({className:t,...r}){return i.jsx(A_,{"data-slot":"dialog-overlay",className:Ne("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",t),...r})}function Os({className:t,children:r,showCloseButton:o=!0,...a}){return i.jsxs(X_,{children:[i.jsx(K_,{}),i.jsxs(H_,{"data-slot":"dialog-content",className:Ne("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...a,children:[r,o&&i.jsxs(gS,{"data-slot":"dialog-close",render:i.jsx(pe,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[i.jsx(hs,{}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function ks({className:t,...r}){return i.jsx("div",{"data-slot":"dialog-header",className:Ne("flex flex-col gap-2",t),...r})}function _s({className:t,showCloseButton:r=!1,children:o,...a}){return i.jsxs("div",{"data-slot":"dialog-footer",className:Ne("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",t),...a,children:[o,r&&i.jsx(gS,{render:i.jsx(pe,{variant:"outline"}),children:"Close"})]})}function Ms({className:t,...r}){return i.jsx($_,{"data-slot":"dialog-title",className:Ne("font-heading text-base leading-none font-medium",t),...r})}function Q_({className:t,...r}){return i.jsx(D_,{"data-slot":"dialog-description",className:Ne("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",t),...r})}const is={volume:"卷",chapter:"章",scene:"场"},Z_={volume:"chapter",chapter:"scene",scene:null};function Da({title:t,description:r,confirmLabel:o,danger:a=!1,onConfirm:c,onClose:d}){const[m,g]=h.useState(null),[b,p]=h.useState(!1);async function y(){p(!0),g(null);try{await c(),d()}catch(x){g(x instanceof De?x.message:"操作失败,请稍后重试")}finally{p(!1)}}return i.jsx(Rs,{open:!0,onOpenChange:x=>!x&&d(),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:t})}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r}),m&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:m}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:d,disabled:b,children:"取消"}),i.jsx(pe,{variant:a?"destructive":"default",type:"button",onClick:()=>{y()},disabled:b,children:o})]})]})})}const yv="ai-editor:theme";function bS(){const[t,r]=h.useState("light");h.useEffect(()=>{const c=localStorage.getItem(yv)==="dark"?"dark":"light";r(c),document.documentElement.classList.toggle("dark",c==="dark")},[]);function o(){const a=t==="dark"?"light":"dark";localStorage.setItem(yv,a),document.documentElement.classList.toggle("dark",a==="dark"),r(a)}return{theme:t,toggleTheme:o}}const J_=({...t})=>{const{theme:r="light"}=bS();return i.jsx(__,{theme:r,position:"top-right",className:"toaster group",icons:{success:i.jsx(Wm,{className:"size-4"}),info:i.jsx(c0,{className:"size-4"}),warning:i.jsx(tp,{className:"size-4"}),error:i.jsx(fT,{className:"size-4"}),loading:i.jsx(Yl,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},toastOptions:{classNames:{toast:"cn-toast"}},...t})};function W_(t,r){return t!==null&&t.id!==r}function e3(){const t=Oe(o=>o.confirmState),r=Oe(o=>o.resolveConfirm);return t===null?null:i.jsx(Da,{title:t.title,description:t.description??"",confirmLabel:"确认",danger:t.danger,onConfirm:async()=>r(!0),onClose:()=>r(!1)})}function t3(){const t=Oe(c=>c.toast),r=Oe(c=>c.error),o=Oe(c=>c.clearError),a=h.useRef(null);return h.useEffect(()=>{!t||!W_(t,a.current)||(a.current=t.id,t.kind==="error"?gv.error(t.text,{duration:Nm}):gv.success(t.text,{duration:Nm}))},[t]),i.jsxs(i.Fragment,{children:[i.jsx(J_,{}),i.jsx(e3,{}),r&&i.jsxs("div",{role:"alert",className:"fixed top-4 left-1/2 z-50 flex w-[min(92vw,32rem)] -translate-x-1/2 items-center gap-2 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive shadow-lg",children:[i.jsx(Jm,{className:"size-4 shrink-0"}),i.jsx("p",{className:"min-w-0 flex-1",children:r.message}),i.jsx("button",{type:"button","aria-label":"关闭错误提示",onClick:o,className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",children:i.jsx(hs,{className:"size-4"})})]})]})}function n3({chatOpen:t,onToggleChat:r}){const o=Pe(y=>y.config),a=Pe(y=>y.configLoading),c=Pe(y=>y.outline),d=Oe(y=>y.setFocusOutlineNode),m=Oe(y=>y.notifyDataChanged),g=np("(min-width: 1024px)"),b=o?.currentPosition!=null?A0(c,o.currentPosition)??o.currentPosition:null,p=a?"加载中…":o?.name??"书架";return i.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-3 border-b border-border px-4",children:[i.jsxs("a",{href:"#/",className:"flex min-w-0 items-center gap-1.5 font-serif text-base font-medium text-foreground hover:text-primary",children:[i.jsx("span",{className:"text-primary",children:"◈"}),i.jsx("span",{className:"truncate",children:p})]}),i.jsxs("a",{href:"#/outline",onClick:()=>{o?.currentPosition!=null&&d(o.currentPosition)},title:o?.currentPosition!=null?"跳转大纲并定位该节点":void 0,className:"flex min-w-0 items-center gap-1 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[i.jsx("span",{className:"shrink-0",children:"当前位置:"}),i.jsx("span",{className:"truncate text-foreground",children:b??"未设置"})]}),i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:m,"aria-label":"刷新数据",title:"刷新数据",children:i.jsx(RT,{className:"size-4"})}),i.jsxs("span",{className:"shrink-0 text-sm text-muted-foreground",children:["语言: ",o?.language??"—"]}),!g&&i.jsx(pe,{variant:"ghost",size:"icon-sm",className:t?"bg-secondary text-foreground":"text-muted-foreground",onClick:r,"aria-label":t?"关闭聊天面板":"打开聊天面板",children:i.jsx(Vl,{className:"size-4"})})]})}const s3=[{label:"概览",href:"#/",segment:null,icon:Jj},{label:"大纲",href:"#/outline",segment:"outline",icon:nT},{label:"画布",href:"#/canvas",segment:"canvas",icon:LT},{label:"实体关系",href:"#/entities/character",segment:"entities",icon:uT},{label:"伏笔",href:"#/hooks",segment:"hooks",icon:wT},{label:"时间轴",href:"#/timeline",segment:"timeline",icon:zj},{label:"回收站",href:"#/trash",segment:"trash",icon:ti}];function r3({route:t}){const r=t.segments[0]??null,o=Pe(d=>d.loadError==="NO_PROJECT_OPEN"),a=Oe(d=>d.showToast),c=(d,m)=>{!o||m.segment===null||(d.preventDefault(),window.location.hash="#/",a("请先创建或打开项目"))};return i.jsx("nav",{"aria-label":"页面导航",className:"flex items-center gap-1 rounded-lg bg-secondary/30 p-1",children:s3.map(d=>{const m=d.icon,g=r===d.segment;return i.jsxs("a",{href:d.href,"aria-current":g?"page":void 0,onClick:b=>c(b,d),className:Ne("flex min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",g&&"bg-card text-foreground shadow-sm"),children:[i.jsx(m,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:d.label})]},d.label)})})}function o3({route:t,chatOpen:r,onToggleChat:o,isDesktop:a,children:c}){const d=Pe(m=>m.loadConfig);return h.useEffect(()=>{d()},[d]),i.jsxs("main",{className:"flex min-w-0 flex-[5_1_50%] flex-col",style:a?{flex:"1 1 0%",minWidth:$T}:void 0,children:[i.jsx(n3,{chatOpen:r,onToggleChat:o}),i.jsx("div",{className:"shrink-0 px-3 py-2",children:i.jsx(r3,{route:t})}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-6",children:c})]})}function Pl(t){switch(t){case"INVALID_PROJECT_PATH":return"路径无效:请使用绝对路径,且目标目录须已含 project.json(不是项目目录)";case"PROJECT_ALREADY_EXISTS":return"该目录已是项目,请直接打开(书架列表或「打开其他路径」)";case"PROJECT_VERSION_NEWER":return"该项目由更高版本的 ai-editor 创建,请升级程序后再打开(避免降级导致数据丢失)";case"NO_PROJECT_OPEN":return"";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function a3(t,r){switch(t){case"PROJECT_ALREADY_EXISTS":return"同名书籍已存在,请换一个书名";case"SCHEMA_VERSION_MISMATCH":return r;case"VALIDATION_ERROR":return r;case"NO_PROJECT_OPEN":return"";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"导入失败,请稍后重试"}}function l3(t,r){return t==="CLIENT_NETWORK_ERROR"?"无法连接服务,请确认 ai-editor 服务已启动":r}function Vc(t){const r=t.trim();return r===""?"请输入书名":/[\\/]|^\.+$|[\u0000-\u001f]/.test(r)?"书名不能包含 /、\\ 或为 . / ..":null}let vv=(function(t){return t.disabled="data-disabled",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t})({});const i3={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Bl={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},c3={disabled:!1,...Bl},u3={valid(t){return t===null?null:t?{[vv.valid]:""}:{[vv.invalid]:""}}},d3={invalid:void 0,name:void 0,validityData:{state:i3,errors:[],error:"",value:"",initialValue:null},setValidityData:mn,disabled:void 0,touched:Bl.touched,setTouched:mn,dirty:Bl.dirty,setDirty:mn,filled:Bl.filled,setFilled:mn,focused:Bl.focused,setFocused:mn,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:c3,markedDirtyRef:{current:!1},registerFieldControl:mn,validation:{getValidationProps:(t,r=Ft)=>r,inputRef:{current:null},registerInput:mn,commit:async()=>{},change:mn}},f3=h.createContext(d3);function yS(t=!0){const r=h.useContext(f3);if(r.setValidityData===mn&&!t)throw new Error(Tn(28));return r}const m3=h.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:mn,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function p3(){return h.useContext(m3)}const h3=h.createContext({controlId:void 0,registerControlId:mn,labelId:void 0,setLabelId:mn,messageIds:[],setMessageIds:mn,getDescriptionProps:t=>t});function vS(){return h.useContext(h3)}function g3(t={}){const{id:r,implicit:o=!1,controlRef:a}=t,{controlId:c,registerControlId:d}=vS(),m=Mo(r),g=o?c:void 0,b=In(()=>Symbol("labelable-control")),p=h.useRef(!1),y=h.useRef(r!=null),x=st(()=>{!p.current||d===mn||(p.current=!1,d(b.current,void 0))});return Qe(()=>{if(d===mn)return;let S;if(o){const j=a?.current;vt(j)&&j.closest("label")!=null?S=r??null:S=g??m}else if(r!=null)y.current=!0,S=r;else if(y.current)S=m;else{x();return}if(S===void 0){x();return}p.current=!0,d(b.current,S)},[r,a,g,d,o,m,b,x]),h.useEffect(()=>x,[x]),c??m}function x3(t,r,o,a,c=!0,d){const{registerFieldControl:m}=yS(),g=h.useRef(null);g.current||(g.current=Symbol()),Qe(()=>{const b=g.current;return!b||!c?void 0:(m(b,{controlRef:t,getValue:a,id:r,name:d,value:o}),()=>{m(b,void 0)})},[t,c,a,r,d,m,o])}const b3=h.forwardRef(function(r,o){const{render:a,className:c,id:d,name:m,value:g,disabled:b=!1,onValueChange:p,defaultValue:y,autoFocus:x=!1,style:S,...j}=r,{state:N,name:k,disabled:O,setTouched:E,setDirty:T,validityData:_,setFocused:w,setFilled:V,validationMode:M,validation:L}=yS(),{clearErrors:C}=p3(),Q=O||b,ne=k??m,ue={...N,disabled:Q},{labelId:ee}=vS(),X=g3({id:d});Qe(()=>{const F=g!=null;L.inputRef.current?.value||F&&g!==""?V(!0):F&&g===""&&V(!1)},[L.inputRef,V,g]);const te=h.useRef(null);Qe(()=>{x&&te.current===Cn(Nt(te.current))&&w(!0)},[x,w]);const[W]=SC({controlled:g,default:y,name:"FieldControl",state:"value"}),z=g!==void 0,D=z?W:void 0,Y=st(()=>L.inputRef.current?.value);return x3(L.inputRef,X,D,Y,!Q,m),hn("input",r,{ref:[o,te],state:ue,props:[{id:X,disabled:Q,name:ne,ref:L.inputRef,"aria-labelledby":ee,autoFocus:x,...z?{value:D}:{defaultValue:y},onChange(F){const A=F.currentTarget.value;p?.(A,jt(q0,F.nativeEvent)),T(A!==_.initialValue),V(A!==""),F.nativeEvent.defaultPrevented||(C(ne),L.change(A))},onFocus(){w(!0)},onBlur(F){E(!0),w(!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(Q,F)],stateAttributesMapping:u3})}),y3=h.forwardRef(function(r,o){return i.jsx(b3,{ref:o,...r})});function Mt({className:t,type:r,autoComplete:o="off",...a}){return i.jsx(y3,{type:r,autoComplete:o,"data-slot":"input",className:Ne("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",t),...a})}function v3(t){const r=new Date(t);if(Number.isNaN(r.getTime()))return t;const o=c=>String(c).padStart(2,"0");return r.getFullYear()===new Date().getFullYear()?`${o(r.getMonth()+1)}-${o(r.getDate())}`:`${String(r.getFullYear()).slice(-2)}-${o(r.getMonth()+1)}-${o(r.getDate())}`}function S3(){const t=St(m=>m.sessions),r=St(m=>m.sessionsLoading),o=St(m=>m.sessionsError),a=St(m=>m.loadSessions),c=St(m=>m.currentSessionId),d=St(m=>m.setCurrentSession);return h.useEffect(()=>{t===null&&!r&&o===null&&a()},[t,r,o,a]),t===null?o!==null?o==="NO_PROJECT_OPEN"?i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"打开项目后查看会话"}):i.jsxs("div",{className:"ml-3 border-l border-border py-1 pl-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"会话加载失败"}),i.jsx(pe,{variant:"outline",size:"xs",className:"mt-0.5",onClick:()=>{a()},children:"重试"})]}):i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"会话加载中…"}):t.length===0?i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"暂无会话"}):i.jsx("ul",{className:"ml-3 border-l border-border py-0.5 pl-1.5",children:t.map(m=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:m.lastMessage||"空会话",onClick:()=>d(m.id),className:Ne("flex h-7 w-full min-w-0 items-center gap-1.5 rounded-md px-2 text-left text-xs transition-colors",c===m.id?"bg-accent font-medium text-accent-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[i.jsx(Vl,{className:"size-3 shrink-0 opacity-70"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:m.lastMessage||"(空会话)"}),i.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",children:Eo(m.updatedAt)})]})},m.id))})}function E3({width:t,onToggleCollapse:r}){const{theme:o,toggleTheme:a}=bS(),c=Pe(Z=>Z.config),d=Pe(Z=>Z.bookshelf),m=Pe(Z=>Z.bookshelfLoading),g=Pe(Z=>Z.bookshelfError),b=Pe(Z=>Z.loadBookshelf),p=Pe(Z=>Z.openProjectAt),y=Pe(Z=>Z.createProjectAt),[x,S]=h.useState(null),[j,N]=h.useState(!1),[k,O]=h.useState(""),[E,T]=h.useState(null),[_,w]=h.useState(!1),[V,M]=h.useState(!1),[L,C]=h.useState(null),[Q,ne]=h.useState(""),[ue,ee]=h.useState(null),[X,te]=h.useState(!1),[W,z]=h.useState(!1),[D,Y]=h.useState(""),[H,F]=h.useState(!1),[A,B]=h.useState(null),[I,U]=h.useState(""),[G,K]=h.useState(null),[xe,se]=h.useState(!1),le=h.useRef(null);h.useEffect(()=>{!m&&d===null&&g===null&&b()},[m,d,g,b]);async function He(Z){try{await p(Z),S(Z)}catch(P){Oe.getState().showToast(Pl(P instanceof De?P.code:null),"error")}}const ze=c?.id??null,Re=h.useRef(ze);h.useEffect(()=>{Re.current!==ze&&(Re.current=ze,S(null),B(null))},[ze]);function Ue(){O(""),T(null),N(!1)}async function ge(Z){Z.preventDefault();const P=k.trim(),q=Vc(P);if(q!==null){T(q);return}if(!d){T("书架未加载,请稍后重试");return}w(!0),T(null);try{await y(D0(d.rootPath,P),{name:P,language:"zh"}),Oe.getState().showToast(`已创建并打开《${P}》`),await b();const we=Pe.getState().bookshelf?.books.find(be=>be.name===P);we&&S(we.path),O(""),N(!1)}catch(we){T(Pl(we instanceof De?we.code:null))}finally{w(!1)}}async function ie(Z){if(!H){F(!0);try{const{blob:P,filename:q}=await g2(),we=URL.createObjectURL(P),be=document.createElement("a");be.href=we,be.download=q,document.body.appendChild(be),be.click(),be.remove(),setTimeout(()=>URL.revokeObjectURL(we),0),Oe.getState().showToast(`已导出《${Z}》备份`)}catch(P){Oe.getState().showToast(l3(P instanceof De?P.code:null,P instanceof De?P.message:"导出失败,请重试"),"error")}finally{F(!1)}}}function Ye(Z){const P=Z.target.files?.[0]??null;if(C(P),ee(null),P){const q=P.name.replace(/\.zip$/i,""),we=Q.trim()===""?q:Q;ne(we),Ae(we)}}function Ae(Z){const P=Z.trim(),q=we=>d?.books.some(be=>be.name===we)??!1;if(W){if(P===`${D} (2)`||P===D&&q(P))return;if(q(P)){Y(P),ne(`${P} (2)`);return}z(!1),Y("");return}P!==""&&q(P)&&(Y(P),z(!0),ne(`${P} (2)`))}function Ie(Z){const P=Z.target.value;ne(P),Ae(P)}async function ve(Z,P){const q=Z.trim();if(!L){ee("请选择备份文件");return}const we=Vc(q);if(we!==null){ee(we);return}te(!0),ee(null);try{const be=await x2(L,q);Oe.getState().showToast(be.mode==="restored"?`已恢复备份《${be.name}》`:`已导入为新书《${be.name}》`),await b(),M(!1),C(null),ne(""),z(!1),Y("")}catch(be){const ae=a3(be instanceof De?be.code:null,be instanceof De?be.message:"导入失败,请重试");ee(ae),ae!==""&&Oe.getState().showToast(ae,"error")}finally{te(!1)}}function ce(Z){B(Z.path),U(Z.name),K(null),window.setTimeout(()=>le.current?.focus(),150)}function _e(){B(null),U(""),K(null)}async function Me(){if(A===null||xe)return;const Z=I.trim();if(Z===Pe.getState().config?.name){_e();return}const P=Vc(Z);if(P!==null){K(P);return}se(!0),K(null);try{await E2(Z),Oe.getState().showToast(`已重命名为《${Z}》`),await Promise.all([b(),Pe.getState().loadConfig()]),_e()}catch(q){(q instanceof De?q.code:null)==="PROJECT_ALREADY_EXISTS"?K("书架已有同名书籍,请换一个名字"):q instanceof De&&q.code!==ut?K(q.message):K("无法连接服务,请确认 ai-editor 服务已启动")}finally{se(!1)}}return i.jsxs("aside",{className:"flex min-w-0 flex-[1_1_10%] flex-col border-r border-border bg-sidebar",style:t!==void 0?{flex:`0 1 ${t}px`,minWidth:Fl}:void 0,children:[i.jsxs("div",{className:"flex h-12 shrink-0 items-center border-b border-border",children:[i.jsxs("a",{href:"#/",className:"flex h-full min-w-0 flex-1 items-center gap-1.5 px-3 font-serif text-base text-foreground italic hover:text-primary",children:[i.jsx("span",{className:"text-primary",children:"◈"}),i.jsx("span",{className:"truncate",children:"我的小说"})]}),r&&i.jsx("button",{type:"button",onClick:r,"aria-label":"收起左栏",title:"收起左栏",className:Ne(Dl,zl.sm,"mr-1.5"),children:i.jsx(pT,{className:"size-4"})})]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 py-2",children:[i.jsxs("div",{className:"mb-1 flex items-center justify-between px-1",children:[i.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"书架"}),i.jsxs("div",{className:"flex items-center gap-0.5",children:[i.jsx(pe,{variant:"ghost",size:"icon-xs",onClick:()=>M(!0),"aria-label":"导入备份",title:"导入备份(zip)",children:i.jsx(VT,{})}),j?i.jsx(pe,{variant:"ghost",size:"icon-xs",onClick:Ue,"aria-label":"取消新建项目",title:"取消新建",children:i.jsx(hs,{})}):i.jsx(pe,{variant:"ghost",size:"icon-xs",onClick:()=>N(!0),"aria-label":"新建项目",title:"新建项目",children:i.jsx(lu,{})})]})]}),j&&i.jsxs("form",{onSubmit:ge,className:"mb-1 flex flex-col gap-1 px-1","aria-label":"新建项目",children:[i.jsx(Mt,{value:k,onChange:Z=>O(Z.target.value),onKeyDown:Z=>{Z.key==="Escape"&&Ue()},onBlur:Ue,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(pe,{variant:"outline",size:"xs",onClick:()=>{b()},children:"重试"})]}),m&&d===null&&i.jsx("div",{className:"space-y-1 px-1 py-2",children:[0,1,2].map(Z=>i.jsx("div",{className:Ne(_t,"h-8 rounded-lg")},Z))}),g===null&&!m&&d&&d.books.length===0&&i.jsx("p",{className:"px-1 py-2 text-xs text-muted-foreground/70",children:"还没有书,先创建一本"}),g===null&&d&&d.books.length>0&&i.jsx("ul",{className:"space-y-0.5",children:d.books.map(Z=>{const P=x===Z.path,q=c!==null&&Z.name===c.name,we=A===Z.path;return i.jsxs("li",{children:[i.jsxs("div",{className:"flex items-center",children:[we?i.jsxs("div",{className:"flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-muted px-2",children:[i.jsx(vm,{className:"size-3.5 shrink-0 text-primary"}),i.jsx(Mt,{ref:le,value:I,onChange:be=>U(be.target.value),onKeyDown:be=>{be.key==="Enter"?(be.preventDefault(),Me()):be.key==="Escape"&&_e()},onBlur:()=>{Me()},maxLength:60,disabled:xe,"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:`打开《${Z.name}》`,onClick:()=>{He(Z.path)},className:Ne("flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2 text-left text-sm transition-colors",q?"bg-muted font-medium text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[i.jsx(vm,{className:Ne("size-3.5 shrink-0",q?"text-primary":"text-muted-foreground/60")}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:Z.name}),i.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",title:ds(Z.updatedAt),children:v3(Z.updatedAt)})]}),q&&i.jsx("button",{type:"button",onClick:()=>{ie(Z.name)},disabled:H,"aria-label":`导出《${Z.name}》备份`,title:"导出备份(zip)",className:Ne(Dl,zl.bar,Vw),children:H?i.jsx(Yl,{className:"size-3.5 animate-spin"}):i.jsx(Gj,{className:"size-3.5"})}),i.jsx("button",{type:"button",onClick:()=>S(be=>be===Z.path?null:Z.path),"aria-expanded":P,"aria-label":P?`收起《${Z.name}》会话`:`展开《${Z.name}》会话`,className:Ne(Dl,zl.bar),children:i.jsx(Zm,{className:Ne("size-4 transition-transform duration-200",P&&"rotate-90")})}),q&&i.jsx("button",{type:"button","aria-label":`重命名《${Z.name}》`,title:"重命名",onClick:()=>ce(Z),className:Ne(Dl,zl.bar),children:i.jsx(ei,{className:"size-3.5"})})]}),we&&G&&i.jsx("p",{className:"px-2 pb-1 text-xs text-destructive",children:G}),P&&i.jsx(S3,{})]},Z.path)})})]}),i.jsxs("div",{className:"flex shrink-0 flex-col gap-1 border-t border-border p-2",children:[i.jsxs("a",{href:"#/settings",className:"flex h-8 items-center gap-2 rounded-lg px-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:[i.jsx(DT,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:"设置"})]}),i.jsxs(pe,{variant:"outline",size:"sm",className:"justify-start text-muted-foreground",onClick:a,"aria-label":"切换主题",children:[o==="dark"?i.jsx(HT,{className:"size-4 shrink-0"}):i.jsx(iT,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:o==="dark"?"浅色模式":"深色模式"})]})]}),i.jsx(Rs,{open:V,onOpenChange:Z=>{M(Z),Z||(ee(null),C(null),ne(""),z(!1),Y(""))},children:i.jsxs(Os,{className:"sm:max-w-sm",children:[i.jsxs(ks,{children:[i.jsx(Ms,{children:"导入书籍"}),i.jsx(Q_,{children:"从备份 zip 导入;与书架已有书 id 匹配时覆盖恢复,否则导入为新书(同名可重命名或保持原样并存)"})]}),i.jsxs("form",{id:"import-book-form",onSubmit:Z=>{Z.preventDefault(),ve(Q)},className:"flex flex-col gap-3",children:[i.jsx("input",{type:"file",accept:".zip,application/zip",onChange:Ye,disabled:X,"aria-label":"选择备份文件",className:"block w-full cursor-pointer rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground file:mr-2 file:cursor-pointer file:rounded file:border-0 file:bg-muted file:px-2 file:py-1 file:text-xs file:text-muted-foreground disabled:opacity-50"}),i.jsx(Mt,{value:Q,onChange:Ie,placeholder:"书名(默认取文件名)",maxLength:60,disabled:X}),W&&i.jsxs("p",{className:"text-sm text-primary",children:["书架已有同名书籍《",D,"》——可重命名导入,或保持原样(服务端自动去重)"]}),ue&&i.jsx("p",{className:"text-sm text-destructive",children:ue})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>M(!1),disabled:X,children:"取消"}),W?i.jsxs(i.Fragment,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>{ve(D)},disabled:X||L===null,children:X?"导入中…":"保持原样导入"}),i.jsx(pe,{type:"button",onClick:()=>{ve(Q)},disabled:X||L===null,children:X?"导入中…":"重命名导入"})]}):i.jsx(pe,{type:"submit",form:"import-book-form",disabled:X||L===null,children:X?"导入中…":"导入"})]})]})})]})}function Sv({side:t,active:r,onStart:o,onMove:a,onEnd:c}){return i.jsxs("div",{role:"separator","aria-orientation":"vertical","aria-label":t==="sidebar"?"调整左栏宽度":"调整右栏宽度",title:t==="sidebar"?"拖动调整左栏宽度":"拖动调整右栏宽度",onPointerDown:d=>{d.preventDefault(),d.currentTarget.setPointerCapture(d.pointerId),o(t,d.clientX)},onPointerMove:d=>a(t,d.clientX),onPointerUp:c,onPointerCancel:c,className:Ne("group relative z-10 h-full w-1.5 shrink-0 cursor-col-resize touch-none bg-transparent transition-colors hover:bg-border",r&&"bg-border"),children:[i.jsx("div",{className:"absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border/60 transition-colors group-hover:bg-primary/70"}),i.jsx(au,{className:"absolute inset-y-0 left-1/2 size-4 -translate-x-1/2 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100"})]})}function Ev({side:t,onExpand:r}){const o=t==="sidebar",a=o?gT:vT;return i.jsx("div",{className:Ne("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:Ne(Dl,zl.md,"mt-3"),children:i.jsx(a,{className:"size-4"})})})}function N3({route:t,children:r}){const[o,a]=h.useState(!1),{layout:c,isDesktop:d,dragSide:m,toggleCollapse:g,startResize:b,moveResize:p,endResize:y}=ZT(),x=m!==null;return i.jsxs("div",{className:Ne("flex h-screen overflow-hidden",x&&"select-none"),children:[d&&c.collapsedSidebar?i.jsx(Ev,{side:"sidebar",onExpand:()=>g("sidebar")}):i.jsx(E3,{width:d?c.sidebarWidth:void 0,onToggleCollapse:d?()=>g("sidebar"):void 0}),d&&!c.collapsedSidebar&&i.jsx(Sv,{side:"sidebar",active:m==="sidebar",onStart:b,onMove:p,onEnd:y}),i.jsx(o3,{isDesktop:d,route:t,chatOpen:o,onToggleChat:()=>a(S=>!S),children:r}),d&&!c.collapsedChat&&i.jsx(Sv,{side:"chat",active:m==="chat",onStart:b,onMove:p,onEnd:y}),d&&c.collapsedChat?i.jsx(Ev,{side:"chat",onExpand:()=>g("chat")}):i.jsx(r_,{open:o,onClose:()=>a(!1),width:d?c.chatWidth:void 0,onToggleCollapse:d?()=>g("chat"):void 0}),i.jsx(t3,{})]})}class j3 extends h.Component{state={error:null};static getDerivedStateFromError(r){return{error:r}}componentDidCatch(r,o){console.error("[ErrorBoundary] 渲染异常:",r,o.componentStack)}render(){const{error:r}=this.state;return r===null?this.props.children:i.jsx("div",{className:"flex h-full min-h-64 flex-col items-center justify-center gap-3 p-8",children:i.jsxs("div",{className:"flex flex-col items-center gap-2 rounded-xl border border-destructive/30 bg-destructive/10 px-8 py-6 text-center",children:[i.jsx(Jm,{className:"size-8 text-destructive"}),i.jsx("p",{className:"font-serif text-base font-medium text-foreground",children:"界面出现异常"}),i.jsx("p",{className:"max-w-md text-sm text-muted-foreground",children:"数据不会丢失,请重新加载页面继续写作。"}),i.jsx("p",{className:"max-w-md font-mono text-xs break-all text-destructive/80",children:r.message||String(r)}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[i.jsxs(pe,{type:"button",onClick:()=>window.location.reload(),children:[i.jsx(kT,{className:"size-4"}),"重新加载"]}),i.jsx(pe,{variant:"outline",type:"button",onClick:()=>{window.location.hash="#/",window.location.reload()},children:"回到首页"})]})]})})}}function sr({title:t,action:r,className:o,children:a}){return i.jsxs("div",{className:Ne(Fw,o),children:[t!==void 0&&i.jsxs("div",{className:"mb-3 flex items-center justify-between gap-2",children:[i.jsx("h2",{className:"font-serif text-base",children:t}),r]}),a]})}function zs(t){const r=Oe(a=>a.dataVersion),o=h.useRef(r);h.useEffect(()=>{r!==o.current&&(o.current=r,t())},[r])}const Nv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},jv=["character","setting","location","hook"];function T3(t){const r={volumes:0,chapters:0,scenes:0,updatedAt:null},o=a=>{for(const c of a)c.type==="volume"?r.volumes+=1:c.type==="chapter"?r.chapters+=1:r.scenes+=1,(r.updatedAt===null||c.updatedAt>r.updatedAt)&&(r.updatedAt=c.updatedAt),c.type!=="scene"&&c.children&&o(c.children)};return o(t),r}function im(t){return t instanceof De?t.code:null}function Tv(){const t=Pe(ie=>ie.config),r=Pe(ie=>ie.configLoading),o=Pe(ie=>ie.outline),a=Pe(ie=>ie.outlineLoading),c=Pe(ie=>ie.loadOutline),d=Pe(ie=>ie.bookshelf),m=Pe(ie=>ie.bookshelfLoading),g=Pe(ie=>ie.bookshelfError),b=Pe(ie=>ie.loadBookshelf),p=Pe(ie=>ie.openProjectAt),y=Pe(ie=>ie.createProjectAt),x=St(ie=>ie.sessions),S=St(ie=>ie.sessionsLoading),j=St(ie=>ie.sessionsError),N=St(ie=>ie.loadSessions),k=St(ie=>ie.setCurrentSession),O=St(ie=>ie.currentSessionId),E=Oe(ie=>ie.setFocusOutlineNode),[T,_]=h.useState(""),[w,V]=h.useState(null),[M,L]=h.useState(null),[C,Q]=h.useState(!1),[ne,ue]=h.useState(!1),[ee,X]=h.useState(""),[te,W]=h.useState(null),[z,D]=h.useState(!1),[Y,H]=h.useState(null),[F,A]=h.useState(!1),[B,I]=h.useState(null),[U,G]=h.useState(0),[K,xe]=h.useState(!1),se=t===null&&!r,le=o?T3(o.children):null,He=t?.currentPosition!=null?A0(o,t.currentPosition)??t.currentPosition:null;h.useEffect(()=>{se&&!m&&d===null&&g===null&&b()},[se,m,d,g,b]),h.useEffect(()=>{xe(!1)},[t?.id]),zs(()=>{G(ie=>ie+1),c(),N()}),h.useEffect(()=>{L(null)},[t?.id]),h.useEffect(()=>{t!==null&&o===null&&!a&&!K&&(xe(!0),c())},[t,o,a,K,c]),h.useEffect(()=>{if(t===null)return;let ie=!1;return H(null),A(!0),I(null),Promise.allSettled(jv.map(async Ye=>({type:Ye,total:(await jn(Ye,{limit:1})).total}))).then(Ye=>{if(ie)return;const Ae={};let Ie=!1;for(const ve of Ye)ve.status==="fulfilled"?Ae[ve.value.type]=ve.value.total:Ie=!0;H(Ae),I(Ie?"要素统计加载失败":null),A(!1)}),()=>{ie=!0}},[t,U]),h.useEffect(()=>{t!==null&&x===null&&!S&&j===null&&N()},[t,x,S,j,N]);async function ze(ie){ie.preventDefault();const Ye=T.trim(),Ae=Vc(Ye);if(Ae!==null){V(Ae);return}if(!d){V("书架未加载,请稍后重试");return}D(!0),V(null);try{await y(D0(d.rootPath,Ye),{name:Ye,language:"zh"}),await b(),Oe.getState().showToast(`已创建并打开《${Ye}》`),_("")}catch(Ie){V(Pl(im(Ie)))}finally{D(!1)}}async function Re(ie){if(ie.preventDefault(),!ee.trim()){W("请输入项目目录路径(绝对路径)");return}D(!0),W(null);try{await p(ee.trim())}catch(Ye){W(Pl(im(Ye)))}finally{D(!1)}}async function Ue(ie){L(null);try{await p(ie)}catch(Ye){L(Pl(im(Ye)))}}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(se){let ie=function(ve){return i.jsxs("form",{onSubmit:ze,className:ve,children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Mt,{value:T,onChange:ce=>_(ce.target.value),placeholder:"书名",maxLength:60,disabled:z}),i.jsx(pe,{type:"submit",disabled:z||d===null,children:"新建"})]}),w&&i.jsx("p",{className:"text-left text-sm text-destructive",children:w})]})};const Ye=d===null&&m,Ae=g!==null,Ie=d!==null&&d.books.length>0;return i.jsxs("section",{children:[g!==null&&i.jsxs("div",{className:"mx-auto mt-2 max-w-md rounded-md border border-border bg-card p-3",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:g===ut?"无法连接服务,请确认 ai-editor 服务已启动后重试。":"书架加载失败,请重试。"}),i.jsx(pe,{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:Ye?i.jsxs("div",{className:"py-2",children:[i.jsx("div",{className:Ne(_t,"mx-auto h-6 w-2/3")}),i.jsx("div",{className:Ne(_t,"mx-auto mt-2 h-4 w-1/2")}),i.jsxs("div",{className:"mt-5 space-y-2",children:[i.jsx("div",{className:Ne(_t,"h-10 rounded-lg")}),i.jsx("div",{className:Ne(_t,"h-10 rounded-lg")})]})]}):i.jsxs(i.Fragment,{children:[Ie?i.jsxs(i.Fragment,{children:[i.jsx("h1",{className:"font-serif text-lg text-foreground",children:"书架里有书,打开即可写作"}),i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"选择一本书打开,或新建一本"}),i.jsx("ul",{className:"mt-5 divide-y divide-border overflow-hidden rounded-lg border border-border text-left",children:d.books.map(ve=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:`打开《${ve.name}》`,onClick:()=>{Ue(ve.path)},className:"flex w-full items-center gap-3 px-3 py-2.5 text-left transition-colors hover:bg-muted",children:[i.jsx(vm,{className:"size-4 shrink-0 text-muted-foreground/60"}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:ve.name}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(ve.updatedAt)})]})},ve.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:()=>Q(ve=>!ve),children:C?"收起":"新建一本…"}),C&&ie("mt-2 flex flex-col gap-2 text-left")]})]}):Ae?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/书名/),写作数据互不干扰"}),ie("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:()=>ue(ve=>!ve),children:ne?"收起":"打开其他路径…"}),ne&&i.jsxs("form",{onSubmit:Re,className:"mt-2 flex flex-col gap-2 text-left",children:[i.jsx(Mt,{value:ee,onChange:ve=>X(ve.target.value),placeholder:"/absolute/path/to/project(须含 project.json)",disabled:z}),i.jsx("div",{children:i.jsx(pe,{type:"submit",variant:"outline",disabled:z,children:"打开"})}),te&&i.jsx("p",{className:"text-sm text-destructive",children:te})]})]})]})})]})}return i.jsxs("section",{children:[i.jsx("div",{className:"mb-4",children:i.jsx("h1",{className:"font-serif text-xl font-medium text-foreground",children:"项目概览"})}),i.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[i.jsxs(sr,{title:"项目信息",children:[i.jsxs("dl",{className:"mt-3 space-y-2 text-sm",children:[i.jsxs("div",{className:"flex items-baseline gap-2",children:[i.jsx("dt",{className:"w-16 shrink-0 text-muted-foreground",children:"名称"}),i.jsx("dd",{className:"min-w-0 truncate font-medium text-foreground",children:t?.name})]}),i.jsxs("div",{className:"flex items-baseline gap-2",children:[i.jsx("dt",{className:"w-16 shrink-0 text-muted-foreground",children:"语言"}),i.jsx("dd",{className:"text-foreground",children:t?.language==="zh"?"中文":"English"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("dt",{className:"w-16 shrink-0 text-muted-foreground",children:"当前位置"}),i.jsx("dd",{className:"min-w-0 flex-1 truncate",children:t?.currentPosition!=null?i.jsx("a",{href:"#/outline",onClick:ge,className:"text-primary hover:underline",children:He??t.currentPosition}):i.jsx("span",{className:"text-muted-foreground",children:"未设置"})}),i.jsx("a",{href:"#/outline",onClick:ge,className:wm({variant:"outline",size:"xs"}),children:"去大纲"})]})]}),i.jsxs("div",{className:"mt-3 border-t border-border pt-3",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"项目提示词"}),i.jsx("p",{className:"mt-1 line-clamp-2 text-sm text-foreground/90",children:t?.prompt||"(未设置)"})]})]}),i.jsx(sr,{title:"创作要素",children:F&&Y===null?i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:[0,1,2,3].map(ie=>i.jsx("div",{className:Ne(_t,"h-20 rounded-lg")},ie))}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:jv.map(ie=>i.jsxs("a",{href:`#/entities/${ie}`,className:"group rounded-lg border border-border bg-background p-3 transition-colors hover:border-primary/40 hover:bg-muted",title:`查看${Nv[ie]}列表`,children:[i.jsx("p",{className:"font-serif text-2xl font-semibold text-foreground",children:Y?.[ie]??"–"}),i.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground transition-colors group-hover:text-foreground",children:Nv[ie]})]},ie))}),B!==null&&i.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-destructive",children:[B,i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>G(ie=>ie+1),children:"重试"})]})]})}),i.jsx(sr,{title:"大纲概览",className:"lg:col-span-2",children:o===null&&(a||!K)?i.jsxs("div",{className:"mt-3 space-y-2",children:[i.jsx("div",{className:Ne(_t,"h-5 w-2/5")}),i.jsx("div",{className:Ne(_t,"h-4 w-1/3")})]}):o===null?i.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>xe(!1),children:"重试"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("p",{className:"mt-3 text-sm text-foreground",children:["卷 ",le?.volumes??0," · 章 ",le?.chapters??0," · 场景"," ",le?.scenes??0]}),i.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["最近更新:"," ",le?.updatedAt?Eo(le.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(pe,{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:Ne(wm({variant:"outline",size:"sm"})),children:"去大纲编辑"})})]})}),i.jsx(sr,{title:"最近会话",className:"lg:col-span-2",children:x===null?j!==null?i.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:["会话加载失败",i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>{N()},children:"重试"})]}):i.jsx("div",{className:"mt-3 space-y-2",children:[0,1,2].map(ie=>i.jsx("div",{className:Ne(_t,"h-8 rounded-md")},ie))}):x.length===0?i.jsxs("div",{className:"mt-3",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"还没有会话,和 AI 聊聊设定吧"}),i.jsx(pe,{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(ie=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:ie.lastMessage||"空会话",onClick:()=>k(ie.id),className:Ne("flex w-full items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-muted",O===ie.id&&"bg-accent/40 hover:bg-accent/40"),children:[i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:ie.lastMessage||"(空会话)"}),i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[ie.messageCount," 条消息"]}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(ie.updatedAt)})]})},ie.id))}),i.jsx("div",{className:"mt-3",children:i.jsx(pe,{variant:"outline",size:"sm",type:"button",onClick:()=>k(null),children:"开始新对话"})})]})})]})]})}const wv={plants:"埋设",advances:"推进",resolves:"回收"},w3={plants:NT,advances:Xj,resolves:Wm};function SS({mark:t}){const r=w3[t.relationType];return i.jsx("span",{className:"shrink-0 rounded px-0.5 text-muted-foreground hover:text-foreground",title:`${wv[t.relationType]}伏笔:${t.hookName}`,"aria-label":`${wv[t.relationType]}伏笔:${t.hookName}`,children:i.jsx(r,{className:"size-3"})})}const C3={sm:"py-10",md:"py-12",lg:"py-14"};function Bn({children:t,icon:r,action:o,padding:a="md",className:c}){return i.jsxs("div",{className:Ne("rounded-lg border border-dashed border-border px-6 text-center",C3[a],c),children:[r,i.jsx("p",{className:"text-sm text-muted-foreground",children:t}),o&&i.jsx("div",{className:"mt-4",children:o})]})}const Qp=["plants","advances","resolves"],Cv=["plants","advances","resolves"];function Rv(t){const r=Cv.indexOf(t);return r===-1?Cv.length:r}function ES(t){const r=new Map;for(const o of t){if(!Qp.includes(o.relationType)||o.sourceType!=="outline_node"||o.targetType!=="hook")continue;const a={relationType:o.relationType,hookId:o.targetId,hookName:o.targetName??o.targetId},c=r.get(o.sourceId);c===void 0?r.set(o.sourceId,[a]):c.push(a)}for(const o of r.values())o.sort((a,c)=>Rv(a.relationType)-Rv(c.relationType)||(a.hookName<c.hookName?-1:a.hookName>c.hookName?1:0)||(a.hookId<c.hookId?-1:a.hookId>c.hookId?1:0));return r}const Nn="root",Ov={id:Nn,label:"(根)",depth:0};function R3(t,r){if(r==="volume")return[Ov];const o=r==="chapter"?[Ov]:[],a=(c,d)=>{for(const m of c)r==="chapter"&&m.type==="volume"?o.push({id:m.id,label:m.title,depth:d}):r==="scene"&&m.type==="chapter"&&o.push({id:m.id,label:m.title,depth:d}),m.children&&a(m.children,d+1)};return a(t,1),o}function Yr(t,r){for(const o of t){if(o.id===r)return o;if(o.type!=="scene"&&o.children){const a=Yr(o.children,r);if(a)return a}}return null}function Zp(t,r,o=[]){for(const a of t){const c=[...o,a.id];if(a.id===r)return c;if(a.type!=="scene"&&a.children){const d=Zp(a.children,r,c);if(d)return d}}return null}function ir(t,r=0,o=[]){for(const a of t)o.push({id:a.id,label:a.title,depth:r}),a.type!=="scene"&&a.children&&ir(a.children,r+1,o);return o}function O3(t,r,o){const a=Yr(t,r);if(!a)return!1;const c=d=>d.id===o?!0:d.type!=="scene"&&d.children?d.children.some(m=>c(m)):!1;return c(a)}function Dc(t,r,o){return r===t.id||O3(o,t.id,r)?!1:R3(o,t.type).some(a=>a.id===r)}function NS(t,r){const o=r.trim();return o!==""&&o!==t.trim()}function jS(t,r){return r.trim()!==(t??"").trim()}function k3(t){return t==="OUTLINE_NODE_NOT_FOUND"?"abandon":"restore"}function TS(t,r){if(r===Nn)return t;const o=a=>{for(const c of a){if(c.id===r)return c.children??[];if(c.children){const d=o(c.children);if(d)return d}}return null};return o(t)}function kv(t,r,o){const a=o===void 0?t:t.filter(d=>d.id!==o);if(r.kind==="end")return a.length;const c=a.findIndex(d=>d.id===r.nodeId);return c===-1?a.length:r.kind==="before"?c:c+1}function _v(t,r){return t===null||r===null?t===r:t.kind==="root-end"||r.kind==="root-end"?t.kind===r.kind:t.kind===r.kind&&t.nodeId===r.nodeId}function Pm(t,r){const o=(a,c)=>{for(const d of a){if(d.id===r)return c;if(d.children){const m=o(d.children,d.id);if(m!==null)return m}}return null};return o(t,Nn)}function _3(t,r){const o=Pm(t,r);if(o===null)return null;const c=(TS(t,o)??[]).findIndex(d=>d.id===r);return c===-1?null:{parentId:o,index:c}}function Mv(t,r,o,a){const c=_3(t,r);return c===null||c.parentId!==o?!1:a===c.index}function zc(t){return t instanceof De?t.code:null}function Sa(t){switch(t){case"OUTLINE_NODE_NOT_FOUND":return"节点不存在(可能已被彻底删除),大纲已刷新";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function Fc(t,r,o,a,c){return i.jsx("input",{autoComplete:"off",autoFocus:!0,value:t,onChange:d=>r(d.target.value),onKeyDown:o,onBlur:a,maxLength:200,placeholder:c,className:"min-w-0 flex-1 rounded border border-border bg-card px-1.5 py-0.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"})}function Av({type:t,onTypeChange:r,value:o,onChange:a,onKeyDown:c,onCancel:d,className:m}){return i.jsxs("div",{className:Ne("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:Ne("rounded border px-2 py-0.5 text-xs transition-colors",t===g?"border-primary bg-primary text-primary-foreground":"border-border text-muted-foreground hover:bg-muted hover:text-foreground"),children:is[g]},g))}),Fc(o,a,c,d,`新${is[t]}标题,Enter 创建`)]})}function M3(){const t=Pe(Z=>Z.outline),r=Pe(Z=>Z.outlineLoading),o=Pe(Z=>Z.config),a=Pe(Z=>Z.configLoading),c=Pe(Z=>Z.loadOutline),d=Oe(Z=>Z.focusOutlineNodeId),m=Oe(Z=>Z.clearFocusOutlineNode);zs(()=>{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,T]=h.useState(null),[_,w]=h.useState(null),[V,M]=h.useState(""),[L,C]=h.useState(null),[Q,ne]=h.useState(""),[ue,ee]=h.useState(null),[X,te]=h.useState(null),[W,z]=h.useState(null),D=o===null&&!a;h.useEffect(()=>{t===null&&!r&&!g&&(b(!0),c())},[t,r,g,c]),h.useEffect(()=>{if(t===null){z(null);return}let Z=!1;return Promise.all(Qp.map(P=>Fr({source_type:"outline_node",relation_type:P,depth:1}).then(q=>q.relations).catch(()=>[]))).then(P=>{Z||z(ES(P.flat()))}),()=>{Z=!0}},[t]),h.useEffect(()=>{if(k===null)return;const Z=setTimeout(()=>O(null),3e3);return()=>clearTimeout(Z)},[k]),h.useEffect(()=>{if(d===null||t===null)return;const Z=d,P=Zp(t.children,Z);if(P===null){m();return}S(we=>{if(P.every(ae=>!we.has(ae)))return we;const be=new Set(we);for(const ae of P)be.delete(ae);return be});const q=setTimeout(()=>{const we=document.querySelector(`[data-node-id="${Z}"]`);we&&(we.scrollIntoView({block:"center"}),T(Z)),m()},0);return()=>clearTimeout(q)},[d,t,m]),h.useEffect(()=>{if(E===null)return;const Z=setTimeout(()=>T(null),3e3);return()=>clearTimeout(Z)},[E]);async function Y(Z,P){Z&&F(Z),await c(),P&&O(P)}function H(Z){S(P=>{const q=new Set(P);return q.has(Z)?q.delete(Z):q.add(Z),q})}function F(Z){S(P=>{if(!P.has(Z))return P;const q=new Set(P);return q.delete(Z),q})}function A(Z,P=[]){for(const q of Z)q.type!=="scene"&&q.children&&q.children.length>0&&(P.push(q.id),A(q.children,P));return P}function B(Z,P){xe(),w({nodeId:Z.id,field:P}),M(P==="title"?Z.title:Z.summary??"")}function I(){w(null),M("")}async function U(Z,P){if(!_||_.nodeId!==Z.id||_.field!==P||j)return;const q=V;if(!(P==="title"?NS(Z.title,q):jS(Z.summary,q))){I();return}N(!0);try{await k0(Z.id,P==="title"?{title:q.trim()}:{summary:q.trim()}),I(),Oe.getState().showToast("已保存"),await Y()}catch(be){const ae=zc(be);if(k3(ae)==="abandon"){I(),y(Sa(ae)),await Y();return}y(Sa(ae))}finally{N(!1)}}function G(Z,P){return q=>{q.key==="Enter"?(q.preventDefault(),U(Z,P)):q.key==="Escape"&&I()}}function K(Z,P){I(),C({parentId:Z,type:P}),ne(""),Z!==Nn&&F(Z)}function xe(){C(null),ne("")}async function se(){if(!L)return;const Z=Q.trim(),{parentId:P,type:q}=L;if(!Z){xe();return}xe();try{const we=await e2({type:q,title:Z,parent_id:P});Oe.getState().showToast(`已创建${is[q]}《${Z}》`),await Y(P,we.id)}catch(we){y(Sa(zc(we)))}}function le(Z){Z.key==="Enter"?(Z.preventDefault(),se()):Z.key==="Escape"&&xe()}function He(Z,P){Z.dataTransfer.setData("text/plain",P.id),Z.dataTransfer.effectAllowed="move",ee(P.id),te(null)}function ze(){ee(null),te(null)}function Re(Z){const P=Z.currentTarget.getBoundingClientRect();return Z.clientY<P.top+P.height/2?"before":"after"}function Ue(Z,P){Z.stopPropagation();const q=ue?Yr(t?.children??[],ue):null;if(!q)return;const we=Pm(t?.children??[],P)??Nn;if(!Dc(q,we,t?.children??[]))return;Z.preventDefault(),Z.dataTransfer.dropEffect="move";const be={kind:Re(Z),nodeId:P};te(ae=>_v(ae,be)?ae:be)}function ge(Z,P){Z.currentTarget.contains(Z.relatedTarget)||te(q=>q!==null&&q.kind!=="root-end"&&q.nodeId===P?null:q)}async function ie(Z,P){if(Z.stopPropagation(),Z.preventDefault(),!ue)return;const q=Yr(t?.children??[],ue);if(!q)return;const we=Pm(t?.children??[],P)??Nn;if(!Dc(q,we,t?.children??[]))return;if(P===q.id){ee(null),te(null);return}const be=TS(t?.children??[],we)??[],ae=kv(be,{kind:Re(Z),nodeId:P},q.id);if(Mv(t?.children??[],q.id,we,ae)){ee(null),te(null);return}N(!0);try{await Ey(q.id,{parent_id:we,order:ae}),Oe.getState().showToast(`已移动《${q.title}》`),await Y(we)}catch(ke){y(Sa(zc(ke)))}finally{N(!1),ee(null),te(null)}}function Ye(Z){const P=ue?Yr(t?.children??[],ue):null;!P||!Dc(P,Nn,t?.children??[])||(Z.preventDefault(),Z.dataTransfer.dropEffect="move",te(q=>_v(q,{kind:"root-end"})?q:{kind:"root-end"}))}function Ae(Z){Z.currentTarget.contains(Z.relatedTarget)||te(P=>P?.kind==="root-end"?null:P)}async function Ie(Z){if(Z.preventDefault(),!ue)return;const P=Yr(t?.children??[],ue);if(!P||!Dc(P,Nn,t?.children??[]))return;const q=kv(t?.children??[],{kind:"end"},P.id);if(Mv(t?.children??[],P.id,Nn,q)){ee(null),te(null);return}N(!0);try{await Ey(P.id,{parent_id:Nn,order:q}),Oe.getState().showToast(`已移动《${P.title}》`),await Y()}catch(we){y(Sa(zc(we)))}finally{N(!1),ee(null),te(null)}}async function ve(Z){try{const P=await t2(Z.id),{children:q,relations:we,deltas:be}=P.cascaded,ae=[];q>0&&ae.push(`${q} 个子节点`),we>0&&ae.push(`${we} 条关联`),be>0&&ae.push(`${be} 条变化记录`),Oe.getState().showToast(`已移入回收站${ae.length>0?`(含 ${ae.join("、")})`:""}`),await Y()}catch(P){if(P instanceof De&&P.code==="OUTLINE_NODE_NOT_FOUND"){y(Sa("OUTLINE_NODE_NOT_FOUND")),await Y();return}Oe.getState().showToast(P instanceof De?P.message:"删除失败,请重试","error")}}function ce(){return L?.parentId!==Nn?null:i.jsx(Av,{className:"mb-1",type:L.type,onTypeChange:Z=>C({parentId:Nn,type:Z}),value:Q,onChange:ne,onKeyDown:le,onCancel:xe})}function _e(Z,P){return Z.map(q=>{const we=q.type!=="scene"&&(q.children?.length??0)>0,be=x.has(q.id),ae=o?.currentPosition===q.id,ke=Z_[q.type],Ve=_?.nodeId===q.id&&_.field==="title",We=_?.nodeId===q.id&&_.field==="summary",pt=X?.kind==="before"&&X.nodeId===q.id,At=X?.kind==="after"&&X.nodeId===q.id,mt=ue===q.id,Tt=L?.parentId===q.id,Rt=q.id===E;return i.jsxs("div",{children:[i.jsxs("div",{"data-node-id":q.id,draggable:!Ve&&!We&&!mt&&!j,onDragStart:Lt=>He(Lt,q),onDragEnd:ze,onDragOver:Lt=>Ue(Lt,q.id),onDragLeave:Lt=>ge(Lt,q.id),onDrop:Lt=>{ie(Lt,q.id)},className:Ne("relative cursor-grab rounded-md px-2 py-1 transition-colors hover:bg-muted/60 active:cursor-grabbing",q.id===k&&"bg-accent/40",Rt&&"bg-accent ring-1 ring-ring ring-inset",mt&&"opacity-50"),style:{paddingLeft:P*20+8},title:"拖动到目标行即可移动(上半=插前、下半=插后)",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[we?i.jsx("button",{type:"button",className:"w-4 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>H(q.id),"aria-label":be?"展开":"折叠",children:be?"▸":"▾"}):i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"flex h-5 w-7 shrink-0 items-center justify-center rounded bg-muted text-xs text-muted-foreground",children:is[q.type]}),Ve?Fc(V,M,G(q,"title"),()=>{U(q,"title")},"标题"):i.jsx("span",{className:Ne("min-w-0 cursor-text truncate text-sm hover:underline",Rt?"text-accent-foreground":"text-foreground"),title:"点击编辑标题",onClick:()=>B(q,"title"),children:q.title}),W!==null&&(W.get(q.id)?.length??0)>0&&i.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:(W.get(q.id)??[]).map(Lt=>i.jsx(SS,{mark:Lt},`${Lt.relationType}-${Lt.hookId}`))}),ke!==null&&i.jsx("button",{type:"button",className:"shrink-0 rounded px-1 text-muted-foreground hover:bg-muted hover:text-foreground",title:`就地新建${is[ke]}`,"aria-label":`新建${is[ke]}`,onClick:()=>K(q.id,ke),children:"+"}),i.jsx("button",{type:"button",className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground",title:"详情","aria-label":"详情",onClick:()=>on(`/outline/${q.id}`),children:i.jsx(ep,{className:"size-3.5"})}),i.jsx("button",{type:"button",className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-muted hover:text-destructive",title:"移入回收站","aria-label":"移入回收站",onClick:()=>{ve(q)},children:i.jsx(ti,{className:"size-3.5"})}),ae&&i.jsx("span",{className:"shrink-0 rounded bg-accent px-1.5 py-0.5 text-xs text-accent-foreground",children:"当前位置"}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:ds(q.updatedAt)})]}),We||q.summary?i.jsxs("div",{className:"mt-0.5 flex items-center gap-2",children:[i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"w-7 shrink-0"}),We?Fc(V,M,G(q,"summary"),()=>{U(q,"summary")},"摘要"):i.jsx("span",{className:"min-w-0 cursor-text truncate text-xs text-muted-foreground hover:underline",title:"点击编辑摘要",onClick:()=>B(q,"summary"),children:q.summary})]}):null,pt&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -top-px h-0.5 rounded bg-accent"}),At&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -bottom-px h-0.5 rounded bg-accent"})]}),we&&!be&&i.jsx("div",{children:_e(q.children??[],P+1)}),Tt&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md px-2 py-1",style:{paddingLeft:(P+1)*20+8},children:[i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"flex h-5 w-7 shrink-0 items-center justify-center rounded bg-muted text-xs text-muted-foreground",children:is[L.type]}),Fc(Q,ne,le,xe,`新${is[L.type]}标题,Enter 创建`)]})]},q.id)})}function Me(){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(pe,{variant:"outline",type:"button",onClick:Me,disabled:!t||t.children.length===0,children:x.size>0?"全部展开":"全部折叠"}),i.jsx(pe,{type:"button",onClick:()=>K(Nn,"volume"),children:"+ 新建"})]})]}),p&&i.jsx("div",{className:Ne(ni,"mb-3"),children:p}),D?i.jsxs("div",{className:"rounded-md border border-dashed border-border px-6 py-10 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"未打开项目,无法编辑大纲"}),i.jsx("a",{href:"#/",className:"mt-2 inline-block text-sm text-muted-foreground underline hover:text-foreground",children:"回到首页打开或创建书籍"})]}):r&&t===null?i.jsx("div",{className:"space-y-2 rounded-md border border-border p-3",children:Array.from({length:6},(Z,P)=>i.jsx("div",{className:Ne(_t,"h-5"),style:{width:`${92-P%3*24}%`,marginLeft:P%3*20}},P))}):t===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):t.children.length===0?L?.parentId===Nn?i.jsxs("div",{className:"rounded-lg border border-dashed border-border px-6 py-12 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"输入第一卷标题,Enter 创建"}),i.jsx("div",{className:"mx-auto mt-4 max-w-sm",children:i.jsx(Av,{type:L.type,onTypeChange:Z=>C({parentId:Nn,type:Z}),value:Q,onChange:ne,onKeyDown:le,onCancel:xe})})]}):i.jsxs(Bn,{action:i.jsx(pe,{type:"button",onClick:()=>K(Nn,"volume"),children:"新建第一卷"}),children:["大纲还是空的,先建第一卷",i.jsx("span",{className:"mt-1 block text-xs text-muted-foreground/70",children:"大纲是三层结构:卷 → 章 → 场景"})]}):i.jsxs("div",{className:Ne("rounded-md border border-border p-2",X?.kind==="root-end"&&"ring-1 ring-accent ring-inset"),onDragOver:Ye,onDragLeave:Ae,onDrop:Z=>{Ie(Z)},children:[ce(),_e(t.children,0)]})]})}const Ol=20;function A3(t,r){return Math.max(1,Math.ceil(t/r))}const D3={character:{key1:"role",label1:"角色",key2:"status",label2:"状态"},setting:{key1:"tags",label1:"标签",key2:"parent",label2:"上级设定",key3:"description",label3:"描述"},location:{key1:"type",label1:"类型"},hook:{key1:"status",label1:"状态",key2:"payoff_timing",label2:"回收时机"},event:{key1:"description",label1:"描述"},timepoint:{key1:"",label1:""}},Jp={planted:"已埋设",progressing:"推进中",resolved:"已回收",abandoned:"已弃用"},Wp={immediate:"立即",near_term:"近期",mid_arc:"中段",slow_burn:"慢热",endgame:"终局"};function Lc(t,r,o){if(o==null||o==="")return"—";if(t==="hook"&&r==="status")return Jp[String(o)]??String(o);if(t==="hook"&&r==="payoff_timing")return Wp[String(o)]??String(o);if(r==="tags"&&Array.isArray(o)){const a=o.filter(c=>typeof c=="string"&&c!=="");return a.length>0?a.join("、"):"—"}return String(o)}function Dv(t){return t.parentName!==void 0&&t.parentName!==""?t.parentName:"—"}const zv={character:{key:"role",label:"角色定位",input:"text"},setting:{key:"tags",label:"标签",input:"tags"},location:{key:"type",label:"地点类型",input:"text"},hook:{key:"status",label:"状态",input:"select",options:["planted","progressing","resolved","abandoned"]},event:{key:"description",label:"描述",input:"text"},timepoint:{key:"",label:"",input:"text"}};function eh(t){switch(t){case"character":return[{key:"role",label:"角色定位",control:"text"},{key:"gender",label:"性别",control:"text"},{key:"age",label:"年龄",control:"number"},{key:"personality",label:"性格",control:"tags"},{key:"motivation",label:"动机",control:"textarea"},{key:"abilities",label:"能力",control:"tags"},{key:"status",label:"状态",control:"text"}];case"setting":return[{key:"description",label:"描述",control:"textarea"},{key:"tags",label:"标签",control:"tags"},{key:"rules",label:"规则",control:"tags"}];case"location":return[{key:"type",label:"地点类型",control:"text"},{key:"parent_id",label:"上级地点",control:"text"},{key:"description",label:"描述",control:"textarea"}];case"hook":return[{key:"status",label:"状态",control:"select",options:["planted","progressing","resolved","abandoned"],optionsLabels:Jp},{key:"category",label:"类别",control:"text"},{key:"expected_payoff",label:"预期回收",control:"textarea"},{key:"payoff_timing",label:"回收时机",control:"select",options:["immediate","near_term","mid_arc","slow_burn","endgame"],optionsLabels:Wp},{key:"half_life",label:"半衰期(章数)",control:"number"},{key:"is_core",label:"主线伏笔",control:"toggle"},{key:"notes",label:"备注",control:"textarea"},{key:"expected_resolve_node_id",label:"预计回收节点",control:"outline-node"}];case"event":return[{key:"description",label:"描述",control:"textarea"},{key:"tags",label:"标签",control:"tags"}];case"timepoint":return[]}}const z3={belongs_to:"所属",owns:"拥有",masters:"掌握",ally:"盟友",rival:"对手",mentor:"师徒",family:"家族",kills:"击杀",appears_in:"出现于",occurs_in:"锚定于",occurs_at:"发生于",plot_edge:"剧情连线",plants:"埋设",advances:"推进",resolves:"回收",depends_on:"依赖",involves:"涉及"};function vo(t){return z3[t]??t}function cm(t,r){const o=t.filter(d=>d.relationType==="belongs_to"&&d.sourceType==="setting"&&d.targetType==="setting"),a=[];let c=null;for(const d of o){const m={relationId:d.id,parentId:d.targetId,parentName:d.targetName,childId:d.sourceId,childName:d.sourceName};d.sourceId===r?c===null&&(c=m):d.targetId===r&&a.push(m)}return{parent:c,children:a}}function th(t,r){const o={};for(const a of new Set([...Object.keys(t),...Object.keys(r)])){const c=r[a];if(c===void 0)continue;const d=Lv(t[a]),m=Lv(c);JSON.stringify(d)!==JSON.stringify(m)&&(o[a]=c)}return Object.keys(o).length>0?o:null}function Lv(t){return t==null||t===""||Array.isArray(t)&&t.length===0?null:t}const um={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},L3=Qm.filter(t=>t!=="occurs_at"),Ea="w-full rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function nh({source:t,onCreated:r,onClose:o}){const a=Pe(C=>C.outline),[c,d]=h.useState("character"),[m,g]=h.useState(null),[b,p]=h.useState(""),[y,x]=h.useState("character"),[S,j]=h.useState(null),[N,k]=h.useState(""),[O,E]=h.useState(Qm[0]),[T,_]=h.useState(null),[w,V]=h.useState(!1);h.useEffect(()=>{t||(p(""),g(null),jn(c,{limit:100}).then(C=>g(C.items)).catch(()=>g([])))},[t,c]),h.useEffect(()=>{if(k(""),y==="outline_node"){j(null);return}j(null),jn(y,{limit:100}).then(C=>j(C.items)).catch(()=>j([]))},[y]);const M=ir(a?.children??[]);async function L(C){if(C.preventDefault(),!t&&!b){_("请选择源实体");return}if(!N){_("请选择关联对象");return}V(!0),_(null);try{const Q={source_type:t?t.type:c,source_id:t?t.id:b,target_type:y,target_id:N,relation_type:O};await cr(Q),Oe.getState().showToast("已建立关系"),await r(),o()}catch(Q){Q instanceof De&&Q.code==="RELATION_EXISTS"?_("这条关系已经存在"):_(Q instanceof De?Q.message:"创建失败,请重试")}finally{V(!1)}}return i.jsx(Rs,{open:!0,onOpenChange:C=>!C&&o(),children:i.jsxs(Os,{className:"sm:max-w-2xl",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"新增关联"})}),i.jsxs("form",{id:"create-relation-form",onSubmit:L,className:"flex flex-col gap-3",children:[i.jsxs("div",{className:"grid grid-cols-1 items-start gap-3 sm:grid-cols-[1fr_auto_1fr]",children:[i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"源实体"}),t?i.jsxs("div",{title:t.name,className:"min-w-0 truncate rounded-md border border-border bg-muted/40 px-3 py-1.5 text-sm text-foreground",children:[t.type==="outline_node"?"本节点":"本实体",":",t.name]}):i.jsxs(i.Fragment,{children:[i.jsx("select",{value:c,onChange:C=>d(C.target.value),className:Ea,children:ka.map(C=>i.jsx("option",{value:C,children:um[C]},C))}),i.jsxs("select",{value:b,onChange:C=>p(C.target.value),className:Ea,children:[i.jsxs("option",{value:"",children:["选择",um[c],"…"]}),(m??[]).map(C=>i.jsx("option",{value:C.id,children:C.name},C.id))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:w-44",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"关系类型"}),i.jsx("select",{value:O,onChange:C=>E(C.target.value),className:Ea,children:L3.map(C=>i.jsx("option",{value:C,children:vo(C)},C))}),i.jsx("span",{"aria-hidden":"true",className:"mt-auto pb-1 text-center text-xl leading-none text-muted-foreground select-none",children:"→"})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"目标实体"}),i.jsxs("select",{value:y,onChange:C=>x(C.target.value),className:Ea,children:[i.jsx("option",{value:"character",children:"人物"}),i.jsx("option",{value:"setting",children:"设定"}),i.jsx("option",{value:"location",children:"地点"}),i.jsx("option",{value:"hook",children:"伏笔"}),i.jsx("option",{value:"outline_node",children:"大纲节点"})]}),y==="outline_node"?i.jsxs("select",{value:N,onChange:C=>k(C.target.value),className:Ea,children:[i.jsx("option",{value:"",children:"选择大纲节点…"}),M.map(C=>i.jsxs("option",{value:C.id,children:[" ".repeat(C.depth),C.label]},C.id))]}):i.jsxs("select",{value:N,onChange:C=>k(C.target.value),className:Ea,children:[i.jsxs("option",{value:"",children:["选择",um[y],"…"]}),(S??[]).map(C=>i.jsx("option",{value:C.id,children:C.name},C.id))]})]})]}),T&&i.jsx("p",{className:"text-sm text-destructive",children:T})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:o,disabled:w,children:"取消"}),i.jsx(pe,{type:"submit",form:"create-relation-form",disabled:w,children:"建立"})]})]})})}const wS={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"},Iv={endpointType:"",relationType:"",nameQuery:""};function I3(t,r){const o=r.nameQuery.trim().toLowerCase();return t.filter(a=>{if(r.endpointType!==""&&a.sourceType!==r.endpointType&&a.targetType!==r.endpointType||r.relationType!==""&&a.relationType!==r.relationType)return!1;if(o){const c=(a.sourceName??a.sourceId).toLowerCase(),d=(a.targetName??a.targetId).toLowerCase();if(!c.includes(o)&&!d.includes(o))return!1}return!0})}function Bv({type:t}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:wS[t]??t})}function dm({type:t,id:r,name:o}){const a=o??r;if(!(ka.includes(t)||t==="outline_node"))return i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("span",{className:"min-w-0 truncate text-muted-foreground",title:a,children:a}),i.jsx(Bv,{type:t})]});const d=t==="outline_node"?`/outline/${r}`:`/entities/${t}/${r}`;return i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("button",{type:"button",onClick:()=>on(d),title:`打开《${a}》`,className:"min-w-0 truncate font-medium text-foreground underline-offset-2 hover:text-primary hover:underline",children:a}),i.jsx(Bv,{type:t})]})}function Hv(t,r){const o=r==="source"?t.sourceName:t.targetName,a=r==="source"?t.sourceId:t.targetId;return o??a}function CS({reloadKey:t,onOpenCreate:r,scope:o}){const[a,c]=h.useState(null),[d,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(0),[x,S]=h.useState(Iv),[j,N]=h.useState(null);h.useEffect(()=>{let E=!1;m(!0),b(null);const T=o!==void 0?{source_type:o.type,source_id:o.id,depth:1}:{depth:1};return Fr(T).then(_=>{E||c(_.relations)}).catch(_=>{E||(c(null),b(_ instanceof De?_.code:ut))}).finally(()=>{E||m(!1)}),()=>{E=!0}},[t,p,o?.type,o?.id]);async function k(){if(j)try{await Ca(j.id),Oe.getState().showToast("已删除关系"),N(null),y(E=>E+1)}catch(E){throw E}}const O=a===null?[]:I3(a,x);return i.jsxs("div",{children:[o===void 0&&i.jsxs("div",{className:"mt-3 mb-2 flex flex-wrap items-center gap-3",children:[i.jsxs("select",{value:x.endpointType,onChange:E=>S(T=>({...T,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(wS).map(([E,T])=>i.jsx("option",{value:E,children:T},E))]}),i.jsxs("select",{value:x.relationType,onChange:E=>S(T=>({...T,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:"全部关系类型"}),Qm.map(E=>i.jsx("option",{value:E,children:vo(E)},E))]}),i.jsx(Mt,{value:x.nameQuery,onChange:E=>S(T=>({...T,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(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>y(E=>E+1),children:"重试"})]}),d&&a===null&&g===null&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:Array.from({length:5},(E,T)=>i.jsxs("div",{className:"flex items-center gap-3 border-b border-border px-3 py-3 last:border-0",children:[i.jsx("div",{className:Ne(_t,"h-4 w-1/4")}),i.jsx("div",{className:Ne(_t,"h-4 w-1/6")}),i.jsx("div",{className:Ne(_t,"h-4 w-1/4")}),i.jsx("div",{className:Ne(_t,"ml-auto h-4 w-12")})]},T))}),!d&&a!==null&&a.length===0&&i.jsx(Bn,{action:i.jsx(pe,{type:"button",onClick:r,children:"+ 建立关联"}),children:"还没有关联,建立一条"}),!d&&a!==null&&a.length>0&&O.length===0&&i.jsx(Bn,{action:i.jsx(pe,{variant:"outline",type:"button",onClick:()=>S(Iv),children:"清空过滤"}),children:"没有匹配的关联"}),!d&&a!==null&&O.length>0&&i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[o===void 0&&i.jsxs("div",{className:"flex items-center gap-2 border-b border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[i.jsx("span",{className:"w-1/4 shrink-0",children:"源"}),i.jsx("span",{className:"w-1/4 shrink-0",children:"关系"}),i.jsx("span",{className:"flex-1",children:"目标"}),i.jsx("span",{className:"w-14 shrink-0"})]}),i.jsx("ul",{className:"divide-y divide-border",children:O.map(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:[vo(E.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(dm,{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(dm,{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:[vo(E.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(dm,{type:E.targetType,id:E.targetId,name:E.targetName})})]}),i.jsx(pe,{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(Da,{title:"删除关系",description:`删除关系「${Hv(j,"source")} ${vo(j.relationType)} ${Hv(j,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:k,onClose:()=>N(null)})]})}const B3={set:"设为",update:"更新",add:"追加",remove:"移除"},H3={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"};function sh(t){return H3[t]??t}function cs(t){return t==null?"空":typeof t=="object"?JSON.stringify(t):String(t)}function U3(t){switch(t.op){case"set":return`${t.field} = ${cs(t.to)}`;case"update":return`${t.field} ${cs(t.from)} → ${cs(t.to)}`;case"add":return`${t.field} +${cs(t.value??t.to)}`;case"remove":return`${t.field} -${cs(t.value??t.to)}`}}function P3(t,r){const o=[];for(const a of new Set([...Object.keys(t),...Object.keys(r)])){const c=t[a]??null,d=r[a]??null;JSON.stringify(c)!==JSON.stringify(d)&&o.push({field:a,from:t[a],to:r[a]})}return o}function RS({changes:t,skipped:r}){const o=r?new Set(r):null;return i.jsx("div",{className:"flex flex-wrap items-center gap-1",children:t.map((a,c)=>{const d=o?.has(c)??!1;return i.jsxs("span",{title:d?"该变更未应用(数据与变更记录不一致,见冲突标注)":void 0,className:Ne("inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-xs",d?"text-destructive":"text-muted-foreground"),children:[i.jsx("span",{className:Ne("shrink-0 font-medium",d?"text-destructive":"text-foreground/70"),children:B3[a.op]}),U3(a)]},c)})})}function Y3({nodeId:t,reloadKey:r}){const[o,a]=h.useState(null),[c,d]=h.useState(!1),[m,g]=h.useState(null),[b,p]=h.useState(0);return h.useEffect(()=>{let y=!1;return d(!0),g(null),c2(t).then(x=>{y||a([...x.deltas].sort((S,j)=>S.order-j.order))}).catch(x=>{y||g(x instanceof De?x.code:ut)}).finally(()=>{y||d(!1)}),()=>{y=!0}},[t,b,r]),i.jsxs("div",{children:[c&&o===null&&m===null&&i.jsxs("div",{className:"space-y-2 py-1",children:[i.jsx("div",{className:Ne(_t,"h-4 w-2/3")}),i.jsx("div",{className:Ne(_t,"h-4 w-1/2")})]}),m!==null&&i.jsxs("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[i.jsx("span",{children:m==="OUTLINE_NODE_NOT_FOUND"?"节点不存在(可能已被删除),变更记录不可用":m===ut?"无法连接服务,请确认 ai-editor 服务已启动":"变更记录加载失败"}),m!=="OUTLINE_NODE_NOT_FOUND"&&i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>p(y=>y+1),children:"重试"})]}),!c&&m===null&&o!==null&&o.length===0&&i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"该节点没有变更记录"}),!c&&m===null&&o!==null&&o.length>0&&i.jsx("ul",{className:"divide-y divide-border/70",children:o.map(y=>i.jsxs("li",{className:"py-2 first:pt-0 last:pb-0",children:[i.jsxs("div",{className:"flex items-baseline gap-2",children:[i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:y.description,children:y.description}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:ds(y.createdAt)})]}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[i.jsxs("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[sh(y.targetType),"《",y.targetName??y.targetId,"》"]}),i.jsx(RS,{changes:y.changes})]})]},y.id))})]})}const V3=ka.filter(t=>t!=="event"&&t!=="timepoint").map(t=>({value:t,label:sh(t)})),F3={character:["role","gender","age","personality","motivation","abilities","status","custom_fields"],setting:["description","tags","rules","custom_fields"],location:["type","parent_id","description","custom_fields"],hook:["status","category","expected_payoff","payoff_timing","half_life","is_core","notes","expected_resolve_node_id"]},G3={character:Ic("character"),setting:Ic("setting"),location:Ic("location"),hook:Ic("hook")};function Ic(t){return Object.fromEntries(eh(t).map(r=>[r.key,r.label]))}const q3={character:["personality","abilities"],setting:["tags","rules"]},$3={character:["age"],hook:["half_life"]};function Ym(t,r){return(q3[t]??[]).includes(r)}function X3(t,r){return($3[t]??[]).includes(r)}function K3(t){return(F3[t]??[]).filter(o=>o!=="custom_fields").map(o=>({key:o,label:G3[t]?.[o]??o,array:Ym(t,o)}))}function OS(t){if(t!==void 0){if(t===null)return null;if(typeof t=="string"||typeof t=="number")return t}}function Uv(t){return t.array?{options:["add","remove"],default:"add"}:OS(t.currentValue)!==void 0?{options:["update","set"],default:"update"}:{options:["set"],default:"set"}}function Q3(t){const r=t.rawValue.trim();if(r==="")return{error:"请填写值"};const o=Number(r),a=t.numeric&&!Number.isNaN(o)?o:r;switch(t.op){case"add":return{change:{field:t.field,op:"add",value:a}};case"remove":return{change:{field:t.field,op:"remove",value:a}};case"set":return{change:{field:t.field,op:"set",to:a}};case"update":{const c=OS(t.currentValue);return c===void 0?{error:"无法确定旧值(当前数据无此字段或类型不可表达),请改用「设为」"}:{change:{field:t.field,op:"update",from:c,to:a}}}}}const Na="w-full rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",Z3={set:"设为",update:"更新",add:"追加",remove:"移除"};function J3({nodeId:t,onCreated:r,onClose:o}){const[a,c]=h.useState(""),[d,m]=h.useState(""),[g,b]=h.useState(""),[p,y]=h.useState("add"),[x,S]=h.useState(""),[j,N]=h.useState(""),[k,O]=h.useState(!1),[E,T]=h.useState(null),[_,w]=h.useState(null),[V,M]=h.useState(null),[L,C]=h.useState(0),[Q,ne]=h.useState(null),[ue,ee]=h.useState(null);h.useEffect(()=>{if(m(""),ne(null),ee(null),a===""){w(null),M(null);return}let H=!1;return w(null),M(null),jn(a).then(F=>{H||w(F.items)}).catch(F=>{H||(w(null),M(F instanceof De?F.code:ut))}),()=>{H=!0}},[a,L]),h.useEffect(()=>{if(a===""||d==="")return;let H=!1;return ne(null),ee(null),bo(a,d).then(F=>{H||ne(F.data)}).catch(F=>{H||(ne(null),ee(F instanceof De?F.code:ut))}),()=>{H=!0}},[a,d]),h.useEffect(()=>{b(""),S(""),T(null)},[a,d]);const X=K3(a),te=Q?.[g],W=Uv({array:Ym(a,g),currentValue:te});function z(H){b(H),y(Uv({array:Ym(a,H),currentValue:Q?.[H]}).default)}async function D(){if(k)return;if(a===""||d===""){T("请选择变更目标");return}if(g===""){T("请选择变更字段");return}const H=j.trim();if(H===""){T("请填写描述(本节点触发了什么变化)");return}const F=Q3({field:g,op:p,rawValue:x,numeric:X3(a,g),currentValue:te});if("error"in F){T(F.error);return}O(!0),T(null);try{await ip({node_id:t,target_type:a,target_id:d,changes:[F.change],description:H}),Oe.getState().showToast("已记录变更"),r()}catch(A){if(A instanceof De&&A.code==="OUTLINE_NODE_NOT_FOUND"){Oe.getState().showToast("节点不存在(可能已被删除),无法记录变更","error"),o();return}T(A instanceof De?A.message:"提交失败,请重试")}finally{O(!1)}}const Y=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:Ne(Na,a===""&&"text-muted-foreground"),"aria-label":"目标类型",children:[i.jsx("option",{value:"",children:"请选择目标类型"}),V3.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(pe,{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:["暂无",Pv(Y)]}):i.jsxs("select",{value:d,onChange:H=>m(H.target.value),className:Ne(Na,d===""&&"text-muted-foreground"),"aria-label":"目标实体",children:[i.jsxs("option",{value:"",children:["请选择",Pv(Y)]}),_.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=>z(H.target.value),className:Ne(Na,g===""&&"text-muted-foreground"),"aria-label":"变更字段",children:[i.jsx("option",{value:"",children:"请选择字段"}),X.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:Ne(Na,"min-w-20"),"aria-label":"操作",children:W.options.map(H=>i.jsx("option",{value:H,children:Z3[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:Na})]})]}),p==="update"&&i.jsx("p",{className:"text-xs text-muted-foreground",children:ue!==null?i.jsxs(i.Fragment,{children:["目标数据获取失败,无法自动取旧值(",ue==="ENTITY_NOT_FOUND"?"目标已不存在":"请稍后重试",")——可将操作改为「设为」"]}):i.jsxs(i.Fragment,{children:["旧值:",cs(te),"(自动取自目标当前数据,无需手填)"]})}),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:Ne(Na,"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(pe,{variant:"outline",size:"sm",type:"button",onClick:o,disabled:k,children:"取消"}),i.jsx(pe,{size:"sm",type:"button",onClick:()=>{D()},disabled:k,children:k?"提交中…":"创建变更"})]})]})}function Pv(t){return sh(t)}function rh({items:t,className:r}){return i.jsx("nav",{"aria-label":"面包屑",className:Ne("inline-flex items-center gap-1",r),children:t.map((o,a)=>{const c=a===t.length-1;return i.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.href?i.jsx("button",{type:"button",onClick:()=>on(o.href),className:"rounded-md border border-border px-2.5 py-1 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:o.label}):i.jsx("span",{"aria-current":"page",className:"max-w-40 truncate rounded-md bg-foreground px-2.5 py-1 text-sm font-medium text-background",children:o.label}),!c&&i.jsx("span",{className:"text-sm text-muted-foreground/40 select-none",children:"›"})]},a)})})}const W3={inner:"内心冲突",personal:"人际冲突",extra_personal:"社会冲突"};function eM(t){switch(t){case"scene":return[{key:"goal",label:"场景目标",control:"textarea",maxLength:1e3},{key:"conflict_levels",label:"冲突层次",control:"checkbox-group",options:a0,optionsLabels:W3},{key:"value_from",label:"开场价值",control:"text",maxLength:200},{key:"value_to",label:"收场价值",control:"text",maxLength:200}];case"chapter":return[{key:"reversal",label:"章末反转",control:"textarea",maxLength:1e3},{key:"climax_scene",label:"章高潮场景",control:"scene-select"}];case"volume":return[{key:"climax_scene",label:"幕高潮场景",control:"scene-select"},{key:"inciting_scene",label:"激励事件",control:"scene-select"}]}}function tM(t,r){return a0.includes(r)?t.includes(r)?t.filter(o=>o!==r):[...t,r]:t}function nM(t){const r=[],o=(a,c)=>{for(const d of a)d.type==="scene"?r.push({id:d.id,label:d.title,depth:c}):d.children&&o(d.children,c+1)};return o(t,0),r}function sM(t){return typeof t=="string"&&t!==""?t:""}const Vm="w-full rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function rM({nodeId:t}){const r=Pe(I=>I.outline),o=Pe(I=>I.outlineLoading),a=Pe(I=>I.config),c=Pe(I=>I.configLoading),d=Pe(I=>I.loadOutline),m=Pe(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,T]=h.useState(null),[_,w]=h.useState(!1),[V,M]=h.useState(!1),[L,C]=h.useState(0),[Q,ne]=h.useState(!1),[ue,ee]=h.useState(0);h.useEffect(()=>{r===null&&!o&&!g&&(b(!0),d())},[r,o,g,d]),zs(()=>{d(),C(I=>I+1),ee(I=>I+1)});const X=r===null?null:Yr(r.children,t),te=r!==null&&X===null,W=X?eM(X.type):[],z=nM(r?.children??[]),D=a?.currentPosition===t;h.useEffect(()=>{X!==null&&(y(X.title),S(X.summary??""),N(JSON.parse(JSON.stringify(X.data??{}))))},[X]);async function Y(){if(X===null||k)return;const I=p.trim();if(I===""){T("标题不能为空");return}const U={};NS(X.title,p)&&(U.title=I),jS(X.summary,x)&&(U.summary=x.trim());const G=th(X.data??{},j??{});if(G!==null&&(U.data=G),Object.keys(U).length===0){Oe.getState().showToast("没有变更");return}O(!0),T(null);try{await k0(X.id,U),Oe.getState().showToast("已保存"),await d()}catch(K){if(K instanceof De&&K.code==="OUTLINE_NODE_NOT_FOUND"){await d();return}T(K instanceof De?K.message:"保存失败,请重试")}finally{O(!1)}}function H(I,U){N(G=>G&&{...G,[I]:U})}async function F(){if(!(X===null||_||D)){w(!0);try{await m({current_position:X.id}),Oe.getState().showToast("已设为当前位置")}catch{Oe.getState().showToast("设置失败:该节点可能已删除,无法设为当前位置","error")}finally{w(!1)}}}if(te)return i.jsx("section",{children:i.jsx(Bn,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(pe,{variant:"outline",type:"button",onClick:()=>on("/outline"),children:"返回大纲"})]}),children:"该节点不存在或已被删除"})});const A=a===null&&!c,B=[{label:"大纲",href:"/outline"}];if(X!==null){const I=Zp(r?.children??[],t)??[];for(const U of I.slice(0,-1)){const G=Yr(r?.children??[],U);G&&B.push({label:G.title,href:`/outline/${U}`})}B.push({label:X.title})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(rh,{items:B}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:X?.title??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(pe,{variant:"outline",type:"button",disabled:X===null||D||_,title:D?"当前节点已是创作进度位置":"标记为创作进度位置(InfoBar 展示 + 定位跳转基准)",onClick:()=>{F()},children:D?"当前位置":"设为当前位置"}),i.jsx(pe,{type:"button",onClick:()=>{Y()},disabled:X===null||k,children:k?"保存中…":"保存"})]})]}),X&&i.jsxs("div",{className:"mb-4 flex items-center gap-2 text-xs text-muted-foreground",children:[i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs",children:is[X.type]}),i.jsxs("span",{children:["更新于 ",ds(X.updatedAt)]}),D&&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(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):X===null||j===null?null:i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex min-w-0 flex-col gap-4",children:[i.jsx(sr,{title:"基础信息",children:i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标题"}),i.jsx(Mt,{value:p,onChange:I=>y(I.target.value),maxLength:200,placeholder:`${is[X.type]}标题`,className:"h-8 text-sm"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"摘要"}),i.jsx("textarea",{value:x,onChange:I=>S(I.target.value),maxLength:200,rows:3,placeholder:"一句话概括本节点内容(可选)",className:Vm})]})]})}),i.jsxs(sr,{title:`结构化信息(${is[X.type]})`,children:[i.jsx("div",{className:"flex flex-col gap-3",children:W.map(I=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:I.label}),i.jsx(oM,{field:I,value:j?.[I.key],sceneOptions:z,onChange:U=>H(I.key,U)})]},I.key))}),E&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:E})]}),i.jsxs(sr,{title:"变更记录",action:i.jsx(pe,{variant:"outline",size:"sm",type:"button",onClick:()=>ne(I=>!I),children:Q?"收起":"+ 新建变更"}),children:[Q&&i.jsx(J3,{nodeId:t,onCreated:()=>{ne(!1),ee(I=>I+1)},onClose:()=>ne(!1)}),i.jsx(Y3,{nodeId:t,reloadKey:ue})]}),i.jsx(sr,{title:"伏笔标记",className:"border-dashed",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"伏笔标记将在伏笔面板(S9)落地"})})]}),i.jsx("div",{className:"flex min-w-0 flex-col gap-4",children:i.jsxs(sr,{title:"相关实体",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"本节点作为源的关系(1 跳)"}),i.jsx(pe,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>M(!0),children:"+ 新增关联"})]}),i.jsx(CS,{scope:{type:"outline_node",id:t},reloadKey:L,onOpenCreate:()=>M(!0)})]})})]}),V&&X!==null&&i.jsx(nh,{source:{type:"outline_node",id:X.id,name:X.title},onCreated:()=>C(I=>I+1),onClose:()=>M(!1)})]})}function oM({field:t,value:r,sceneOptions:o,onChange:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:t.maxLength,rows:3,className:Vm});case"checkbox-group":{const c=Array.isArray(r)?r:[];return i.jsx("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:(t.options??[]).map(d=>i.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5 text-sm text-foreground",children:[i.jsx("input",{type:"checkbox",checked:c.includes(d),onChange:()=>a(tM(c,d)),className:"size-4 accent-primary"}),t.optionsLabels?.[d]??d]},d))})}case"scene-select":{const c=sM(r),d=c!==""&&!o.some(m=>m.id===c);return i.jsxs("select",{value:c,onChange:m=>a(m.target.value),className:Ne(Vm,c===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"(未设置)"}),d&&i.jsxs("option",{value:c,children:[c,"(已删除)"]}),o.map(m=>i.jsxs("option",{value:m.id,children:[" ".repeat(m.depth),m.label]},m.id))]})}default:return i.jsx(Mt,{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:t.maxLength,className:"h-8 text-sm"})}}const So={volume:248,chapter:208,scene:168},As={volume:96,chapter:88,scene:76},Ur={padX:48,padY:48,colGap:304,rowGap:28,indentChapter:28,indentScene:56},kS=.5,_S=2,aM="ai-editor:canvas:";function Fm(t){return Math.min(_S,Math.max(kS,t))}function lM(t){if(!t)return[];const r=[],o=(a,c,d)=>{for(const m of a)r.push({id:m.id,type:m.type,title:m.title,summary:m.summary,parentId:c,depth:d}),m.type!=="scene"&&m.children&&o(m.children,m.id,d+1)};return o(t.children,null,0),r}function Yv(t){const r={};let o=0;for(const a of t){if(a.depth!==0)continue;const c=Ur.padX+o*Ur.colGap;let d=Ur.padY;r[a.id]={x:c,y:d},d+=As[a.type]+Ur.rowGap;for(const m of t)if(m.parentId===a.id){r[m.id]={x:c+Ur.indentChapter,y:d},d+=As[m.type]+Ur.rowGap;for(const g of t)g.parentId===m.id&&(r[g.id]={x:c+Ur.indentScene,y:d},d+=As.scene+Ur.rowGap)}o+=1}return r}function MS(t){return`${aM}${t}`}function iM(t){if(typeof t!="object"||t===null)return null;const r=t.nodes;if(typeof r!="object"||r===null||Array.isArray(r))return null;const o={};for(const[d,m]of Object.entries(r)){if(typeof m!="object"||m===null)return null;const g=m;if(typeof g.x!="number"||typeof g.y!="number"||!Number.isFinite(g.x)||!Number.isFinite(g.y))return null;o[d]={x:g.x,y:g.y}}const a=t.zoom,c=typeof a=="number"&&Number.isFinite(a)?Fm(a):1;return{nodes:o,zoom:c}}function cM(t){try{const r=localStorage.getItem(MS(t));return r===null?null:iM(JSON.parse(r))}catch{return null}}function fm(t,r){try{localStorage.setItem(MS(t),JSON.stringify(r))}catch{}}function Vv(t,r,o){const a={};for(const c of o)a[c.id]=t?.[c.id]??r[c.id];return a}function uM(t){const r=[];for(const o of t){if(o.relationType!==Sj||o.sourceType!=="outline_node"||o.targetType!=="outline_node")continue;const a=o.metadata?.label,c=typeof a=="string"&&a.trim()!==""?a.trim():void 0;r.push({id:o.id,sourceId:o.sourceId,targetId:o.targetId,label:c})}return r.sort((o,a)=>o.id<a.id?-1:o.id>a.id?1:0),r}function dM(t){return t.filter(r=>r.type==="scene")}function fM(t,r){return t.filter(o=>r.has(o.sourceId)&&r.has(o.targetId))}function Fv(t,r){const o=Math.max(32,Math.abs(r.x-t.x)*.5),a=t.x+o,c=r.x-o;return`M ${t.x} ${t.y} C ${a} ${t.y}, ${c} ${r.y}, ${r.x} ${r.y}`}function mM(t,r){const o=Math.max(32,Math.abs(r.x-t.x)*.5),a={x:t.x+o,y:t.y},c={x:r.x-o,y:r.y};return{x:(t.x+3*a.x+3*c.x+r.x)/8,y:(t.y+3*a.y+3*c.y+r.y)/8}}function mm(t,r){return{x:t.x+So[r]/2,y:t.y+As[r]/2}}function Gv(t,r,o,a){const c=r.x-t.x,d=r.y-t.y;if(c===0&&d===0)return t;const m=c===0?Number.POSITIVE_INFINITY:o/2/Math.abs(c),g=d===0?Number.POSITIVE_INFINITY:a/2/Math.abs(d),b=Math.min(m,g);return{x:t.x+b*c,y:t.y+b*d}}const Cs={highlight:"#a855f7",scene:"#f59e0b",chapter:"#3b82f6",volume:"#06b6d4",default:"#94a3b8"};function pM(t,r={}){if(r.onPath||r.selected)return Cs.highlight;switch(t){case"scene":return Cs.scene;case"chapter":return Cs.chapter;case"volume":return Cs.volume;default:return Cs.default}}function hM(t={}){return t.onPath||t.selected?2.5:1.5}function gM(t={}){return t.offPath?.2:1}const AS="canvas-edge-arrow";function xM(){return`url(#${AS})`}const ru={w:180,h:120},Bc=4,bM=1,yM=.02;function vM(t,r,o,a){let c=Number.POSITIVE_INFINITY,d=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY,b=0;for(const w of t){const V=r[w.id];V&&(c=Math.min(c,V.x),d=Math.min(d,V.y),m=Math.max(m,V.x+So[w.type]),g=Math.max(g,V.y+As[w.type]),b+=1)}if(b===0)return{nodeRects:[],viewportRect:null};const p=m-c,y=g-d,x=ru.w-2*Bc,S=ru.h-2*Bc,j=Math.min(x/p,S/y),N=Math.min(bM,Math.max(yM,j)),k=Bc+(x-p*N)/2,O=Bc+(S-y*N)/2,E=[];for(const w of t){const V=r[w.id];V&&E.push({id:w.id,x:k+(V.x-c)*N,y:O+(V.y-d)*N,w:So[w.type]*N,h:As[w.type]*N,type:w.type})}let T=null;const _=o>0?o:1;if(a!==null&&a.width>0&&a.height>0){const w={x:a.x/_,y:a.y/_,width:a.width/_,height:a.height/_};T={x:k+(w.x-c)*N,y:O+(w.y-d)*N,w:w.width*N,h:w.height*N}}return{nodeRects:E,viewportRect:T}}function SM(t,r){const o=new Set([t]),a=new Set,c=[t];for(;c.length>0;){const d=c.pop();for(const m of r)m.sourceId!==d||a.has(m.id)||(a.add(m.id),o.has(m.targetId)||(o.add(m.targetId),c.push(m.targetId)))}return{nodeIds:o,edgeIds:a}}function qv(t){switch(t){case"RELATION_EXISTS":return"这条连线已经存在";case"VALIDATION_ERROR":return"连线参数有误";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return null}}function EM(){const t=Pe(re=>re.outline),r=Pe(re=>re.outlineLoading),o=Pe(re=>re.config),a=Pe(re=>re.configLoading),c=Pe(re=>re.loadOutline),[d,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,T]=h.useState(null),[_,w]=h.useState(null),[V,M]=h.useState(null),[L,C]=h.useState(null),[Q,ne]=h.useState(null),[ue,ee]=h.useState(null),[X,te]=h.useState(null),[W,z]=h.useState(null),[D,Y]=h.useState(null),[H,F]=h.useState(!1),A=h.useRef(null),B=h.useRef(null),I=h.useRef(null),U=h.useRef(d);U.current=d;const G=h.useRef(0),K=o?.id??null,xe=o===null&&!a,se=h.useCallback(async()=>{if(K===null)return;const ye=++G.current;try{const Le=await Fr({source_type:"outline_node",relation_type:"plot_edge",depth:1});if(ye!==G.current)return;O(uM(Le.relations)),T(null)}catch(Le){if(ye!==G.current)return;T(Le instanceof De?Le.code:ut)}},[K]);zs(()=>{c(),se()});const le=h.useMemo(()=>lM(t),[t]),He=h.useMemo(()=>new Map(le.map(re=>[re.id,re])),[le]),[ze,Re]=h.useState(null);h.useEffect(()=>{if(K===null){Re(null),m({}),b(1);return}const re=cM(K);Re(K),b(re?.zoom??1),m(re?.nodes??{})},[K]);const Ue=ze===K;h.useEffect(()=>{le.length===0||!Ue||m(re=>Vv(re,Yv(le),le))},[le,Ue]),h.useEffect(()=>{if(!(K===null||!Ue))return I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{fm(K,{nodes:d,zoom:g})},300),()=>{I.current!==null&&(window.clearTimeout(I.current),I.current=null,U.current===d&&K!==null&&Ue&&fm(K,{nodes:d,zoom:g}))}},[d,K,g,Ue]),h.useEffect(()=>{K===null||!Ue||fm(K,{nodes:d,zoom:g})},[g,K,Ue]),h.useEffect(()=>{t===null&&!r&&!j&&(N(!0),c())},[t,r,j,c]),h.useEffect(()=>{if(K===null){O(null),T(null);return}se()},[K,se]),h.useEffect(()=>{if(t===null){w(null);return}let re=!1;return Promise.all(Qp.map(ye=>Fr({source_type:"outline_node",relation_type:ye,depth:1}).then(Le=>Le.relations).catch(()=>[]))).then(ye=>{re||w(ES(ye.flat()))}),()=>{re=!0}},[t]);const ge=h.useRef(null),ie=h.useRef(null),Ye=h.useCallback(()=>{const re=A.current,ye=B.current;if(re===null||ye===null)return;const Le=re.getBoundingClientRect(),Ze=ye.getBoundingClientRect(),nt={x:Math.round(Le.left-Ze.left),y:Math.round(Le.top-Ze.top),width:Math.round(Le.width),height:Math.round(Le.height)};ne(at=>at!==null&&at.x===nt.x&&at.y===nt.y&&at.width===nt.width&&at.height===nt.height?at:nt)},[]),Ae=h.useCallback(re=>{if(A.current=re,ge.current?.(),ge.current=null,ie.current?.(),ie.current=null,re===null)return;const ye=Ze=>{Ze.preventDefault(),b(nt=>Fm(Math.round((nt+(Ze.deltaY<0?.1:-.1))*10)/10))};re.addEventListener("wheel",ye,{passive:!1}),ge.current=()=>re.removeEventListener("wheel",ye),Ye();const Le=new ResizeObserver(()=>Ye());Le.observe(re),ie.current=()=>Le.disconnect()},[Ye]);h.useEffect(()=>()=>{ge.current?.(),ge.current=null,ie.current?.(),ie.current=null},[]),h.useEffect(()=>{if(X===null)return;const re=ye=>{ye.key==="Escape"&&te(null)};return window.addEventListener("keydown",re),()=>window.removeEventListener("keydown",re)},[X]);const Ie=p?dM(le):le,ve=h.useMemo(()=>new Set(Ie.map(re=>re.id)),[Ie]),ce=h.useMemo(()=>fM(k??[],ve),[k,ve]);h.useEffect(()=>{L!==null&&!ve.has(L)&&C(null)},[L,ve]);const _e=h.useMemo(()=>{const re=[];for(const ye of ce){const Le=d[ye.sourceId],Ze=d[ye.targetId],nt=He.get(ye.sourceId),at=He.get(ye.targetId);if(!Le||!Ze||!nt||!at)continue;const rt=mm(Le,nt.type),$t=mm(Ze,at.type),Zn=Gv(rt,$t,So[nt.type],As[nt.type]),Jt=Gv($t,rt,So[at.type],As[at.type]);re.push({edge:ye,d:Fv(Zn,Jt),mid:mM(Zn,Jt),targetType:at.type})}return re},[ce,d,He]),Me=h.useMemo(()=>L!==null&&X===null?SM(L,ce):null,[L,X,ce]),Z=h.useMemo(()=>_e.map(re=>{const ye=re.edge.id===V,Le=Me?.edgeIds.has(re.edge.id)??!1;return{...re,stroke:pM(re.targetType,{onPath:Le,selected:ye}),strokeWidth:hM({onPath:Le,selected:ye}),opacity:gM({offPath:Me!==null&&!Le}),dash:Le||ye}}),[_e,Me,V]),P=h.useMemo(()=>vM(Ie,d,g,Q),[Ie,d,g,Q]),q=h.useMemo(()=>{let re=0,ye=0;for(const Le of le){const Ze=d[Le.id];Ze&&(re=Math.max(re,Ze.x+So[Le.type]),ye=Math.max(ye,Ze.y+As[Le.type]))}return{w:re+96,h:ye+96}},[le,d]),we=h.useMemo(()=>_e.find(re=>re.edge.id===V)??null,[_e,V]),be=h.useMemo(()=>{if(X===null||W===null)return null;const re=He.get(X),ye=d[X];return!re||!ye?null:Fv(mm(ye,re.type),W)},[X,W,d,He]);function ae(re,ye){const Le=B.current?.getBoundingClientRect();return Le?{x:(re-Le.left)/g,y:(ye-Le.top)/g}:{x:0,y:0}}function ke(re,ye){if(re.target.closest("[data-canvas-handle]")||re.button!==0)return;re.preventDefault();const Le=d[ye.id];Le&&(re.currentTarget.setPointerCapture(re.pointerId),ee({nodeId:ye.id,startClientX:re.clientX,startClientY:re.clientY,origX:Le.x,origY:Le.y}))}function Ve(re,ye){if(ue===null||ue.nodeId!==ye)return;const Le=(re.clientX-ue.startClientX)/g,Ze=(re.clientY-ue.startClientY)/g;m(nt=>nt[ye]?{...nt,[ye]:{x:ue.origX+Le,y:ue.origY+Ze}}:nt)}function We(){ee(null)}function pt(re,ye){re.stopPropagation(),re.preventDefault(),re.button===0&&(re.currentTarget.setPointerCapture(re.pointerId),M(null),te(ye.id),z(ae(re.clientX,re.clientY)))}function At(re){X!==null&&z(ae(re.clientX,re.clientY))}async function mt(re){if(X===null)return;const ye=X,nt=document.elementFromPoint(re.clientX,re.clientY)?.closest("[data-canvas-node-id]")?.getAttribute("data-canvas-node-id")??null;if(te(null),z(null),!(nt===null||nt===ye))try{await cr({source_type:"outline_node",source_id:ye,target_type:"outline_node",target_id:nt,relation_type:"plot_edge"}),Oe.getState().showToast("已建立连线"),await se()}catch(at){const rt=at instanceof De?at.code:null,$t=qv(rt);if($t!==null){Oe.getState().showToast($t,"error"),await se();return}Oe.getState().showToast(at instanceof De?at.message:"创建失败,请重试","error")}}const Tt=h.useRef(!1);function Rt(re){Tt.current=!1,Y({edgeId:re.id,draft:re.label??""})}async function Lt(re,ye){if(!H){F(!0),Y(null);try{const Le=ye.trim();await i2(re,Le===""?{}:{label:Le}),Oe.getState().showToast("已保存标签"),await se()}catch(Le){Oe.getState().showToast(Le instanceof De?Le.message:"保存失败,请重试","error")}finally{F(!1)}}}function Ce(re){re.key==="Enter"?(re.preventDefault(),Tt.current=!0,D!==null&&Lt(D.edgeId,D.draft)):re.key==="Escape"&&(re.preventDefault(),Tt.current=!0,Y(null))}function Ee(){Tt.current||D!==null&&Lt(D.edgeId,D.draft)}async function Ge(){if(we===null)return;const re=we.edge;if(await Oe.getState().confirm({title:"删除连线",description:`删除连线「${re.label??"未命名"}」?物理删除不可恢复,可随时重建。`,danger:!0}))try{Tt.current=!0,Y(null),await Ca(re.id),Oe.getState().showToast("已删除连线"),M(null),await se()}catch(Le){const Ze=Le instanceof De?Le.code:null,nt=qv(Ze);Oe.getState().showToast(nt??(Le instanceof De?Le.message:"删除失败,请重试"),"error"),Ze==="RELATION_NOT_FOUND"&&(M(null),await se())}}function Ot(){m(re=>Vv(re,Yv(le),le))}function Yt(re){b(ye=>Fm(Math.round((ye+re)*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(pe,{variant:"outline",type:"button",onClick:Ot,disabled:le.length===0,children:"重新布局"}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(pe,{variant:"outline",size:"icon-sm",type:"button","aria-label":"缩小",disabled:g<=kS,onClick:()=>Yt(-.1),children:i.jsx(aT,{})}),i.jsxs("span",{className:"w-12 text-center text-sm text-muted-foreground tabular-nums",children:[Math.round(g*100),"%"]}),i.jsx(pe,{variant:"outline",size:"icon-sm",type:"button","aria-label":"放大",disabled:g>=_S,onClick:()=>Yt(.1),children:i.jsx(lu,{})})]}),i.jsx("div",{className:"flex items-center gap-1 rounded-lg bg-secondary/30 p-1",role:"group","aria-label":"显示模式",children:[!1,!0].map(re=>i.jsx("button",{type:"button",onClick:()=>y(re),"aria-pressed":p===re,className:Ne("rounded-md border border-border px-2.5 py-1 text-xs transition-colors",p===re?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:re?"仅场景":"全部节点"},String(re)))}),i.jsxs(pe,{variant:"outline",size:"sm",type:"button",onClick:()=>S(re=>!re),"aria-expanded":x,children:[i.jsx(c0,{}),"画布说明"]})]}),x&&i.jsxs("p",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:["连线与坐标仅用于推演展示,不参与状态计算",i.jsx("button",{type:"button",className:"rounded p-0.5 hover:bg-muted hover:text-foreground","aria-label":"收起说明",onClick:()=>S(!1),children:i.jsx(hs,{className:"size-3"})})]}),E!==null&&i.jsxs("div",{className:Ne(ni),children:[E===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"连线加载失败,请重试。",i.jsx(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{se()},children:"重试"})]}),xe?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},(re,ye)=>i.jsxs("div",{className:"mb-4 flex gap-4",children:[i.jsx("div",{className:Ne(_t,"h-24 w-60 rounded-lg")}),i.jsx("div",{className:Ne(_t,"mt-6 h-24 w-52 rounded-lg")}),i.jsx("div",{className:Ne(_t,"mt-12 h-20 w-44 rounded-lg")})]},ye))}):t===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>N(!1),children:"重试"})]}):t.children.length===0?i.jsx(Bn,{action:i.jsx(pe,{type:"button",onClick:()=>on("/outline"),children:"去大纲"}),children:"大纲还是空的,先去搭大纲"}):Ie.length===0?i.jsx(Bn,{action:i.jsx(pe,{variant:"outline",type:"button",onClick:()=>y(!1),children:"显示全部节点"}),children:"当前大纲还没有场景节点"}):i.jsxs("div",{ref:Ae,className:"relative min-h-0 flex-1 overflow-auto rounded-md border border-border bg-muted/20",onScroll:Ye,onClick:re=>{re.target===re.currentTarget&&M(null)},children:[i.jsxs("div",{ref:B,className:"relative",style:{width:q.w,height:q.h,transform:`scale(${g})`,transformOrigin:"0 0"},onClick:re=>{re.target===re.currentTarget&&M(null)},children:[i.jsxs("svg",{className:"pointer-events-none absolute top-0 left-0",width:q.w,height:q.h,style:{overflow:"visible"},children:[i.jsx("defs",{children:i.jsx("marker",{id:AS,viewBox:"0 0 10 10",refX:10,refY:5,markerWidth:10,markerHeight:10,markerUnits:"userSpaceOnUse",orient:"auto",children:i.jsx("path",{d:"M 0 0 L 10 5 L 0 10 Z",fill:"context-stroke"})})}),Z.map(({edge:re,d:ye,stroke:Le,strokeWidth:Ze,opacity:nt,dash:at})=>{const rt=re.id===V;return i.jsxs("g",{opacity:nt,children:[i.jsx("path",{d:ye,fill:"none",stroke:Le,strokeWidth:Ze,strokeDasharray:at?"6 4":void 0,vectorEffect:"non-scaling-stroke",markerEnd:xM(),className:at?"canvas-edge-flow":void 0}),i.jsx("path",{d:ye,fill:"none",stroke:"transparent",strokeWidth:14,vectorEffect:"non-scaling-stroke",className:"pointer-events-auto cursor-pointer",onClick:()=>M(rt?null:re.id)})]},re.id)}),be!==null&&i.jsx("path",{d:be,fill:"none",stroke:"var(--primary)",strokeWidth:2,strokeDasharray:"6 4",vectorEffect:"non-scaling-stroke"})]}),Z.map(({edge:re,mid:ye,opacity:Le})=>{const Ze=re.id===V;return Ze&&D!==null&&D.edgeId===re.id?i.jsx("div",{className:"absolute z-20 -translate-x-1/2 -translate-y-1/2",style:{left:ye.x,top:ye.y},children:i.jsx(Mt,{value:D.draft,onChange:at=>Y({edgeId:re.id,draft:at.target.value}),onKeyDown:Ce,onBlur:Ee,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-${re.id}`):i.jsx("span",{className:Ne("pointer-events-none absolute max-w-44 -translate-x-1/2 -translate-y-1/2 truncate rounded border bg-card px-1.5 py-0.5 text-[10px] whitespace-nowrap text-muted-foreground",Ze&&"pointer-events-auto cursor-text"),style:{left:ye.x,top:ye.y,opacity:Le,...Ze?{borderColor:Cs.highlight,color:Cs.highlight}:{}},title:Ze?re.label===void 0?"添加标签":"编辑标签":void 0,onClick:at=>{at.stopPropagation(),Rt(re)},children:re.label??(Ze?"+ 标签":"未命名连线")},`label-${re.id}`)}),we!==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:we.mid.x,top:we.mid.y+26},children:[i.jsx("span",{className:"max-w-36 truncate px-1.5 text-xs text-muted-foreground",children:we.edge.label??"未命名连线"}),i.jsx(pe,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>{Ge()},children:"删除连线"}),i.jsx("button",{type:"button","aria-label":"取消选择",className:"rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",onClick:()=>M(null),children:i.jsx(hs,{className:"size-3.5"})})]}),Ie.map(re=>{const ye=d[re.id];if(!ye)return null;const Le=_?.get(re.id)??[],Ze=X===re.id,nt=ue?.nodeId===re.id,at=Me?.nodeIds.has(re.id)??!1;return i.jsxs("div",{"data-canvas-node-id":re.id,className:Ne("group absolute cursor-grab touch-none rounded-lg border bg-card p-2.5 transition-colors select-none active:cursor-grabbing",Ze?"border-primary ring-2 ring-ring/40":"border-border",nt&&"opacity-80"),style:{left:ye.x,top:ye.y,width:So[re.type],height:As[re.type],...Me!==null?{opacity:at?1:.2,boxShadow:at?`0 0 0 2px ${Cs.highlight}`:void 0}:{}},title:"拖动调整位置",onPointerDown:rt=>ke(rt,re),onPointerMove:rt=>Ve(rt,re.id),onPointerUp:We,onMouseEnter:()=>C(re.id),onMouseLeave:()=>C(rt=>rt===re.id?null:rt),children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:is[re.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-medium text-foreground",title:re.title,children:re.title}),Le.length>0&&i.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:Le.map(rt=>i.jsx(SS,{mark:rt},`${rt.relationType}-${rt.hookId}`))})]}),re.summary&&i.jsx("p",{className:"mt-1 line-clamp-2 text-xs leading-4 text-muted-foreground",children:re.summary}),i.jsx("span",{"data-canvas-handle":!0,className:Ne("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,re),onPointerMove:At,onPointerUp:mt})]},re.id)})]}),i.jsx("div",{className:"pointer-events-none absolute right-2 bottom-2 z-10 overflow-hidden rounded-md border border-border bg-card/90 shadow-sm",children:i.jsxs("svg",{width:ru.w,height:ru.h,children:[P.nodeRects.map(re=>i.jsx("rect",{x:re.x,y:re.y,width:re.w,height:re.h,rx:2,fill:Cs[re.type],opacity:.85},re.id)),P.viewportRect!==null&&i.jsx("rect",{x:P.viewportRect.x,y:P.viewportRect.y,width:P.viewportRect.w,height:P.viewportRect.h,fill:"none",stroke:Cs.highlight,strokeWidth:1})]})})]})]})}const DS=h.createContext(void 0);function li(t){const r=h.useContext(DS);if(r===void 0&&!t)throw new Error(Tn(47));return r}function NM(){return{...Up(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,nested:!1,openOnHover:!1,closeDelay:0,hasViewport:!1}}const jM={...Yp,disabled:$e(t=>t.disabled),instantType:$e(t=>t.instantType),openMethod:$e(t=>t.openMethod),openChangeReason:$e(t=>t.openChangeReason),modal:$e(t=>t.modal),focusManagerModal:$e(t=>t.focusManagerModal),stickIfOpen:$e(t=>t.stickIfOpen),titleElementId:$e(t=>t.titleElementId),descriptionElementId:$e(t=>t.descriptionElementId),openOnHover:$e(t=>t.openOnHover),closeDelay:$e(t=>t.closeDelay),hasViewport:$e(t=>t.hasViewport)};class oh extends Nu{constructor(r,o,a=!1){const c={...NM(),...r},d=new ai;c.open&&r?.mounted===void 0&&(c.mounted=!0),c.floatingRootContext=$1(d,o,a),super(c,{popupRef:h.createRef(),backdropRef:h.createRef(),internalBackdropRef:h.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:h.createRef(),beforeContentFocusGuardRef:h.createRef(),stickIfOpenTimeout:new gs,triggerElements:d},jM)}setOpen=(r,o)=>{const a=o.reason===pn,c=o.reason===jo&&o.event.detail===0,d=!r&&(o.reason===pu||o.reason==null),m=V1(o),g=this.select("activeTriggerId");if(!r&&o.reason===X0&&o.trigger==null&&g!=null&&(o.trigger=this.context.triggerElements.getById(g)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(r,o),o.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(r,o);const b=()=>{const p={open:r,openChangeReason:o.reason};Lp(p,r,o.trigger,m()),this.update(p)};a?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(x1,()=>{this.set("stickIfOpen",!1)}),dr.flushSync(b)):b(),c||d?this.set("instantType",c?"click":"dismiss"):o.reason===To?this.set("instantType","focus"):this.set("instantType",void 0)};static useStore(r,o){const{store:a,internalStore:c}=Y1(r,(d,m)=>new oh(o,d,m));return h.useEffect(()=>c?.disposeEffect(),[c]),a}disposeEffect=()=>this.context.stickIfOpenTimeout.disposeEffect()}function $v({props:t}){const{children:r,open:o,defaultOpen:a=!1,onOpenChange:c,onOpenChangeComplete:d,modal:m=!1,handle:g,triggerId:b,defaultTriggerId:p=null}=t,y=oh.useStore(g?.store,{modal:m,open:a,openProp:o,activeTriggerId:p,triggerIdProp:b});F1(y,o,a,p),y.useControlledProp("openProp",o),y.useControlledProp("triggerIdProp",b);const x=y.useState("open"),S=y.useState("mounted"),j=y.useState("payload"),N=pr()!=null;y.useContextCallback("onOpenChange",c),y.useContextCallback("onOpenChangeComplete",d),q1(y,x),Ip(y);const{forceUnmount:k}=Bp(x,y,()=>{y.update({stickIfOpen:!0,openChangeReason:null})});y.useSyncedValues({modal:m,nested:N}),h.useEffect(()=>{x||y.context.stickIfOpenTimeout.clear()},[y,x]);const O=h.useCallback(()=>{y.setOpen(!1,jt(bp))},[y]);h.useImperativeHandle(t.actionsRef,()=>({unmount:k,close:O}),[k,O]);const E=x||S,T=h.useMemo(()=>({store:y}),[y]);return i.jsxs(DS.Provider,{value:T,children:[E&&i.jsx(wM,{store:y,modal:m}),typeof r=="function"?r({payload:j}):r]})}function TM(t){return li(!0)?i.jsx($v,{props:t}):i.jsx(w1,{children:i.jsx($v,{props:t})})}function wM({store:t,modal:r}){const o=t.useState("floatingRootContext"),a=Dp(o,{outsidePressEvent:{mouse:r==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),c=a.reference??Ft,d=a.trigger??Ft,m=h.useMemo(()=>or(Tu,a.floating),[a.floating]);return Hp(t,{activeTriggerProps:c,inactiveTriggerProps:d,popupProps:m}),null}const CM=300,RM=h.forwardRef(function(r,o){const{render:a,className:c,style:d,disabled:m=!1,nativeButton:g=!0,handle:b,payload:p,openOnHover:y=!1,delay:x=CM,closeDelay:S=0,id:j,...N}=r,k=li(!0),O=b?.store??k?.store;if(!O)throw new Error(Tn(74));const E=Mo(j),T=O.useState("isTriggerActive",E),_=O.useState("floatingRootContext"),w=O.useState("isOpenedByTrigger",E),V=O.useState("triggerPopupId",E),M=h.useRef(null),{registerTrigger:L,isMountedByThisTrigger:C}=G1(E,M,O,{payload:p,disabled:m,openOnHover:y,closeDelay:S}),Q=O.useState("openChangeReason"),ne=O.useState("stickIfOpen"),ue=O.useState("openMethod"),ee=O.useState("focusManagerModal"),X=J1(_,{enabled:!m&&_!=null&&y&&(ue!=="touch"||Q!==jo),mouseOnly:!0,move:!1,handleClose:W1(),restMs:x,delay:{close:S},triggerElementRef:M,isActiveTrigger:T,isClosing:()=>O.select("transitionStatus")==="ending"}),te=C1(_,{enabled:_!=null,stickIfOpen:ne}),W=uS(()=>O.select("open"),G=>{O.set("openMethod",G)}),z=O.useState("triggerProps",C),{getButtonProps:D,buttonRef:Y}=si({disabled:m,native:g}),H={open(G){return G&&Q===jo?Rm.open(G):bC.open(G)}},{preFocusGuardRef:F,handlePreFocusGuardFocus:A,handleFocusTargetFocus:B}=fS(O,M),U=hn("button",r,{state:{disabled:m,open:w},ref:[Y,o,L,M],props:[te.reference,X,z,W,{[b1]:"",id:E,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":V},N,D],stateAttributesMapping:H});return C&&!ee?i.jsxs(h.Fragment,{children:[i.jsx(Gr,{ref:F,onFocus:A}),i.jsx(h.Fragment,{children:U},E),i.jsx(Gr,{ref:O.context.triggerFocusTargetRef,onFocus:B})]}):i.jsx(h.Fragment,{children:U},E)}),zS=h.createContext(void 0);function OM(){const t=h.useContext(zS);if(t===void 0)throw new Error(Tn(45));return t}const kM=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=li();return d.useState("mounted")||a?i.jsx(zS.Provider,{value:a,children:i.jsx(Op,{ref:o,...c})}):null}),LS=h.createContext(void 0);function _M(){const t=h.useContext(LS);if(!t)throw new Error(Tn(46));return t}const MM=h.forwardRef(function(r,o){const{render:a,className:c,style:d,anchor:m,positionMethod:g="absolute",side:b="bottom",align:p="center",sideOffset:y=0,alignOffset:x=0,collisionBoundary:S="clipping-ancestors",collisionPadding:j=5,arrowPadding:N=5,sticky:k=!1,disableAnchorTracking:O=!1,collisionAvoidance:E=y1,...T}=r,{store:_}=li(),w=OM(),V=_p(),M=_.useState("floatingRootContext"),L=_.useState("mounted"),C=_.useState("open"),Q=_.useState("openChangeReason"),ne=_.useState("activeTriggerElement"),ue=_.useState("modal"),ee=_.useState("openMethod"),X=_.useState("positionerElement"),te=_.useState("instantType"),W=_.useState("transitionStatus"),z=_.useState("hasViewport"),D=h.useRef(null),Y=Ep(X,!1,!1),H=oS({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:w,nodeId:V,collisionAvoidance:E,adaptiveOrigin:z?sS:void 0}),F=M.useState("domReferenceElement");Qe(()=>{const U=F,G=D.current;if(U&&(D.current=U),G&&U&&U!==G){_.set("instantType",void 0);const K=new AbortController;return Y(()=>{_.set("instantType","trigger-change")},K.signal),()=>{K.abort()}}},[F,Y,_]),iS(C&&ue===!0&&Q!==pn,ee==="touch",X,ne);const A=h.useCallback(U=>{_.set("positionerElement",U)},[_]),B={open:C,side:H.side,align:H.align,anchorHidden:H.anchorHidden,instant:te},I=aS(r,B,{styles:H.positionerStyles,transitionStatus:W,props:T,refs:[o,A],hidden:!L,inert:!C});return i.jsxs(LS.Provider,{value:H,children:[L&&ue===!0&&Q!==pn&&i.jsx($p,{ref:_.context.internalBackdropRef,inert:qp(!C),cutout:ne}),i.jsx(T1,{id:V,children:I})]})}),AM=h.createContext(void 0);function DM(){const[t,r]=h.useState(0),o=st(()=>(r(c=>c+1),()=>{r(c=>Math.max(0,c-1))}));return{context:h.useMemo(()=>({register:o}),[o]),hasClosePart:t>0}}function zM(t){const{value:r,children:o}=t;return i.jsx(AM.Provider,{value:r,children:o})}const LM={...ri,...fu},IM=h.forwardRef(function(r,o){const{render:a,className:c,style:d,initialFocus:m,finalFocus:g,...b}=r,{store:p}=li(),y=_M(),x=eS()!=null,{context:S,hasClosePart:j}=DM(),N=p.useState("open"),k=p.useState("openMethod"),O=p.useState("instantType"),E=p.useState("transitionStatus"),T=p.useState("popupProps"),_=p.useState("titleElementId"),w=p.useState("descriptionElementId"),V=p.useState("modal"),M=p.useState("mounted"),L=p.useState("openChangeReason"),C=p.useState("activeTriggerElement"),Q=p.useState("floatingRootContext"),ne=Q.useState("floatingId"),ue=p.useState("disabled"),ee=p.useState("openOnHover"),X=p.useState("closeDelay"),te=b.id??ne;xu({open:N,ref:p.context.popupRef,onComplete(){N&&p.context.onOpenChangeComplete?.(!0)}}),Z1(Q,{enabled:ee&&!ue,closeDelay:X});const W=m===void 0?P1(p.context.popupRef):m,z=V!==!1&&j;p.useSyncedValue("focusManagerModal",z);const D=h.useCallback(F=>{p.set("popupElement",F)},[p]),Y={open:N,side:y.side,align:y.align,instant:O,transitionStatus:E},H=hn("div",r,{state:Y,ref:[o,p.context.popupRef,D],props:[T,{id:te,role:"dialog",...Tu,"aria-labelledby":_,"aria-describedby":w,onKeyDown(F){x&&Fp.has(F.key)&&F.stopPropagation()}},Gp(E),b],stateAttributesMapping:LM});return i.jsx(Ap,{context:Q,openInteractionType:k,modal:z,disabled:!M||L===pn,initialFocus:W,returnFocus:g,restoreFocus:"popup",previousFocusableElement:Vt(C)?C:void 0,nextFocusableElement:p.context.triggerFocusTargetRef,beforeContentFocusGuardRef:p.context.beforeContentFocusGuardRef,children:i.jsx(zM,{value:S,children:H})})});function IS({...t}){return i.jsx(TM,{"data-slot":"popover",...t})}function BS({...t}){return i.jsx(RM,{"data-slot":"popover-trigger",...t})}function HS({align:t="start",alignOffset:r=0,side:o="bottom",sideOffset:a=8,className:c,...d}){return i.jsx(kM,{children:i.jsx(MM,{className:"isolate z-50 outline-none",align:t,alignOffset:r,side:o,sideOffset:a,children:i.jsx(IM,{"data-slot":"popover-content",className:Ne("z-50 min-w-64 origin-(--transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",c),...d})})})}const BM=100;function US({value:t,valueName:r,excludeIds:o,onChange:a,placeholder:c="上级设定(选填)"}){const[d,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(""),[x,S]=h.useState(!1),[j,N]=h.useState(!1);async function k(){S(!0),N(!1);try{const E=await jn("setting",{q:p.trim()||void 0,limit:BM,sort:"name"});b(o&&o.length>0?E.items.filter(T=>!o.includes(T.id)):E.items)}catch{b(null),N(!0)}finally{S(!1)}}h.useEffect(()=>{d&&k()},[d]),h.useEffect(()=>{if(!d)return;const E=setTimeout(()=>{k()},300);return()=>clearTimeout(E)},[p,d]);const O=t?r??g?.find(E=>E.id===t)?.name??t:"";return i.jsxs(IS,{open:d,onOpenChange:m,children:[i.jsx(BS,{render:i.jsxs(pe,{variant:"outline",type:"button",className:Ne("h-8 px-2 text-xs font-normal",!t&&"text-muted-foreground"),title:t?`上级设定:${O}`:c,children:[t?`上级:${O}`:c,i.jsx("span",{"aria-hidden":"true",className:"ml-1 text-muted-foreground",children:"▾"})]})}),i.jsxs(HS,{className:"flex w-72 flex-col gap-2 p-2",children:[i.jsx(Mt,{value:p,onChange: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(pe,{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 T=typeof E.summary?.category=="string"?E.summary.category:"";return i.jsxs("button",{type:"button",onClick:()=>{a(E.id),m(!1)},className:Ne("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}),T&&i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:T})]},E.id)})})]})]})}function HM(t,r){const o=new Map;for(const b of t)o.set(b.id,b);const a=new Map,c=new Map;for(const b of r){a.set(b.childId,b.parentId);const p=c.get(b.parentId)??[];p.push(b.childId),c.set(b.parentId,p)}function d(b){const p=o.get(b);if(p===void 0)return null;const y={id:p.id,name:p.name,...typeof p.category=="string"&&p.category!==""?{category:p.category}:{},children:[]},x=c.get(b)??[];for(const S of x){const j=d(S);j!==null&&y.children.push(j)}return y}const m=[];let g=!1;for(const b of t){const p=a.get(b.id);p===void 0?m.push(d(b.id)):o.has(p)||(g=!0,m.push(d(b.id)))}return{roots:m,hasOrphanEdges:g}}const Hc=200;function PS({node:t,depth:r}){const[o,a]=h.useState(!0),c=t.children.length>0;return i.jsxs("li",{children:[i.jsxs("div",{className:"flex items-center gap-1.5 py-1",style:{paddingLeft:`${r*16}px`},children:[i.jsx("button",{type:"button","aria-label":c?o?"折叠":"展开":void 0,className:Ne("shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",!c&&"invisible"),onClick:()=>a(d=>!d),disabled:!c,children:i.jsx("svg",{viewBox:"0 0 16 16",className:Ne("size-3.5 transition-transform",!o&&"-rotate-90"),fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:i.jsx("path",{d:"m6 4 4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})}),i.jsx("button",{type:"button",onClick:()=>on(`/entities/setting/${t.id}`),title:`打开《${t.name}》`,className:"min-w-0 truncate rounded-md px-1 py-0.5 text-sm text-foreground hover:bg-muted hover:text-foreground",children:t.name}),t.category&&i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:t.category}),c&&i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground/70",children:[t.children.length," 个子设定"]})]}),c&&o&&i.jsx("ul",{children:t.children.map(d=>i.jsx(PS,{node:d,depth:r+1},d.id))})]})}function UM({reloadKey:t}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[d,m]=h.useState(!1),[g,b]=h.useState(!1),[p,y]=h.useState(!1),[x,S]=h.useState(0);return h.useEffect(()=>{let j=!1;return b(!0),y(!1),o(null),(async()=>{try{const[N,k]=await Promise.all([jn("setting",{limit:Hc,sort:"name"}),Fr({source_type:"setting",target_type:"setting",relation_type:"belongs_to",depth:1})]);if(j)return;const O=k.relations.map(T=>({childId:T.sourceId,parentId:T.targetId})),E=HM(N.items,O);o(E.roots),m(E.hasOrphanEdges),c(N.total>Hc)}catch{j||y(!0),o(null)}finally{j||b(!1)}})(),()=>{j=!0}},[t,x]),p?i.jsxs("div",{className:"mt-3 flex items-center justify-center gap-3 rounded-md border border-border px-3 py-6 text-sm text-muted-foreground",children:["设定树加载失败",i.jsx(pe,{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:Ne(_t,"h-7"),style:{marginLeft:`${N%3*16}px`}},N))}):r!==null&&r.length===0?i.jsx(Bn,{className:"mt-3",action:i.jsx(pe,{type:"button",onClick:()=>on("/entities/setting"),children:"去「设定」tab 新建"}),children:"还没有设定,先新建一个吧"}):i.jsxs("div",{className:"mt-3",children:[i.jsx("ul",{children:r?.map(j=>i.jsx(PS,{node:j,depth:0},j.id))}),(a||d)&&i.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:[a?`设定数量超过 ${Hc},仅展示前 ${Hc} 个(可按名称搜索定位);`:"",d?"部分设定的上级未在展示范围内,已作为独立节点展示。":""]})]})}function ou({id:t,options:r}){return r.length===0?null:i.jsx("datalist",{id:t,children:r.map(o=>i.jsx("option",{value:o},o))})}function pm(t){const r=new Set,o=[];for(const a of t)typeof a=="string"&&a!==""&&!r.has(a)&&(r.add(a),o.push(a));return o}const ja={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},Xv=[{value:"updated_at:desc",label:"更新时间(新→旧)",sort:"updated_at",order:"desc"},{value:"updated_at:asc",label:"更新时间(旧→新)",sort:"updated_at",order:"asc"},{value:"name:asc",label:"名称(A→Z)",sort:"name",order:"asc"},{value:"name:desc",label:"名称(Z→A)",sort:"name",order:"desc"},{value:"created_at:desc",label:"创建时间(新→旧)",sort:"created_at",order:"desc"},{value:"created_at:asc",label:"创建时间(旧→新)",sort:"created_at",order:"asc"}];function hm({type:t}){const r=t==="relations",o=t==="setting-tree",a=ka.includes(t)?t:"character",[c,d]=h.useState(null),[m,g]=h.useState(0),[b,p]=h.useState(!1),[y,x]=h.useState(null),[S,j]=h.useState(""),[N,k]=h.useState(""),[O,E]=h.useState(0),[T,_]=h.useState("updated_at"),[w,V]=h.useState("desc"),[M,L]=h.useState(""),[C,Q]=h.useState([]),[ne,ue]=h.useState(""),[ee,X]=h.useState([]),[te,W]=h.useState(0);zs(()=>W(ce=>ce+1));const[z,D]=h.useState(!1),[Y,H]=h.useState(""),[F,A]=h.useState(""),[B,I]=h.useState(null),[U,G]=h.useState(!1),[K,xe]=h.useState(null),se=D3[a],le=zv[a],He=A3(m,Ol),ze=Math.floor(O/Ol)+1,Re=ee.find(ce=>ce.id===ne)?.name,Ue=pm(c?.map(ce=>ce.name)??[]),ge=le.key===""?[]:le.input==="tags"?pm((c??[]).flatMap(ce=>Array.isArray(ce.summary[le.key])?ce.summary[le.key]:[])):pm(c?.map(ce=>String(ce.summary[le.key]??""))??[]);h.useEffect(()=>{j(""),k(""),E(0),_("updated_at"),V("desc"),L(""),ue(""),X([]),d(null),x(null),D(!1),xe(null)},[t]),h.useEffect(()=>{const ce=setTimeout(()=>{k(S.trim()),E(0)},300);return()=>clearTimeout(ce)},[S]),h.useEffect(()=>{if(r||o)return;let ce=!1;return p(!0),x(null),jn(a,{q:N||void 0,offset:O,limit:Ol,sort:T,order:w,tag:M||void 0,parent_id:ne||void 0}).then(_e=>{ce||(d(_e.items),g(_e.total))}).catch(_e=>{ce||(d(null),x(_e instanceof De?_e.code:ut))}).finally(()=>{ce||p(!1)}),()=>{ce=!0}},[a,N,O,T,w,te,r,o,M,ne]),h.useEffect(()=>{if(a!=="setting"||r||o){Q([]),L(""),X([]),ue("");return}let ce=!1;return jn("setting",{limit:200,sort:"name"}).then(_e=>{if(ce)return;const Me=new Set;for(const Z of _e.items)if(Array.isArray(Z.summary.tags))for(const P of Z.summary.tags)typeof P=="string"&&P!==""&&Me.add(P);Q(Array.from(Me).sort()),X(_e.items.map(Z=>({id:Z.id,name:Z.name})))}).catch(()=>{}),()=>{ce=!0}},[a,r,o,te]);function ie(ce){const _e=Xv.find(Me=>Me.value===ce);_e&&(_(_e.sort),V(_e.order),E(0))}function Ye(){H(""),A(""),xe(null),I(null),D(!0)}function Ae(){D(!1),I(null)}async function Ie(ce){ce.preventDefault();const _e=Y.trim();if(!_e){I("请输入名称");return}G(!0),I(null);try{const Me=zv[a],Z={};Me.key!==""&&F.trim()&&(Me.input==="tags"?Z[Me.key]=F.split(/[,,]/).map(q=>q.trim()).filter(q=>q!==""):Z[Me.key]=F.trim());const P=await $c(a,{name:_e,data:Z});if(Oe.getState().showToast(`已创建${ja[a]}《${_e}》`),a==="setting"&&K)try{await cr({source_type:"setting",source_id:P.id,target_type:"setting",target_id:K,relation_type:"belongs_to"})}catch{Oe.getState().showToast("已创建,但上级设定关联失败,可进详情页重新设置","error")}D(!1),W(q=>q+1)}catch(Me){I(Me instanceof De?Me.message:"创建失败,请重试")}finally{G(!1)}}function ve(){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-border pb-3",children:[i.jsxs("div",{className:"flex gap-1",children:[ka.map(ce=>i.jsx("button",{type:"button",onClick:()=>on(`/entities/${ce}`),className:Ne("rounded-md border border-border px-3 py-1.5 text-sm",!r&&!o&&a===ce?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:ja[ce]},ce)),i.jsx("button",{type:"button",onClick:()=>on("/entities/relations"),className:Ne("rounded-md border border-border px-3 py-1.5 text-sm",r?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:"关联"}),i.jsx("button",{type:"button",onClick:()=>on("/entities/setting-tree"),className:Ne("rounded-md border border-border px-3 py-1.5 text-sm",o?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:"设定树"})]}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[!r&&!o&&i.jsx(Mt,{value:S,onChange:ce=>j(ce.target.value),placeholder:`搜索${ja[a]}名称…`,className:"w-52"}),!o&&i.jsx(pe,{type:"button",onClick:r?()=>D(!0):Ye,children:r?"+ 建立关联":"+ 新建"})]})]}),r?i.jsx(CS,{reloadKey:te,onOpenCreate:()=>D(!0)}):o?i.jsx(UM,{reloadKey:te}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"mt-3 mb-2 flex items-center gap-3",children:[i.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["排序:",i.jsx("select",{value:`${T}:${w}`,onChange:ce=>ie(ce.target.value),className:"rounded-md border border-border bg-background px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:Xv.map(ce=>i.jsx("option",{value:ce.value,children:ce.label},ce.value))})]}),a==="setting"&&i.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["上级设定:",i.jsxs("select",{value:ne,onChange:ce=>{ue(ce.target.value),E(0)},className:"rounded-md border border-border bg-background px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:[i.jsx("option",{value:"",children:"全部"}),ne!==""&&!ee.some(ce=>ce.id===ne)&&i.jsx("option",{value:ne,children:"(已删除或不可见)"}),ee.map(ce=>i.jsx("option",{value:ce.id,children:ce.name},ce.id))]})]}),a==="setting"&&i.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["标签:",i.jsxs("select",{value:M,onChange:ce=>{L(ce.target.value),E(0)},className:"rounded-md border border-border bg-background px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:[i.jsx("option",{value:"",children:"全部"}),C.map(ce=>i.jsx("option",{value:ce,children:ce},ce))]})]}),i.jsxs("span",{className:"ml-auto text-sm text-muted-foreground/70",children:["共 ",m," 个"]})]}),z&&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(Mt,{value:Y,onChange:ce=>H(ce.target.value),onKeyDown:ce=>{ce.key==="Escape"&&Ae()},placeholder:a==="character"?"名称(如:张三)":"名称",maxLength:100,disabled:U,autoFocus:!0,"aria-label":"名称",list:`entity-create-name-${a}`,className:"w-48"}),i.jsx(ou,{id:`entity-create-name-${a}`,options:Ue}),le.key!==""&&(le.input==="select"?i.jsxs("select",{value:F,onChange:ce=>A(ce.target.value),disabled:U,"aria-label":le.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:[le.label,"(选填)"]}),le.options?.map(ce=>i.jsx("option",{value:ce,children:Lc(a,le.key,ce)},ce))]}):i.jsx(Mt,{value:F,onChange:ce=>A(ce.target.value),placeholder:le.input==="tags"?`${le.label}(逗号分隔,如:势力,宗门)`:`${le.label}(选填)`,disabled:U,"aria-label":le.label,list:`entity-create-first-${a}`,className:le.input==="tags"?"w-56":"w-40"})),i.jsx(ou,{id:`entity-create-first-${a}`,options:ge}),a==="setting"&&i.jsx(US,{value:K,onChange:xe}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(pe,{variant:"outline",type:"button",size:"sm",onClick:Ae,disabled:U,children:"取消"}),i.jsx(pe,{type:"submit",size:"sm",disabled:U,children:U?"创建中…":"创建"})]}),B&&i.jsx("p",{className:"w-full text-sm text-destructive",children:B})]}),y!==null&&i.jsxs("div",{className:"mb-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:[y===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"列表加载失败,请重试。",i.jsx(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>W(ce=>ce+1),children:"重试"})]}),b&&c===null&&y===null&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:Array.from({length:6},(ce,_e)=>i.jsxs("div",{className:"flex items-center gap-3 border-b border-border/50 px-3 py-3 last:border-0",children:[i.jsx("div",{className:Ne(_t,"h-4 w-1/4")}),i.jsx("div",{className:Ne(_t,"h-4 w-1/6")}),se.key2&&i.jsx("div",{className:Ne(_t,"h-4 w-1/6")}),se.key3&&i.jsx("div",{className:Ne(_t,"h-4 w-1/6")}),i.jsx("div",{className:Ne(_t,"ml-auto h-4 w-16")})]},_e))}),!b&&c!==null&&c.length===0&&i.jsx(Bn,{className:"mt-3",action:N?i.jsx(pe,{variant:"outline",type:"button",onClick:ve,children:"清空搜索"}):ne?i.jsx(pe,{variant:"outline",type:"button",onClick:()=>{ue(""),E(0)},children:"清除上级筛选"}):i.jsxs(pe,{type:"button",onClick:Ye,children:["+ 新建",ja[a]]}),children:N?`没有匹配「${N}」的${ja[a]}`:ne?`《${Re??"该上级"}》下暂无设定(含其所有层级的设定)`:`还没有${ja[a]},新建一个`}),!b&&c!==null&&c.length>0&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:i.jsxs("table",{className:"w-full text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-border bg-muted/50 text-xs text-muted-foreground/70",children:[i.jsx("th",{className:"px-3 py-2 font-normal",children:"名称"}),i.jsx("th",{className:"px-3 py-2 font-normal",children:se.label1}),se.key2&&i.jsx("th",{className:"px-3 py-2 font-normal",children:se.label2}),se.key3&&i.jsx("th",{className:"px-3 py-2 font-normal",children:se.label3}),i.jsx("th",{className:"px-3 py-2 text-right font-normal",children:"更新时间"})]})}),i.jsx("tbody",{children:c.map(ce=>i.jsxs("tr",{className:"cursor-pointer border-b border-border/50 transition-colors last:border-0 hover:bg-muted",onClick:()=>on(`/entities/${a}/${ce.id}`),title:`打开《${ce.name}》`,children:[i.jsx("td",{className:"max-w-64 truncate px-3 py-2 font-medium text-foreground",children:ce.name}),i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",children:Lc(a,se.key1,ce.summary[se.key1])}),se.key2&&(se.key2==="parent"?i.jsx("td",{className:"max-w-32 truncate px-3 py-2",children:ce.parentId?i.jsx("button",{type:"button",title:`打开上级设定《${Dv(ce)}》`,onClick:_e=>{_e.stopPropagation(),on(`/entities/setting/${ce.parentId}`)},className:"rounded-md border border-border px-1.5 py-0.5 text-xs text-foreground hover:bg-muted hover:text-foreground",children:Dv(ce)}):i.jsx("span",{className:"text-muted-foreground/70",children:"—"})}):i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",children:Lc(a,se.key2,ce.summary[se.key2])})),se.key3&&i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",title:typeof ce.summary[se.key3]=="string"?ce.summary[se.key3]:void 0,children:Lc(a,se.key3,ce.summary[se.key3])}),i.jsx("td",{className:"px-3 py-2 text-right text-xs whitespace-nowrap text-muted-foreground/70",children:ds(ce.updatedAt)})]},ce.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:ze<=1||b,className:"rounded-md border border-border px-3 py-1 text-muted-foreground hover:bg-muted hover:text-foreground disabled:opacity-40",onClick:()=>E((ze-2)*Ol),children:"‹ 上一页"}),i.jsxs("span",{className:"text-muted-foreground",children:["第 ",ze," / ",He," 页"]}),i.jsx("button",{type:"button",disabled:ze>=He||b,className:"rounded-md border border-border px-3 py-1 text-muted-foreground hover:bg-muted hover:text-foreground disabled:opacity-40",onClick:()=>E(ze*Ol),children:"下一页 ›"})]})]}),r&&z&&i.jsx(nh,{source:null,onCreated:()=>W(ce=>ce+1),onClose:()=>D(!1)})]})}function PM({type:t,id:r,currentData:o,deltaCount:a}){const c=Pe(T=>T.outline),d=Pe(T=>T.config),m=Pe(T=>T.loadOutline),[g,b]=h.useState(()=>{const T=Pe.getState().config?.currentPosition??"",_=Pe.getState().outline?.children??[];return T!==""&&ir(_).some(w=>w.id===T)?T:""}),[p,y]=h.useState(!1),[x,S]=h.useState(null),[j,N]=h.useState(null);h.useEffect(()=>{b(T=>{if(T!=="")return T;const _=d?.currentPosition??"";return _!==""&&ir(c?.children??[]).some(w=>w.id===_)?_:""})},[d?.currentPosition,c]);const k=ir(c?.children??[]),O=new Map(k.map(T=>[T.id,T.label]));async function E(){if(!(!g||p)){y(!0),N(null);try{const T=await u2({target_type:t,target_id:r,at_node_id:g});S(T)}catch(T){S(null),T instanceof De&&T.code==="OUTLINE_NODE_NOT_FOUND"?N("该节点已不存在,请重新选择计算节点"):N(T instanceof De?T.message:"无法连接服务,请确认 ai-editor 服务已启动")}finally{y(!1)}}}return i.jsxs("div",{className:"mb-4 rounded-md border border-border p-4",children:[i.jsxs("h2",{className:"mb-2 text-sm font-semibold text-foreground",children:["变更记录 · 状态预览",i.jsxs("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:[a," 条"]})]}),a===0?i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无变更记录——实体当前状态即初始状态"}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-xs text-muted-foreground",children:"计算节点(到达该节点时的累积状态)"}),c===null?i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-xs text-muted-foreground",children:"大纲未加载"}),i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>{m()},children:"加载大纲"})]}):i.jsxs("select",{value:g,onChange:T=>b(T.target.value),"aria-label":"计算节点",className:Ne("min-w-56 rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",g===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"请选择大纲节点"}),k.map(T=>i.jsxs("option",{value:T.id,children:[" ".repeat(T.depth),T.label]},T.id))]})]}),i.jsx(pe,{variant:"outline",size:"sm",type:"button",disabled:!g||p,onClick:()=>{E()},children:p?"计算中…":"计算"})]}),d?.currentPosition==null&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"未设置当前位置,请手动选择计算节点"}),j!==null&&i.jsx("div",{className:"mt-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:j}),p&&i.jsxs("div",{className:"mt-3 space-y-2",children:[i.jsx("div",{className:"h-4 w-2/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/2 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-16 animate-pulse rounded bg-muted/60"})]}),!p&&x!==null&&i.jsx(YM,{result:x,currentData:o,nodeTitles:O})]})]})}function YM({result:t,currentData:r,nodeTitles:o}){const a=P3(r,t.state),c=o.get(t.atNodeId)??t.atNodeId;return i.jsxs("div",{className:"mt-3 space-y-3",children:[t.conflicts.length>0&&i.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-destructive",children:[i.jsx(tp,{className:"size-3.5 shrink-0"}),"发现 ",t.conflicts.length," 处状态冲突"]}),i.jsx("p",{className:"mt-0.5 text-xs text-destructive/90",children:"手动编辑的数据与变更记录不一致,以下变更未应用(可直接修改当前数据,或调整变更记录):"}),i.jsx("ul",{className:"mt-1 space-y-0.5",children:t.conflicts.map((d,m)=>i.jsxs("li",{className:"text-xs text-destructive",children:[d.field,":记录应为 ",cs(d.expected),",实际为"," ",cs(d.actual)]},m))})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-1.5 text-xs font-medium text-muted-foreground",children:["状态差异(相对当前数据 · 到达《",c,"》",a.length>0?`,${a.length} 处`:"",")"]}),a.length===0?i.jsx("p",{className:"text-xs text-muted-foreground",children:"计算状态与当前数据一致"}):i.jsx("ul",{className:"space-y-1",children:a.map(d=>i.jsxs("li",{className:"flex items-baseline gap-2 text-xs",children:[i.jsx("span",{className:"shrink-0 font-medium text-foreground",children:d.field}),i.jsxs("span",{className:"text-muted-foreground",children:[d.from===void 0?"(无)":cs(d.from)," →"," ",d.to===void 0?"(已移除)":cs(d.to)]})]},d.field))})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-1.5 text-xs font-medium text-muted-foreground",children:["应用的变更记录(",t.appliedDeltas.length,")"]}),t.appliedDeltas.length===0?i.jsx("p",{className:"text-xs text-muted-foreground",children:"到达该节点前没有变更被应用"}):i.jsx("ul",{className:"divide-y divide-border/70 rounded-md border border-border",children:t.appliedDeltas.map((d,m)=>i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex flex-wrap items-baseline gap-2",children:[i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:d.description,children:d.description}),i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:["《",o.get(d.nodeId)??d.nodeId,"》"]})]}),d.skipped!==void 0&&d.skipped.length>0&&i.jsx("ul",{className:"mt-1 space-y-0.5",children:d.skipped.map(g=>i.jsxs("li",{className:"text-xs text-destructive",children:[g.field,":记录应为 ",cs(g.expected),",实际"," ",cs(g.actual),"(已跳过)"]},g.index))}),i.jsx("div",{className:"mt-1.5",children:i.jsx(RS,{changes:d.changes,skipped:d.skipped?.map(g=>g.index)})})]},m))})]})]})}function VM(t,r){return r<0||r>=t.length?null:r<t.length-1?{append:!1,focusIndex:r+1}:t[r].trim()!==""?{append:!0,focusIndex:t.length}:null}function FM(t,r,o){if(r===o)return[...t];if(r<0||r>=t.length||o<0||o>=t.length)return[...t];const a=[...t],[c]=a.splice(r,1);return a.splice(o,0,c),a}const GM={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"};function kl(t,r){const o=t[r];return o==null?"":String(o)}function qM({values:t,onChange:r,placeholder:o,suggestions:a,quickTags:c}){const d=h.useRef([]),[m,g]=h.useState(null),[b,p]=h.useState(null);return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[t.map((y,x)=>i.jsxs("div",{className:Ne("flex items-center gap-1.5 rounded-md px-0.5 py-0.5 transition-colors",m===x&&"opacity-40",b===x&&m!==null&&m!==x&&"bg-muted/60 ring-1 ring-ring"),onDragOver:S=>{m!==null&&(S.preventDefault(),S.dataTransfer.dropEffect="move",b!==x&&p(x))},onDrop:S=>{m!==null&&(S.preventDefault(),m!==x&&r(FM(t,m,x)),g(null),p(null))},children:[i.jsx("button",{type:"button",draggable:!0,title:"拖拽排序","aria-label":"拖拽排序",className:"shrink-0 cursor-grab rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground active:cursor-grabbing",onDragStart:S=>{g(x),S.dataTransfer.effectAllowed="move",S.dataTransfer.setData("text/plain",String(x))},onDragEnd:()=>{g(null),p(null)},children:i.jsx(au,{className:"size-4"})}),i.jsx(Mt,{value:y,onChange:S=>{const j=[...t];j[x]=S.target.value,r(j)},ref:S=>{d.current[x]=S},onKeyDown:S=>{if(S.key!=="Enter")return;S.preventDefault();const j=VM(t,x);j&&(j.append&&r([...t,""]),requestAnimationFrame(()=>d.current[j.focusIndex]?.focus()))},placeholder:o,list:a&&a.length>0?"entity-tags-suggestions":void 0,className:"h-8 flex-1 text-sm"}),i.jsx(pe,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>r(t.filter((S,j)=>j!==x)),children:"删除"})]},x)),i.jsx(pe,{variant:"outline",type:"button",className:"h-8 self-start px-2 text-xs",onClick:()=>r([...t,""]),children:"+ 添加"}),c&&c.length>0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[i.jsx("span",{className:"text-xs text-muted-foreground",children:"已有标签:"}),c.filter(y=>!t.includes(y)).map(y=>i.jsx("button",{type:"button",onClick:()=>r([...t,y]),className:"rounded-md border border-border px-1.5 py-0.5 text-xs text-foreground hover:bg-muted hover:text-foreground",children:y},y))]}),a&&a.length>0&&i.jsx(ou,{id:"entity-tags-suggestions",options:a})]})}function $M({value:t,onChange:r}){const[o,a]=h.useState(()=>Object.entries(t??{}).map(([d,m])=>({key:d,value:String(m??"")})));h.useEffect(()=>{a(Object.entries(t??{}).map(([d,m])=>({key:d,value:String(m??"")})))},[t]);function c(d){a(d);const m={};for(const g of d)g.key.trim()&&(m[g.key.trim()]=g.value);r(m)}return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[o.map((d,m)=>i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(Mt,{value:d.key,onChange:g=>c(o.map((b,p)=>p===m?{...b,key:g.target.value}:b)),placeholder:"键",className:"h-8 w-28 text-sm"}),i.jsx(Mt,{value:d.value,onChange:g=>c(o.map((b,p)=>p===m?{...b,value:g.target.value}:b)),placeholder:"值",className:"h-8 flex-1 text-sm"}),i.jsx(pe,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>c(o.filter((g,b)=>b!==m)),children:"删除"})]},m)),i.jsx(pe,{variant:"outline",type:"button",className:"h-8 self-start px-2 text-xs",onClick:()=>c([...o,{key:"",value:""}]),children:"+ 添加字段"})]})}function XM({type:t,id:r}){const o=t,[a,c]=h.useState(null),[d,m]=h.useState(!1),[g,b]=h.useState(!1),[p,y]=h.useState(null),[x,S]=h.useState(null),[j,N]=h.useState(!1),[k,O]=h.useState(null),[E,T]=h.useState(!1),[_,w]=h.useState(null),[V,M]=h.useState(!1),[L,C]=h.useState(!1),[Q,ne]=h.useState(null),[ue,ee]=h.useState([]);h.useEffect(()=>{if(o!=="setting"){ee([]);return}let B=!1;return jn("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 K of G.summary.tags)typeof K=="string"&&K!==""&&U.add(K);ee(Array.from(U).sort())}).catch(()=>{}),()=>{B=!0}},[o]);const X=eh(o);async function te(){m(!0),y(null),b(!1);try{const B=await bo(o,r);c(B),S(JSON.parse(JSON.stringify(B.data)))}catch(B){c(null),S(null),B instanceof De&&B.code==="ENTITY_NOT_FOUND"?b(!0):y(B instanceof De?B.code:ut)}finally{m(!1)}}h.useEffect(()=>{te()},[o,r]),zs(()=>{te()});async function W(){if(!a||!x||j)return;const B=th(a.data,x);if(!B){Oe.getState().showToast("没有变更");return}N(!0),O(null);try{await No(o,r,{data:B}),Oe.getState().showToast("已保存"),await te()}catch(I){if(I instanceof De&&I.code==="ENTITY_NOT_FOUND"){b(!0);return}O(I instanceof De?I.message:"保存失败,请重试")}finally{N(!1)}}function z(B,I){S(U=>U&&{...U,[B]:I})}async function D(){if(a)try{const B=await iu(o,r),I=[];B.cascaded.relations>0&&I.push(`${B.cascaded.relations} 条关联`),B.cascaded.deltas>0&&I.push(`${B.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${I.length>0?`(含 ${I.join("、")})`:""}`),on(`/entities/${o}`)}catch(B){Oe.getState().showToast(B instanceof De?B.message:"删除失败,请重试","error")}}async function Y(){if(_)try{await Ca(_.id),Oe.getState().showToast("已删除关系"),w(null),await te()}catch(B){throw B}}async function H(B){if(!a||L)return;const I=cm(a.relations,r).parent;if(B!==I?.parentId){C(!0),ne(null);try{await cr({source_type:"setting",source_id:r,target_type:"setting",target_id:B,relation_type:"belongs_to"}),I&&await Ca(I.relationId),Oe.getState().showToast(I?"已修改上级设定":"已设置上级设定"),await te()}catch(U){ne(U instanceof De?U.message:"修改上级失败,请重试")}finally{C(!1)}}}async function F(){if(!a||L)return;const B=cm(a.relations,r).parent;if(B){C(!0),ne(null);try{await Ca(B.relationId),Oe.getState().showToast("已清除上级设定"),await te()}catch(I){ne(I instanceof De?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.jsx(Bn,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(pe,{variant:"outline",type:"button",onClick:()=>on(`/entities/${o}`),children:"返回列表"})]}),children:"该实体不存在或已被删除"})}):i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(rh,{items:[{label:"实体",href:"/entities/character"},{label:GM[o],href:`/entities/${o}`},{label:a?.name??"…"}]}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:a?.name??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>{W()},disabled:!a||j,children:j?"保存中…":"保存"}),i.jsx(pe,{variant:"outline",type:"button",disabled:!a,className:"text-destructive hover:bg-destructive/10",onClick:()=>{D()},children:"移入回收站"})]})]}),a&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",ds(a.createdAt)," · 更新于 ",ds(a.updatedAt)," ·"," ",i.jsxs("button",{type:"button",onClick:()=>M(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(PM,{type:o,id:r,currentData:a.data,deltaCount:a.deltaCount}),d&&!a&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:5},(B,I)=>i.jsx("div",{className:Ne(_t,"h-9")},I))}),i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:3},(B,I)=>i.jsx("div",{className:Ne(_t,"h-9")},I))})]}),!d&&!a&&p!==null&&i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:[p===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"详情加载失败,请重试。",i.jsx(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{te()},children:"重试"})]}),a&&x&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsx("h2",{className:"mb-3 text-sm font-semibold text-foreground",children:"基础信息"}),i.jsxs("div",{className:"flex flex-col gap-3",children:[X.map(B=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:B.label}),i.jsx(KM,{field:B,value:x[B.key],onChange:I=>z(B.key,I),tagPool:o==="setting"?ue:void 0})]},B.key)),"custom_fields"in a.data&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"自定义字段"}),i.jsx($M,{value:x.custom_fields,onChange:B=>z("custom_fields",B)})]})]}),k&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:k})]}),i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"关联"}),i.jsx(pe,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>T(!0),children:"+ 新增关联"})]}),o==="setting"&&(()=>{const B=cm(a.relations,r);return i.jsxs("div",{className:"mb-4 border-b border-border/50 pb-4",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"层级(设定父子)"}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(US,{value:B.parent?.parentId??null,valueName:B.parent?.parentName,excludeIds:[r],onChange:I=>{I&&H(I)},placeholder:"设置上级"}),B.parent&&i.jsx(pe,{variant:"outline",type:"button",className:"h-8 px-2 text-xs text-destructive hover:bg-destructive/10",disabled:L,onClick:()=>{F()},children:"清除"})]})]}),Q&&i.jsx("p",{className:"mb-2 text-sm text-destructive",children:Q}),i.jsxs("div",{className:"flex flex-col gap-1.5 text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["上级:",B.parent?i.jsx("button",{type:"button",title:"打开上级设定",className:"ml-1 rounded-md border border-border px-1.5 py-0.5 text-foreground hover:bg-muted hover:text-foreground",onClick:()=>on(`/entities/setting/${B.parent.parentId}`),children:B.parent.parentName??B.parent.parentId}):i.jsx("span",{className:"ml-1 text-muted-foreground/70",children:"(独立设定——暂无上级)"})]}),i.jsxs("span",{className:"text-muted-foreground",children:["子设定:",B.children.length===0?i.jsx("span",{className:"ml-1 text-muted-foreground/70",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-foreground hover:bg-muted hover:text-foreground",onClick:()=>on(`/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-muted-foreground/70",children:o==="setting"?"暂无其他关联,新增一个":"暂无关联,新增一个"}):i.jsx("ul",{className:"divide-y divide-border/50",children:B.map(I=>{const U=I.sourceId===r,G=A(I,"source"),K=A(I,"target");return i.jsxs("li",{className:"flex items-center gap-2 py-2 text-sm",children:[i.jsx("span",{className:"max-w-28 min-w-0 truncate text-foreground",children:G}),i.jsxs("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[vo(I.relationType)," ",U?"→":"←"]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-foreground",children:K}),i.jsx(pe,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>w(I),children:"删除"})]},I.id)})})})()]})]}),E&&i.jsx(nh,{source:{type:o,id:r,name:a?.name??""},onCreated:te,onClose:()=>T(!1)}),_&&i.jsx(Da,{title:"删除关系",description:`删除关系「${A(_,"source")} ${vo(_.relationType)} ${A(_,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:Y,onClose:()=>w(null)})]})}function KM({field:t,value:r,onChange:o,tagPool:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value),rows:3,className:Ne(Xn,"w-full")});case"number":return i.jsx(Mt,{type:"number",value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value===""?void 0:Number(c.target.value)),className:"h-8 text-sm"});case"tags":return i.jsx(qM,{values:Array.isArray(r)?r:[],onChange:o,placeholder:"输入后回车添加下一项",suggestions:t.key==="tags"?a:void 0,quickTags:t.key==="tags"?a:void 0});case"select":return i.jsx("select",{value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value),className:Ne(Xn,"w-full"),children:t.options?.map(c=>i.jsx("option",{value:c,children:t.optionsLabels?.[c]??c},c))});case"toggle":return i.jsx("input",{type:"checkbox",checked:r===!0,onChange:c=>o(c.target.checked),className:"h-4 w-4 accent-accent-foreground"});case"outline-node":return i.jsx(QM,{value:kl({[t.key]:r},t.key),onChange:o});default:return i.jsx(Mt,{value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value),className:"h-8 text-sm"})}}function QM({value:t,onChange:r}){const o=Pe(c=>c.outline),a=ir(o?.children??[]);return i.jsxs("select",{value:t,onChange:c=>r(c.target.value===""?null:c.target.value),className:Ne(Ne(Xn,"w-full"),t===""&&"text-muted-foreground/70"),children:[i.jsx("option",{value:"",children:"未设置"}),a.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function ZM(t){return t==="resolved"?"resolved":t==="abandoned"?"abandoned":"active"}function JM(t){const r={active:[],resolved:[],abandoned:[]};for(const o of t)r[ZM(o.summary.status)].push(o);return r}function Vr(t,r){return t.filter(o=>o.relationType===r)}function YS(t,r){return Vr(t,"depends_on").filter(o=>o.sourceId===r).map(o=>o.targetName??o.targetId)}function WM(t,r){return Vr(t,"depends_on").filter(o=>o.targetId===r).map(o=>o.sourceName??o.sourceId)}function Kv(t,r){return WM(t,r).length}function eA(t,r){return Vr(t,"involves").map(o=>o.sourceId===r?o.targetName??o.targetId:o.sourceName??o.sourceId)}const tA=3;function nA(t){const r=t.maxDepth??tA,o=[],a=new Set([t.startHookId]),c=[{hookId:t.startHookId,depth:0}];for(;c.length>0;){const{hookId:d,depth:m}=c.shift();if(o.push({hookId:d,name:t.names.get(d)??d,depth:m}),!(m>=r))for(const g of t.depsOf.get(d)??[])g.relationType!=="depends_on"||g.sourceId!==d||a.has(g.targetId)||(a.add(g.targetId),c.push({hookId:g.targetId,depth:m+1}))}return o}function VS(t,r){if(!t)return!1;const o=[...t.children];for(;o.length>0;){const a=o.pop();if(a.id===r)return a.deleted!==!0;a.type!=="scene"&&a.children&&o.push(...a.children)}return!1}function sA(t){if(!t)return null;let r=null;const o=a=>{if(a.deleted!==!0&&(r=a.id,a.type!=="scene"&&a.children))for(const c of a.children)o(c)};for(const a of t.children)o(a);return r}function rA(t,r){const o=t?.currentPosition;return o!=null&&o!==""&&VS(r,o)?o:sA(r)}const FS={advance:"progressing",resolve:"resolved",abandon:"abandoned"},oA={advance:"advances",resolve:"resolves"};function Qv(t){const r=t.status;return typeof r=="string"&&r!==""?r:"planted"}function GS(t,r){return{field:"status",op:"update",from:t,to:r}}function aA(t,r,o){return{source_type:"outline_node",source_id:o,target_type:"hook",target_id:r,relation_type:oA[t]}}function lA(t,r){return{source_type:"outline_node",source_id:r,target_type:"hook",target_id:t,relation_type:"plants"}}function qS(t){return{status:t}}async function iA(t){const r=FS[t.kind];await ip({node_id:t.nodeId,target_type:"hook",target_id:t.hookId,changes:[GS(t.fromStatus,r)],description:t.description});try{await cr(aA(t.kind,t.hookId,t.nodeId))}catch(o){if(!(o instanceof De&&o.code==="RELATION_EXISTS"))throw o}await No("hook",t.hookId,{data:qS(r)})}async function cA(t){await ip({node_id:t.nodeId,target_type:"hook",target_id:t.hookId,changes:[GS(t.fromStatus,"abandoned")],description:t.description}),await No("hook",t.hookId,{data:qS("abandoned")})}const gm={advance:"推进",resolve:"回收",abandon:"废弃"};function uA(t){return t==="resolved"||t==="abandoned"}function _l(t,r){const o=t[r];return o==null?"":String(o)}function dA(){const[t,r]=h.useState(null),[o,a]=h.useState(!1),[c,d]=h.useState(null),[m,g]=h.useState(0);zs(()=>g(ae=>ae+1));const[b,p]=h.useState([]),[y,x]=h.useState(!1),[S,j]=h.useState(null),[N,k]=h.useState(!1),[O,E]=h.useState(null),[T,_]=h.useState(null),[w,V]=h.useState("advance"),[M,L]=h.useState(""),[C,Q]=h.useState(""),[ne,ue]=h.useState(null),[ee,X]=h.useState(!1),[te,W]=h.useState(null),[z,D]=h.useState(null),[Y,H]=h.useState(null),[F,A]=h.useState(!1),[B,I]=h.useState(!1),[U,G]=h.useState(""),[K,xe]=h.useState({}),[se,le]=h.useState(""),[He,ze]=h.useState(null),[Re,Ue]=h.useState(!1),[ge,ie]=h.useState({}),Ye=Pe(ae=>ae.config),Ae=Pe(ae=>ae.outline),Ie=ir(Ae?.children??[]),ve=t===null?null:JM(t);h.useEffect(()=>{let ae=!1;return a(!0),d(null),x(!1),ie({}),jn("hook",{}).then(ke=>{ae||r(ke.items)}).catch(ke=>{ae||(r(null),d(ke instanceof De?ke.code:ut))}),Fr({source_type:"hook",relation_type:"depends_on",depth:1}).then(ke=>{ae||p(ke.relations)}).catch(()=>{ae||x(!0)}).finally(()=>{ae||a(!1)}),()=>{ae=!0}},[m]),h.useEffect(()=>{Pe.getState().outline===null&&Pe.getState().config!==null&&Pe.getState().loadOutline()},[]);async function ce(ae){j(null),k(!0),E(null);try{j(await bo("hook",ae.id))}catch(ke){E(ke instanceof De?ke.message:"详情加载失败,请重试")}finally{k(!1)}}async function _e(ae,ke){_(null),ue(null),Q("");try{const Ve=await bo("hook",ke.id),We=Pe.getState().config?.currentPosition,pt=We!=null&&We!==""&&VS(Ae,We)?We:"";L(pt),V(ae),_(Ve)}catch{Oe.getState().showToast("无法读取伏笔状态,请重试","error")}}async function Me(){const ae=T;if(!ae||ee)return;const ke=w;X(!0),ue(null);try{if(ke==="abandon"){const Ve=rA(Ye,Ae);if(Ve===null){ue("大纲为空,无法记录废弃变更");return}await cA({hookId:ae.id,fromStatus:Qv(ae.data),nodeId:Ve,description:C.trim()})}else{if(M===""){ue("请选择大纲节点");return}await iA({kind:ke,hookId:ae.id,fromStatus:Qv(ae.data),nodeId:M,description:C.trim()})}Oe.getState().showToast(`已${gm[ke]}`),_(null),g(Ve=>Ve+1)}catch(Ve){ue(Ve instanceof De?Ve.message:"操作失败,请重试")}finally{X(!1)}}async function Z(ae){W(null),H(null);try{const ke=await bo("hook",ae.id);W(ke),D(JSON.parse(JSON.stringify(ke.data)))}catch{Oe.getState().showToast("无法读取伏笔数据,请重试","error")}}async function P(){if(!te||!z||F)return;const ae=th(te.data,z);if(!ae){Oe.getState().showToast("没有变更"),W(null);return}A(!0),H(null);try{await No("hook",te.id,{data:ae}),Oe.getState().showToast("已保存"),W(null),g(ke=>ke+1)}catch(ke){H(ke instanceof De?ke.message:"保存失败,请重试")}finally{A(!1)}}async function q(ae){ae.preventDefault();const ke=U.trim();if(!ke){ze("请输入名称");return}Ue(!0),ze(null);try{const Ve=await $c("hook",{name:ke,data:K});if(se!=="")try{await cr(lA(Ve.id,se))}catch(We){Oe.getState().showToast(`已创建伏笔《${ke}》,但埋点关联失败:${We instanceof De?We.message:"未知错误"}`,"error"),I(!1),g(pt=>pt+1);return}Oe.getState().showToast(`已创建伏笔《${ke}》`),I(!1),G(""),xe({}),le(""),g(We=>We+1)}catch(Ve){ze(Ve instanceof De?Ve.message:"创建失败,请重试")}finally{Ue(!1)}}async function we(ae){try{const ke=await iu("hook",ae.id),Ve=[];ke.cascaded.relations>0&&Ve.push(`${ke.cascaded.relations} 条关联`),ke.cascaded.deltas>0&&Ve.push(`${ke.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${Ve.length>0?`(含 ${Ve.join("、")})`:""}`),g(We=>We+1)}catch(ke){Oe.getState().showToast(ke instanceof De?ke.message:"删除失败,请重试","error")}}async function be(ae){if(ge[ae.id]){ie(ke=>{const Ve={...ke};return delete Ve[ae.id],Ve});return}ie(ke=>({...ke,[ae.id]:{status:"loading",nodes:[]}}));try{const ke=new Map,Ve=new Map,We=[{id:ae.id,depth:0}],pt=new Set;for(;We.length>0;){const{id:mt,depth:Tt}=We.shift();if(pt.has(mt))continue;pt.add(mt);const Rt=await bo("hook",mt);Ve.set(mt,Rt.name);const Lt=Vr(Rt.relations,"depends_on").filter(Ce=>Ce.sourceId===mt);if(ke.set(mt,Lt),!(Tt>=2))for(const Ce of Lt)Ve.has(Ce.targetId)||Ve.set(Ce.targetId,Ce.targetName??Ce.targetId),We.push({id:Ce.targetId,depth:Tt+1})}const At=nA({startHookId:ae.id,depsOf:ke,names:Ve});ie(mt=>({...mt,[ae.id]:{status:"ready",nodes:At}}))}catch{ie(ke=>({...ke,[ae.id]:{status:"error",nodes:[]}}))}}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"伏笔池"}),i.jsx(pe,{type:"button",className:"ml-auto",onClick:()=>I(!0),children:"+ 新建伏笔"})]}),c!==null&&i.jsxs("div",{className:Ne(ni,"mb-3 flex items-center gap-2"),children:[c===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"伏笔池加载失败,请重试。",i.jsx(pe,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>g(ae=>ae+1),children:"重试"})]}),o&&ve===null&&c===null&&i.jsx("div",{className:"space-y-4",children:Array.from({length:3},(ae,ke)=>i.jsxs("div",{className:"rounded-md border border-border",children:[i.jsx("div",{className:"h-4 w-20 animate-pulse rounded bg-muted px-3 py-1.5"}),Array.from({length:ke===0?3:1},(Ve,We)=>i.jsxs("div",{className:"flex items-center gap-3 border-t border-border/70 px-3 py-2.5",children:[i.jsx("div",{className:"h-4 w-1/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-3 w-16 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"ml-auto h-6 w-6 animate-pulse rounded bg-muted"})]},We))]},ke))}),!o&&ve!==null&&t?.length===0&&i.jsx(Bn,{action:i.jsx(pe,{type:"button",onClick:()=>I(!0),children:"+ 新建伏笔"}),children:"还没有伏笔。好伏笔要趁早埋下——先新建一个,或在聊天里让 AI 帮你规划。"}),ve!==null&&t&&t.length>0&&i.jsxs("div",{className:"space-y-4",children:[i.jsx(xm,{title:"活跃",icon:i.jsx("span",{className:"size-2 shrink-0 rounded-full bg-primary"}),hooks:ve.active,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:be,onDetail:ce,onLifecycle:_e,onEdit:Z,onDelete:ae=>{we(ae)}}),i.jsx(xm,{title:"已回收",icon:i.jsx(Wm,{className:"size-3.5 shrink-0 text-primary"}),hooks:ve.resolved,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:be,onDetail:ce,onLifecycle:_e,onEdit:Z,onDelete:ae=>{we(ae)}}),i.jsx(xm,{title:"已废弃",icon:i.jsx(Vj,{className:"size-3.5 shrink-0 text-muted-foreground"}),hooks:ve.abandoned,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:be,onDetail:ce,onLifecycle:_e,onEdit:Z,onDelete:ae=>{we(ae)}})]}),i.jsx(Rs,{open:B,onOpenChange:ae=>!ae&&I(!1),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"新建伏笔"})}),i.jsxs("form",{id:"create-hook-form",onSubmit:q,className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:U,onChange:ae=>G(ae.target.value),placeholder:"如:身世之谜",maxLength:100})]}),i.jsx(Zv,{fields:mA,data:K,onChange:xe,nodeOptions:Ie}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"埋点节点(选填,可空)"}),i.jsx(Gm,{value:se,onChange:le,nodeOptions:Ie})]}),He&&i.jsx("p",{className:"text-sm text-destructive",children:He})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>I(!1),disabled:Re,children:"取消"}),i.jsx(pe,{type:"submit",form:"create-hook-form",disabled:Re,children:"创建"})]})]})}),i.jsx(Rs,{open:S!==null||N,onOpenChange:ae=>!ae&&j(null),children:i.jsxs(Os,{className:"sm:max-w-lg",children:[i.jsx(ks,{children:i.jsx(Ms,{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(fA,{detail:S}),i.jsx(_s,{children:i.jsx(pe,{variant:"outline",type:"button",onClick:()=>j(null),children:"关闭"})})]})}),T&&i.jsx(Rs,{open:!0,onOpenChange:ae=>!ae&&!ee&&_(null),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsxs(Ms,{children:[gm[w],"伏笔《",T.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[w!=="abandon"&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"大纲节点(默认当前位置)"}),i.jsx(Gm,{value:M,onChange:L,nodeOptions:Ie,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=>Q(ae.target.value),rows:2,placeholder:w==="abandon"?"说明废弃原因":"说明伏笔如何被推进/回收",className:Ne(Xn,"w-full")})]}),i.jsxs("div",{className:"rounded-md border border-primary/25 bg-primary/5 px-3 py-2 text-sm",children:[i.jsx("p",{className:"font-medium text-foreground",children:"将写入:"}),i.jsxs("p",{className:"mt-1 text-muted-foreground",children:["status → ",FS[w],w==="advance"&&" + advances 关系",w==="resolve"&&" + resolves 关系"," + 同步 status"]}),w==="resolve"&&y&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:"依赖关系加载失败,无法确认依赖者"}),w==="resolve"&&!y&&Kv(b,T.id)>0&&i.jsxs("p",{className:"mt-2 text-sm text-destructive",children:["有 ",Kv(b,T.id)," 个伏笔依赖此伏笔"]})]}),ne&&i.jsx("p",{className:"text-sm text-destructive",children:ne})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>_(null),disabled:ee,children:"取消"}),i.jsx(pe,{type:"button",onClick:()=>{Me()},disabled:ee,children:ee?"提交中…":`确认${gm[w]}`})]})]})}),te&&z&&i.jsx(Rs,{open:!0,onOpenChange:ae=>!ae&&!F&&W(null),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsxs(Ms,{children:["编辑伏笔《",te.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsx(Zv,{fields:eh("hook"),data:z,onChange:ae=>D(ke=>ke&&{...ke,...ae}),nodeOptions:Ie}),Y&&i.jsx("p",{className:"text-sm text-destructive",children:Y})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>W(null),disabled:F,children:"取消"}),i.jsx(pe,{type:"button",onClick:()=>{P()},disabled:F,children:F?"保存中…":"保存"})]})]})})]})}function xm({title:t,icon:r,hooks:o,depEdges:a,depEdgesFailed:c,chains:d,onToggleChain:m,onDetail:g,onLifecycle:b,onEdit:p,onDelete:y}){return i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsxs("div",{className:"flex items-center gap-1.5 border-b border-border bg-muted/30 px-3 py-1.5 text-sm font-medium text-foreground",children:[r,i.jsx("span",{children:t}),i.jsxs("span",{className:"text-muted-foreground",children:["(",o.length,")"]})]}),o.length===0?i.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground/70",children:"(空)"}):i.jsx("ul",{className:"divide-y divide-border/70",children:o.map(x=>{const S=uA(x.summary.status),j=c?[]:YS(a,x.id),N=d[x.id],k=typeof x.summary.category=="string"?x.summary.category:"";return i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",title:x.name,children:x.name}),k&&i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:k}),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-0.5",children:[i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",title:"详情","aria-label":`${x.name} 详情`,onClick:()=>g(x),children:i.jsx(ep,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"推进","aria-label":`${x.name} 推进`,onClick:()=>b("advance",x),children:i.jsx(Mj,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"回收","aria-label":`${x.name} 回收`,onClick:()=>b("resolve",x),children:i.jsx(i0,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"废弃","aria-label":`${x.name} 废弃`,onClick:()=>b("abandon",x),children:i.jsx(hs,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",title:"编辑","aria-label":`${x.name} 编辑`,onClick:()=>p(x),children:i.jsx(ei,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`${x.name} 移入回收站`,onClick:()=>y(x),children:i.jsx(ti,{className:"size-3.5"})})]})]}),j.length>0&&i.jsxs("button",{type:"button",onClick:()=>m(x),className:"mt-0.5 flex items-center gap-1 rounded-md border border-border px-1.5 py-0.5 text-xs text-muted-foreground hover:bg-muted hover:text-foreground",children:["依赖: ",j.join("、")]}),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 fA({detail:t}){const r=t.id,o=typeof t.data.status=="string"?t.data.status:"",a=typeof t.data.category=="string"?t.data.category:"",c=Vr(t.relations,"plants"),d=Vr(t.relations,"advances"),m=Vr(t.relations,"resolves"),g=YS(t.relations,r),b=Vr(t.relations,"depends_on").filter(x=>x.targetId===r).map(x=>x.sourceName??x.sourceId),p=eA(t.relations,r),y=typeof t.data.expected_resolve_node_id=="string"?t.data.expected_resolve_node_id:"";return i.jsxs("div",{className:"flex flex-col gap-3 text-sm",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-medium text-foreground",children:t.name}),a&&i.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:a}),o&&i.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:Jp[o]??o})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["创建于 ",ds(t.createdAt)," · 更新于 ",ds(t.updatedAt)]}),i.jsx(xo,{title:"埋点节点(plants)",items:c.map(x=>x.sourceName??x.sourceId)}),i.jsx(xo,{title:"推进节点(advances)",items:d.map(x=>x.sourceName??x.sourceId)}),i.jsx(xo,{title:"回收节点(resolves)",items:m.map(x=>x.sourceName??x.sourceId)}),i.jsx(xo,{title:"预计回收节点",items:y?[y]:[]}),i.jsx(xo,{title:"依赖(depends_on)",items:g}),i.jsx(xo,{title:"被依赖(其他伏笔依赖本伏笔)",items:b}),i.jsx(xo,{title:"涉及(involves)",items:p})]})}function xo({title:t,items:r}){return i.jsxs("div",{children:[i.jsx("p",{className:"mb-0.5 text-xs font-medium text-muted-foreground",children:t}),r.length===0?i.jsx("p",{className:"text-xs text-muted-foreground/70",children:"无"}):i.jsx("ul",{className:"flex flex-wrap gap-1",children:r.map((o,a)=>i.jsx("li",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-xs text-foreground",children:o},`${o}-${a}`))})]})}const mA=[{key:"category",label:"类别",control:"text"},{key:"expected_payoff",label:"预期回收",control:"textarea"},{key:"payoff_timing",label:"回收时机",control:"select",options:["immediate","near_term","mid_arc","slow_burn","endgame"],optionsLabels:Wp},{key:"half_life",label:"半衰期(章数)",control:"number"},{key:"is_core",label:"主线伏笔",control:"toggle"},{key:"notes",label:"备注",control:"textarea"},{key:"expected_resolve_node_id",label:"预计回收节点",control:"outline-node"}];function Zv({fields:t,data:r,onChange:o,nodeOptions:a}){return i.jsx(i.Fragment,{children:t.map(c=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:c.label}),i.jsx(pA,{field:c,value:r[c.key],nodeOptions:a,onValue:d=>o({...r,[c.key]:d})})]},c.key))})}function pA({field:t,value:r,nodeOptions:o,onValue:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value),rows:2,className:Ne(Xn,"w-full")});case"number":return i.jsx(Mt,{type:"number",value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value===""?void 0:Number(c.target.value)),className:"h-8 text-sm"});case"select":return i.jsxs("select",{value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value),className:Ne(Xn,"w-full"),children:[i.jsx("option",{value:"",children:"未设置"}),t.options?.map(c=>i.jsx("option",{value:c,children:t.optionsLabels?.[c]??c},c))]});case"toggle":return i.jsx("input",{type:"checkbox",checked:r===!0,onChange:c=>a(c.target.checked),className:"h-4 w-4 accent-primary"});case"outline-node":return i.jsx(Gm,{value:_l({[t.key]:r},t.key),onChange:a,nodeOptions:o});default:return i.jsxs(i.Fragment,{children:[i.jsx(Mt,{value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value),placeholder:t.key==="category"?`如:${ly.join(" / ")}`:void 0,list:t.key==="category"?"hook-category-suggestions":void 0,className:"h-8 text-sm"}),t.key==="category"&&i.jsx(ou,{id:"hook-category-suggestions",options:ly})]})}}function Gm({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:Ne(Ne(Xn,"w-full"),t===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:a}),o.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function qm(t,r,o){const a=o===void 0?t:t.filter(d=>d!==o);if(r.kind==="end")return a.length;const c=a.indexOf(r.id);return c===-1?a.length:r.kind==="before"?c:c+1}function Jv(t,r,o){const a=t.map(g=>({timepoint:g,events:[]})),c=new Map(a.map(g=>[g.timepoint.id,g])),d=new Map;for(const g of o)g.relationType!=="occurs_at"||g.sourceType!=="timepoint"||d.has(g.targetId)||d.set(g.targetId,g.sourceId);const m=[];for(const g of r){const b=d.get(g.id),p=b===void 0?void 0:c.get(b);p===void 0?m.push(g):p.events.push(g)}return{groups:a,ungrouped:m}}function hA(t,r,o,a,c){const d=[...t.flatMap(b=>b.events.map(p=>p.id)),...r.map(b=>b.id)];let m;if(o===-1)m=a==="before"?r[0]:r[r.length-1];else{const b=t[o];if(b!==void 0){if(a==="before"){if(m=b.events[0],m===void 0)for(let p=o+1;p<t.length;p++){const y=t[p].events[0];if(y!==void 0){m=y;break}}}else if(m=b.events[b.events.length-1],m===void 0)for(let p=o-1;p>=0;p--){const y=t[p].events[t[p].events.length-1];if(y!==void 0){m=y;break}}}}if(m!==void 0)return qm(d,{kind:a,id:m.id},c);const g=d.find(b=>b!==c);return g===void 0?0:qm(d,{kind:"before",id:g},c)}function ah(t){const r=t.summary.tags;return Array.isArray(r)?r.filter(o=>typeof o=="string"):[]}function gA(t){const r=t.summary.description;return typeof r=="string"?r:""}function $m(t,r,o=5){const a=t.split(/[,,、\n]/),c=a[a.length-1].trim();if(c==="")return[];const d=new Set(a.slice(0,-1).map(p=>p.trim()).filter(p=>p!=="")),m=c.toLowerCase(),g=[],b=new Set;for(const p of r){if(g.length>=o)break;d.has(p)||b.has(p)||p.toLowerCase().includes(m)&&(b.add(p),g.push(p))}return g}function Xm(t,r){const o=t.split(/[,,、\n]/);return o[o.length-1]=r,o.join(",")+","}function Gc(t){const r=new Set,o=[];for(const a of t)for(const c of ah(a))c!==""&&!r.has(c)&&(r.add(c),o.push(c));return o}function xA(t,r){return r===null||r===""?t:t.filter(o=>ah(o).includes(r))}function $S(t){const r=[],o=new Set;for(const a of t.split(/[,,、\n]/)){const c=a.trim();c!==""&&!o.has(c)&&(o.add(c),r.push(c))}return r}function XS(t){return Array.isArray(t)?t.filter(r=>typeof r=="string").join(","):""}function bA(t){const r=t.data;return{name:t.name,description:typeof r.description=="string"?r.description:"",tagsInput:XS(r.tags)}}function KS(t,r){const o={};r.name.trim()!==t.name&&(o.name=r.name.trim());const a={};(r.description.trim()!==""||t.data.description!==void 0)&&(a.description=r.description.trim());const c=$S(r.tagsInput);(c.length>0||t.data.tags!==void 0)&&(a.tags=c);const d={};for(const m of["description","tags"])JSON.stringify(a[m])!==JSON.stringify(t.data[m])&&(d[m]=a[m]);return Object.keys(d).length>0&&(o.data=d),o.name===void 0&&o.data===void 0?null:o}const QS="occurs_in",ZS="occurs_at";function yA(t,r){return t.filter(o=>o.relationType===QS&&o.sourceId===r)}function vA(t,r){return{source_type:"event",source_id:t,target_type:"outline_node",target_id:r,relation_type:QS}}function bm(t,r){const o=t.find(a=>a.relationType===ZS&&a.sourceType==="timepoint"&&a.targetId===r);return o===void 0?null:o.sourceId}function SA(t,r){return{source_type:"timepoint",source_id:t,target_type:"event",target_id:r,relation_type:ZS}}function EA({ev:t,occursCount:r,hasOccursData:o,dragging:a,busy:c,showInsertBefore:d,showInsertAfter:m,eventDrag:g,onDetail:b,onEdit:p,onDelete:y}){const x=ah(t),S=gA(t),j=r(t.id),[N,k]=h.useState(!1),O=h.useRef(null),[E,T]=h.useState(!1);return h.useLayoutEffect(()=>{const _=O.current;if(_===null)return;const w=()=>{N||T(_.scrollHeight>_.clientHeight+1)};return w(),window.addEventListener("resize",w),()=>window.removeEventListener("resize",w)},[S,N]),i.jsxs("div",{draggable:!c,onDragStart:_=>g.onDragStart(_,t),onDragEnd:g.onDragEnd,onDragOver:_=>g.onDragOver(_,t),onDrop:_=>g.onDrop(_,t),className:Ne("relative flex items-start",a&&"opacity-50"),children:[d&&i.jsx("div",{className:"absolute inset-x-0 -top-px h-0.5 bg-primary"}),m&&i.jsx("div",{className:"absolute inset-x-0 -bottom-px h-0.5 bg-primary"}),i.jsx("div",{className:"w-[22px] shrink-0",children:i.jsx("span",{"aria-hidden":"true",className:"mx-auto mt-[16px] block size-2 rounded-full bg-primary/60"})}),i.jsxs("div",{className:"min-w-0 flex-1 rounded-md border border-border bg-card px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"shrink-0 cursor-grab text-muted-foreground/60 active:cursor-grabbing",title:"拖拽调整事件顺序/挂载","aria-hidden":"true",children:i.jsx(au,{className:"size-4"})}),i.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",title:t.name,children:t.name}),x.map(_=>i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:_},_)),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-1",children:[o&&i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[j," 节点"]}),i.jsx(pe,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"详情","aria-label":`${t.name} 详情`,onClick:()=>b(t),children:i.jsx(ep,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"编辑","aria-label":`${t.name} 编辑`,onClick:()=>p(t),children:i.jsx(ei,{className:"size-3.5"})}),i.jsx(pe,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`${t.name} 移入回收站`,onClick:()=>y(t),children:i.jsx(ti,{className:"size-3.5"})})]})]}),S.trim()!==""&&i.jsxs("div",{className:"mt-1.5",children:[i.jsx("p",{ref:O,className:Ne("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 NA({timepoint:t,groupId:r,events:o,collapsed:a,dragSource:c,busy:d,occursCount:m,hasOccursData:g,showInsertBefore:b,showInsertAfter:p,onToggleCollapse:y,onRename:x,onDeleteTimepoint:S,onAddEventAt:j,onDragStart:N,onDragEnd:k,onDragOver:O,onDrop:E,eventDrag:T,eventInsertLines:_,onDetail:w,onEdit:V,onDelete:M}){const[L,C]=h.useState(!1),[Q,ne]=h.useState(""),ue=t===null,ee=ue?"未挂载":t.name,X=c!==null&&c.kind==="timepoint"&&c.id===r;function te(){t!==null&&(ne(t.name),C(!0))}async function W(){if(t===null)return;const z=Q.trim();C(!1),!(z===""||z===t.name)&&await x(t.id,z)}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:!ue&&!d&&!L,onDragStart:N,onDragEnd:k,onDragOver:O,onDrop:E,className:Ne("flex items-start",!ue&&X&&"opacity-50"),children:[i.jsx("div",{className:"w-[22px] shrink-0",children:i.jsx("span",{"aria-hidden":"true",className:Ne("relative z-10 mx-auto mt-[6px] block size-4 rounded-full border-2 bg-background",ue?"border-dashed border-border":"border-primary")})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 py-1",children:[!ue&&i.jsx("span",{className:"shrink-0 cursor-grab text-muted-foreground/60 active:cursor-grabbing",title:"拖拽调整时间点顺序(组内事件不动)","aria-hidden":"true",children:i.jsx(au,{className:"size-4"})}),L?i.jsx("input",{autoComplete:"off",autoFocus:!0,value:Q,onChange:z=>ne(z.target.value),onKeyDown:z=>{z.key==="Enter"?W():z.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:Ne("min-w-0 truncate text-sm font-medium",ue?"text-muted-foreground italic":"text-foreground"),title:ee,children:ee}),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(pe,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"重命名","aria-label":`重命名「${t.name}」`,onClick:te,children:i.jsx(ei,{className:"size-3.5"})}),t!==null&&!L&&i.jsx(pe,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"在此时间点新建事件","aria-label":"在此时间点新建事件",onClick:()=>j(r),children:i.jsx(lu,{className:"size-3.5"})}),t!==null&&!L&&i.jsx(pe,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`移入回收站「${t.name}」`,onClick:()=>S(t),children:i.jsx(ti,{className:"size-3.5"})}),i.jsx(pe,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground","aria-expanded":!a,"aria-label":`${a?"展开":"折叠"}「${ee}」组`,onClick:y,children:i.jsx(Zm,{className:Ne("size-4 transition-transform duration-200",!a&&"rotate-90")})})]})]})]}),!a&&i.jsx("div",{className:"flex flex-col gap-2",children:o.map(z=>{const D=_(z.id);return i.jsx(EA,{ev:z,occursCount:m,hasOccursData:g,dragging:c!==null&&c.kind==="event"&&c.id===z.id,busy:d,showInsertBefore:D.before,showInsertAfter:D.after,eventDrag:T,onDetail:w,onEdit:V,onDelete:M},z.id)})})]})}function jA({timepoints:t,events:r,allEvents:o,occursAtEdges:a,occursCount:c,hasOccursData:d,onMoveTimepoint:m,onMoveEvent:g,onMoveEventTo:b,onRenameTimepoint:p,onDeleteTimepoint:y,onAddEventAt:x,onDetail:S,onEdit:j,onDelete:N}){const k=h.useMemo(()=>Jv(t,r,a),[t,r,a]),O=h.useMemo(()=>Jv(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]),T=h.useMemo(()=>{const U=new Map;for(const G of k.groups)for(const K of G.events)U.set(K.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]),[w,V]=h.useState(new Set),[M,L]=h.useState(null),[C,Q]=h.useState(null),[ne,ue]=h.useState(!1);function ee(U){const G=U.currentTarget.getBoundingClientRect();return U.clientY<G.top+G.height/2?"before":"after"}function X(U){return U===""?-1:O.groups.findIndex(G=>G.timepoint.id===U)}function te(U,G,K){U.preventDefault(),U.dataTransfer.dropEffect="move";const xe=ee(U);Q(se=>se!==null&&se.kind==="event"&&se.at===K.at&&se.side===xe&&se.groupId===G&&se.anchorId===K.anchorId?se:{kind:"event",at:K.at,side:xe,groupId:G,anchorId:K.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}),Q(null))}function z(U,G){U.dataTransfer.setData("text/plain",G.id),U.dataTransfer.effectAllowed="move",L({kind:"event",id:G.id}),Q(null)}function D(){L(null),Q(null)}function Y(U,G){const K=M;if(K===null||K.kind==="timepoint"&&G.timepoint===null)return;U.preventDefault(),U.dataTransfer.dropEffect="move";const xe=ee(U);if(K.kind==="timepoint"){Q(le=>le!==null&&le.kind==="timepoint"&&le.side===xe&&le.groupId===G.groupId?le:{kind:"timepoint",side:xe,groupId:G.groupId});return}const se=G.events.length===0?null:xe==="before"?G.events[0].id:G.events[G.events.length-1].id;te(U,G.groupId,{at:"group",anchorId:se})}function H(U,G,K){const xe=M;if(xe!==null&&!(xe.kind==="timepoint"&&K.timepoint===null)){if(U.preventDefault(),U.dataTransfer.dropEffect="move",xe.kind==="timepoint"){const se=ee(U);Q(le=>le!==null&&le.kind==="timepoint"&&le.side===se&&le.groupId===K.groupId?le:{kind:"timepoint",side:se,groupId:K.groupId});return}te(U,K.groupId,{at:"row",anchorId:G.id})}}async function F(U,G,K){const xe=M;if(xe===null||xe.kind!=="event"||ne)return;if(U.preventDefault(),K===xe.id){D();return}const se=ee(U),le=hA(O.groups,O.ungrouped,X(G.groupId),se,xe.id),He=T.get(xe.id)??"";ue(!0);try{G.groupId===He?await g(xe.id,le):await b(xe.id,G.groupId===""?null:G.groupId,le)}finally{ue(!1),D()}}function A(U,G){const K=M;if(K===null||ne)return;if(U.preventDefault(),K.kind==="timepoint"){if(G.timepoint===null)return;if(G.groupId===K.id){D();return}const le=ee(U),He=qm(_,{kind:le,id:G.groupId},K.id);ue(!0),m(K.id,He).finally(()=>{ue(!1),D()});return}const xe=ee(U),se=G.events.length===0?null:xe==="before"?G.events[0].id:G.events[G.events.length-1].id;F(U,G,se)}function B(U,G,K){const xe=M;if(xe!==null&&xe.kind==="timepoint"){A(U,K);return}F(U,K,G.id)}function I(U){V(G=>{const K=new Set(G);return K.has(U)?K.delete(U):K.add(U),K})}return i.jsxs("div",{className:"relative flex flex-col gap-2",children:[i.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute top-0 bottom-0 left-[11px] w-0.5 bg-border"}),E.map(U=>{const G=C!==null&&(C.kind==="timepoint"&&C.groupId===U.groupId||C.kind==="event"&&C.at==="group"&&C.groupId===U.groupId),K=G&&C!==null&&C.side==="before",xe=G&&C!==null&&C.side==="after",se=C!==null&&C.kind==="event"&&C.at==="row"&&C.side==="before",le=C!==null&&C.kind==="event"&&C.at==="row"&&C.side==="after",He={onDragStart:z,onDragEnd:D,onDragOver:(ze,Re)=>H(ze,Re,U),onDrop:(ze,Re)=>B(ze,Re,U)};return i.jsx(NA,{timepoint:U.timepoint,groupId:U.groupId,events:U.events,collapsed:w.has(U.groupId),dragSource:M,busy:ne,occursCount:c,hasOccursData:d,showInsertBefore:K,showInsertAfter:xe,onToggleCollapse:()=>I(U.groupId),onRename:p,onDeleteTimepoint:y,onAddEventAt:x,onDragStart:ze=>W(ze,U),onDragEnd:D,onDragOver:ze=>Y(ze,U),onDrop:ze=>A(ze,U),eventDrag:He,eventInsertLines:ze=>({before:se&&C!==null&&C.kind==="event"&&C.anchorId===ze,after:le&&C!==null&&C.kind==="event"&&C.anchorId===ze}),onDetail:S,onEdit:j,onDelete:N},U.groupId===""?"__ungrouped__":U.groupId)})]})}function Km({suggestions:t,visible:r,onPick:o}){return!r||t.length===0?null:i.jsx("div",{className:"mt-1 overflow-hidden rounded-md border border-border bg-card",children:t.map(a=>i.jsx("button",{type:"button",onMouseDown:c=>c.preventDefault(),onClick:()=>o(a),className:"block w-full cursor-pointer px-2.5 py-1 text-left text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:a},a))})}const Ta={name:"",description:"",tagsInput:""};function TA(){const[t,r]=h.useState(null),[o,a]=h.useState(null),[c,d]=h.useState(!1),[m,g]=h.useState(null),[b,p]=h.useState(0);zs(()=>p(Ce=>Ce+1));const[y,x]=h.useState([]),[S,j]=h.useState(!1),[N,k]=h.useState([]),[O,E]=h.useState(!1),[T,_]=h.useState(null),[w,V]=h.useState([]),[M,L]=h.useState(!1),[C,Q]=h.useState(Ta),[ne,ue]=h.useState(null),[ee,X]=h.useState(""),[te,W]=h.useState(null),[z,D]=h.useState(!1),[Y,H]=h.useState(!1),[F,A]=h.useState(""),[B,I]=h.useState(null),[U,G]=h.useState(!1),[K,xe]=h.useState(null),[se,le]=h.useState(null),[He,ze]=h.useState(null),[Re,Ue]=h.useState(!1),ge=Pe(Ce=>Ce.config),ie=Pe(Ce=>Ce.outline),Ye=ir(ie?.children??[]),Ae=St(Ce=>Ce.sendMessage);h.useEffect(()=>{let Ce=!1;return d(!0),g(null),j(!1),E(!1),Promise.allSettled([jn("timepoint",{}).then(Ee=>{Ce||r(Ee.items)}).catch(Ee=>{Ce||(r(null),g(Ee instanceof De?Ee.code:ut))}),jn("event",{}).then(Ee=>{Ce||(a(Ee.items),V(Gc(Ee.items)),Ee.items.length>=Ee.limit&&jn("event",{limit:200}).then(Ge=>{Ce||V(Gc(Ge.items))}).catch(()=>{}))}).catch(Ee=>{Ce||(a(null),g(Ee instanceof De?Ee.code:ut))}),Fr({source_type:"timepoint",relation_type:"occurs_at",depth:1}).then(Ee=>{Ce||x(Ee.relations)}).catch(()=>{Ce||j(!0)}),Fr({source_type:"event",relation_type:"occurs_in",depth:1}).then(Ee=>{Ce||k(Ee.relations)}).catch(()=>{Ce||E(!0)})]).finally(()=>{Ce||d(!1)}),()=>{Ce=!0}},[b]),h.useEffect(()=>{Pe.getState().outline===null&&Pe.getState().config!==null&&Pe.getState().loadOutline()},[]);async function Ie(Ce){Ce.preventDefault();const Ee=F.trim();if(!Ee){I("请输入名称");return}G(!0),I(null);try{await $c("timepoint",{name:Ee}),Oe.getState().showToast(`已创建时间点《${Ee}》`),H(!1),A(""),p(Ge=>Ge+1)}catch(Ge){I(Ge instanceof De?Ge.message:"创建失败,请重试")}finally{G(!1)}}async function ve(Ce){Ce.preventDefault();const Ee=C.name.trim();if(!Ee){W("请输入名称");return}D(!0),W(null);try{const Ge={};C.description.trim()!==""&&(Ge.description=C.description.trim());const Ot=$S(C.tagsInput);Ot.length>0&&(Ge.tags=Ot);const Yt=await $c("event",{name:Ee,data:Ge});if(ne!==null)try{await cr(SA(ne,Yt.id))}catch(re){Oe.getState().showToast(`已创建事件《${Ee}》,但挂载到时间点失败:${re instanceof De?re.message:"未知错误"}`,"error"),L(!1),Q(Ta),ue(null),X(""),p(ye=>ye+1);return}if(ee!=="")try{await cr({source_type:"event",source_id:Yt.id,target_type:"outline_node",target_id:ee,relation_type:"occurs_in"})}catch(re){Oe.getState().showToast(`已创建事件《${Ee}》,但节点关联失败:${re instanceof De?re.message:"未知错误"}`,"error"),L(!1),Q(Ta),ue(null),X(""),p(ye=>ye+1);return}Oe.getState().showToast(`已创建事件《${Ee}》`),L(!1),Q(Ta),ue(null),X(""),p(re=>re+1)}catch(Ge){W(Ge instanceof De?Ge.message:"创建失败,请重试")}finally{D(!1)}}function ce(Ce){const Ee=Ce.summary;xe(Ce),ze(null),le({name:Ce.name,description:typeof Ee.description=="string"?Ee.description:"",tagsInput:XS(Ee.tags)})}async function _e(){const Ce=K,Ee=se;if(!(!Ce||!Ee||Re)){Ue(!0),ze(null);try{const Ge=KS({name:Ce.name,data:Ce.summary},Ee);if(Ge===null){Oe.getState().showToast("没有变更"),xe(null);return}await No("event",Ce.id,Ge),Oe.getState().showToast("已保存"),xe(null),p(Ot=>Ot+1)}catch(Ge){ze(Ge instanceof De?Ge.message:"保存失败,请重试")}finally{Ue(!1)}}}async function Me(Ce){try{const Ee=await iu(Ce.kind,Ce.entity.id),Ge=[];Ee.cascaded.relations>0&&Ge.push(`${Ee.cascaded.relations} 条关联`),Ee.cascaded.deltas>0&&Ge.push(`${Ee.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${Ge.length>0?`(含 ${Ge.join("、")})`:""}`),p(Ot=>Ot+1)}catch(Ee){Oe.getState().showToast(Ee instanceof De?Ee.message:"删除失败,请重试","error")}}async function Z(Ce,Ee){try{await l2(Ce,{order:Ee}),Oe.getState().showToast("已调整时间点顺序")}catch(Ge){Oe.getState().showToast(Ge instanceof De?`排序失败:${Ge.message}`:"排序失败,请重试","error")}finally{p(Ge=>Ge+1)}}async function P(Ce,Ee){try{await a2(Ce,{order:Ee}),Oe.getState().showToast("已调整事件顺序")}catch(Ge){Oe.getState().showToast(Ge instanceof De?`排序失败:${Ge.message}`:"排序失败,请重试","error")}finally{p(Ge=>Ge+1)}}async function q(Ce,Ee,Ge){try{await _0(Ce,{timepoint_id:Ee,order:Ge}),Oe.getState().showToast(Ee===null?"已移至未挂载区":"已调整事件挂载与顺序")}catch(Ot){Oe.getState().showToast(Ot instanceof De?`操作失败:${Ot.message}`:"操作失败,请重试","error")}finally{p(Ot=>Ot+1)}}async function we(Ce,Ee){try{await No("timepoint",Ce,{name:Ee}),Oe.getState().showToast("已重命名"),p(Ge=>Ge+1)}catch(Ge){Oe.getState().showToast(Ge instanceof De?`重命名失败:${Ge.message}`:"重命名失败,请重试","error")}}function be(Ce){Q(Ta),X(""),W(null),ue(Ce),L(!0)}function ae(){Q(Ta),X(""),W(null),ue(null),L(!0)}function ke(){ge!==null&&Ae("请按时间标签的语义先后顺序对时间轴时间点排序,并使用 propose_reorder_timepoints 工具生成排序提案。")}const Ve=o===null?[]:Gc(o),We=o===null?null:xA(o,T),pt=Ce=>O?0:N.filter(Ee=>Ee.sourceId===Ce).length,At=!O,mt=$m(C.tagsInput,w),Tt=se===null?[]:$m(se.tagsInput,w);function Rt(Ce){Q(Ee=>({...Ee,tagsInput:Xm(Ee.tagsInput,Ce)}))}function Lt(Ce){le(Ee=>Ee&&{...Ee,tagsInput:Xm(Ee.tagsInput,Ce)})}return i.jsxs("section",{className:"flex h-full min-h-0 flex-col",children:[i.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"时间轴"}),i.jsx("span",{className:Ne("ml-auto",!ge&&"cursor-not-allowed"),title:ge?void 0:"请先打开项目",children:i.jsxs(pe,{type:"button",variant:"outline",size:"sm",disabled:!ge,onClick:ke,"aria-label":"AI 排序",children:[i.jsx(eT,{className:"size-3.5"}),"AI 排序"]})}),i.jsx(pe,{type:"button",variant:"outline",onClick:ae,children:"+ 新建事件"}),i.jsx(pe,{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:Ne("rounded-full border px-2.5 py-0.5 text-xs transition-colors",T===null?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:"全部"}),Ve.map(Ce=>i.jsx("button",{type:"button",onClick:()=>_(Ee=>Ee===Ce?null:Ce),className:Ne("rounded-full border px-2.5 py-0.5 text-xs transition-colors",T===Ce?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:Ce},Ce))]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[m!==null&&i.jsxs("div",{className:Ne(ni,"mb-3 flex items-center gap-2"),children:[m===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"时间轴加载失败,请重试。",i.jsx(pe,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>p(Ce=>Ce+1),children:"重试"})]}),c&&(t===null||o===null)&&m===null&&i.jsx("div",{className:"space-y-2",children:Array.from({length:4},(Ce,Ee)=>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"})]},Ee))}),!c&&t!==null&&o!==null&&t.length===0&&o.length===0&&i.jsx(Bn,{action:i.jsx(pe,{type:"button",onClick:()=>H(!0),children:"+ 新建时间点"}),children:"还没有时间点。先定义一个时间标签点(如「第二天黄昏」),再在其中挂载事件。"}),t!==null&&o!==null&&We!==null&&!(T!==null&&We.length===0)&&i.jsx(jA,{timepoints:t,events:We,allEvents:o,occursAtEdges:S?[]:y,occursCount:pt,hasOccursData:At,onMoveTimepoint:Z,onMoveEvent:P,onMoveEventTo:q,onRenameTimepoint:we,onAddEventAt:be,onDetail:Ce=>on(`/timeline/${Ce.id}`),onEdit:ce,onDelete:Ce=>{Me({kind:"event",entity:Ce})},onDeleteTimepoint:Ce=>{Me({kind:"timepoint",entity:Ce})}}),!c&&o!==null&&o.length>0&&We!==null&&We.length===0&&i.jsxs(Bn,{padding:"sm",children:["没有匹配「",T,"」的事件"]})]}),i.jsx(Rs,{open:Y,onOpenChange:Ce=>!Ce&&H(!1),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"新建时间点"})}),i.jsxs("form",{id:"create-timepoint-form",onSubmit:Ie,className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填,时间标签文本)"}),i.jsx(Mt,{value:F,onChange:Ce=>A(Ce.target.value),placeholder:"如:第二天黄昏",maxLength:100,autoFocus:!0})]}),B&&i.jsx("p",{className:"text-sm text-destructive",children:B})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>H(!1),disabled:U,children:"取消"}),i.jsx(pe,{type:"submit",form:"create-timepoint-form",disabled:U,children:"创建"})]})]})}),i.jsx(Rs,{open:M,onOpenChange:Ce=>!Ce&&L(!1),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:ne!==null?"在此时间点新建事件(自动挂载)":"新建事件(不挂载,入未挂载区)"})}),i.jsxs("form",{id:"create-event-form",onSubmit:ve,className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:C.name,onChange:Ce=>Q(Ee=>({...Ee,name:Ce.target.value})),placeholder:"如:主角踏入宗门",maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:C.description,onChange:Ce=>Q(Ee=>({...Ee,description:Ce.target.value})),rows:2,placeholder:"事件发生了什么",className:Ne(Xn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Mt,{value:C.tagsInput,onChange:Ce=>Q(Ee=>({...Ee,tagsInput:Ce.target.value})),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Km,{suggestions:mt,visible:C.tagsInput.trim()!=="",onPick:Rt})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"关联大纲节点(选填,可空)"}),i.jsx(wA,{value:ee,onChange:X,nodeOptions:Ye})]}),te&&i.jsx("p",{className:"text-sm text-destructive",children:te})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>L(!1),disabled:z,children:"取消"}),i.jsx(pe,{type:"submit",form:"create-event-form",disabled:z,children:"创建"})]})]})}),K&&se&&i.jsx(Rs,{open:!0,onOpenChange:Ce=>!Ce&&!Re&&xe(null),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsxs(Ms,{children:["编辑事件《",K.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:se.name,onChange:Ce=>le(Ee=>Ee&&{...Ee,name:Ce.target.value}),maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:se.description,onChange:Ce=>le(Ee=>Ee&&{...Ee,description:Ce.target.value}),rows:2,className:Ne(Xn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Mt,{value:se.tagsInput,onChange:Ce=>le(Ee=>Ee&&{...Ee,tagsInput:Ce.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Km,{suggestions:Tt,visible:se.tagsInput.trim()!=="",onPick:Lt})]}),He&&i.jsx("p",{className:"text-sm text-destructive",children:He})]}),i.jsxs(_s,{children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>xe(null),disabled:Re,children:"取消"}),i.jsx(pe,{type:"button",onClick:()=>{_e()},disabled:Re,children:Re?"保存中…":"保存"})]})]})})]})}function wA({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:Ne(Ne(Xn,"w-full"),t===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:a}),o.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function CA({id:t}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[d,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(null),[x,S]=h.useState(!1),[j,N]=h.useState(null),[k,O]=h.useState(!1),[E,T]=h.useState(""),[_,w]=h.useState(null),[V,M]=h.useState(!1),[L,C]=h.useState(null),[Q,ne]=h.useState([]),[ue,ee]=h.useState(null),[X,te]=h.useState(null),[W,z]=h.useState(!1),[D,Y]=h.useState(!1),[H,F]=h.useState(null);async function A(){try{const ge=await jn("event",{limit:200});ne(Gc(ge.items))}catch{}}async function B(){z(!1);try{const[ge,ie]=await Promise.all([jn("timepoint",{}),jn("event",{limit:200})]);ee(ge.items),te(ie.items)}catch{ee(null),te(null),z(!0)}}h.useEffect(()=>{A(),B()},[]);const I=Pe(ge=>ge.outline),U=ir(I?.children??[]);async function G(){c(!0),b(null),m(!1);try{const ge=await bo("event",t);o(ge),y(bA(ge))}catch(ge){o(null),y(null),ge instanceof De&&ge.code==="ENTITY_NOT_FOUND"?m(!0):b(ge instanceof De?ge.code:ut)}finally{c(!1)}}h.useEffect(()=>{G()},[t]),zs(()=>{G(),A(),B()}),h.useEffect(()=>{Pe.getState().outline===null&&Pe.getState().config!==null&&Pe.getState().loadOutline()},[]);async function K(){if(!r||!p||x)return;const ge=KS({name:r.name,data:r.data},p);if(ge===null){Oe.getState().showToast("没有变更");return}S(!0),N(null);try{await No("event",t,ge),Oe.getState().showToast("已保存"),await G()}catch(ie){if(ie instanceof De&&ie.code==="ENTITY_NOT_FOUND"){m(!0);return}N(ie instanceof De?ie.message:"保存失败,请重试")}finally{S(!1)}}async function xe(ge){if(!r||D||!ue||!X)return;const ie=bm(r.relations,t);if(ge===(ie??""))return;const Ye=X.findIndex(Ie=>Ie.id===t),Ae=Ye===-1?X.length:Ye;Y(!0),F(null);try{await _0(t,{timepoint_id:ge===""?null:ge,order:Ae}),Oe.getState().showToast(ge===""?"已移出挂载":"已更新挂载时间点"),await G()}catch(Ie){if(Ie instanceof De&&Ie.code==="ENTITY_NOT_FOUND"){m(!0);return}F(Ie instanceof De?Ie.message:"挂载保存失败,请重试")}finally{Y(!1)}}async function se(){if(!(E===""||V)){M(!0),w(null);try{await cr(vA(t,E)),Oe.getState().showToast("已关联大纲节点"),O(!1),await G()}catch(ge){if(ge instanceof De&&ge.code==="RELATION_EXISTS"){w("这条关系已经存在");return}w(ge instanceof De?ge.message:"关联失败,请重试")}finally{M(!1)}}}async function le(){if(L)try{await Ca(L.id),Oe.getState().showToast("已取消关联"),C(null),await G()}catch(ge){throw ge}}async function He(){if(r)try{const ge=await iu("event",t),ie=[];ge.cascaded.relations>0&&ie.push(`${ge.cascaded.relations} 条关联`),ge.cascaded.deltas>0&&ie.push(`${ge.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${ie.length>0?`(含 ${ie.join("、")})`:""}`),on("/timeline")}catch(ge){Oe.getState().showToast(ge instanceof De?ge.message:"删除失败,请重试","error")}}if(d)return i.jsx("section",{children:i.jsx(Bn,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(pe,{variant:"outline",type:"button",onClick:()=>on("/timeline"),children:"返回列表"})]}),children:"该事件不存在或已被删除"})});const ze=r===null?[]:yA(r.relations,t),Re=p===null?[]:$m(p.tagsInput,Q);function Ue(ge){y(ie=>ie&&{...ie,tagsInput:Xm(ie.tagsInput,ge)})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(rh,{items:[{label:"时间轴",href:"/timeline"},{label:r?.name??"…"}]}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:r?.name??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(pe,{variant:"outline",type:"button",onClick:()=>{K()},disabled:!r||x,children:x?"保存中…":"保存"}),i.jsx(pe,{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:["创建于 ",ds(r.createdAt)," · 更新于 ",ds(r.updatedAt)]}),a&&!r&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:5},(ge,ie)=>i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"},ie))}),i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:3},(ge,ie)=>i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"},ie))})]}),!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(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{G()},children:"重试"})]}),r&&p&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsx("h2",{className:"mb-3 text-sm font-semibold text-foreground",children:"基础信息"}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:p.name,onChange:ge=>y(ie=>ie&&{...ie,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(ie=>ie&&{...ie,description:ge.target.value}),rows:3,placeholder:"事件发生了什么",className:Ne(Xn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"挂载时间点"}),ue===null?W?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["挂载数据加载失败",i.jsx(pe,{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:bm(r.relations,t)??"",onChange:ge=>{xe(ge.target.value)},disabled:D,className:Ne(Ne(Xn,"w-full"),bm(r.relations,t)===null&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"未挂载"}),ue.map(ge=>i.jsx("option",{value:ge.id,children:ge.name},ge.id))]}),D&&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(Mt,{value:p.tagsInput,onChange:ge=>y(ie=>ie&&{...ie,tagsInput:ge.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Km,{suggestions:Re,visible:p.tagsInput.trim()!=="",onPick:Ue})]}),j&&i.jsx("p",{className:"text-sm text-destructive",children:j})]})]}),i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"关联节点(occurs_in)"}),i.jsxs(IS,{open:k,onOpenChange:ge=>{ge?(T(""),w(null),O(!0)):V||O(!1)},children:[i.jsx(BS,{render:i.jsx(pe,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",children:"+ 关联场景/章节"})}),i.jsxs(HS,{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"大纲节点"}),i.jsx(RA,{value:E,onChange:T,nodeOptions:U,placeholder:"请选择节点"})]}),_&&i.jsx("p",{className:"text-sm text-destructive",children:_}),i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(pe,{variant:"outline",type:"button",size:"sm",onClick:()=>O(!1),disabled:V,children:"取消"}),i.jsx(pe,{type:"button",size:"sm",onClick:()=>{se()},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:()=>on(`/outline/${ge.targetId}`),title:"跳转大纲定位",className:"min-w-0 flex-1 truncate rounded-md border border-border px-1.5 py-0.5 text-left text-foreground hover:bg-muted hover:text-foreground",children:ge.targetName??ge.targetId}),i.jsx(pe,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>C(ge),children:"取消关联"})]},ge.id))})]})]}),L&&i.jsx(Da,{title:"取消关联",description:`取消《${L.targetName??L.targetId}》与事件的关联?物理删除不可恢复,可重新建立。`,confirmLabel:"取消关联",danger:!0,onConfirm:le,onClose:()=>C(null)})]})}function RA({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:Ne(Ne(Xn,"w-full"),t===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:a}),o.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function OA(t,r){const o=[];return t>0&&o.push(`${t} 条关系`),r>0&&o.push(`${r} 条变更记录`),o.length>0?`已还原,连带恢复 ${o.join("、")}`:"已还原"}function kA(t){return t>0?`已还原(含 ${t} 个子节点)`:"已还原"}function _A(t){return/软删祖先\s+([^\s,,]+)/.exec(t)?.[1]??null}const Wv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},MA={volume:"卷",chapter:"章",scene:"场"};function e0({label:t}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:t})}function AA(){const[t,r]=h.useState(null),[o,a]=h.useState(!1),[c,d]=h.useState(null),[m,g]=h.useState(0);zs(()=>g(w=>w+1));const[b,p]=h.useState(null),[y,x]=h.useState(null);h.useEffect(()=>{let w=!1;return a(!0),d(null),n2().then(V=>{w||r(V)}).catch(V=>{w||d(V instanceof De?V.code:ut)}).finally(()=>{w||a(!1)}),()=>{w=!0}},[m]);async function S(){g(w=>w+1)}function j(w){return w instanceof De&&(w.code==="ENTITY_NOT_FOUND"||w.code==="OUTLINE_NODE_NOT_FOUND")}function N(w){Oe.getState().showError(w instanceof De?w.code:ut,w instanceof De?w.message:"操作失败,请重试")}async function k(w){try{const V=await s2(w.type,w.id);Oe.getState().showToast(OA(V.restoredRelations,V.restoredDeltas)),await S()}catch(V){if(j(V)){Oe.getState().showToast("该对象已不存在","error"),await S();return}N(V)}}async function O(w){x(null);try{const V=await Ny(w.id);Oe.getState().showToast(kA(V.restoredChildren)),await S(),Pe.getState().loadOutline()}catch(V){if(V instanceof De&&V.code==="OUTLINE_ANCESTOR_DELETED"){const M=_A(V.message);if(M===null){Oe.getState().showError("OUTLINE_ANCESTOR_DELETED","上级节点也在回收站,请先还原上级");return}x({node:w,ancestorId:M,ancestorName:t?.nodes.find(L=>L.id===M)?.title??M});return}if(j(V)){Oe.getState().showToast("该对象已不存在","error"),await S();return}N(V)}}async function E(){const w=y;if(w)try{await Ny(w.ancestorId),Pe.getState().loadOutline(),await O(w.node)}catch(V){if(j(V)){Oe.getState().showToast("该对象已不存在","error"),x(null),await S();return}N(V)}}async function T(){if(b)try{b.kind==="entity"?await r2(b.item.type,b.item.id):(await o2(b.item.id),Pe.getState().loadOutline()),Oe.getState().showToast("已彻底删除"),await S()}catch(w){if(j(w)){Oe.getState().showToast("该对象已不存在","error"),await S();return}throw w}}const _=t!==null&&t.entities.length===0&&t.nodes.length===0;return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"回收站"}),i.jsx(pe,{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:Ne(ni,"mb-3"),children:[c===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"回收站加载失败,请重试。",i.jsx(pe,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{S()},children:"重试"})]}),o&&t===null&&c===null&&i.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:[0,1].map(w=>i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsx("div",{className:"h-9 animate-pulse bg-muted/60"}),Array.from({length:3},(V,M)=>i.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-3 py-2.5 last:border-0",children:[i.jsx("div",{className:"h-4 w-10 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 flex-1 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-16 animate-pulse rounded bg-muted"})]},M))]},w))}),!o&&_&&i.jsx(Bn,{children:"回收站是空的"}),t!==null&&!_&&i.jsxs("div",{className:"grid items-start gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsxs("div",{className:"border-b border-border bg-muted/40 px-3 py-2 text-sm font-medium text-foreground",children:["实体 (",t.entities.length,")"]}),t.entities.length===0?i.jsx("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"暂无实体"}):i.jsx("ul",{className:"divide-y divide-border/70",children:t.entities.map(w=>i.jsxs("li",{className:"flex items-center gap-2 px-3 py-2",children:[i.jsx(e0,{label:Wv[w.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:w.name,children:w.name}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(w.deletedAt)}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>{k(w)},children:"还原"}),i.jsx(pe,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>p({kind:"entity",item:w}),children:"彻底删除"})]})]},w.id))})]}),i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsxs("div",{className:"border-b border-border bg-muted/40 px-3 py-2 text-sm font-medium text-foreground",children:["大纲节点 (",t.nodes.length,")"]}),t.nodes.length===0?i.jsx("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"暂无节点"}):i.jsx("ul",{className:"divide-y divide-border/70",children:t.nodes.map(w=>i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(e0,{label:MA[w.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:w.title,children:w.title}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(w.deletedAt)}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[i.jsx(pe,{variant:"outline",size:"xs",type:"button",onClick:()=>{O(w)},children:"还原"}),i.jsx(pe,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>p({kind:"node",item:w}),children:"彻底删除"})]})]}),y?.node.id===w.id&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm",children:[i.jsxs("span",{className:"text-destructive",children:["上级节点《",y.ancestorName,"》也在回收站,请先还原上级"]}),i.jsxs(pe,{variant:"outline",size:"xs",type:"button",className:"border-destructive/40 text-destructive hover:bg-destructive/10",onClick:()=>{E()},children:["还原上级《",y.ancestorName,"》"]})]})]},w.id))})]})]}),b&&i.jsx(Da,{title:"彻底删除",description:b.kind==="entity"?`将彻底删除《${b.item.name}》(${Wv[b.item.type]})及其关联关系、变更记录,不可恢复。`:`将彻底删除《${b.item.title}》及整棵子树、关联关系、变更记录,不可恢复。`,confirmLabel:"确认彻底删除",danger:!0,onConfirm:T,onClose:()=>p(null)})]})}function ym(t,r=new Date){const o=new Date(t);if(Number.isNaN(o.getTime()))return t;const a=m=>String(m).padStart(2,"0"),c=`${a(o.getHours())}:${a(o.getMinutes())}:${a(o.getSeconds())}`;return o.getFullYear()===r.getFullYear()?`${a(o.getMonth()+1)}-${a(o.getDate())} ${c}`:`${String(o.getFullYear()).slice(-2)}-${a(o.getMonth()+1)}-${a(o.getDate())} ${c}`}function t0(t){return!Number.isFinite(t)||t<0?"0 B":t<1024?`${t} B`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}const n0=[{value:null,label:"关闭"},...Ej.map(t=>({value:t,label:`每 ${t} 分钟`}))],s0={auto:"自动",manual:"手动"};let Ml=0;function DA(){const t=Oe(D=>D.showToast),r=Oe(D=>D.showError),o=Oe(D=>D.notifyDataChanged),a=Pe(D=>D.config),c=Pe(D=>D.configLoading),d=Pe(D=>D.updateConfig),m=Pe(D=>D.loadConfig),g=Pe(D=>D.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),[T,_]=h.useState(null),[w,V]=h.useState(""),[M,L]=h.useState(null),C=h.useRef(M);C.current=M;async function Q(){if(Pe.getState().config===null)return;const D=++Ml;j(!0),k(null);try{const Y=await b2();if(D!==Ml)return;x(Y.backups)}catch(Y){if(D!==Ml)return;const H=Y instanceof De?Y.code:ut;k(H)}finally{D===Ml&&j(!1)}}const ne=a?.id??null,ue=h.useRef(null);h.useEffect(()=>{if(ne===null){Ml++,x(null),k(null),_(null),L(null),ue.current=null;return}ue.current!==ne&&(ue.current=ne,Q())},[ne]);async function ee(D){if(a===null)return;const Y=D==="null"?null:Number(D);if(Y!==a.backupFrequencyMinutes){p(!0);try{await d({backup_frequency_minutes:Y}),t(Y===null?"已关闭自动备份":`自动备份频率已设为每 ${Y} 分钟`)}catch(H){H instanceof De&&H.code===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,频率未保存"):t("频率保存失败,请重试","error")}finally{p(!1)}}}async function X(){if(!(a===null||O)){E(!0);try{const D=w.trim();await y2(D.length>0?D:void 0),V(""),t(D.length>0?`已备份「${D}」`:"已备份"),await Q()}catch(D){t(D instanceof De&&D.code!==ut?D.message:"无法连接服务,备份失败","error")}finally{E(!1)}}}async function te(){if(T===null)return;const D=await v2(T.fileName);t(`已恢复备份,覆盖前状态已自动快照(${D.snapshot.fileName})`),await Promise.all([m(),g()]),o(),St.getState().clearSessions(),St.getState().loadSessions(),Q()}async function W(){if(M===null||M.saving)return;const D=y?.find(H=>H.fileName===M.fileName)?.name??"",Y=M.value.trim();if(Y===D){L(null);return}L({...M,saving:!0,error:null});try{await S2(M.fileName,M.value),L(null),t(Y.length>0?`已重命名「${Y}」`:"已清除备份名称"),await Q()}catch(H){const F=H instanceof De&&H.code!==ut?H.message:"无法连接服务,重命名失败";if(C.current===null){t(F,"error");return}L(A=>A===null?A:{...A,saving:!1,error:F})}}const z=a===null?"":n0.some(D=>String(D.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:z,onChange:D=>{ee(D.target.value)},disabled:a===null||b,"aria-label":"自动备份频率",className:"rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",children:n0.map(D=>i.jsx("option",{value:String(D.value),children:D.label},String(D.value)))}),i.jsx("input",{autoComplete:"off",value:w,onChange:D=>V(D.target.value),maxLength:iy,placeholder:"备份名称(可选)","aria-label":"备份名称(可选)",disabled:a===null,className:"w-36 rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground/60 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs(pe,{onClick:()=>{X()},disabled:a===null||O,type:"button",children:[O?i.jsx(Yl,{className:"size-4 animate-spin"}):null,"立即备份"]})]}),a===null&&!c&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground/70",children:"打开项目后可用"}),a!==null&&i.jsxs("div",{className:"mt-3",children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"历史备份"}),i.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:S&&y===null?i.jsxs("div",{className:"space-y-1 p-2",children:[i.jsx("div",{className:Ne(_t,"h-7 rounded-md")}),i.jsx("div",{className:Ne(_t,"h-7 rounded-md")})]}):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(pe,{variant:"outline",size:"xs",onClick:()=>{Q()},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(D=>{const Y=M!==null&&M.fileName===D.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:D.fileName,children:[i.jsx("span",{className:"text-muted-foreground",children:ym(D.createdAt)}),i.jsx("span",{className:D.kind==="manual"?"ml-1.5 rounded border border-primary/40 px-1 text-[10px] leading-4 text-primary":"ml-1.5 rounded border border-border px-1 text-[10px] leading-4 text-muted-foreground",children:s0[D.kind]}),!Y&&D.name!==void 0?i.jsx("span",{className:"ml-1.5 font-medium text-foreground",children:D.name}):null]}),Y?null:i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:t0(D.size)}),Y?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:iy,disabled:M.saving,autoFocus:!0,"aria-label":"备份新名称",className:"w-36 shrink-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none placeholder:text-muted-foreground/60 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsx(pe,{size:"icon-xs",variant:"ghost",onClick:()=>{W()},disabled:M.saving,onMouseDown:H=>H.preventDefault(),"aria-label":"确认重命名",title:"确认(Enter)",children:M.saving?i.jsx(Yl,{className:"size-3 animate-spin"}):i.jsx(i0,{className:"size-3"})}),i.jsx(pe,{size:"icon-xs",variant:"ghost",onClick:()=>L(null),disabled:M.saving,onMouseDown:H=>H.preventDefault(),"aria-label":"取消重命名",title:"取消(Esc)",children:i.jsx(hs,{className:"size-3"})})]}):i.jsxs(i.Fragment,{children:[i.jsx(pe,{size:"icon-xs",variant:"ghost",onClick:()=>L({fileName:D.fileName,value:D.name??"",saving:!1,error:null}),"aria-label":`重命名备份 ${ym(D.createdAt)}`,title:"重命名",children:i.jsx(ei,{className:"size-3"})}),i.jsx(pe,{variant:"outline",size:"xs",onClick:()=>_(D),children:"加载"})]})]}),Y&&M.error!==null?i.jsx("p",{className:"mt-1 text-xs text-destructive",children:M.error}):null]},D.fileName)})}):null})]}),T!==null&&i.jsx(Da,{title:"加载备份",description:`${ym(T.createdAt)} · ${s0[T.kind]}${T.name!==void 0?` · ${T.name}`:""} · ${t0(T.size)}。将覆盖当前项目数据;覆盖前会自动备份当前状态(可回退)`,confirmLabel:"确认加载",danger:!0,onConfirm:te,onClose:()=>_(null)})]})}function Al(t){return t instanceof De?t.code:ut}function zA(){const t=Oe(H=>H.showToast),r=Oe(H=>H.showError),o=Oe(H=>H.notifyDataChanged),a=Pe(H=>H.config),c=Pe(H=>H.configLoading),d=Pe(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),[T,_]=h.useState(null),[w,V]=h.useState(null),[M,L]=h.useState(""),[C,Q]=h.useState(null),[ne,ue]=h.useState(!1),[ee,X]=h.useState(null);async function te(){try{const H=await N2();p(H.model),x(H.apiKeySet),j(H.apiKeyMasked)}catch(H){r(Al(H),"读取 LLM 配置失败")}finally{g(!1)}}h.useEffect(()=>{te()},[]),h.useEffect(()=>{const H=Pe.getState();H.config===null&&!H.configLoading&&H.loadConfig()},[]),h.useEffect(()=>{if(a===null){Q(null);return}a.id!==C&&(L(a.prompt),Q(a.id))},[a,C]);async function W(){X(null),ue(!0);try{const H=M.trim();await d({prompt:H}),L(H),t("提示词已保存,仅影响新请求"),o()}catch(H){Al(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,提示词未保存"):X("保存失败,请重试")}finally{ue(!1)}}async function z(){if(!b.trim()){_("模型名不能为空");return}_(null),E(!0);try{await Gf({model:b.trim()}),t("已保存,仅影响新请求"),p(b.trim())}catch(H){Al(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,模型配置未保存"):_("保存失败,请重试")}finally{E(!1)}}async function D(){if(!N.trim()){V("请输入新 key");return}V(null),E(!0);try{await Gf({api_key:N.trim()}),k(""),t("Key 已保存,仅影响新请求"),await te()}catch(H){Al(H)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未保存"):V("保存失败,请重试")}finally{E(!1)}}async function Y(){V(null),E(!0);try{await Gf({api_key:""}),k(""),t("Key 已清除"),await te()}catch(H){Al(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-muted-foreground",children:"加载中…"}):i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"AI 模型"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground",children:"默认 deepseek-v4-flash(可在服务端设置页或环境变量覆盖)"}),i.jsxs("div",{className:"flex max-w-sm gap-2",children:[i.jsx(Mt,{value:b,onChange:H=>p(H.target.value),placeholder:"deepseek-v4-flash"}),i.jsx(pe,{onClick:()=>{z()},disabled:O,type:"button",children:"保存设置"})]}),T&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:T})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"API Key"}),i.jsxs("p",{className:"mb-2 text-xs text-muted-foreground",children:["状态:",y?`已配置(${S??""})`:"未配置"]}),i.jsxs("div",{className:"flex max-w-sm gap-2",children:[i.jsx(Mt,{value:N,onChange:H=>k(H.target.value),placeholder:"输入新 key(覆盖旧 key)"}),i.jsx(pe,{onClick:()=>{D()},disabled:O,type:"button",children:"保存 Key"}),i.jsx(pe,{variant:"outline",onClick:()=>{Y()},disabled:O,type:"button",children:"清除 Key"})]}),w&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:w})]}),i.jsxs("div",{className:"rounded-md border border-border bg-muted/50 p-3 text-xs leading-relaxed text-muted-foreground",children:[i.jsx("p",{children:"· key 保存在用户目录配置文件(~/.ai-editor/config.json),不写入项目文件(决策 17)"}),i.jsx("p",{children:"· 环境变量 DEEPSEEK_API_KEY 优先于此处配置;保存的 key 仅影响新请求"})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"项目提示词"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground",children:"注入 AI 上下文「## 项目设定」段(每轮有效);承载项目级规则/行业要求;空 = 整段跳过"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground/70",children:"建议用 ### 及以下层级的小标题组织内容(如「### 写作规则」);避免使用 ## 顶层标题(与系统分段标题冲突)"}),i.jsx("textarea",{value:M,onChange: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(pe,{onClick:()=>{W()},disabled:ne||a===null||a.id!==C,type:"button",children:"保存提示词"}),a===null&&!c&&i.jsx("p",{className:"text-xs text-muted-foreground/70",children:"打开项目后可用"})]}),ee&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:ee})]}),i.jsx(DA,{})]})]})}function LA(t){const[r,o,a]=t.segments;switch(r){case void 0:return i.jsx(Tv,{});case"outline":return o!==void 0?i.jsx(rM,{nodeId:o},o):i.jsx(M3,{});case"canvas":return i.jsx(EM,{});case"entities":{if(o==="relations")return i.jsx(hm,{type:"relations"});if(o==="setting-tree")return i.jsx(hm,{type:"setting-tree"});const c=o!==void 0&&ka.includes(o)?o:"character";return a!==void 0?i.jsx(XM,{type:c,id:a},`${c}:${a}`):i.jsx(hm,{type:c})}case"hooks":return i.jsx(dA,{});case"timeline":return o!==void 0?i.jsx(CA,{id:o},o):i.jsx(TA,{});case"trash":return i.jsx(AA,{});case"settings":return i.jsx(zA,{});default:return i.jsx(Tv,{})}}function IA(){const t=jj();return i.jsx(N3,{route:t,children:LA(t)})}const JS=document.getElementById("root");if(!JS)throw new Error("#root 元素缺失(index.html)");vj.createRoot(JS).render(i.jsx(h.StrictMode,{children:i.jsx(j3,{children:i.jsx(IA,{})})}));
|