@whispering233/ai-editor-server 0.0.14 → 0.0.17

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.
Files changed (41) hide show
  1. package/client-dist/assets/index-CEFfLBzA.js +104 -0
  2. package/client-dist/assets/index-CpKl54qW.css +1 -0
  3. package/client-dist/index.html +2 -2
  4. package/dist/backup.d.ts +25 -3
  5. package/dist/backup.d.ts.map +1 -1
  6. package/dist/backup.js +110 -13
  7. package/dist/backup.js.map +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/middleware/project.d.ts +3 -2
  12. package/dist/middleware/project.d.ts.map +1 -1
  13. package/dist/middleware/project.js +8 -4
  14. package/dist/middleware/project.js.map +1 -1
  15. package/dist/reference-files.d.ts +87 -0
  16. package/dist/reference-files.d.ts.map +1 -0
  17. package/dist/reference-files.js +267 -0
  18. package/dist/reference-files.js.map +1 -0
  19. package/dist/routes/chat.d.ts.map +1 -1
  20. package/dist/routes/chat.js +25 -8
  21. package/dist/routes/chat.js.map +1 -1
  22. package/dist/routes/entity.d.ts.map +1 -1
  23. package/dist/routes/entity.js +88 -3
  24. package/dist/routes/entity.js.map +1 -1
  25. package/dist/routes/project.d.ts.map +1 -1
  26. package/dist/routes/project.js +45 -5
  27. package/dist/routes/project.js.map +1 -1
  28. package/dist/routes/reference.d.ts +4 -0
  29. package/dist/routes/reference.d.ts.map +1 -0
  30. package/dist/routes/reference.js +24 -0
  31. package/dist/routes/reference.js.map +1 -0
  32. package/dist/routes/settings.d.ts +5 -0
  33. package/dist/routes/settings.d.ts.map +1 -1
  34. package/dist/routes/settings.js +16 -0
  35. package/dist/routes/settings.js.map +1 -1
  36. package/dist/routes/trash.d.ts.map +1 -1
  37. package/dist/routes/trash.js +25 -1
  38. package/dist/routes/trash.js.map +1 -1
  39. package/package.json +6 -6
  40. package/client-dist/assets/index-BWzAf4pu.css +0 -1
  41. package/client-dist/assets/index-DXoI5xoH.js +0 -14
@@ -1,14 +0,0 @@
1
- function FN(n,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 n)){const d=Object.getOwnPropertyDescriptor(a,c);d&&Object.defineProperty(n,c,d.get?d:{enumerable:!0,get:()=>a[c]})}}}return Object.freeze(Object.defineProperty(n,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 p of d.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&a(p)}).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 Gv(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Rf={exports:{}},yl={};var Vb;function qN(){if(Vb)return yl;Vb=1;var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(a,c,d){var p=null;if(d!==void 0&&(p=""+d),c.key!==void 0&&(p=""+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:n,type:a,key:p,ref:c!==void 0?c:null,props:d}}return yl.Fragment=r,yl.jsx=o,yl.jsxs=o,yl}var Fb;function GN(){return Fb||(Fb=1,Rf.exports=qN()),Rf.exports}var i=GN(),kf={exports:{}},et={};var qb;function $N(){if(qb)return et;qb=1;var n=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"),p=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),S=Symbol.iterator;function N(M){return M===null||typeof M!="object"?null:(M=S&&M[S]||M["@@iterator"],typeof M=="function"?M:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,_={};function E(M,B,I){this.props=M,this.context=B,this.refs=_,this.updater=I||j}E.prototype.isReactComponent={},E.prototype.setState=function(M,B){if(typeof M!="object"&&typeof M!="function"&&M!=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,M,B,"setState")},E.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function T(){}T.prototype=E.prototype;function C(M,B,I){this.props=M,this.context=B,this.refs=_,this.updater=I||j}var k=C.prototype=new T;k.constructor=C,w(k,E.prototype),k.isPureReactComponent=!0;var F=Array.isArray;function A(){}var L={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function X(M,B,I){var H=I.ref;return{$$typeof:n,type:M,key:B,ref:H!==void 0?H:null,props:I}}function ne(M,B){return X(M.type,B,M.props)}function fe(M){return typeof M=="object"&&M!==null&&M.$$typeof===n}function ee(M){var B={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(I){return B[I]})}var K=/\/+/g;function te(M,B){return typeof M=="object"&&M!==null&&M.key!=null?ee(""+M.key):B.toString(36)}function W(M){switch(M.status){case"fulfilled":return M.value;case"rejected":throw M.reason;default:switch(typeof M.status=="string"?M.then(A,A):(M.status="pending",M.then(function(B){M.status==="pending"&&(M.status="fulfilled",M.value=B)},function(B){M.status==="pending"&&(M.status="rejected",M.reason=B)})),M.status){case"fulfilled":return M.value;case"rejected":throw M.reason}}throw M}function D(M,B,I,H,q){var J=typeof M;(J==="undefined"||J==="boolean")&&(M=null);var he=!1;if(M===null)he=!0;else switch(J){case"bigint":case"string":case"number":he=!0;break;case"object":switch(M.$$typeof){case n:case r:he=!0;break;case y:return he=M._init,D(he(M._payload),B,I,H,q)}}if(he)return q=q(M),he=H===""?"."+te(M,0):H,F(q)?(I="",he!=null&&(I=he.replace(K,"$&/")+"/"),D(q,B,I,"",function(Ie){return Ie})):q!=null&&(fe(q)&&(q=ne(q,I+(q.key==null||M&&M.key===q.key?"":(""+q.key).replace(K,"$&/")+"/")+he)),B.push(q)),1;he=0;var re=H===""?".":H+":";if(F(M))for(var ce=0;ce<M.length;ce++)H=M[ce],J=re+te(H,ce),he+=D(H,B,I,J,q);else if(ce=N(M),typeof ce=="function")for(M=ce.call(M),ce=0;!(H=M.next()).done;)H=H.value,J=re+te(H,ce++),he+=D(H,B,I,J,q);else if(J==="object"){if(typeof M.then=="function")return D(W(M),B,I,H,q);throw B=String(M),Error("Objects are not valid as a React child (found: "+(B==="[object Object]"?"object with keys {"+Object.keys(M).join(", ")+"}":B)+"). If you meant to render a collection of children, use an array instead.")}return he}function z(M,B,I){if(M==null)return M;var H=[],q=0;return D(M,H,"","",function(J){return B.call(I,J,q++)}),H}function P(M){if(M._status===-1){var B=M._result;B=B(),B.then(function(I){(M._status===0||M._status===-1)&&(M._status=1,M._result=I)},function(I){(M._status===0||M._status===-1)&&(M._status=2,M._result=I)}),M._status===-1&&(M._status=0,M._result=B)}if(M._status===1)return M._result.default;throw M._result}var U=typeof reportError=="function"?reportError:function(M){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var B=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof M=="object"&&M!==null&&typeof M.message=="string"?String(M.message):String(M),error:M});if(!window.dispatchEvent(B))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",M);return}console.error(M)},V={map:z,forEach:function(M,B,I){z(M,function(){B.apply(this,arguments)},I)},count:function(M){var B=0;return z(M,function(){B++}),B},toArray:function(M){return z(M,function(B){return B})||[]},only:function(M){if(!fe(M))throw Error("React.Children.only expected to receive a single React element child.");return M}};return et.Activity=x,et.Children=V,et.Component=E,et.Fragment=o,et.Profiler=c,et.PureComponent=C,et.StrictMode=a,et.Suspense=b,et.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=L,et.__COMPILER_RUNTIME={__proto__:null,c:function(M){return L.H.useMemoCache(M)}},et.cache=function(M){return function(){return M.apply(null,arguments)}},et.cacheSignal=function(){return null},et.cloneElement=function(M,B,I){if(M==null)throw Error("The argument must be a React element, but you passed "+M+".");var H=w({},M.props),q=M.key;if(B!=null)for(J in B.key!==void 0&&(q=""+B.key),B)!O.call(B,J)||J==="key"||J==="__self"||J==="__source"||J==="ref"&&B.ref===void 0||(H[J]=B[J]);var J=arguments.length-2;if(J===1)H.children=I;else if(1<J){for(var he=Array(J),re=0;re<J;re++)he[re]=arguments[re+2];H.children=he}return X(M.type,q,H)},et.createContext=function(M){return M={$$typeof:p,_currentValue:M,_currentValue2:M,_threadCount:0,Provider:null,Consumer:null},M.Provider=M,M.Consumer={$$typeof:d,_context:M},M},et.createElement=function(M,B,I){var H,q={},J=null;if(B!=null)for(H in B.key!==void 0&&(J=""+B.key),B)O.call(B,H)&&H!=="key"&&H!=="__self"&&H!=="__source"&&(q[H]=B[H]);var he=arguments.length-2;if(he===1)q.children=I;else if(1<he){for(var re=Array(he),ce=0;ce<he;ce++)re[ce]=arguments[ce+2];q.children=re}if(M&&M.defaultProps)for(H in he=M.defaultProps,he)q[H]===void 0&&(q[H]=he[H]);return X(M,J,q)},et.createRef=function(){return{current:null}},et.forwardRef=function(M){return{$$typeof:g,render:M}},et.isValidElement=fe,et.lazy=function(M){return{$$typeof:y,_payload:{_status:-1,_result:M},_init:P}},et.memo=function(M,B){return{$$typeof:m,type:M,compare:B===void 0?null:B}},et.startTransition=function(M){var B=L.T,I={};L.T=I;try{var H=M(),q=L.S;q!==null&&q(I,H),typeof H=="object"&&H!==null&&typeof H.then=="function"&&H.then(A,U)}catch(J){U(J)}finally{B!==null&&I.types!==null&&(B.types=I.types),L.T=B}},et.unstable_useCacheRefresh=function(){return L.H.useCacheRefresh()},et.use=function(M){return L.H.use(M)},et.useActionState=function(M,B,I){return L.H.useActionState(M,B,I)},et.useCallback=function(M,B){return L.H.useCallback(M,B)},et.useContext=function(M){return L.H.useContext(M)},et.useDebugValue=function(){},et.useDeferredValue=function(M,B){return L.H.useDeferredValue(M,B)},et.useEffect=function(M,B){return L.H.useEffect(M,B)},et.useEffectEvent=function(M){return L.H.useEffectEvent(M)},et.useId=function(){return L.H.useId()},et.useImperativeHandle=function(M,B,I){return L.H.useImperativeHandle(M,B,I)},et.useInsertionEffect=function(M,B){return L.H.useInsertionEffect(M,B)},et.useLayoutEffect=function(M,B){return L.H.useLayoutEffect(M,B)},et.useMemo=function(M,B){return L.H.useMemo(M,B)},et.useOptimistic=function(M,B){return L.H.useOptimistic(M,B)},et.useReducer=function(M,B,I){return L.H.useReducer(M,B,I)},et.useRef=function(M){return L.H.useRef(M)},et.useState=function(M){return L.H.useState(M)},et.useSyncExternalStore=function(M,B,I){return L.H.useSyncExternalStore(M,B,I)},et.useTransition=function(){return L.H.useTransition()},et.version="19.2.8",et}var Gb;function Kl(){return Gb||(Gb=1,kf.exports=$N()),kf.exports}var h=Kl();const Me=Gv(h),XN=FN({__proto__:null,default:Me},[h]);var _f={exports:{}},vl={},Af={exports:{}},Mf={};var $b;function KN(){return $b||($b=1,(function(n){function r(D,z){var P=D.length;D.push(z);e:for(;0<P;){var U=P-1>>>1,V=D[U];if(0<c(V,z))D[U]=z,D[P]=V,P=U;else break e}}function o(D){return D.length===0?null:D[0]}function a(D){if(D.length===0)return null;var z=D[0],P=D.pop();if(P!==z){D[0]=P;e:for(var U=0,V=D.length,M=V>>>1;U<M;){var B=2*(U+1)-1,I=D[B],H=B+1,q=D[H];if(0>c(I,P))H<V&&0>c(q,I)?(D[U]=q,D[H]=P,U=H):(D[U]=I,D[B]=P,U=B);else if(H<V&&0>c(q,P))D[U]=q,D[H]=P,U=H;else break e}}return z}function c(D,z){var P=D.sortIndex-z.sortIndex;return P!==0?P:D.id-z.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;n.unstable_now=function(){return d.now()}}else{var p=Date,g=p.now();n.unstable_now=function(){return p.now()-g}}var b=[],m=[],y=1,x=null,S=3,N=!1,j=!1,w=!1,_=!1,E=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function k(D){for(var z=o(m);z!==null;){if(z.callback===null)a(m);else if(z.startTime<=D)a(m),z.sortIndex=z.expirationTime,r(b,z);else break;z=o(m)}}function F(D){if(w=!1,k(D),!j)if(o(b)!==null)j=!0,A||(A=!0,ee());else{var z=o(m);z!==null&&W(F,z.startTime-D)}}var A=!1,L=-1,O=5,X=-1;function ne(){return _?!0:!(n.unstable_now()-X<O)}function fe(){if(_=!1,A){var D=n.unstable_now();X=D;var z=!0;try{e:{j=!1,w&&(w=!1,T(L),L=-1),N=!0;var P=S;try{t:{for(k(D),x=o(b);x!==null&&!(x.expirationTime>D&&ne());){var U=x.callback;if(typeof U=="function"){x.callback=null,S=x.priorityLevel;var V=U(x.expirationTime<=D);if(D=n.unstable_now(),typeof V=="function"){x.callback=V,k(D),z=!0;break t}x===o(b)&&a(b),k(D)}else a(b);x=o(b)}if(x!==null)z=!0;else{var M=o(m);M!==null&&W(F,M.startTime-D),z=!1}}break e}finally{x=null,S=P,N=!1}z=void 0}}finally{z?ee():A=!1}}}var ee;if(typeof C=="function")ee=function(){C(fe)};else if(typeof MessageChannel<"u"){var K=new MessageChannel,te=K.port2;K.port1.onmessage=fe,ee=function(){te.postMessage(null)}}else ee=function(){E(fe,0)};function W(D,z){L=E(function(){D(n.unstable_now())},z)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(D){D.callback=null},n.unstable_forceFrameRate=function(D){0>D||125<D?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):O=0<D?Math.floor(1e3/D):5},n.unstable_getCurrentPriorityLevel=function(){return S},n.unstable_next=function(D){switch(S){case 1:case 2:case 3:var z=3;break;default:z=S}var P=S;S=z;try{return D()}finally{S=P}},n.unstable_requestPaint=function(){_=!0},n.unstable_runWithPriority=function(D,z){switch(D){case 1:case 2:case 3:case 4:case 5:break;default:D=3}var P=S;S=D;try{return z()}finally{S=P}},n.unstable_scheduleCallback=function(D,z,P){var U=n.unstable_now();switch(typeof P=="object"&&P!==null?(P=P.delay,P=typeof P=="number"&&0<P?U+P:U):P=U,D){case 1:var V=-1;break;case 2:V=250;break;case 5:V=1073741823;break;case 4:V=1e4;break;default:V=5e3}return V=P+V,D={id:y++,callback:z,priorityLevel:D,startTime:P,expirationTime:V,sortIndex:-1},P>U?(D.sortIndex=P,r(m,D),o(b)===null&&D===o(m)&&(w?(T(L),L=-1):w=!0,W(F,P-U))):(D.sortIndex=V,r(b,D),j||N||(j=!0,A||(A=!0,ee()))),D},n.unstable_shouldYield=ne,n.unstable_wrapCallback=function(D){var z=S;return function(){var P=S;S=z;try{return D.apply(this,arguments)}finally{S=P}}}})(Mf)),Mf}var Xb;function QN(){return Xb||(Xb=1,Af.exports=KN()),Af.exports}var Df={exports:{}},Sn={};var Kb;function ZN(){if(Kb)return Sn;Kb=1;var n=Kl();function r(b){var m="https://react.dev/errors/"+b;if(1<arguments.length){m+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)m+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+b+"; visit "+m+" 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,m,y){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:c,key:x==null?null:""+x,children:b,containerInfo:m,implementation:y}}var p=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(b,m){if(b==="font")return"";if(typeof m=="string")return m==="use-credentials"?m:""}return Sn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,Sn.createPortal=function(b,m){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!m||m.nodeType!==1&&m.nodeType!==9&&m.nodeType!==11)throw Error(r(299));return d(b,m,null,y)},Sn.flushSync=function(b){var m=p.T,y=a.p;try{if(p.T=null,a.p=2,b)return b()}finally{p.T=m,a.p=y,a.d.f()}},Sn.preconnect=function(b,m){typeof b=="string"&&(m?(m=m.crossOrigin,m=typeof m=="string"?m==="use-credentials"?m:"":void 0):m=null,a.d.C(b,m))},Sn.prefetchDNS=function(b){typeof b=="string"&&a.d.D(b)},Sn.preinit=function(b,m){if(typeof b=="string"&&m&&typeof m.as=="string"){var y=m.as,x=g(y,m.crossOrigin),S=typeof m.integrity=="string"?m.integrity:void 0,N=typeof m.fetchPriority=="string"?m.fetchPriority:void 0;y==="style"?a.d.S(b,typeof m.precedence=="string"?m.precedence:void 0,{crossOrigin:x,integrity:S,fetchPriority:N}):y==="script"&&a.d.X(b,{crossOrigin:x,integrity:S,fetchPriority:N,nonce:typeof m.nonce=="string"?m.nonce:void 0})}},Sn.preinitModule=function(b,m){if(typeof b=="string")if(typeof m=="object"&&m!==null){if(m.as==null||m.as==="script"){var y=g(m.as,m.crossOrigin);a.d.M(b,{crossOrigin:y,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0})}}else m==null&&a.d.M(b)},Sn.preload=function(b,m){if(typeof b=="string"&&typeof m=="object"&&m!==null&&typeof m.as=="string"){var y=m.as,x=g(y,m.crossOrigin);a.d.L(b,y,{crossOrigin:x,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0,type:typeof m.type=="string"?m.type:void 0,fetchPriority:typeof m.fetchPriority=="string"?m.fetchPriority:void 0,referrerPolicy:typeof m.referrerPolicy=="string"?m.referrerPolicy:void 0,imageSrcSet:typeof m.imageSrcSet=="string"?m.imageSrcSet:void 0,imageSizes:typeof m.imageSizes=="string"?m.imageSizes:void 0,media:typeof m.media=="string"?m.media:void 0})}},Sn.preloadModule=function(b,m){if(typeof b=="string")if(m){var y=g(m.as,m.crossOrigin);a.d.m(b,{as:typeof m.as=="string"&&m.as!=="script"?m.as:void 0,crossOrigin:y,integrity:typeof m.integrity=="string"?m.integrity:void 0})}else a.d.m(b)},Sn.requestFormReset=function(b){a.d.r(b)},Sn.unstable_batchedUpdates=function(b,m){return b(m)},Sn.useFormState=function(b,m,y){return p.H.useFormState(b,m,y)},Sn.useFormStatus=function(){return p.H.useHostTransitionStatus()},Sn.version="19.2.8",Sn}var Qb;function $v(){if(Qb)return Df.exports;Qb=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),Df.exports=ZN(),Df.exports}var Zb;function JN(){if(Zb)return vl;Zb=1;var n=QN(),r=Kl(),o=$v();function a(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)t+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+e+"; visit "+t+" 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 t=e,s=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(s=t.return),e=t.return;while(e)}return t.tag===3?s:null}function p(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function g(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function b(e){if(d(e)!==e)throw Error(a(188))}function m(e){var t=e.alternate;if(!t){if(t=d(e),t===null)throw Error(a(188));return t!==e?null:e}for(var s=e,l=t;;){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),t;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:t}function y(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=y(e),t!==null)return t;e=e.sibling}return null}var x=Object.assign,S=Symbol.for("react.element"),N=Symbol.for("react.transitional.element"),j=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),C=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),F=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),X=Symbol.for("react.activity"),ne=Symbol.for("react.memo_cache_sentinel"),fe=Symbol.iterator;function ee(e){return e===null||typeof e!="object"?null:(e=fe&&e[fe]||e["@@iterator"],typeof e=="function"?e:null)}var K=Symbol.for("react.client.reference");function te(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===K?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case w:return"Fragment";case E:return"Profiler";case _:return"StrictMode";case F:return"Suspense";case A:return"SuspenseList";case X:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case j:return"Portal";case C:return e.displayName||"Context";case T:return(e._context.displayName||"Context")+".Consumer";case k:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case L:return t=e.displayName||null,t!==null?t:te(e.type)||"Memo";case O:t=e._payload,e=e._init;try{return te(e(t))}catch{}}return null}var W=Array.isArray,D=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P={pending:!1,data:null,method:null,action:null},U=[],V=-1;function M(e){return{current:e}}function B(e){0>V||(e.current=U[V],U[V]=null,V--)}function I(e,t){V++,U[V]=e.current,e.current=t}var H=M(null),q=M(null),J=M(null),he=M(null);function re(e,t){switch(I(J,t),I(q,e),I(H,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?fb(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=fb(t),e=mb(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(H),I(H,e)}function ce(){B(H),B(q),B(J)}function Ie(e){e.memoizedState!==null&&I(he,e);var t=H.current,s=mb(t,e.type);t!==s&&(I(q,e),I(H,s))}function _e(e){q.current===e&&(B(H),B(q)),he.current===e&&(B(he),hl._currentValue=P)}var we,Be;function ge(e){if(we===void 0)try{throw Error()}catch(s){var t=s.stack.trim().match(/\n( *(at )?)/);we=t&&t[1]||"",Be=-1<s.stack.indexOf(`
2
- at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
3
- `+we+e+Be}var ie=!1;function He(e,t){if(!e||ie)return"";ie=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(t){var Ne=function(){throw Error()};if(Object.defineProperty(Ne.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ne,[])}catch(pe){var de=pe}Reflect.construct(e,[],Ne)}else{try{Ne.call()}catch(pe){de=pe}e.call(Ne.prototype)}}else{try{throw Error()}catch(pe){de=pe}(Ne=e())&&typeof Ne.catch=="function"&&Ne.catch(function(){})}}catch(pe){if(pe&&de&&typeof pe.stack=="string")return[pe.stack,de.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
- `),le=R.split(`
5
- `);for(u=l=0;l<$.length&&!$[l].includes("DetermineComponentFrameRoot");)l++;for(;u<le.length&&!le[u].includes("DetermineComponentFrameRoot");)u++;if(l===$.length||u===le.length)for(l=$.length-1,u=le.length-1;1<=l&&0<=u&&$[l]!==le[u];)u--;for(;1<=l&&0<=u;l--,u--)if($[l]!==le[u]){if(l!==1||u!==1)do if(l--,u--,0>u||$[l]!==le[u]){var be=`
6
- `+$[l].replace(" at new "," at ");return e.displayName&&be.includes("<anonymous>")&&(be=be.replace("<anonymous>",e.displayName)),be}while(1<=l&&0<=u);break}}}finally{ie=!1,Error.prepareStackTrace=s}return(s=e?e.displayName||e.name:"")?ge(s):""}function Re(e,t){switch(e.tag){case 26:case 27:case 5:return ge(e.type);case 16:return ge("Lazy");case 13:return e.child!==t&&t!==null?ge("Suspense Fallback"):ge("Suspense");case 19:return ge("SuspenseList");case 0:case 15:return He(e.type,!1);case 11:return He(e.type.render,!1);case 1:return He(e.type,!0);case 31:return ge("Activity");default:return""}}function ze(e){try{var t="",s=null;do t+=Re(e,s),s=e,e=e.return;while(e);return t}catch(l){return`
7
- Error generating stack: `+l.message+`
8
- `+l.stack}}var ve=Object.prototype.hasOwnProperty,ue=n.unstable_scheduleCallback,ke=n.unstable_cancelCallback,Ae=n.unstable_shouldYield,Q=n.unstable_requestPaint,Y=n.unstable_now,G=n.unstable_getCurrentPriorityLevel,je=n.unstable_ImmediatePriority,xe=n.unstable_UserBlockingPriority,oe=n.unstable_NormalPriority,Ce=n.unstable_LowPriority,Ue=n.unstable_IdlePriority,Qe=n.log,ht=n.unstable_setDisableYieldValue,Mt=null,ut=null;function It(e){if(typeof Qe=="function"&&ht(e),ut&&typeof ut.setStrictMode=="function")try{ut.setStrictMode(Mt,e)}catch{}}var jt=Math.clz32?Math.clz32:ye,Ht=Math.log,Te=Math.LN2;function ye(e){return e>>>=0,e===0?32:31-(Ht(e)/Te|0)|0}var qe=256,Tt=262144,qt=4194304;function Ot(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ge(e,t,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=Ot(l):(v&=R,v!==0?u=Ot(v):s||(s=R&~e,s!==0&&(u=Ot(s))))):(R=l&~f,R!==0?u=Ot(R):v!==0?u=Ot(v):s||(s=l&~e,s!==0&&(u=Ot(s)))),u===0?0:t!==0&&t!==u&&(t&f)===0&&(f=u&-u,s=t&-t,f>=s||f===32&&(s&4194048)!==0)?t:u}function yt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Yt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Kt(){var e=qt;return qt<<=1,(qt&62914560)===0&&(qt=4194304),e}function Kn(e){for(var t=[],s=0;31>s;s++)t.push(e);return t}function Dt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ln(e,t,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,le=e.hiddenUpdates;for(s=v&~s;0<s;){var be=31-jt(s),Ne=1<<be;R[be]=0,$[be]=-1;var de=le[be];if(de!==null)for(le[be]=null,be=0;be<de.length;be++){var pe=de[be];pe!==null&&(pe.lane&=-536870913)}s&=~Ne}l!==0&&_s(e,l,0),f!==0&&u===0&&e.tag!==0&&(e.suspendedLanes|=f&~(v&~t))}function _s(e,t,s){e.pendingLanes|=t,e.suspendedLanes&=~t;var l=31-jt(t);e.entangledLanes|=t,e.entanglements[l]=e.entanglements[l]|1073741824|s&261930}function cn(e,t){var s=e.entangledLanes|=t;for(e=e.entanglements;s;){var l=31-jt(s),u=1<<l;u&t|e[l]&t&&(e[l]|=t),s&=~u}}function hn(e,t){var s=t&-t;return s=(s&42)!==0?1:fr(s),(s&(e.suspendedLanes|t))!==0?0:s}function fr(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function In(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function As(){var e=z.p;return e!==0?e:(e=window.event,e===void 0?32:Lb(e.type))}function si(e,t){var s=z.p;try{return z.p=e,t()}finally{z.p=s}}var hs=Math.random().toString(36).slice(2),nn="__reactFiber$"+hs,Cn="__reactProps$"+hs,Ro="__reactContainer$"+hs,yu="__reactEvents$"+hs,MS="__reactListeners$"+hs,DS="__reactHandles$"+hs,Wp="__reactResources$"+hs,ka="__reactMarker$"+hs;function vu(e){delete e[nn],delete e[Cn],delete e[yu],delete e[MS],delete e[DS]}function ko(e){var t=e[nn];if(t)return t;for(var s=e.parentNode;s;){if(t=s[Ro]||s[nn]){if(s=t.alternate,t.child!==null||s!==null&&s.child!==null)for(e=vb(e);e!==null;){if(s=e[nn])return s;e=vb(e)}return t}e=s,s=e.parentNode}return null}function _o(e){if(e=e[nn]||e[Ro]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function _a(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(a(33))}function Ao(e){var t=e[Wp];return t||(t=e[Wp]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function un(e){e[ka]=!0}var eh=new Set,th={};function Gr(e,t){Mo(e,t),Mo(e+"Capture",t)}function Mo(e,t){for(th[e]=t,e=0;e<t.length;e++)eh.add(t[e])}var zS=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]*$"),nh={},sh={};function LS(e){return ve.call(sh,e)?!0:ve.call(nh,e)?!1:zS.test(e)?sh[e]=!0:(nh[e]=!0,!1)}function ri(e,t,s){if(LS(t))if(s===null)e.removeAttribute(t);else{switch(typeof s){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var l=t.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+s)}}function oi(e,t,s){if(s===null)e.removeAttribute(t);else{switch(typeof s){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+s)}}function Ms(e,t,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(t,s,""+l)}}function Qn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function rh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function IS(e,t,s){var l=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var u=l.get,f=l.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return u.call(this)},set:function(v){s=""+v,f.call(this,v)}}),Object.defineProperty(e,t,{enumerable:l.enumerable}),{getValue:function(){return s},setValue:function(v){s=""+v},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Su(e){if(!e._valueTracker){var t=rh(e)?"checked":"value";e._valueTracker=IS(e,t,""+e[t])}}function oh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var s=t.getValue(),l="";return e&&(l=rh(e)?e.checked?"true":"false":e.value),e=l,e!==s?(t.setValue(e),!0):!1}function ai(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 BS=/[\n"\\]/g;function Zn(e){return e.replace(BS,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Eu(e,t,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"),t!=null?v==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Qn(t)):e.value!==""+Qn(t)&&(e.value=""+Qn(t)):v!=="submit"&&v!=="reset"||e.removeAttribute("value"),t!=null?Nu(e,v,Qn(t)):s!=null?Nu(e,v,Qn(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=""+Qn(R):e.removeAttribute("name")}function ah(e,t,s,l,u,f,v,R){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.type=f),t!=null||s!=null){if(!(f!=="submit"&&f!=="reset"||t!=null)){Su(e);return}s=s!=null?""+Qn(s):"",t=t!=null?""+Qn(t):s,R||t===e.value||(e.value=t),e.defaultValue=t}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),Su(e)}function Nu(e,t,s){t==="number"&&ai(e.ownerDocument)===e||e.defaultValue===""+s||(e.defaultValue=""+s)}function Do(e,t,s,l){if(e=e.options,t){t={};for(var u=0;u<s.length;u++)t["$"+s[u]]=!0;for(s=0;s<e.length;s++)u=t.hasOwnProperty("$"+e[s].value),e[s].selected!==u&&(e[s].selected=u),u&&l&&(e[s].defaultSelected=!0)}else{for(s=""+Qn(s),t=null,u=0;u<e.length;u++){if(e[u].value===s){e[u].selected=!0,l&&(e[u].defaultSelected=!0);return}t!==null||e[u].disabled||(t=e[u])}t!==null&&(t.selected=!0)}}function lh(e,t,s){if(t!=null&&(t=""+Qn(t),t!==e.value&&(e.value=t),s==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=s!=null?""+Qn(s):""}function ih(e,t,s,l){if(t==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=""),t=s}s=Qn(t),e.defaultValue=s,l=e.textContent,l===s&&l!==""&&l!==null&&(e.value=l),Su(e)}function zo(e,t){if(t){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=t;return}}e.textContent=t}var US=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 ch(e,t,s){var l=t.indexOf("--")===0;s==null||typeof s=="boolean"||s===""?l?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":l?e.setProperty(t,s):typeof s!="number"||s===0||US.has(t)?t==="float"?e.cssFloat=s:e[t]=(""+s).trim():e[t]=s+"px"}function uh(e,t,s){if(t!=null&&typeof t!="object")throw Error(a(62));if(e=e.style,s!=null){for(var l in s)!s.hasOwnProperty(l)||t!=null&&t.hasOwnProperty(l)||(l.indexOf("--")===0?e.setProperty(l,""):l==="float"?e.cssFloat="":e[l]="");for(var u in t)l=t[u],t.hasOwnProperty(u)&&s[u]!==l&&ch(e,u,l)}else for(var f in t)t.hasOwnProperty(f)&&ch(e,f,t[f])}function ju(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var HS=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"]]),YS=/^[\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 li(e){return YS.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Ds(){}var Tu=null;function wu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Lo=null,Io=null;function dh(e){var t=_o(e);if(t&&(e=t.stateNode)){var s=e[Cn]||null;e:switch(e=t.stateNode,t.type){case"input":if(Eu(e,s.value,s.defaultValue,s.defaultValue,s.checked,s.defaultChecked,s.type,s.name),t=s.name,s.type==="radio"&&t!=null){for(s=e;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll('input[name="'+Zn(""+t)+'"][type="radio"]'),t=0;t<s.length;t++){var l=s[t];if(l!==e&&l.form===e.form){var u=l[Cn]||null;if(!u)throw Error(a(90));Eu(l,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name)}}for(t=0;t<s.length;t++)l=s[t],l.form===e.form&&oh(l)}break e;case"textarea":lh(e,s.value,s.defaultValue);break e;case"select":t=s.value,t!=null&&Do(e,!!s.multiple,t,!1)}}}var Cu=!1;function fh(e,t,s){if(Cu)return e(t,s);Cu=!0;try{var l=e(t);return l}finally{if(Cu=!1,(Lo!==null||Io!==null)&&(Xi(),Lo&&(t=Lo,e=Io,Io=Lo=null,dh(t),e)))for(t=0;t<e.length;t++)dh(e[t])}}function Aa(e,t){var s=e.stateNode;if(s===null)return null;var l=s[Cn]||null;if(l===null)return null;s=l[t];e:switch(t){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,t,typeof s));return s}var zs=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ou=!1;if(zs)try{var Ma={};Object.defineProperty(Ma,"passive",{get:function(){Ou=!0}}),window.addEventListener("test",Ma,Ma),window.removeEventListener("test",Ma,Ma)}catch{Ou=!1}var mr=null,Ru=null,ii=null;function mh(){if(ii)return ii;var e,t=Ru,s=t.length,l,u="value"in mr?mr.value:mr.textContent,f=u.length;for(e=0;e<s&&t[e]===u[e];e++);var v=s-e;for(l=1;l<=v&&t[s-l]===u[f-l];l++);return ii=u.slice(e,1<l?1-l:void 0)}function ci(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function ui(){return!0}function ph(){return!1}function On(e){function t(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)?ui:ph,this.isPropagationStopped=ph,this}return x(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=ui)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=ui)},persist:function(){},isPersistent:ui}),t}var $r={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},di=On($r),Da=x({},$r,{view:0,detail:0}),PS=On(Da),ku,_u,za,fi=x({},Da,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Mu,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!==za&&(za&&e.type==="mousemove"?(ku=e.screenX-za.screenX,_u=e.screenY-za.screenY):_u=ku=0,za=e),ku)},movementY:function(e){return"movementY"in e?e.movementY:_u}}),hh=On(fi),VS=x({},fi,{dataTransfer:0}),FS=On(VS),qS=x({},Da,{relatedTarget:0}),Au=On(qS),GS=x({},$r,{animationName:0,elapsedTime:0,pseudoElement:0}),$S=On(GS),XS=x({},$r,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),KS=On(XS),QS=x({},$r,{data:0}),gh=On(QS),ZS={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},JS={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"},WS={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function eE(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=WS[e])?!!t[e]:!1}function Mu(){return eE}var tE=x({},Da,{key:function(e){if(e.key){var t=ZS[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ci(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?JS[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Mu,charCode:function(e){return e.type==="keypress"?ci(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ci(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),nE=On(tE),sE=x({},fi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),xh=On(sE),rE=x({},Da,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Mu}),oE=On(rE),aE=x({},$r,{propertyName:0,elapsedTime:0,pseudoElement:0}),lE=On(aE),iE=x({},fi,{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}),cE=On(iE),uE=x({},$r,{newState:0,oldState:0}),dE=On(uE),fE=[9,13,27,32],Du=zs&&"CompositionEvent"in window,La=null;zs&&"documentMode"in document&&(La=document.documentMode);var mE=zs&&"TextEvent"in window&&!La,bh=zs&&(!Du||La&&8<La&&11>=La),yh=" ",vh=!1;function Sh(e,t){switch(e){case"keyup":return fE.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Eh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Bo=!1;function pE(e,t){switch(e){case"compositionend":return Eh(t);case"keypress":return t.which!==32?null:(vh=!0,yh);case"textInput":return e=t.data,e===yh&&vh?null:e;default:return null}}function hE(e,t){if(Bo)return e==="compositionend"||!Du&&Sh(e,t)?(e=mh(),ii=Ru=mr=null,Bo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return bh&&t.locale!=="ko"?null:t.data;default:return null}}var gE={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 Nh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!gE[e.type]:t==="textarea"}function jh(e,t,s,l){Lo?Io?Io.push(l):Io=[l]:Lo=l,t=tc(t,"onChange"),0<t.length&&(s=new di("onChange","change",null,s,l),e.push({event:s,listeners:t}))}var Ia=null,Ba=null;function xE(e){ab(e,0)}function mi(e){var t=_a(e);if(oh(t))return e}function Th(e,t){if(e==="change")return t}var wh=!1;if(zs){var zu;if(zs){var Lu="oninput"in document;if(!Lu){var Ch=document.createElement("div");Ch.setAttribute("oninput","return;"),Lu=typeof Ch.oninput=="function"}zu=Lu}else zu=!1;wh=zu&&(!document.documentMode||9<document.documentMode)}function Oh(){Ia&&(Ia.detachEvent("onpropertychange",Rh),Ba=Ia=null)}function Rh(e){if(e.propertyName==="value"&&mi(Ba)){var t=[];jh(t,Ba,e,wu(e)),fh(xE,t)}}function bE(e,t,s){e==="focusin"?(Oh(),Ia=t,Ba=s,Ia.attachEvent("onpropertychange",Rh)):e==="focusout"&&Oh()}function yE(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return mi(Ba)}function vE(e,t){if(e==="click")return mi(t)}function SE(e,t){if(e==="input"||e==="change")return mi(t)}function EE(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Bn=typeof Object.is=="function"?Object.is:EE;function Ua(e,t){if(Bn(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var s=Object.keys(e),l=Object.keys(t);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var u=s[l];if(!ve.call(t,u)||!Bn(e[u],t[u]))return!1}return!0}function kh(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function _h(e,t){var s=kh(e);e=0;for(var l;s;){if(s.nodeType===3){if(l=e+s.textContent.length,e<=t&&l>=t)return{node:s,offset:t-e};e=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=kh(s)}}function Ah(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ah(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Mh(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=ai(e.document);t instanceof e.HTMLIFrameElement;){try{var s=typeof t.contentWindow.location.href=="string"}catch{s=!1}if(s)e=t.contentWindow;else break;t=ai(e.document)}return t}function Iu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var NE=zs&&"documentMode"in document&&11>=document.documentMode,Uo=null,Bu=null,Ha=null,Uu=!1;function Dh(e,t,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Uu||Uo==null||Uo!==ai(l)||(l=Uo,"selectionStart"in l&&Iu(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Ha&&Ua(Ha,l)||(Ha=l,l=tc(Bu,"onSelect"),0<l.length&&(t=new di("onSelect","select",null,t,s),e.push({event:t,listeners:l}),t.target=Uo)))}function Xr(e,t){var s={};return s[e.toLowerCase()]=t.toLowerCase(),s["Webkit"+e]="webkit"+t,s["Moz"+e]="moz"+t,s}var Ho={animationend:Xr("Animation","AnimationEnd"),animationiteration:Xr("Animation","AnimationIteration"),animationstart:Xr("Animation","AnimationStart"),transitionrun:Xr("Transition","TransitionRun"),transitionstart:Xr("Transition","TransitionStart"),transitioncancel:Xr("Transition","TransitionCancel"),transitionend:Xr("Transition","TransitionEnd")},Hu={},zh={};zs&&(zh=document.createElement("div").style,"AnimationEvent"in window||(delete Ho.animationend.animation,delete Ho.animationiteration.animation,delete Ho.animationstart.animation),"TransitionEvent"in window||delete Ho.transitionend.transition);function Kr(e){if(Hu[e])return Hu[e];if(!Ho[e])return e;var t=Ho[e],s;for(s in t)if(t.hasOwnProperty(s)&&s in zh)return Hu[e]=t[s];return e}var Lh=Kr("animationend"),Ih=Kr("animationiteration"),Bh=Kr("animationstart"),jE=Kr("transitionrun"),TE=Kr("transitionstart"),wE=Kr("transitioncancel"),Uh=Kr("transitionend"),Hh=new Map,Yu="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(" ");Yu.push("scrollEnd");function cs(e,t){Hh.set(e,t),Gr(t,[e])}var pi=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=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(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Jn=[],Yo=0,Pu=0;function hi(){for(var e=Yo,t=Pu=Yo=0;t<e;){var s=Jn[t];Jn[t++]=null;var l=Jn[t];Jn[t++]=null;var u=Jn[t];Jn[t++]=null;var f=Jn[t];if(Jn[t++]=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&&Yh(s,u,f)}}function gi(e,t,s,l){Jn[Yo++]=e,Jn[Yo++]=t,Jn[Yo++]=s,Jn[Yo++]=l,Pu|=l,e.lanes|=l,e=e.alternate,e!==null&&(e.lanes|=l)}function Vu(e,t,s,l){return gi(e,t,s,l),xi(e)}function Qr(e,t){return gi(e,null,null,t),xi(e)}function Yh(e,t,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&&t!==null&&(u=31-jt(s),e=f.hiddenUpdates,l=e[u],l===null?e[u]=[t]:l.push(t),t.lane=s|536870912),f):null}function xi(e){if(50<il)throw il=0,Jd=null,Error(a(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Po={};function CE(e,t,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=t,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 Un(e,t,s,l){return new CE(e,t,s,l)}function Fu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Ls(e,t){var s=e.alternate;return s===null?(s=Un(e.tag,t,e.key,e.mode),s.elementType=e.elementType,s.type=e.type,s.stateNode=e.stateNode,s.alternate=e,e.alternate=s):(s.pendingProps=t,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,t=e.dependencies,s.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},s.sibling=e.sibling,s.index=e.index,s.ref=e.ref,s.refCleanup=e.refCleanup,s}function Ph(e,t){e.flags&=65011714;var s=e.alternate;return s===null?(e.childLanes=0,e.lanes=t,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,t=s.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function bi(e,t,s,l,u,f){var v=0;if(l=e,typeof e=="function")Fu(e)&&(v=1);else if(typeof e=="string")v=AN(e,s,H.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case X:return e=Un(31,s,t,u),e.elementType=X,e.lanes=f,e;case w:return Zr(s.children,u,f,t);case _:v=8,u|=24;break;case E:return e=Un(12,s,t,u|2),e.elementType=E,e.lanes=f,e;case F:return e=Un(13,s,t,u),e.elementType=F,e.lanes=f,e;case A:return e=Un(19,s,t,u),e.elementType=A,e.lanes=f,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case C:v=10;break e;case T:v=9;break e;case k:v=11;break e;case L:v=14;break e;case O:v=16,l=null;break e}v=29,s=Error(a(130,e===null?"null":typeof e,"")),l=null}return t=Un(v,s,t,u),t.elementType=e,t.type=l,t.lanes=f,t}function Zr(e,t,s,l){return e=Un(7,e,l,t),e.lanes=s,e}function qu(e,t,s){return e=Un(6,e,null,t),e.lanes=s,e}function Vh(e){var t=Un(18,null,null,0);return t.stateNode=e,t}function Gu(e,t,s){return t=Un(4,e.children!==null?e.children:[],e.key,t),t.lanes=s,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Fh=new WeakMap;function Wn(e,t){if(typeof e=="object"&&e!==null){var s=Fh.get(e);return s!==void 0?s:(t={value:e,source:t,stack:ze(t)},Fh.set(e,t),t)}return{value:e,source:t,stack:ze(t)}}var Vo=[],Fo=0,yi=null,Ya=0,es=[],ts=0,pr=null,gs=1,xs="";function Is(e,t){Vo[Fo++]=Ya,Vo[Fo++]=yi,yi=e,Ya=t}function qh(e,t,s){es[ts++]=gs,es[ts++]=xs,es[ts++]=pr,pr=e;var l=gs;e=xs;var u=32-jt(l)-1;l&=~(1<<u),s+=1;var f=32-jt(t)+u;if(30<f){var v=u-u%5;f=(l&(1<<v)-1).toString(32),l>>=v,u-=v,gs=1<<32-jt(t)+u|s<<u|l,xs=f+e}else gs=1<<f|s<<u|l,xs=e}function $u(e){e.return!==null&&(Is(e,1),qh(e,1,0))}function Xu(e){for(;e===yi;)yi=Vo[--Fo],Vo[Fo]=null,Ya=Vo[--Fo],Vo[Fo]=null;for(;e===pr;)pr=es[--ts],es[ts]=null,xs=es[--ts],es[ts]=null,gs=es[--ts],es[ts]=null}function Gh(e,t){es[ts++]=gs,es[ts++]=xs,es[ts++]=pr,gs=t.id,xs=t.overflow,pr=e}var gn=null,Pt=null,gt=!1,hr=null,ns=!1,Ku=Error(a(519));function gr(e){var t=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Pa(Wn(t,e)),Ku}function $h(e){var t=e.stateNode,s=e.type,l=e.memoizedProps;switch(t[nn]=e,t[Cn]=l,s){case"dialog":it("cancel",t),it("close",t);break;case"iframe":case"object":case"embed":it("load",t);break;case"video":case"audio":for(s=0;s<ul.length;s++)it(ul[s],t);break;case"source":it("error",t);break;case"img":case"image":case"link":it("error",t),it("load",t);break;case"details":it("toggle",t);break;case"input":it("invalid",t),ah(t,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":it("invalid",t);break;case"textarea":it("invalid",t),ih(t,l.value,l.defaultValue,l.children)}s=l.children,typeof s!="string"&&typeof s!="number"&&typeof s!="bigint"||t.textContent===""+s||l.suppressHydrationWarning===!0||ub(t.textContent,s)?(l.popover!=null&&(it("beforetoggle",t),it("toggle",t)),l.onScroll!=null&&it("scroll",t),l.onScrollEnd!=null&&it("scrollend",t),l.onClick!=null&&(t.onclick=Ds),t=!0):t=!1,t||gr(e,!0)}function Xh(e){for(gn=e.return;gn;)switch(gn.tag){case 5:case 31:case 13:ns=!1;return;case 27:case 3:ns=!0;return;default:gn=gn.return}}function qo(e){if(e!==gn)return!1;if(!gt)return Xh(e),gt=!0,!1;var t=e.tag,s;if((s=t!==3&&t!==27)&&((s=t===5)&&(s=e.type,s=!(s!=="form"&&s!=="button")||pf(e.type,e.memoizedProps)),s=!s),s&&Pt&&gr(e),Xh(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Pt=yb(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Pt=yb(e)}else t===27?(t=Pt,kr(e.type)?(e=yf,yf=null,Pt=e):Pt=t):Pt=gn?rs(e.stateNode.nextSibling):null;return!0}function Jr(){Pt=gn=null,gt=!1}function Qu(){var e=hr;return e!==null&&(An===null?An=e:An.push.apply(An,e),hr=null),e}function Pa(e){hr===null?hr=[e]:hr.push(e)}var Zu=M(null),Wr=null,Bs=null;function xr(e,t,s){I(Zu,t._currentValue),t._currentValue=s}function Us(e){e._currentValue=Zu.current,B(Zu)}function Ju(e,t,s){for(;e!==null;){var l=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,l!==null&&(l.childLanes|=t)):l!==null&&(l.childLanes&t)!==t&&(l.childLanes|=t),e===s)break;e=e.return}}function Wu(e,t,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;$<t.length;$++)if(R.context===t[$]){f.lanes|=s,R=f.alternate,R!==null&&(R.lanes|=s),Ju(f.return,s,e),l||(v=null);break e}f=R.next}}else if(u.tag===18){if(v=u.return,v===null)throw Error(a(341));v.lanes|=s,f=v.alternate,f!==null&&(f.lanes|=s),Ju(v,s,e),v=null}else v=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 Go(e,t,s,l){e=null;for(var u=t,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;Bn(u.pendingProps.value,v.value)||(e!==null?e.push(R):e=[R])}}else if(u===he.current){if(v=u.alternate,v===null)throw Error(a(387));v.memoizedState.memoizedState!==u.memoizedState.memoizedState&&(e!==null?e.push(hl):e=[hl])}u=u.return}e!==null&&Wu(t,e,s,l),t.flags|=262144}function vi(e){for(e=e.firstContext;e!==null;){if(!Bn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function eo(e){Wr=e,Bs=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function xn(e){return Kh(Wr,e)}function Si(e,t){return Wr===null&&eo(e),Kh(e,t)}function Kh(e,t){var s=t._currentValue;if(t={context:t,memoizedValue:s,next:null},Bs===null){if(e===null)throw Error(a(308));Bs=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bs=Bs.next=t;return s}var OE=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(s,l){e.push(l)}};this.abort=function(){t.aborted=!0,e.forEach(function(s){return s()})}},RE=n.unstable_scheduleCallback,kE=n.unstable_NormalPriority,Jt={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ed(){return{controller:new OE,data:new Map,refCount:0}}function Va(e){e.refCount--,e.refCount===0&&RE(kE,function(){e.controller.abort()})}var Fa=null,td=0,$o=0,Xo=null;function _E(e,t){if(Fa===null){var s=Fa=[];td=0,$o=rf(),Xo={status:"pending",value:void 0,then:function(l){s.push(l)}}}return td++,t.then(Qh,Qh),t}function Qh(){if(--td===0&&Fa!==null){Xo!==null&&(Xo.status="fulfilled");var e=Fa;Fa=null,$o=0,Xo=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function AE(e,t){var s=[],l={status:"pending",value:null,reason:null,then:function(u){s.push(u)}};return e.then(function(){l.status="fulfilled",l.value=t;for(var u=0;u<s.length;u++)(0,s[u])(t)},function(u){for(l.status="rejected",l.reason=u,u=0;u<s.length;u++)(0,s[u])(void 0)}),l}var Zh=D.S;D.S=function(e,t){Dx=Y(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&_E(e,t),Zh!==null&&Zh(e,t)};var to=M(null);function nd(){var e=to.current;return e!==null?e:zt.pooledCache}function Ei(e,t){t===null?I(to,to.current):I(to,t.pool)}function Jh(){var e=nd();return e===null?null:{parent:Jt._currentValue,pool:e}}var Ko=Error(a(460)),sd=Error(a(474)),Ni=Error(a(542)),ji={then:function(){}};function Wh(e){return e=e.status,e==="fulfilled"||e==="rejected"}function eg(e,t,s){switch(s=e[s],s===void 0?e.push(t):s!==t&&(t.then(Ds,Ds),t=s),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,ng(e),e;default:if(typeof t.status=="string")t.then(Ds,Ds);else{if(e=zt,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=t,e.status="pending",e.then(function(l){if(t.status==="pending"){var u=t;u.status="fulfilled",u.value=l}},function(l){if(t.status==="pending"){var u=t;u.status="rejected",u.reason=l}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,ng(e),e}throw so=t,Ko}}function no(e){try{var t=e._init;return t(e._payload)}catch(s){throw s!==null&&typeof s=="object"&&typeof s.then=="function"?(so=s,Ko):s}}var so=null;function tg(){if(so===null)throw Error(a(459));var e=so;return so=null,e}function ng(e){if(e===Ko||e===Ni)throw Error(a(483))}var Qo=null,qa=0;function Ti(e){var t=qa;return qa+=1,Qo===null&&(Qo=[]),eg(Qo,e,t)}function Ga(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function wi(e,t){throw t.$$typeof===S?Error(a(525)):(e=Object.prototype.toString.call(t),Error(a(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function sg(e){function t(se,Z){if(e){var ae=se.deletions;ae===null?(se.deletions=[Z],se.flags|=16):ae.push(Z)}}function s(se,Z){if(!e)return null;for(;Z!==null;)t(se,Z),Z=Z.sibling;return null}function l(se){for(var Z=new Map;se!==null;)se.key!==null?Z.set(se.key,se):Z.set(se.index,se),se=se.sibling;return Z}function u(se,Z){return se=Ls(se,Z),se.index=0,se.sibling=null,se}function f(se,Z,ae){return se.index=ae,e?(ae=se.alternate,ae!==null?(ae=ae.index,ae<Z?(se.flags|=67108866,Z):ae):(se.flags|=67108866,Z)):(se.flags|=1048576,Z)}function v(se){return e&&se.alternate===null&&(se.flags|=67108866),se}function R(se,Z,ae,Se){return Z===null||Z.tag!==6?(Z=qu(ae,se.mode,Se),Z.return=se,Z):(Z=u(Z,ae),Z.return=se,Z)}function $(se,Z,ae,Se){var Ke=ae.type;return Ke===w?be(se,Z,ae.props.children,Se,ae.key):Z!==null&&(Z.elementType===Ke||typeof Ke=="object"&&Ke!==null&&Ke.$$typeof===O&&no(Ke)===Z.type)?(Z=u(Z,ae.props),Ga(Z,ae),Z.return=se,Z):(Z=bi(ae.type,ae.key,ae.props,null,se.mode,Se),Ga(Z,ae),Z.return=se,Z)}function le(se,Z,ae,Se){return Z===null||Z.tag!==4||Z.stateNode.containerInfo!==ae.containerInfo||Z.stateNode.implementation!==ae.implementation?(Z=Gu(ae,se.mode,Se),Z.return=se,Z):(Z=u(Z,ae.children||[]),Z.return=se,Z)}function be(se,Z,ae,Se,Ke){return Z===null||Z.tag!==7?(Z=Zr(ae,se.mode,Se,Ke),Z.return=se,Z):(Z=u(Z,ae),Z.return=se,Z)}function Ne(se,Z,ae){if(typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint")return Z=qu(""+Z,se.mode,ae),Z.return=se,Z;if(typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case N:return ae=bi(Z.type,Z.key,Z.props,null,se.mode,ae),Ga(ae,Z),ae.return=se,ae;case j:return Z=Gu(Z,se.mode,ae),Z.return=se,Z;case O:return Z=no(Z),Ne(se,Z,ae)}if(W(Z)||ee(Z))return Z=Zr(Z,se.mode,ae,null),Z.return=se,Z;if(typeof Z.then=="function")return Ne(se,Ti(Z),ae);if(Z.$$typeof===C)return Ne(se,Si(se,Z),ae);wi(se,Z)}return null}function de(se,Z,ae,Se){var Ke=Z!==null?Z.key:null;if(typeof ae=="string"&&ae!==""||typeof ae=="number"||typeof ae=="bigint")return Ke!==null?null:R(se,Z,""+ae,Se);if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case N:return ae.key===Ke?$(se,Z,ae,Se):null;case j:return ae.key===Ke?le(se,Z,ae,Se):null;case O:return ae=no(ae),de(se,Z,ae,Se)}if(W(ae)||ee(ae))return Ke!==null?null:be(se,Z,ae,Se,null);if(typeof ae.then=="function")return de(se,Z,Ti(ae),Se);if(ae.$$typeof===C)return de(se,Z,Si(se,ae),Se);wi(se,ae)}return null}function pe(se,Z,ae,Se,Ke){if(typeof Se=="string"&&Se!==""||typeof Se=="number"||typeof Se=="bigint")return se=se.get(ae)||null,R(Z,se,""+Se,Ke);if(typeof Se=="object"&&Se!==null){switch(Se.$$typeof){case N:return se=se.get(Se.key===null?ae:Se.key)||null,$(Z,se,Se,Ke);case j:return se=se.get(Se.key===null?ae:Se.key)||null,le(Z,se,Se,Ke);case O:return Se=no(Se),pe(se,Z,ae,Se,Ke)}if(W(Se)||ee(Se))return se=se.get(ae)||null,be(Z,se,Se,Ke,null);if(typeof Se.then=="function")return pe(se,Z,ae,Ti(Se),Ke);if(Se.$$typeof===C)return pe(se,Z,ae,Si(Z,Se),Ke);wi(Z,Se)}return null}function Fe(se,Z,ae,Se){for(var Ke=null,vt=null,$e=Z,st=Z=0,ft=null;$e!==null&&st<ae.length;st++){$e.index>st?(ft=$e,$e=null):ft=$e.sibling;var St=de(se,$e,ae[st],Se);if(St===null){$e===null&&($e=ft);break}e&&$e&&St.alternate===null&&t(se,$e),Z=f(St,Z,st),vt===null?Ke=St:vt.sibling=St,vt=St,$e=ft}if(st===ae.length)return s(se,$e),gt&&Is(se,st),Ke;if($e===null){for(;st<ae.length;st++)$e=Ne(se,ae[st],Se),$e!==null&&(Z=f($e,Z,st),vt===null?Ke=$e:vt.sibling=$e,vt=$e);return gt&&Is(se,st),Ke}for($e=l($e);st<ae.length;st++)ft=pe($e,se,st,ae[st],Se),ft!==null&&(e&&ft.alternate!==null&&$e.delete(ft.key===null?st:ft.key),Z=f(ft,Z,st),vt===null?Ke=ft:vt.sibling=ft,vt=ft);return e&&$e.forEach(function(zr){return t(se,zr)}),gt&&Is(se,st),Ke}function Ze(se,Z,ae,Se){if(ae==null)throw Error(a(151));for(var Ke=null,vt=null,$e=Z,st=Z=0,ft=null,St=ae.next();$e!==null&&!St.done;st++,St=ae.next()){$e.index>st?(ft=$e,$e=null):ft=$e.sibling;var zr=de(se,$e,St.value,Se);if(zr===null){$e===null&&($e=ft);break}e&&$e&&zr.alternate===null&&t(se,$e),Z=f(zr,Z,st),vt===null?Ke=zr:vt.sibling=zr,vt=zr,$e=ft}if(St.done)return s(se,$e),gt&&Is(se,st),Ke;if($e===null){for(;!St.done;st++,St=ae.next())St=Ne(se,St.value,Se),St!==null&&(Z=f(St,Z,st),vt===null?Ke=St:vt.sibling=St,vt=St);return gt&&Is(se,st),Ke}for($e=l($e);!St.done;st++,St=ae.next())St=pe($e,se,st,St.value,Se),St!==null&&(e&&St.alternate!==null&&$e.delete(St.key===null?st:St.key),Z=f(St,Z,st),vt===null?Ke=St:vt.sibling=St,vt=St);return e&&$e.forEach(function(VN){return t(se,VN)}),gt&&Is(se,st),Ke}function _t(se,Z,ae,Se){if(typeof ae=="object"&&ae!==null&&ae.type===w&&ae.key===null&&(ae=ae.props.children),typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case N:e:{for(var Ke=ae.key;Z!==null;){if(Z.key===Ke){if(Ke=ae.type,Ke===w){if(Z.tag===7){s(se,Z.sibling),Se=u(Z,ae.props.children),Se.return=se,se=Se;break e}}else if(Z.elementType===Ke||typeof Ke=="object"&&Ke!==null&&Ke.$$typeof===O&&no(Ke)===Z.type){s(se,Z.sibling),Se=u(Z,ae.props),Ga(Se,ae),Se.return=se,se=Se;break e}s(se,Z);break}else t(se,Z);Z=Z.sibling}ae.type===w?(Se=Zr(ae.props.children,se.mode,Se,ae.key),Se.return=se,se=Se):(Se=bi(ae.type,ae.key,ae.props,null,se.mode,Se),Ga(Se,ae),Se.return=se,se=Se)}return v(se);case j:e:{for(Ke=ae.key;Z!==null;){if(Z.key===Ke)if(Z.tag===4&&Z.stateNode.containerInfo===ae.containerInfo&&Z.stateNode.implementation===ae.implementation){s(se,Z.sibling),Se=u(Z,ae.children||[]),Se.return=se,se=Se;break e}else{s(se,Z);break}else t(se,Z);Z=Z.sibling}Se=Gu(ae,se.mode,Se),Se.return=se,se=Se}return v(se);case O:return ae=no(ae),_t(se,Z,ae,Se)}if(W(ae))return Fe(se,Z,ae,Se);if(ee(ae)){if(Ke=ee(ae),typeof Ke!="function")throw Error(a(150));return ae=Ke.call(ae),Ze(se,Z,ae,Se)}if(typeof ae.then=="function")return _t(se,Z,Ti(ae),Se);if(ae.$$typeof===C)return _t(se,Z,Si(se,ae),Se);wi(se,ae)}return typeof ae=="string"&&ae!==""||typeof ae=="number"||typeof ae=="bigint"?(ae=""+ae,Z!==null&&Z.tag===6?(s(se,Z.sibling),Se=u(Z,ae),Se.return=se,se=Se):(s(se,Z),Se=qu(ae,se.mode,Se),Se.return=se,se=Se),v(se)):s(se,Z)}return function(se,Z,ae,Se){try{qa=0;var Ke=_t(se,Z,ae,Se);return Qo=null,Ke}catch($e){if($e===Ko||$e===Ni)throw $e;var vt=Un(29,$e,null,se.mode);return vt.lanes=Se,vt.return=se,vt}}}var ro=sg(!0),rg=sg(!1),br=!1;function rd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function od(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function yr(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function vr(e,t,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(Et&2)!==0){var u=l.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),l.pending=t,t=xi(e),Yh(e,null,s),t}return gi(e,l,t,s),xi(e)}function $a(e,t,s){if(t=t.updateQueue,t!==null&&(t=t.shared,(s&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,s|=l,t.lanes=s,cn(e,s)}}function ad(e,t){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=t:f=f.next=t}else u=f=t;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=t:e.next=t,s.lastBaseUpdate=t}var ld=!1;function Xa(){if(ld){var e=Xo;if(e!==null)throw e}}function Ka(e,t,s,l){ld=!1;var u=e.updateQueue;br=!1;var f=u.firstBaseUpdate,v=u.lastBaseUpdate,R=u.shared.pending;if(R!==null){u.shared.pending=null;var $=R,le=$.next;$.next=null,v===null?f=le:v.next=le,v=$;var be=e.alternate;be!==null&&(be=be.updateQueue,R=be.lastBaseUpdate,R!==v&&(R===null?be.firstBaseUpdate=le:R.next=le,be.lastBaseUpdate=$))}if(f!==null){var Ne=u.baseState;v=0,be=le=$=null,R=f;do{var de=R.lane&-536870913,pe=de!==R.lane;if(pe?(dt&de)===de:(l&de)===de){de!==0&&de===$o&&(ld=!0),be!==null&&(be=be.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});e:{var Fe=e,Ze=R;de=t;var _t=s;switch(Ze.tag){case 1:if(Fe=Ze.payload,typeof Fe=="function"){Ne=Fe.call(_t,Ne,de);break e}Ne=Fe;break e;case 3:Fe.flags=Fe.flags&-65537|128;case 0:if(Fe=Ze.payload,de=typeof Fe=="function"?Fe.call(_t,Ne,de):Fe,de==null)break e;Ne=x({},Ne,de);break e;case 2:br=!0}}de=R.callback,de!==null&&(e.flags|=64,pe&&(e.flags|=8192),pe=u.callbacks,pe===null?u.callbacks=[de]:pe.push(de))}else pe={lane:de,tag:R.tag,payload:R.payload,callback:R.callback,next:null},be===null?(le=be=pe,$=Ne):be=be.next=pe,v|=de;if(R=R.next,R===null){if(R=u.shared.pending,R===null)break;pe=R,R=pe.next,pe.next=null,u.lastBaseUpdate=pe,u.shared.pending=null}}while(!0);be===null&&($=Ne),u.baseState=$,u.firstBaseUpdate=le,u.lastBaseUpdate=be,f===null&&(u.shared.lanes=0),Tr|=v,e.lanes=v,e.memoizedState=Ne}}function og(e,t){if(typeof e!="function")throw Error(a(191,e));e.call(t)}function ag(e,t){var s=e.callbacks;if(s!==null)for(e.callbacks=null,e=0;e<s.length;e++)og(s[e],t)}var Zo=M(null),Ci=M(0);function lg(e,t){e=Xs,I(Ci,e),I(Zo,t),Xs=e|t.baseLanes}function id(){I(Ci,Xs),I(Zo,Zo.current)}function cd(){Xs=Ci.current,B(Zo),B(Ci)}var Hn=M(null),ss=null;function Sr(e){var t=e.alternate;I(Qt,Qt.current&1),I(Hn,e),ss===null&&(t===null||Zo.current!==null||t.memoizedState!==null)&&(ss=e)}function ud(e){I(Qt,Qt.current),I(Hn,e),ss===null&&(ss=e)}function ig(e){e.tag===22?(I(Qt,Qt.current),I(Hn,e),ss===null&&(ss=e)):Er()}function Er(){I(Qt,Qt.current),I(Hn,Hn.current)}function Yn(e){B(Hn),ss===e&&(ss=null),B(Qt)}var Qt=M(0);function Oi(e){for(var t=e;t!==null;){if(t.tag===13){var s=t.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||xf(s)||bf(s)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Hs=0,tt=null,Rt=null,Wt=null,Ri=!1,Jo=!1,oo=!1,ki=0,Qa=0,Wo=null,ME=0;function Gt(){throw Error(a(321))}function dd(e,t){if(t===null)return!1;for(var s=0;s<t.length&&s<e.length;s++)if(!Bn(e[s],t[s]))return!1;return!0}function fd(e,t,s,l,u,f){return Hs=f,tt=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,D.H=e===null||e.memoizedState===null?qg:Cd,oo=!1,f=s(l,u),oo=!1,Jo&&(f=ug(t,s,l,u)),cg(e),f}function cg(e){D.H=Wa;var t=Rt!==null&&Rt.next!==null;if(Hs=0,Wt=Rt=tt=null,Ri=!1,Qa=0,Wo=null,t)throw Error(a(300));e===null||en||(e=e.dependencies,e!==null&&vi(e)&&(en=!0))}function ug(e,t,s,l){tt=e;var u=0;do{if(Jo&&(Wo=null),Qa=0,Jo=!1,25<=u)throw Error(a(301));if(u+=1,Wt=Rt=null,e.updateQueue!=null){var f=e.updateQueue;f.lastEffect=null,f.events=null,f.stores=null,f.memoCache!=null&&(f.memoCache.index=0)}D.H=Gg,f=t(s,l)}while(Jo);return f}function DE(){var e=D.H,t=e.useState()[0];return t=typeof t.then=="function"?Za(t):t,e=e.useState()[0],(Rt!==null?Rt.memoizedState:null)!==e&&(tt.flags|=1024),t}function md(){var e=ki!==0;return ki=0,e}function pd(e,t,s){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s}function hd(e){if(Ri){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}Ri=!1}Hs=0,Wt=Rt=tt=null,Jo=!1,Qa=ki=0,Wo=null}function Tn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Wt===null?tt.memoizedState=Wt=e:Wt=Wt.next=e,Wt}function Zt(){if(Rt===null){var e=tt.alternate;e=e!==null?e.memoizedState:null}else e=Rt.next;var t=Wt===null?tt.memoizedState:Wt.next;if(t!==null)Wt=t,Rt=e;else{if(e===null)throw tt.alternate===null?Error(a(467)):Error(a(310));Rt=e,e={memoizedState:Rt.memoizedState,baseState:Rt.baseState,baseQueue:Rt.baseQueue,queue:Rt.queue,next:null},Wt===null?tt.memoizedState=Wt=e:Wt=Wt.next=e}return Wt}function _i(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Za(e){var t=Qa;return Qa+=1,Wo===null&&(Wo=[]),e=eg(Wo,e,t),t=tt,(Wt===null?t.memoizedState:Wt.next)===null&&(t=t.alternate,D.H=t===null||t.memoizedState===null?qg:Cd),e}function Ai(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Za(e);if(e.$$typeof===C)return xn(e)}throw Error(a(438,String(e)))}function gd(e){var t=null,s=tt.updateQueue;if(s!==null&&(t=s.memoCache),t==null){var l=tt.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(t={data:l.data.map(function(u){return u.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),s===null&&(s=_i(),tt.updateQueue=s),s.memoCache=t,s=t.data[t.index],s===void 0)for(s=t.data[t.index]=Array(e),l=0;l<e;l++)s[l]=ne;return t.index++,s}function Ys(e,t){return typeof t=="function"?t(e):t}function Mi(e){var t=Zt();return xd(t,Rt,e)}function xd(e,t,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}t.baseQueue=u=f,l.pending=null}if(f=e.baseState,u===null)e.memoizedState=f;else{t=u.next;var R=v=null,$=null,le=t,be=!1;do{var Ne=le.lane&-536870913;if(Ne!==le.lane?(dt&Ne)===Ne:(Hs&Ne)===Ne){var de=le.revertLane;if(de===0)$!==null&&($=$.next={lane:0,revertLane:0,gesture:null,action:le.action,hasEagerState:le.hasEagerState,eagerState:le.eagerState,next:null}),Ne===$o&&(be=!0);else if((Hs&de)===de){le=le.next,de===$o&&(be=!0);continue}else Ne={lane:0,revertLane:le.revertLane,gesture:null,action:le.action,hasEagerState:le.hasEagerState,eagerState:le.eagerState,next:null},$===null?(R=$=Ne,v=f):$=$.next=Ne,tt.lanes|=de,Tr|=de;Ne=le.action,oo&&s(f,Ne),f=le.hasEagerState?le.eagerState:s(f,Ne)}else de={lane:Ne,revertLane:le.revertLane,gesture:le.gesture,action:le.action,hasEagerState:le.hasEagerState,eagerState:le.eagerState,next:null},$===null?(R=$=de,v=f):$=$.next=de,tt.lanes|=Ne,Tr|=Ne;le=le.next}while(le!==null&&le!==t);if($===null?v=f:$.next=R,!Bn(f,e.memoizedState)&&(en=!0,be&&(s=Xo,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 bd(e){var t=Zt(),s=t.queue;if(s===null)throw Error(a(311));s.lastRenderedReducer=e;var l=s.dispatch,u=s.pending,f=t.memoizedState;if(u!==null){s.pending=null;var v=u=u.next;do f=e(f,v.action),v=v.next;while(v!==u);Bn(f,t.memoizedState)||(en=!0),t.memoizedState=f,t.baseQueue===null&&(t.baseState=f),s.lastRenderedState=f}return[f,l]}function dg(e,t,s){var l=tt,u=Zt(),f=gt;if(f){if(s===void 0)throw Error(a(407));s=s()}else s=t();var v=!Bn((Rt||u).memoizedState,s);if(v&&(u.memoizedState=s,en=!0),u=u.queue,Sd(pg.bind(null,l,u,e),[e]),u.getSnapshot!==t||v||Wt!==null&&Wt.memoizedState.tag&1){if(l.flags|=2048,ea(9,{destroy:void 0},mg.bind(null,l,u,s,t),null),zt===null)throw Error(a(349));f||(Hs&127)!==0||fg(l,t,s)}return s}function fg(e,t,s){e.flags|=16384,e={getSnapshot:t,value:s},t=tt.updateQueue,t===null?(t=_i(),tt.updateQueue=t,t.stores=[e]):(s=t.stores,s===null?t.stores=[e]:s.push(e))}function mg(e,t,s,l){t.value=s,t.getSnapshot=l,hg(t)&&gg(e)}function pg(e,t,s){return s(function(){hg(t)&&gg(e)})}function hg(e){var t=e.getSnapshot;e=e.value;try{var s=t();return!Bn(e,s)}catch{return!0}}function gg(e){var t=Qr(e,2);t!==null&&Mn(t,e,2)}function yd(e){var t=Tn();if(typeof e=="function"){var s=e;if(e=s(),oo){It(!0);try{s()}finally{It(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ys,lastRenderedState:e},t}function xg(e,t,s,l){return e.baseState=s,xd(e,Rt,typeof l=="function"?l:Ys)}function zE(e,t,s,l,u){if(Li(e))throw Error(a(485));if(e=t.action,e!==null){var f={payload:u,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){f.listeners.push(v)}};D.T!==null?s(!0):f.isTransition=!1,l(f),s=t.pending,s===null?(f.next=t.pending=f,bg(t,f)):(f.next=s.next,t.pending=s.next=f)}}function bg(e,t){var s=t.action,l=t.payload,u=e.state;if(t.isTransition){var f=D.T,v={};D.T=v;try{var R=s(u,l),$=D.S;$!==null&&$(v,R),yg(e,t,R)}catch(le){vd(e,t,le)}finally{f!==null&&v.types!==null&&(f.types=v.types),D.T=f}}else try{f=s(u,l),yg(e,t,f)}catch(le){vd(e,t,le)}}function yg(e,t,s){s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(function(l){vg(e,t,l)},function(l){return vd(e,t,l)}):vg(e,t,s)}function vg(e,t,s){t.status="fulfilled",t.value=s,Sg(t),e.state=s,t=e.pending,t!==null&&(s=t.next,s===t?e.pending=null:(s=s.next,t.next=s,bg(e,s)))}function vd(e,t,s){var l=e.pending;if(e.pending=null,l!==null){l=l.next;do t.status="rejected",t.reason=s,Sg(t),t=t.next;while(t!==l)}e.action=null}function Sg(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Eg(e,t){return t}function Ng(e,t){if(gt){var s=zt.formState;if(s!==null){e:{var l=tt;if(gt){if(Pt){t:{for(var u=Pt,f=ns;u.nodeType!==8;){if(!f){u=null;break t}if(u=rs(u.nextSibling),u===null){u=null;break t}}f=u.data,u=f==="F!"||f==="F"?u:null}if(u){Pt=rs(u.nextSibling),l=u.data==="F!";break e}}gr(l)}l=!1}l&&(t=s[0])}}return s=Tn(),s.memoizedState=s.baseState=t,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Eg,lastRenderedState:t},s.queue=l,s=Pg.bind(null,tt,l),l.dispatch=s,l=yd(!1),f=wd.bind(null,tt,!1,l.queue),l=Tn(),u={state:t,dispatch:null,action:e,pending:null},l.queue=u,s=zE.bind(null,tt,u,f,s),u.dispatch=s,l.memoizedState=e,[t,s,!1]}function jg(e){var t=Zt();return Tg(t,Rt,e)}function Tg(e,t,s){if(t=xd(e,t,Eg)[0],e=Mi(Ys)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var l=Za(t)}catch(v){throw v===Ko?Ni:v}else l=t;t=Zt();var u=t.queue,f=u.dispatch;return s!==t.memoizedState&&(tt.flags|=2048,ea(9,{destroy:void 0},LE.bind(null,u,s),null)),[l,f,e]}function LE(e,t){e.action=t}function wg(e){var t=Zt(),s=Rt;if(s!==null)return Tg(t,s,e);Zt(),t=t.memoizedState,s=Zt();var l=s.queue.dispatch;return s.memoizedState=e,[t,l,!1]}function ea(e,t,s,l){return e={tag:e,create:s,deps:l,inst:t,next:null},t=tt.updateQueue,t===null&&(t=_i(),tt.updateQueue=t),s=t.lastEffect,s===null?t.lastEffect=e.next=e:(l=s.next,s.next=e,e.next=l,t.lastEffect=e),e}function Cg(){return Zt().memoizedState}function Di(e,t,s,l){var u=Tn();tt.flags|=e,u.memoizedState=ea(1|t,{destroy:void 0},s,l===void 0?null:l)}function zi(e,t,s,l){var u=Zt();l=l===void 0?null:l;var f=u.memoizedState.inst;Rt!==null&&l!==null&&dd(l,Rt.memoizedState.deps)?u.memoizedState=ea(t,f,s,l):(tt.flags|=e,u.memoizedState=ea(1|t,f,s,l))}function Og(e,t){Di(8390656,8,e,t)}function Sd(e,t){zi(2048,8,e,t)}function IE(e){tt.flags|=4;var t=tt.updateQueue;if(t===null)t=_i(),tt.updateQueue=t,t.events=[e];else{var s=t.events;s===null?t.events=[e]:s.push(e)}}function Rg(e){var t=Zt().memoizedState;return IE({ref:t,nextImpl:e}),function(){if((Et&2)!==0)throw Error(a(440));return t.impl.apply(void 0,arguments)}}function kg(e,t){return zi(4,2,e,t)}function _g(e,t){return zi(4,4,e,t)}function Ag(e,t){if(typeof t=="function"){e=e();var s=t(e);return function(){typeof s=="function"?s():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Mg(e,t,s){s=s!=null?s.concat([e]):null,zi(4,4,Ag.bind(null,t,e),s)}function Ed(){}function Dg(e,t){var s=Zt();t=t===void 0?null:t;var l=s.memoizedState;return t!==null&&dd(t,l[1])?l[0]:(s.memoizedState=[e,t],e)}function zg(e,t){var s=Zt();t=t===void 0?null:t;var l=s.memoizedState;if(t!==null&&dd(t,l[1]))return l[0];if(l=e(),oo){It(!0);try{e()}finally{It(!1)}}return s.memoizedState=[l,t],l}function Nd(e,t,s){return s===void 0||(Hs&1073741824)!==0&&(dt&261930)===0?e.memoizedState=t:(e.memoizedState=s,e=Lx(),tt.lanes|=e,Tr|=e,s)}function Lg(e,t,s,l){return Bn(s,t)?s:Zo.current!==null?(e=Nd(e,s,l),Bn(e,t)||(en=!0),e):(Hs&42)===0||(Hs&1073741824)!==0&&(dt&261930)===0?(en=!0,e.memoizedState=s):(e=Lx(),tt.lanes|=e,Tr|=e,t)}function Ig(e,t,s,l,u){var f=z.p;z.p=f!==0&&8>f?f:8;var v=D.T,R={};D.T=R,wd(e,!1,t,s);try{var $=u(),le=D.S;if(le!==null&&le(R,$),$!==null&&typeof $=="object"&&typeof $.then=="function"){var be=AE($,l);Ja(e,t,be,Fn(e))}else Ja(e,t,l,Fn(e))}catch(Ne){Ja(e,t,{then:function(){},status:"rejected",reason:Ne},Fn())}finally{z.p=f,v!==null&&R.types!==null&&(v.types=R.types),D.T=v}}function BE(){}function jd(e,t,s,l){if(e.tag!==5)throw Error(a(476));var u=Bg(e).queue;Ig(e,u,t,P,s===null?BE:function(){return Ug(e),s(l)})}function Bg(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:P,baseState:P,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ys,lastRenderedState:P},next:null};var s={};return t.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ys,lastRenderedState:s},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ug(e){var t=Bg(e);t.next===null&&(t=e.alternate.memoizedState),Ja(e,t.next.queue,{},Fn())}function Td(){return xn(hl)}function Hg(){return Zt().memoizedState}function Yg(){return Zt().memoizedState}function UE(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var s=Fn();e=yr(s);var l=vr(t,e,s);l!==null&&(Mn(l,t,s),$a(l,t,s)),t={cache:ed()},e.payload=t;return}t=t.return}}function HE(e,t,s){var l=Fn();s={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},Li(e)?Vg(t,s):(s=Vu(e,t,s,l),s!==null&&(Mn(s,e,l),Fg(s,t,l)))}function Pg(e,t,s){var l=Fn();Ja(e,t,s,l)}function Ja(e,t,s,l){var u={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(Li(e))Vg(t,u);else{var f=e.alternate;if(e.lanes===0&&(f===null||f.lanes===0)&&(f=t.lastRenderedReducer,f!==null))try{var v=t.lastRenderedState,R=f(v,s);if(u.hasEagerState=!0,u.eagerState=R,Bn(R,v))return gi(e,t,u,0),zt===null&&hi(),!1}catch{}if(s=Vu(e,t,u,l),s!==null)return Mn(s,e,l),Fg(s,t,l),!0}return!1}function wd(e,t,s,l){if(l={lane:2,revertLane:rf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Li(e)){if(t)throw Error(a(479))}else t=Vu(e,s,l,2),t!==null&&Mn(t,e,2)}function Li(e){var t=e.alternate;return e===tt||t!==null&&t===tt}function Vg(e,t){Jo=Ri=!0;var s=e.pending;s===null?t.next=t:(t.next=s.next,s.next=t),e.pending=t}function Fg(e,t,s){if((s&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,s|=l,t.lanes=s,cn(e,s)}}var Wa={readContext:xn,use:Ai,useCallback:Gt,useContext:Gt,useEffect:Gt,useImperativeHandle:Gt,useLayoutEffect:Gt,useInsertionEffect:Gt,useMemo:Gt,useReducer:Gt,useRef:Gt,useState:Gt,useDebugValue:Gt,useDeferredValue:Gt,useTransition:Gt,useSyncExternalStore:Gt,useId:Gt,useHostTransitionStatus:Gt,useFormState:Gt,useActionState:Gt,useOptimistic:Gt,useMemoCache:Gt,useCacheRefresh:Gt};Wa.useEffectEvent=Gt;var qg={readContext:xn,use:Ai,useCallback:function(e,t){return Tn().memoizedState=[e,t===void 0?null:t],e},useContext:xn,useEffect:Og,useImperativeHandle:function(e,t,s){s=s!=null?s.concat([e]):null,Di(4194308,4,Ag.bind(null,t,e),s)},useLayoutEffect:function(e,t){return Di(4194308,4,e,t)},useInsertionEffect:function(e,t){Di(4,2,e,t)},useMemo:function(e,t){var s=Tn();t=t===void 0?null:t;var l=e();if(oo){It(!0);try{e()}finally{It(!1)}}return s.memoizedState=[l,t],l},useReducer:function(e,t,s){var l=Tn();if(s!==void 0){var u=s(t);if(oo){It(!0);try{s(t)}finally{It(!1)}}}else u=t;return l.memoizedState=l.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},l.queue=e,e=e.dispatch=HE.bind(null,tt,e),[l.memoizedState,e]},useRef:function(e){var t=Tn();return e={current:e},t.memoizedState=e},useState:function(e){e=yd(e);var t=e.queue,s=Pg.bind(null,tt,t);return t.dispatch=s,[e.memoizedState,s]},useDebugValue:Ed,useDeferredValue:function(e,t){var s=Tn();return Nd(s,e,t)},useTransition:function(){var e=yd(!1);return e=Ig.bind(null,tt,e.queue,!0,!1),Tn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,s){var l=tt,u=Tn();if(gt){if(s===void 0)throw Error(a(407));s=s()}else{if(s=t(),zt===null)throw Error(a(349));(dt&127)!==0||fg(l,t,s)}u.memoizedState=s;var f={value:s,getSnapshot:t};return u.queue=f,Og(pg.bind(null,l,f,e),[e]),l.flags|=2048,ea(9,{destroy:void 0},mg.bind(null,l,f,s,t),null),s},useId:function(){var e=Tn(),t=zt.identifierPrefix;if(gt){var s=xs,l=gs;s=(l&~(1<<32-jt(l)-1)).toString(32)+s,t="_"+t+"R_"+s,s=ki++,0<s&&(t+="H"+s.toString(32)),t+="_"}else s=ME++,t="_"+t+"r_"+s.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Td,useFormState:Ng,useActionState:Ng,useOptimistic:function(e){var t=Tn();t.memoizedState=t.baseState=e;var s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=s,t=wd.bind(null,tt,!0,s),s.dispatch=t,[e,t]},useMemoCache:gd,useCacheRefresh:function(){return Tn().memoizedState=UE.bind(null,tt)},useEffectEvent:function(e){var t=Tn(),s={impl:e};return t.memoizedState=s,function(){if((Et&2)!==0)throw Error(a(440));return s.impl.apply(void 0,arguments)}}},Cd={readContext:xn,use:Ai,useCallback:Dg,useContext:xn,useEffect:Sd,useImperativeHandle:Mg,useInsertionEffect:kg,useLayoutEffect:_g,useMemo:zg,useReducer:Mi,useRef:Cg,useState:function(){return Mi(Ys)},useDebugValue:Ed,useDeferredValue:function(e,t){var s=Zt();return Lg(s,Rt.memoizedState,e,t)},useTransition:function(){var e=Mi(Ys)[0],t=Zt().memoizedState;return[typeof e=="boolean"?e:Za(e),t]},useSyncExternalStore:dg,useId:Hg,useHostTransitionStatus:Td,useFormState:jg,useActionState:jg,useOptimistic:function(e,t){var s=Zt();return xg(s,Rt,e,t)},useMemoCache:gd,useCacheRefresh:Yg};Cd.useEffectEvent=Rg;var Gg={readContext:xn,use:Ai,useCallback:Dg,useContext:xn,useEffect:Sd,useImperativeHandle:Mg,useInsertionEffect:kg,useLayoutEffect:_g,useMemo:zg,useReducer:bd,useRef:Cg,useState:function(){return bd(Ys)},useDebugValue:Ed,useDeferredValue:function(e,t){var s=Zt();return Rt===null?Nd(s,e,t):Lg(s,Rt.memoizedState,e,t)},useTransition:function(){var e=bd(Ys)[0],t=Zt().memoizedState;return[typeof e=="boolean"?e:Za(e),t]},useSyncExternalStore:dg,useId:Hg,useHostTransitionStatus:Td,useFormState:wg,useActionState:wg,useOptimistic:function(e,t){var s=Zt();return Rt!==null?xg(s,Rt,e,t):(s.baseState=e,[e,s.queue.dispatch])},useMemoCache:gd,useCacheRefresh:Yg};Gg.useEffectEvent=Rg;function Od(e,t,s,l){t=e.memoizedState,s=s(l,t),s=s==null?t:x({},t,s),e.memoizedState=s,e.lanes===0&&(e.updateQueue.baseState=s)}var Rd={enqueueSetState:function(e,t,s){e=e._reactInternals;var l=Fn(),u=yr(l);u.payload=t,s!=null&&(u.callback=s),t=vr(e,u,l),t!==null&&(Mn(t,e,l),$a(t,e,l))},enqueueReplaceState:function(e,t,s){e=e._reactInternals;var l=Fn(),u=yr(l);u.tag=1,u.payload=t,s!=null&&(u.callback=s),t=vr(e,u,l),t!==null&&(Mn(t,e,l),$a(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var s=Fn(),l=yr(s);l.tag=2,t!=null&&(l.callback=t),t=vr(e,l,s),t!==null&&(Mn(t,e,s),$a(t,e,s))}};function $g(e,t,s,l,u,f,v){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,f,v):t.prototype&&t.prototype.isPureReactComponent?!Ua(s,l)||!Ua(u,f):!0}function Xg(e,t,s,l){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(s,l),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(s,l),t.state!==e&&Rd.enqueueReplaceState(t,t.state,null)}function ao(e,t){var s=t;if("ref"in t){s={};for(var l in t)l!=="ref"&&(s[l]=t[l])}if(e=e.defaultProps){s===t&&(s=x({},s));for(var u in e)s[u]===void 0&&(s[u]=e[u])}return s}function Kg(e){pi(e)}function Qg(e){console.error(e)}function Zg(e){pi(e)}function Ii(e,t){try{var s=e.onUncaughtError;s(t.value,{componentStack:t.stack})}catch(l){setTimeout(function(){throw l})}}function Jg(e,t,s){try{var l=e.onCaughtError;l(s.value,{componentStack:s.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function kd(e,t,s){return s=yr(s),s.tag=3,s.payload={element:null},s.callback=function(){Ii(e,t)},s}function Wg(e){return e=yr(e),e.tag=3,e}function ex(e,t,s,l){var u=s.type.getDerivedStateFromError;if(typeof u=="function"){var f=l.value;e.payload=function(){return u(f)},e.callback=function(){Jg(t,s,l)}}var v=s.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(e.callback=function(){Jg(t,s,l),typeof u!="function"&&(wr===null?wr=new Set([this]):wr.add(this));var R=l.stack;this.componentDidCatch(l.value,{componentStack:R!==null?R:""})})}function YE(e,t,s,l,u){if(s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(t=s.alternate,t!==null&&Go(t,s,u,!0),s=Hn.current,s!==null){switch(s.tag){case 31:case 13:return ss===null?Ki():s.alternate===null&&$t===0&&($t=3),s.flags&=-257,s.flags|=65536,s.lanes=u,l===ji?s.flags|=16384:(t=s.updateQueue,t===null?s.updateQueue=new Set([l]):t.add(l),tf(e,l,u)),!1;case 22:return s.flags|=65536,l===ji?s.flags|=16384:(t=s.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([l])},s.updateQueue=t):(s=t.retryQueue,s===null?t.retryQueue=new Set([l]):s.add(l)),tf(e,l,u)),!1}throw Error(a(435,s.tag))}return tf(e,l,u),Ki(),!1}if(gt)return t=Hn.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=u,l!==Ku&&(e=Error(a(422),{cause:l}),Pa(Wn(e,s)))):(l!==Ku&&(t=Error(a(423),{cause:l}),Pa(Wn(t,s))),e=e.current.alternate,e.flags|=65536,u&=-u,e.lanes|=u,l=Wn(l,s),u=kd(e.stateNode,l,u),ad(e,u),$t!==4&&($t=2)),!1;var f=Error(a(520),{cause:l});if(f=Wn(f,s),ll===null?ll=[f]:ll.push(f),$t!==4&&($t=2),t===null)return!0;l=Wn(l,s),s=t;do{switch(s.tag){case 3:return s.flags|=65536,e=u&-u,s.lanes|=e,e=kd(s.stateNode,l,e),ad(s,e),!1;case 1:if(t=s.type,f=s.stateNode,(s.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(wr===null||!wr.has(f))))return s.flags|=65536,u&=-u,s.lanes|=u,u=Wg(u),ex(u,e,s,l),ad(s,u),!1}s=s.return}while(s!==null);return!1}var _d=Error(a(461)),en=!1;function bn(e,t,s,l){t.child=e===null?rg(t,null,s,l):ro(t,e.child,s,l)}function tx(e,t,s,l,u){s=s.render;var f=t.ref;if("ref"in l){var v={};for(var R in l)R!=="ref"&&(v[R]=l[R])}else v=l;return eo(t),l=fd(e,t,s,v,f,u),R=md(),e!==null&&!en?(pd(e,t,u),Ps(e,t,u)):(gt&&R&&$u(t),t.flags|=1,bn(e,t,l,u),t.child)}function nx(e,t,s,l,u){if(e===null){var f=s.type;return typeof f=="function"&&!Fu(f)&&f.defaultProps===void 0&&s.compare===null?(t.tag=15,t.type=f,sx(e,t,f,l,u)):(e=bi(s.type,null,l,t,t.mode,u),e.ref=t.ref,e.return=t,t.child=e)}if(f=e.child,!Ud(e,u)){var v=f.memoizedProps;if(s=s.compare,s=s!==null?s:Ua,s(v,l)&&e.ref===t.ref)return Ps(e,t,u)}return t.flags|=1,e=Ls(f,l),e.ref=t.ref,e.return=t,t.child=e}function sx(e,t,s,l,u){if(e!==null){var f=e.memoizedProps;if(Ua(f,l)&&e.ref===t.ref)if(en=!1,t.pendingProps=l=f,Ud(e,u))(e.flags&131072)!==0&&(en=!0);else return t.lanes=e.lanes,Ps(e,t,u)}return Ad(e,t,s,l,u)}function rx(e,t,s,l){var u=l.children,f=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((t.flags&128)!==0){if(f=f!==null?f.baseLanes|s:s,e!==null){for(l=t.child=e.child,u=0;l!==null;)u=u|l.lanes|l.childLanes,l=l.sibling;l=u&~f}else l=0,t.child=null;return ox(e,t,f,s,l)}if((s&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ei(t,f!==null?f.cachePool:null),f!==null?lg(t,f):id(),ig(t);else return l=t.lanes=536870912,ox(e,t,f!==null?f.baseLanes|s:s,s,l)}else f!==null?(Ei(t,f.cachePool),lg(t,f),Er(),t.memoizedState=null):(e!==null&&Ei(t,null),id(),Er());return bn(e,t,u,s),t.child}function el(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function ox(e,t,s,l,u){var f=nd();return f=f===null?null:{parent:Jt._currentValue,pool:f},t.memoizedState={baseLanes:s,cachePool:f},e!==null&&Ei(t,null),id(),ig(t),e!==null&&Go(e,t,l,!0),t.childLanes=u,null}function Bi(e,t){return t=Hi({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function ax(e,t,s){return ro(t,e.child,null,s),e=Bi(t,t.pendingProps),e.flags|=2,Yn(t),t.memoizedState=null,e}function PE(e,t,s){var l=t.pendingProps,u=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(gt){if(l.mode==="hidden")return e=Bi(t,l),t.lanes=536870912,el(null,e);if(ud(t),(e=Pt)?(e=bb(e,ns),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:pr!==null?{id:gs,overflow:xs}:null,retryLane:536870912,hydrationErrors:null},s=Vh(e),s.return=t,t.child=s,gn=t,Pt=null)):e=null,e===null)throw gr(t);return t.lanes=536870912,null}return Bi(t,l)}var f=e.memoizedState;if(f!==null){var v=f.dehydrated;if(ud(t),u)if(t.flags&256)t.flags&=-257,t=ax(e,t,s);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(a(558));else if(en||Go(e,t,s,!1),u=(s&e.childLanes)!==0,en||u){if(l=zt,l!==null&&(v=hn(l,s),v!==0&&v!==f.retryLane))throw f.retryLane=v,Qr(e,v),Mn(l,e,v),_d;Ki(),t=ax(e,t,s)}else e=f.treeContext,Pt=rs(v.nextSibling),gn=t,gt=!0,hr=null,ns=!1,e!==null&&Gh(t,e),t=Bi(t,l),t.flags|=4096;return t}return e=Ls(e.child,{mode:l.mode,children:l.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Ui(e,t){var s=t.ref;if(s===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof s!="function"&&typeof s!="object")throw Error(a(284));(e===null||e.ref!==s)&&(t.flags|=4194816)}}function Ad(e,t,s,l,u){return eo(t),s=fd(e,t,s,l,void 0,u),l=md(),e!==null&&!en?(pd(e,t,u),Ps(e,t,u)):(gt&&l&&$u(t),t.flags|=1,bn(e,t,s,u),t.child)}function lx(e,t,s,l,u,f){return eo(t),t.updateQueue=null,s=ug(t,l,s,u),cg(e),l=md(),e!==null&&!en?(pd(e,t,f),Ps(e,t,f)):(gt&&l&&$u(t),t.flags|=1,bn(e,t,s,f),t.child)}function ix(e,t,s,l,u){if(eo(t),t.stateNode===null){var f=Po,v=s.contextType;typeof v=="object"&&v!==null&&(f=xn(v)),f=new s(l,f),t.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Rd,t.stateNode=f,f._reactInternals=t,f=t.stateNode,f.props=l,f.state=t.memoizedState,f.refs={},rd(t),v=s.contextType,f.context=typeof v=="object"&&v!==null?xn(v):Po,f.state=t.memoizedState,v=s.getDerivedStateFromProps,typeof v=="function"&&(Od(t,s,v,l),f.state=t.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&&Rd.enqueueReplaceState(f,f.state,null),Ka(t,l,f,u),Xa(),f.state=t.memoizedState),typeof f.componentDidMount=="function"&&(t.flags|=4194308),l=!0}else if(e===null){f=t.stateNode;var R=t.memoizedProps,$=ao(s,R);f.props=$;var le=f.context,be=s.contextType;v=Po,typeof be=="object"&&be!==null&&(v=xn(be));var Ne=s.getDerivedStateFromProps;be=typeof Ne=="function"||typeof f.getSnapshotBeforeUpdate=="function",R=t.pendingProps!==R,be||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(R||le!==v)&&Xg(t,f,l,v),br=!1;var de=t.memoizedState;f.state=de,Ka(t,l,f,u),Xa(),le=t.memoizedState,R||de!==le||br?(typeof Ne=="function"&&(Od(t,s,Ne,l),le=t.memoizedState),($=br||$g(t,s,$,l,de,le,v))?(be||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"&&(t.flags|=4194308)):(typeof f.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=l,t.memoizedState=le),f.props=l,f.state=le,f.context=v,l=$):(typeof f.componentDidMount=="function"&&(t.flags|=4194308),l=!1)}else{f=t.stateNode,od(e,t),v=t.memoizedProps,be=ao(s,v),f.props=be,Ne=t.pendingProps,de=f.context,le=s.contextType,$=Po,typeof le=="object"&&le!==null&&($=xn(le)),R=s.getDerivedStateFromProps,(le=typeof R=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(v!==Ne||de!==$)&&Xg(t,f,l,$),br=!1,de=t.memoizedState,f.state=de,Ka(t,l,f,u),Xa();var pe=t.memoizedState;v!==Ne||de!==pe||br||e!==null&&e.dependencies!==null&&vi(e.dependencies)?(typeof R=="function"&&(Od(t,s,R,l),pe=t.memoizedState),(be=br||$g(t,s,be,l,de,pe,$)||e!==null&&e.dependencies!==null&&vi(e.dependencies))?(le||typeof f.UNSAFE_componentWillUpdate!="function"&&typeof f.componentWillUpdate!="function"||(typeof f.componentWillUpdate=="function"&&f.componentWillUpdate(l,pe,$),typeof f.UNSAFE_componentWillUpdate=="function"&&f.UNSAFE_componentWillUpdate(l,pe,$)),typeof f.componentDidUpdate=="function"&&(t.flags|=4),typeof f.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof f.componentDidUpdate!="function"||v===e.memoizedProps&&de===e.memoizedState||(t.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&de===e.memoizedState||(t.flags|=1024),t.memoizedProps=l,t.memoizedState=pe),f.props=l,f.state=pe,f.context=$,l=be):(typeof f.componentDidUpdate!="function"||v===e.memoizedProps&&de===e.memoizedState||(t.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&de===e.memoizedState||(t.flags|=1024),l=!1)}return f=l,Ui(e,t),l=(t.flags&128)!==0,f||l?(f=t.stateNode,s=l&&typeof s.getDerivedStateFromError!="function"?null:f.render(),t.flags|=1,e!==null&&l?(t.child=ro(t,e.child,null,u),t.child=ro(t,null,s,u)):bn(e,t,s,u),t.memoizedState=f.state,e=t.child):e=Ps(e,t,u),e}function cx(e,t,s,l){return Jr(),t.flags|=256,bn(e,t,s,l),t.child}var Md={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Dd(e){return{baseLanes:e,cachePool:Jh()}}function zd(e,t,s){return e=e!==null?e.childLanes&~s:0,t&&(e|=Vn),e}function ux(e,t,s){var l=t.pendingProps,u=!1,f=(t.flags&128)!==0,v;if((v=f)||(v=e!==null&&e.memoizedState===null?!1:(Qt.current&2)!==0),v&&(u=!0,t.flags&=-129),v=(t.flags&32)!==0,t.flags&=-33,e===null){if(gt){if(u?Sr(t):Er(),(e=Pt)?(e=bb(e,ns),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:pr!==null?{id:gs,overflow:xs}:null,retryLane:536870912,hydrationErrors:null},s=Vh(e),s.return=t,t.child=s,gn=t,Pt=null)):e=null,e===null)throw gr(t);return bf(e)?t.lanes=32:t.lanes=536870912,null}var R=l.children;return l=l.fallback,u?(Er(),u=t.mode,R=Hi({mode:"hidden",children:R},u),l=Zr(l,u,s,null),R.return=t,l.return=t,R.sibling=l,t.child=R,l=t.child,l.memoizedState=Dd(s),l.childLanes=zd(e,v,s),t.memoizedState=Md,el(null,l)):(Sr(t),Ld(t,R))}var $=e.memoizedState;if($!==null&&(R=$.dehydrated,R!==null)){if(f)t.flags&256?(Sr(t),t.flags&=-257,t=Id(e,t,s)):t.memoizedState!==null?(Er(),t.child=e.child,t.flags|=128,t=null):(Er(),R=l.fallback,u=t.mode,l=Hi({mode:"visible",children:l.children},u),R=Zr(R,u,s,null),R.flags|=2,l.return=t,R.return=t,l.sibling=R,t.child=l,ro(t,e.child,null,s),l=t.child,l.memoizedState=Dd(s),l.childLanes=zd(e,v,s),t.memoizedState=Md,t=el(null,l));else if(Sr(t),bf(R)){if(v=R.nextSibling&&R.nextSibling.dataset,v)var le=v.dgst;v=le,l=Error(a(419)),l.stack="",l.digest=v,Pa({value:l,source:null,stack:null}),t=Id(e,t,s)}else if(en||Go(e,t,s,!1),v=(s&e.childLanes)!==0,en||v){if(v=zt,v!==null&&(l=hn(v,s),l!==0&&l!==$.retryLane))throw $.retryLane=l,Qr(e,l),Mn(v,e,l),_d;xf(R)||Ki(),t=Id(e,t,s)}else xf(R)?(t.flags|=192,t.child=e.child,t=null):(e=$.treeContext,Pt=rs(R.nextSibling),gn=t,gt=!0,hr=null,ns=!1,e!==null&&Gh(t,e),t=Ld(t,l.children),t.flags|=4096);return t}return u?(Er(),R=l.fallback,u=t.mode,$=e.child,le=$.sibling,l=Ls($,{mode:"hidden",children:l.children}),l.subtreeFlags=$.subtreeFlags&65011712,le!==null?R=Ls(le,R):(R=Zr(R,u,s,null),R.flags|=2),R.return=t,l.return=t,l.sibling=R,t.child=l,el(null,l),l=t.child,R=e.child.memoizedState,R===null?R=Dd(s):(u=R.cachePool,u!==null?($=Jt._currentValue,u=u.parent!==$?{parent:$,pool:$}:u):u=Jh(),R={baseLanes:R.baseLanes|s,cachePool:u}),l.memoizedState=R,l.childLanes=zd(e,v,s),t.memoizedState=Md,el(e.child,l)):(Sr(t),s=e.child,e=s.sibling,s=Ls(s,{mode:"visible",children:l.children}),s.return=t,s.sibling=null,e!==null&&(v=t.deletions,v===null?(t.deletions=[e],t.flags|=16):v.push(e)),t.child=s,t.memoizedState=null,s)}function Ld(e,t){return t=Hi({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Hi(e,t){return e=Un(22,e,null,t),e.lanes=0,e}function Id(e,t,s){return ro(t,e.child,null,s),e=Ld(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function dx(e,t,s){e.lanes|=t;var l=e.alternate;l!==null&&(l.lanes|=t),Ju(e.return,t,s)}function Bd(e,t,s,l,u,f){var v=e.memoizedState;v===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:u,treeForkCount:f}:(v.isBackwards=t,v.rendering=null,v.renderingStartTime=0,v.last=l,v.tail=s,v.tailMode=u,v.treeForkCount=f)}function fx(e,t,s){var l=t.pendingProps,u=l.revealOrder,f=l.tail;l=l.children;var v=Qt.current,R=(v&2)!==0;if(R?(v=v&1|2,t.flags|=128):v&=1,I(Qt,v),bn(e,t,l,s),l=gt?Ya:0,!R&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&dx(e,s,t);else if(e.tag===19)dx(e,s,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(u){case"forwards":for(s=t.child,u=null;s!==null;)e=s.alternate,e!==null&&Oi(e)===null&&(u=s),s=s.sibling;s=u,s===null?(u=t.child,t.child=null):(u=s.sibling,s.sibling=null),Bd(t,!1,u,s,f,l);break;case"backwards":case"unstable_legacy-backwards":for(s=null,u=t.child,t.child=null;u!==null;){if(e=u.alternate,e!==null&&Oi(e)===null){t.child=u;break}e=u.sibling,u.sibling=s,s=u,u=e}Bd(t,!0,s,null,f,l);break;case"together":Bd(t,!1,null,null,void 0,l);break;default:t.memoizedState=null}return t.child}function Ps(e,t,s){if(e!==null&&(t.dependencies=e.dependencies),Tr|=t.lanes,(s&t.childLanes)===0)if(e!==null){if(Go(e,t,s,!1),(s&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(a(153));if(t.child!==null){for(e=t.child,s=Ls(e,e.pendingProps),t.child=s,s.return=t;e.sibling!==null;)e=e.sibling,s=s.sibling=Ls(e,e.pendingProps),s.return=t;s.sibling=null}return t.child}function Ud(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&vi(e)))}function VE(e,t,s){switch(t.tag){case 3:re(t,t.stateNode.containerInfo),xr(t,Jt,e.memoizedState.cache),Jr();break;case 27:case 5:Ie(t);break;case 4:re(t,t.stateNode.containerInfo);break;case 10:xr(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,ud(t),null;break;case 13:var l=t.memoizedState;if(l!==null)return l.dehydrated!==null?(Sr(t),t.flags|=128,null):(s&t.child.childLanes)!==0?ux(e,t,s):(Sr(t),e=Ps(e,t,s),e!==null?e.sibling:null);Sr(t);break;case 19:var u=(e.flags&128)!==0;if(l=(s&t.childLanes)!==0,l||(Go(e,t,s,!1),l=(s&t.childLanes)!==0),u){if(l)return fx(e,t,s);t.flags|=128}if(u=t.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),I(Qt,Qt.current),l)break;return null;case 22:return t.lanes=0,rx(e,t,s,t.pendingProps);case 24:xr(t,Jt,e.memoizedState.cache)}return Ps(e,t,s)}function mx(e,t,s){if(e!==null)if(e.memoizedProps!==t.pendingProps)en=!0;else{if(!Ud(e,s)&&(t.flags&128)===0)return en=!1,VE(e,t,s);en=(e.flags&131072)!==0}else en=!1,gt&&(t.flags&1048576)!==0&&qh(t,Ya,t.index);switch(t.lanes=0,t.tag){case 16:e:{var l=t.pendingProps;if(e=no(t.elementType),t.type=e,typeof e=="function")Fu(e)?(l=ao(e,l),t.tag=1,t=ix(null,t,e,l,s)):(t.tag=0,t=Ad(null,t,e,l,s));else{if(e!=null){var u=e.$$typeof;if(u===k){t.tag=11,t=tx(null,t,e,l,s);break e}else if(u===L){t.tag=14,t=nx(null,t,e,l,s);break e}}throw t=te(e)||e,Error(a(306,t,""))}}return t;case 0:return Ad(e,t,t.type,t.pendingProps,s);case 1:return l=t.type,u=ao(l,t.pendingProps),ix(e,t,l,u,s);case 3:e:{if(re(t,t.stateNode.containerInfo),e===null)throw Error(a(387));l=t.pendingProps;var f=t.memoizedState;u=f.element,od(e,t),Ka(t,l,null,s);var v=t.memoizedState;if(l=v.cache,xr(t,Jt,l),l!==f.cache&&Wu(t,[Jt],s,!0),Xa(),l=v.element,f.isDehydrated)if(f={element:l,isDehydrated:!1,cache:v.cache},t.updateQueue.baseState=f,t.memoizedState=f,t.flags&256){t=cx(e,t,l,s);break e}else if(l!==u){u=Wn(Error(a(424)),t),Pa(u),t=cx(e,t,l,s);break e}else for(e=t.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,Pt=rs(e.firstChild),gn=t,gt=!0,hr=null,ns=!0,s=rg(t,null,l,s),t.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(Jr(),l===u){t=Ps(e,t,s);break e}bn(e,t,l,s)}t=t.child}return t;case 26:return Ui(e,t),e===null?(s=jb(t.type,null,t.pendingProps,null))?t.memoizedState=s:gt||(s=t.type,e=t.pendingProps,l=nc(J.current).createElement(s),l[nn]=t,l[Cn]=e,yn(l,s,e),un(l),t.stateNode=l):t.memoizedState=jb(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Ie(t),e===null&&gt&&(l=t.stateNode=Sb(t.type,t.pendingProps,J.current),gn=t,ns=!0,u=Pt,kr(t.type)?(yf=u,Pt=rs(l.firstChild)):Pt=u),bn(e,t,t.pendingProps.children,s),Ui(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&gt&&((u=l=Pt)&&(l=yN(l,t.type,t.pendingProps,ns),l!==null?(t.stateNode=l,gn=t,Pt=rs(l.firstChild),ns=!1,u=!0):u=!1),u||gr(t)),Ie(t),u=t.type,f=t.pendingProps,v=e!==null?e.memoizedProps:null,l=f.children,pf(u,f)?l=null:v!==null&&pf(u,v)&&(t.flags|=32),t.memoizedState!==null&&(u=fd(e,t,DE,null,null,s),hl._currentValue=u),Ui(e,t),bn(e,t,l,s),t.child;case 6:return e===null&&gt&&((e=s=Pt)&&(s=vN(s,t.pendingProps,ns),s!==null?(t.stateNode=s,gn=t,Pt=null,e=!0):e=!1),e||gr(t)),null;case 13:return ux(e,t,s);case 4:return re(t,t.stateNode.containerInfo),l=t.pendingProps,e===null?t.child=ro(t,null,l,s):bn(e,t,l,s),t.child;case 11:return tx(e,t,t.type,t.pendingProps,s);case 7:return bn(e,t,t.pendingProps,s),t.child;case 8:return bn(e,t,t.pendingProps.children,s),t.child;case 12:return bn(e,t,t.pendingProps.children,s),t.child;case 10:return l=t.pendingProps,xr(t,t.type,l.value),bn(e,t,l.children,s),t.child;case 9:return u=t.type._context,l=t.pendingProps.children,eo(t),u=xn(u),l=l(u),t.flags|=1,bn(e,t,l,s),t.child;case 14:return nx(e,t,t.type,t.pendingProps,s);case 15:return sx(e,t,t.type,t.pendingProps,s);case 19:return fx(e,t,s);case 31:return PE(e,t,s);case 22:return rx(e,t,s,t.pendingProps);case 24:return eo(t),l=xn(Jt),e===null?(u=nd(),u===null&&(u=zt,f=ed(),u.pooledCache=f,f.refCount++,f!==null&&(u.pooledCacheLanes|=s),u=f),t.memoizedState={parent:l,cache:u},rd(t),xr(t,Jt,u)):((e.lanes&s)!==0&&(od(e,t),Ka(t,null,null,s),Xa()),u=e.memoizedState,f=t.memoizedState,u.parent!==l?(u={parent:l,cache:l},t.memoizedState=u,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=u),xr(t,Jt,l)):(l=f.cache,xr(t,Jt,l),l!==u.cache&&Wu(t,[Jt],s,!0))),bn(e,t,t.pendingProps.children,s),t.child;case 29:throw t.pendingProps}throw Error(a(156,t.tag))}function Vs(e){e.flags|=4}function Hd(e,t,s,l,u){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(u&335544128)===u)if(e.stateNode.complete)e.flags|=8192;else if(Hx())e.flags|=8192;else throw so=ji,sd}else e.flags&=-16777217}function px(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Rb(t))if(Hx())e.flags|=8192;else throw so=ji,sd}function Yi(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Kt():536870912,e.lanes|=t,ra|=t)}function tl(e,t){if(!gt)switch(e.tailMode){case"hidden":t=e.tail;for(var s=null;t!==null;)t.alternate!==null&&(s=t),t=t.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?t||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function Vt(e){var t=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(t)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,t}function FE(e,t,s){var l=t.pendingProps;switch(Xu(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vt(t),null;case 1:return Vt(t),null;case 3:return s=t.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),Us(Jt),ce(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(qo(t)?Vs(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Qu())),Vt(t),null;case 26:var u=t.type,f=t.memoizedState;return e===null?(Vs(t),f!==null?(Vt(t),px(t,f)):(Vt(t),Hd(t,u,null,l,s))):f?f!==e.memoizedState?(Vs(t),Vt(t),px(t,f)):(Vt(t),t.flags&=-16777217):(e=e.memoizedProps,e!==l&&Vs(t),Vt(t),Hd(t,u,e,l,s)),null;case 27:if(_e(t),s=J.current,u=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==l&&Vs(t);else{if(!l){if(t.stateNode===null)throw Error(a(166));return Vt(t),null}e=H.current,qo(t)?$h(t):(e=Sb(u,l,s),t.stateNode=e,Vs(t))}return Vt(t),null;case 5:if(_e(t),u=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==l&&Vs(t);else{if(!l){if(t.stateNode===null)throw Error(a(166));return Vt(t),null}if(f=H.current,qo(t))$h(t);else{var v=nc(J.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[nn]=t,f[Cn]=l;e:for(v=t.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===t)break e;for(;v.sibling===null;){if(v.return===null||v.return===t)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}t.stateNode=f;e:switch(yn(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&&Vs(t)}}return Vt(t),Hd(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,s),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&Vs(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(a(166));if(e=J.current,qo(t)){if(e=t.stateNode,s=t.memoizedProps,l=null,u=gn,u!==null)switch(u.tag){case 27:case 5:l=u.memoizedProps}e[nn]=t,e=!!(e.nodeValue===s||l!==null&&l.suppressHydrationWarning===!0||ub(e.nodeValue,s)),e||gr(t,!0)}else e=nc(e).createTextNode(l),e[nn]=t,t.stateNode=e}return Vt(t),null;case 31:if(s=t.memoizedState,e===null||e.memoizedState!==null){if(l=qo(t),s!==null){if(e===null){if(!l)throw Error(a(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(557));e[nn]=t}else Jr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Vt(t),e=!1}else s=Qu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),e=!0;if(!e)return t.flags&256?(Yn(t),t):(Yn(t),null);if((t.flags&128)!==0)throw Error(a(558))}return Vt(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=qo(t),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(a(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(a(317));u[nn]=t}else Jr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Vt(t),u=!1}else u=Qu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(Yn(t),t):(Yn(t),null)}return Yn(t),(t.flags&128)!==0?(t.lanes=s,t):(s=l!==null,e=e!==null&&e.memoizedState!==null,s&&(l=t.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&&(t.child.flags|=8192),Yi(t,t.updateQueue),Vt(t),null);case 4:return ce(),e===null&&cf(t.stateNode.containerInfo),Vt(t),null;case 10:return Us(t.type),Vt(t),null;case 19:if(B(Qt),l=t.memoizedState,l===null)return Vt(t),null;if(u=(t.flags&128)!==0,f=l.rendering,f===null)if(u)tl(l,!1);else{if($t!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(f=Oi(e),f!==null){for(t.flags|=128,tl(l,!1),e=f.updateQueue,t.updateQueue=e,Yi(t,e),t.subtreeFlags=0,e=s,s=t.child;s!==null;)Ph(s,e),s=s.sibling;return I(Qt,Qt.current&1|2),gt&&Is(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&Y()>Gi&&(t.flags|=128,u=!0,tl(l,!1),t.lanes=4194304)}else{if(!u)if(e=Oi(f),e!==null){if(t.flags|=128,u=!0,e=e.updateQueue,t.updateQueue=e,Yi(t,e),tl(l,!0),l.tail===null&&l.tailMode==="hidden"&&!f.alternate&&!gt)return Vt(t),null}else 2*Y()-l.renderingStartTime>Gi&&s!==536870912&&(t.flags|=128,u=!0,tl(l,!1),t.lanes=4194304);l.isBackwards?(f.sibling=t.child,t.child=f):(e=l.last,e!==null?e.sibling=f:t.child=f,l.last=f)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=Y(),e.sibling=null,s=Qt.current,I(Qt,u?s&1|2:s&1),gt&&Is(t,l.treeForkCount),e):(Vt(t),null);case 22:case 23:return Yn(t),cd(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(s&536870912)!==0&&(t.flags&128)===0&&(Vt(t),t.subtreeFlags&6&&(t.flags|=8192)):Vt(t),s=t.updateQueue,s!==null&&Yi(t,s.retryQueue),s=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(s=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==s&&(t.flags|=2048),e!==null&&B(to),null;case 24:return s=null,e!==null&&(s=e.memoizedState.cache),t.memoizedState.cache!==s&&(t.flags|=2048),Us(Jt),Vt(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function qE(e,t){switch(Xu(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Us(Jt),ce(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return _e(t),null;case 31:if(t.memoizedState!==null){if(Yn(t),t.alternate===null)throw Error(a(340));Jr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Yn(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Jr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return B(Qt),null;case 4:return ce(),null;case 10:return Us(t.type),null;case 22:case 23:return Yn(t),cd(),e!==null&&B(to),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Us(Jt),null;case 25:return null;default:return null}}function hx(e,t){switch(Xu(t),t.tag){case 3:Us(Jt),ce();break;case 26:case 27:case 5:_e(t);break;case 4:ce();break;case 31:t.memoizedState!==null&&Yn(t);break;case 13:Yn(t);break;case 19:B(Qt);break;case 10:Us(t.type);break;case 22:case 23:Yn(t),cd(),e!==null&&B(to);break;case 24:Us(Jt)}}function nl(e,t){try{var s=t.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){Ct(t,t.return,R)}}function Nr(e,t,s){try{var l=t.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=t;var $=s,le=R;try{le()}catch(be){Ct(u,$,be)}}}l=l.next}while(l!==f)}}catch(be){Ct(t,t.return,be)}}function gx(e){var t=e.updateQueue;if(t!==null){var s=e.stateNode;try{ag(t,s)}catch(l){Ct(e,e.return,l)}}}function xx(e,t,s){s.props=ao(e.type,e.memoizedProps),s.state=e.memoizedState;try{s.componentWillUnmount()}catch(l){Ct(e,t,l)}}function sl(e,t){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){Ct(e,t,u)}}function bs(e,t){var s=e.ref,l=e.refCleanup;if(s!==null)if(typeof l=="function")try{l()}catch(u){Ct(e,t,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(u){Ct(e,t,u)}else s.current=null}function bx(e){var t=e.type,s=e.memoizedProps,l=e.stateNode;try{e:switch(t){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){Ct(e,e.return,u)}}function Yd(e,t,s){try{var l=e.stateNode;mN(l,e.type,s,t),l[Cn]=t}catch(u){Ct(e,e.return,u)}}function yx(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&kr(e.type)||e.tag===4}function Pd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yx(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&&kr(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vd(e,t,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s).insertBefore(e,t):(t=s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,t.appendChild(e),s=s._reactRootContainer,s!=null||t.onclick!==null||(t.onclick=Ds));else if(l!==4&&(l===27&&kr(e.type)&&(s=e.stateNode,t=null),e=e.child,e!==null))for(Vd(e,t,s),e=e.sibling;e!==null;)Vd(e,t,s),e=e.sibling}function Pi(e,t,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?s.insertBefore(e,t):s.appendChild(e);else if(l!==4&&(l===27&&kr(e.type)&&(s=e.stateNode),e=e.child,e!==null))for(Pi(e,t,s),e=e.sibling;e!==null;)Pi(e,t,s),e=e.sibling}function vx(e){var t=e.stateNode,s=e.memoizedProps;try{for(var l=e.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);yn(t,l,s),t[nn]=e,t[Cn]=s}catch(f){Ct(e,e.return,f)}}var Fs=!1,tn=!1,Fd=!1,Sx=typeof WeakSet=="function"?WeakSet:Set,dn=null;function GE(e,t){if(e=e.containerInfo,ff=cc,e=Mh(e),Iu(e)){if("selectionStart"in e)var s={start:e.selectionStart,end:e.selectionEnd};else e:{s=(s=e.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var 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,le=0,be=0,Ne=e,de=null;t:for(;;){for(var pe;Ne!==s||u!==0&&Ne.nodeType!==3||(R=v+u),Ne!==f||l!==0&&Ne.nodeType!==3||($=v+l),Ne.nodeType===3&&(v+=Ne.nodeValue.length),(pe=Ne.firstChild)!==null;)de=Ne,Ne=pe;for(;;){if(Ne===e)break t;if(de===s&&++le===u&&(R=v),de===f&&++be===l&&($=v),(pe=Ne.nextSibling)!==null)break;Ne=de,de=Ne.parentNode}Ne=pe}s=R===-1||$===-1?null:{start:R,end:$}}else s=null}s=s||{start:0,end:0}}else s=null;for(mf={focusedElem:e,selectionRange:s},cc=!1,dn=t;dn!==null;)if(t=dn,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dn=e;else for(;dn!==null;){switch(t=dn,f=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.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=t,u=f.memoizedProps,f=f.memoizedState,l=s.stateNode;try{var Fe=ao(s.type,u);e=l.getSnapshotBeforeUpdate(Fe,f),l.__reactInternalSnapshotBeforeUpdate=e}catch(Ze){Ct(s,s.return,Ze)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,s=e.nodeType,s===9)gf(e);else if(s===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":gf(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(a(163))}if(e=t.sibling,e!==null){e.return=t.return,dn=e;break}dn=t.return}}function Ex(e,t,s){var l=s.flags;switch(s.tag){case 0:case 11:case 15:Gs(e,s),l&4&&nl(5,s);break;case 1:if(Gs(e,s),l&4)if(e=s.stateNode,t===null)try{e.componentDidMount()}catch(v){Ct(s,s.return,v)}else{var u=ao(s.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(u,t,e.__reactInternalSnapshotBeforeUpdate)}catch(v){Ct(s,s.return,v)}}l&64&&gx(s),l&512&&sl(s,s.return);break;case 3:if(Gs(e,s),l&64&&(e=s.updateQueue,e!==null)){if(t=null,s.child!==null)switch(s.child.tag){case 27:case 5:t=s.child.stateNode;break;case 1:t=s.child.stateNode}try{ag(e,t)}catch(v){Ct(s,s.return,v)}}break;case 27:t===null&&l&4&&vx(s);case 26:case 5:Gs(e,s),t===null&&l&4&&bx(s),l&512&&sl(s,s.return);break;case 12:Gs(e,s);break;case 31:Gs(e,s),l&4&&Tx(e,s);break;case 13:Gs(e,s),l&4&&wx(e,s),l&64&&(e=s.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(s=tN.bind(null,s),SN(e,s))));break;case 22:if(l=s.memoizedState!==null||Fs,!l){t=t!==null&&t.memoizedState!==null||tn,u=Fs;var f=tn;Fs=l,(tn=t)&&!f?$s(e,s,(s.subtreeFlags&8772)!==0):Gs(e,s),Fs=u,tn=f}break;case 30:break;default:Gs(e,s)}}function Nx(e){var t=e.alternate;t!==null&&(e.alternate=null,Nx(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&vu(t)),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 Ft=null,Rn=!1;function qs(e,t,s){for(s=s.child;s!==null;)jx(e,t,s),s=s.sibling}function jx(e,t,s){if(ut&&typeof ut.onCommitFiberUnmount=="function")try{ut.onCommitFiberUnmount(Mt,s)}catch{}switch(s.tag){case 26:tn||bs(s,t),qs(e,t,s),s.memoizedState?s.memoizedState.count--:s.stateNode&&(s=s.stateNode,s.parentNode.removeChild(s));break;case 27:tn||bs(s,t);var l=Ft,u=Rn;kr(s.type)&&(Ft=s.stateNode,Rn=!1),qs(e,t,s),fl(s.stateNode),Ft=l,Rn=u;break;case 5:tn||bs(s,t);case 6:if(l=Ft,u=Rn,Ft=null,qs(e,t,s),Ft=l,Rn=u,Ft!==null)if(Rn)try{(Ft.nodeType===9?Ft.body:Ft.nodeName==="HTML"?Ft.ownerDocument.body:Ft).removeChild(s.stateNode)}catch(f){Ct(s,t,f)}else try{Ft.removeChild(s.stateNode)}catch(f){Ct(s,t,f)}break;case 18:Ft!==null&&(Rn?(e=Ft,gb(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,s.stateNode),fa(e)):gb(Ft,s.stateNode));break;case 4:l=Ft,u=Rn,Ft=s.stateNode.containerInfo,Rn=!0,qs(e,t,s),Ft=l,Rn=u;break;case 0:case 11:case 14:case 15:Nr(2,s,t),tn||Nr(4,s,t),qs(e,t,s);break;case 1:tn||(bs(s,t),l=s.stateNode,typeof l.componentWillUnmount=="function"&&xx(s,t,l)),qs(e,t,s);break;case 21:qs(e,t,s);break;case 22:tn=(l=tn)||s.memoizedState!==null,qs(e,t,s),tn=l;break;default:qs(e,t,s)}}function Tx(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{fa(e)}catch(s){Ct(t,t.return,s)}}}function wx(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{fa(e)}catch(s){Ct(t,t.return,s)}}function $E(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Sx),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Sx),t;default:throw Error(a(435,e.tag))}}function Vi(e,t){var s=$E(e);t.forEach(function(l){if(!s.has(l)){s.add(l);var u=nN.bind(null,e,l);l.then(u,u)}})}function kn(e,t){var s=t.deletions;if(s!==null)for(var l=0;l<s.length;l++){var u=s[l],f=e,v=t,R=v;e:for(;R!==null;){switch(R.tag){case 27:if(kr(R.type)){Ft=R.stateNode,Rn=!1;break e}break;case 5:Ft=R.stateNode,Rn=!1;break e;case 3:case 4:Ft=R.stateNode.containerInfo,Rn=!0;break e}R=R.return}if(Ft===null)throw Error(a(160));jx(f,v,u),Ft=null,Rn=!1,f=u.alternate,f!==null&&(f.return=null),u.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Cx(t,e),t=t.sibling}var us=null;function Cx(e,t){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:kn(t,e),_n(e),l&4&&(Nr(3,e,e.return),nl(3,e),Nr(5,e,e.return));break;case 1:kn(t,e),_n(e),l&512&&(tn||s===null||bs(s,s.return)),l&64&&Fs&&(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=us;if(kn(t,e),_n(e),l&512&&(tn||s===null||bs(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[ka]||f[nn]||f.namespaceURI==="http://www.w3.org/2000/svg"||f.hasAttribute("itemprop"))&&(f=u.createElement(l),u.head.insertBefore(f,u.querySelector("head > title"))),yn(f,l,s),f[nn]=e,un(f),l=f;break e;case"link":var v=Cb("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),yn(f,l,s),u.head.appendChild(f);break;case"meta":if(v=Cb("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),yn(f,l,s),u.head.appendChild(f);break;default:throw Error(a(468,l))}f[nn]=e,un(f),l=f}e.stateNode=l}else Ob(u,e.type,e.stateNode);else e.stateNode=wb(u,l,e.memoizedProps);else f!==l?(f===null?s.stateNode!==null&&(s=s.stateNode,s.parentNode.removeChild(s)):f.count--,l===null?Ob(u,e.type,e.stateNode):wb(u,l,e.memoizedProps)):l===null&&e.stateNode!==null&&Yd(e,e.memoizedProps,s.memoizedProps)}break;case 27:kn(t,e),_n(e),l&512&&(tn||s===null||bs(s,s.return)),s!==null&&l&4&&Yd(e,e.memoizedProps,s.memoizedProps);break;case 5:if(kn(t,e),_n(e),l&512&&(tn||s===null||bs(s,s.return)),e.flags&32){u=e.stateNode;try{zo(u,"")}catch(Fe){Ct(e,e.return,Fe)}}l&4&&e.stateNode!=null&&(u=e.memoizedProps,Yd(e,u,s!==null?s.memoizedProps:u)),l&1024&&(Fd=!0);break;case 6:if(kn(t,e),_n(e),l&4){if(e.stateNode===null)throw Error(a(162));l=e.memoizedProps,s=e.stateNode;try{s.nodeValue=l}catch(Fe){Ct(e,e.return,Fe)}}break;case 3:if(oc=null,u=us,us=sc(t.containerInfo),kn(t,e),us=u,_n(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{fa(t.containerInfo)}catch(Fe){Ct(e,e.return,Fe)}Fd&&(Fd=!1,Ox(e));break;case 4:l=us,us=sc(e.stateNode.containerInfo),kn(t,e),_n(e),us=l;break;case 12:kn(t,e),_n(e);break;case 31:kn(t,e),_n(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Vi(e,l)));break;case 13:kn(t,e),_n(e),e.child.flags&8192&&e.memoizedState!==null!=(s!==null&&s.memoizedState!==null)&&(qi=Y()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Vi(e,l)));break;case 22:u=e.memoizedState!==null;var $=s!==null&&s.memoizedState!==null,le=Fs,be=tn;if(Fs=le||u,tn=be||$,kn(t,e),tn=be,Fs=le,_n(e),l&8192)e:for(t=e.stateNode,t._visibility=u?t._visibility&-2:t._visibility|1,u&&(s===null||$||Fs||tn||lo(e)),s=null,t=e;;){if(t.tag===5||t.tag===26){if(s===null){$=s=t;try{if(f=$.stateNode,u)v=f.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{R=$.stateNode;var Ne=$.memoizedProps.style,de=Ne!=null&&Ne.hasOwnProperty("display")?Ne.display:null;R.style.display=de==null||typeof de=="boolean"?"":(""+de).trim()}}catch(Fe){Ct($,$.return,Fe)}}}else if(t.tag===6){if(s===null){$=t;try{$.stateNode.nodeValue=u?"":$.memoizedProps}catch(Fe){Ct($,$.return,Fe)}}}else if(t.tag===18){if(s===null){$=t;try{var pe=$.stateNode;u?xb(pe,!0):xb($.stateNode,!1)}catch(Fe){Ct($,$.return,Fe)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;s===t&&(s=null),t=t.return}s===t&&(s=null),t.sibling.return=t.return,t=t.sibling}l&4&&(l=e.updateQueue,l!==null&&(s=l.retryQueue,s!==null&&(l.retryQueue=null,Vi(e,s))));break;case 19:kn(t,e),_n(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Vi(e,l)));break;case 30:break;case 21:break;default:kn(t,e),_n(e)}}function _n(e){var t=e.flags;if(t&2){try{for(var s,l=e.return;l!==null;){if(yx(l)){s=l;break}l=l.return}if(s==null)throw Error(a(160));switch(s.tag){case 27:var u=s.stateNode,f=Pd(e);Pi(e,f,u);break;case 5:var v=s.stateNode;s.flags&32&&(zo(v,""),s.flags&=-33);var R=Pd(e);Pi(e,R,v);break;case 3:case 4:var $=s.stateNode.containerInfo,le=Pd(e);Vd(e,le,$);break;default:throw Error(a(161))}}catch(be){Ct(e,e.return,be)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Ox(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Ox(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Gs(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Ex(e,t.alternate,t),t=t.sibling}function lo(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Nr(4,t,t.return),lo(t);break;case 1:bs(t,t.return);var s=t.stateNode;typeof s.componentWillUnmount=="function"&&xx(t,t.return,s),lo(t);break;case 27:fl(t.stateNode);case 26:case 5:bs(t,t.return),lo(t);break;case 22:t.memoizedState===null&&lo(t);break;case 30:lo(t);break;default:lo(t)}e=e.sibling}}function $s(e,t,s){for(s=s&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var l=t.alternate,u=e,f=t,v=f.flags;switch(f.tag){case 0:case 11:case 15:$s(u,f,s),nl(4,f);break;case 1:if($s(u,f,s),l=f,u=l.stateNode,typeof u.componentDidMount=="function")try{u.componentDidMount()}catch(le){Ct(l,l.return,le)}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++)og($[u],R)}catch(le){Ct(l,l.return,le)}}s&&v&64&&gx(f),sl(f,f.return);break;case 27:vx(f);case 26:case 5:$s(u,f,s),s&&l===null&&v&4&&bx(f),sl(f,f.return);break;case 12:$s(u,f,s);break;case 31:$s(u,f,s),s&&v&4&&Tx(u,f);break;case 13:$s(u,f,s),s&&v&4&&wx(u,f);break;case 22:f.memoizedState===null&&$s(u,f,s),sl(f,f.return);break;case 30:break;default:$s(u,f,s)}t=t.sibling}}function qd(e,t){var s=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(s=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==s&&(e!=null&&e.refCount++,s!=null&&Va(s))}function Gd(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Va(e))}function ds(e,t,s,l){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Rx(e,t,s,l),t=t.sibling}function Rx(e,t,s,l){var u=t.flags;switch(t.tag){case 0:case 11:case 15:ds(e,t,s,l),u&2048&&nl(9,t);break;case 1:ds(e,t,s,l);break;case 3:ds(e,t,s,l),u&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Va(e)));break;case 12:if(u&2048){ds(e,t,s,l),e=t.stateNode;try{var f=t.memoizedProps,v=f.id,R=f.onPostCommit;typeof R=="function"&&R(v,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch($){Ct(t,t.return,$)}}else ds(e,t,s,l);break;case 31:ds(e,t,s,l);break;case 13:ds(e,t,s,l);break;case 23:break;case 22:f=t.stateNode,v=t.alternate,t.memoizedState!==null?f._visibility&2?ds(e,t,s,l):rl(e,t):f._visibility&2?ds(e,t,s,l):(f._visibility|=2,ta(e,t,s,l,(t.subtreeFlags&10256)!==0||!1)),u&2048&&qd(v,t);break;case 24:ds(e,t,s,l),u&2048&&Gd(t.alternate,t);break;default:ds(e,t,s,l)}}function ta(e,t,s,l,u){for(u=u&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var f=e,v=t,R=s,$=l,le=v.flags;switch(v.tag){case 0:case 11:case 15:ta(f,v,R,$,u),nl(8,v);break;case 23:break;case 22:var be=v.stateNode;v.memoizedState!==null?be._visibility&2?ta(f,v,R,$,u):rl(f,v):(be._visibility|=2,ta(f,v,R,$,u)),u&&le&2048&&qd(v.alternate,v);break;case 24:ta(f,v,R,$,u),u&&le&2048&&Gd(v.alternate,v);break;default:ta(f,v,R,$,u)}t=t.sibling}}function rl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var s=e,l=t,u=l.flags;switch(l.tag){case 22:rl(s,l),u&2048&&qd(l.alternate,l);break;case 24:rl(s,l),u&2048&&Gd(l.alternate,l);break;default:rl(s,l)}t=t.sibling}}var ol=8192;function na(e,t,s){if(e.subtreeFlags&ol)for(e=e.child;e!==null;)kx(e,t,s),e=e.sibling}function kx(e,t,s){switch(e.tag){case 26:na(e,t,s),e.flags&ol&&e.memoizedState!==null&&MN(s,us,e.memoizedState,e.memoizedProps);break;case 5:na(e,t,s);break;case 3:case 4:var l=us;us=sc(e.stateNode.containerInfo),na(e,t,s),us=l;break;case 22:e.memoizedState===null&&(l=e.alternate,l!==null&&l.memoizedState!==null?(l=ol,ol=16777216,na(e,t,s),ol=l):na(e,t,s));break;default:na(e,t,s)}}function _x(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function al(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var s=0;s<t.length;s++){var l=t[s];dn=l,Mx(l,e)}_x(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ax(e),e=e.sibling}function Ax(e){switch(e.tag){case 0:case 11:case 15:al(e),e.flags&2048&&Nr(9,e,e.return);break;case 3:al(e);break;case 12:al(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Fi(e)):al(e);break;default:al(e)}}function Fi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var s=0;s<t.length;s++){var l=t[s];dn=l,Mx(l,e)}_x(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Nr(8,t,t.return),Fi(t);break;case 22:s=t.stateNode,s._visibility&2&&(s._visibility&=-3,Fi(t));break;default:Fi(t)}e=e.sibling}}function Mx(e,t){for(;dn!==null;){var s=dn;switch(s.tag){case 0:case 11:case 15:Nr(8,s,t);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:Va(s.memoizedState.cache)}if(l=s.child,l!==null)l.return=s,dn=l;else e:for(s=e;dn!==null;){l=dn;var u=l.sibling,f=l.return;if(Nx(l),l===s){dn=null;break e}if(u!==null){u.return=f,dn=u;break e}dn=f}}}var XE={getCacheForType:function(e){var t=xn(Jt),s=t.data.get(e);return s===void 0&&(s=e(),t.data.set(e,s)),s},cacheSignal:function(){return xn(Jt).controller.signal}},KE=typeof WeakMap=="function"?WeakMap:Map,Et=0,zt=null,lt=null,dt=0,wt=0,Pn=null,jr=!1,sa=!1,$d=!1,Xs=0,$t=0,Tr=0,io=0,Xd=0,Vn=0,ra=0,ll=null,An=null,Kd=!1,qi=0,Dx=0,Gi=1/0,$i=null,wr=null,sn=0,Cr=null,oa=null,Ks=0,Qd=0,Zd=null,zx=null,il=0,Jd=null;function Fn(){return(Et&2)!==0&&dt!==0?dt&-dt:D.T!==null?rf():As()}function Lx(){if(Vn===0)if((dt&536870912)===0||gt){var e=Tt;Tt<<=1,(Tt&3932160)===0&&(Tt=262144),Vn=e}else Vn=536870912;return e=Hn.current,e!==null&&(e.flags|=32),Vn}function Mn(e,t,s){(e===zt&&(wt===2||wt===9)||e.cancelPendingCommit!==null)&&(aa(e,0),Or(e,dt,Vn,!1)),Dt(e,s),((Et&2)===0||e!==zt)&&(e===zt&&((Et&2)===0&&(io|=s),$t===4&&Or(e,dt,Vn,!1)),ys(e))}function Ix(e,t,s){if((Et&6)!==0)throw Error(a(327));var l=!s&&(t&127)===0&&(t&e.expiredLanes)===0||yt(e,t),u=l?JE(e,t):ef(e,t,!0),f=l;do{if(u===0){sa&&!l&&Or(e,t,0,!1);break}else{if(s=e.current.alternate,f&&!QE(s)){u=ef(e,t,!1),f=!1;continue}if(u===2){if(f=t,e.errorRecoveryDisabledLanes&f)var v=0;else v=e.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){t=v;e:{var R=e;u=ll;var $=R.current.memoizedState.isDehydrated;if($&&(aa(R,v).flags|=256),v=ef(R,v,!1),v!==2){if($d&&!$){R.errorRecoveryDisabledLanes|=f,io|=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){aa(e,0),Or(e,t,0,!0);break}e:{switch(l=e,f=u,f){case 0:case 1:throw Error(a(345));case 4:if((t&4194048)!==t)break;case 6:Or(l,t,Vn,!jr);break e;case 2:An=null;break;case 3:case 5:break;default:throw Error(a(329))}if((t&62914560)===t&&(u=qi+300-Y(),10<u)){if(Or(l,t,Vn,!jr),Ge(l,0,!0)!==0)break e;Ks=t,l.timeoutHandle=pb(Bx.bind(null,l,s,An,$i,Kd,t,Vn,io,ra,jr,f,"Throttled",-0,0),u);break e}Bx(l,s,An,$i,Kd,t,Vn,io,ra,jr,f,null,-0,0)}}break}while(!0);ys(e)}function Bx(e,t,s,l,u,f,v,R,$,le,be,Ne,de,pe){if(e.timeoutHandle=-1,Ne=t.subtreeFlags,Ne&8192||(Ne&16785408)===16785408){Ne={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ds},kx(t,f,Ne);var Fe=(f&62914560)===f?qi-Y():(f&4194048)===f?Dx-Y():0;if(Fe=DN(Ne,Fe),Fe!==null){Ks=f,e.cancelPendingCommit=Fe(Gx.bind(null,e,t,f,s,l,u,v,R,$,be,Ne,null,de,pe)),Or(e,f,v,!le);return}}Gx(e,t,f,s,l,u,v,R,$)}function QE(e){for(var t=e;;){var s=t.tag;if((s===0||s===11||s===15)&&t.flags&16384&&(s=t.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(!Bn(f(),u))return!1}catch{return!1}}if(s=t.child,t.subtreeFlags&16384&&s!==null)s.return=t,t=s;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Or(e,t,s,l){t&=~Xd,t&=~io,e.suspendedLanes|=t,e.pingedLanes&=~t,l&&(e.warmLanes|=t),l=e.expirationTimes;for(var u=t;0<u;){var f=31-jt(u),v=1<<f;l[f]=-1,u&=~v}s!==0&&_s(e,s,t)}function Xi(){return(Et&6)===0?(cl(0),!1):!0}function Wd(){if(lt!==null){if(wt===0)var e=lt.return;else e=lt,Bs=Wr=null,hd(e),Qo=null,qa=0,e=lt;for(;e!==null;)hx(e.alternate,e),e=e.return;lt=null}}function aa(e,t){var s=e.timeoutHandle;s!==-1&&(e.timeoutHandle=-1,gN(s)),s=e.cancelPendingCommit,s!==null&&(e.cancelPendingCommit=null,s()),Ks=0,Wd(),zt=e,lt=s=Ls(e.current,null),dt=t,wt=0,Pn=null,jr=!1,sa=yt(e,t),$d=!1,ra=Vn=Xd=io=Tr=$t=0,An=ll=null,Kd=!1,(t&8)!==0&&(t|=t&32);var l=e.entangledLanes;if(l!==0)for(e=e.entanglements,l&=t;0<l;){var u=31-jt(l),f=1<<u;t|=e[u],l&=~f}return Xs=t,hi(),s}function Ux(e,t){tt=null,D.H=Wa,t===Ko||t===Ni?(t=tg(),wt=3):t===sd?(t=tg(),wt=4):wt=t===_d?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Pn=t,lt===null&&($t=1,Ii(e,Wn(t,e.current)))}function Hx(){var e=Hn.current;return e===null?!0:(dt&4194048)===dt?ss===null:(dt&62914560)===dt||(dt&536870912)!==0?e===ss:!1}function Yx(){var e=D.H;return D.H=Wa,e===null?Wa:e}function Px(){var e=D.A;return D.A=XE,e}function Ki(){$t=4,jr||(dt&4194048)!==dt&&Hn.current!==null||(sa=!0),(Tr&134217727)===0&&(io&134217727)===0||zt===null||Or(zt,dt,Vn,!1)}function ef(e,t,s){var l=Et;Et|=2;var u=Yx(),f=Px();(zt!==e||dt!==t)&&($i=null,aa(e,t)),t=!1;var v=$t;e:do try{if(wt!==0&&lt!==null){var R=lt,$=Pn;switch(wt){case 8:Wd(),v=6;break e;case 3:case 2:case 9:case 6:Hn.current===null&&(t=!0);var le=wt;if(wt=0,Pn=null,la(e,R,$,le),s&&sa){v=0;break e}break;default:le=wt,wt=0,Pn=null,la(e,R,$,le)}}ZE(),v=$t;break}catch(be){Ux(e,be)}while(!0);return t&&e.shellSuspendCounter++,Bs=Wr=null,Et=l,D.H=u,D.A=f,lt===null&&(zt=null,dt=0,hi()),v}function ZE(){for(;lt!==null;)Vx(lt)}function JE(e,t){var s=Et;Et|=2;var l=Yx(),u=Px();zt!==e||dt!==t?($i=null,Gi=Y()+500,aa(e,t)):sa=yt(e,t);e:do try{if(wt!==0&&lt!==null){t=lt;var f=Pn;t:switch(wt){case 1:wt=0,Pn=null,la(e,t,f,1);break;case 2:case 9:if(Wh(f)){wt=0,Pn=null,Fx(t);break}t=function(){wt!==2&&wt!==9||zt!==e||(wt=7),ys(e)},f.then(t,t);break e;case 3:wt=7;break e;case 4:wt=5;break e;case 7:Wh(f)?(wt=0,Pn=null,Fx(t)):(wt=0,Pn=null,la(e,t,f,7));break;case 5:var v=null;switch(lt.tag){case 26:v=lt.memoizedState;case 5:case 27:var R=lt;if(v?Rb(v):R.stateNode.complete){wt=0,Pn=null;var $=R.sibling;if($!==null)lt=$;else{var le=R.return;le!==null?(lt=le,Qi(le)):lt=null}break t}}wt=0,Pn=null,la(e,t,f,5);break;case 6:wt=0,Pn=null,la(e,t,f,6);break;case 8:Wd(),$t=6;break e;default:throw Error(a(462))}}WE();break}catch(be){Ux(e,be)}while(!0);return Bs=Wr=null,D.H=l,D.A=u,Et=s,lt!==null?0:(zt=null,dt=0,hi(),$t)}function WE(){for(;lt!==null&&!Ae();)Vx(lt)}function Vx(e){var t=mx(e.alternate,e,Xs);e.memoizedProps=e.pendingProps,t===null?Qi(e):lt=t}function Fx(e){var t=e,s=t.alternate;switch(t.tag){case 15:case 0:t=lx(s,t,t.pendingProps,t.type,void 0,dt);break;case 11:t=lx(s,t,t.pendingProps,t.type.render,t.ref,dt);break;case 5:hd(t);default:hx(s,t),t=lt=Ph(t,Xs),t=mx(s,t,Xs)}e.memoizedProps=e.pendingProps,t===null?Qi(e):lt=t}function la(e,t,s,l){Bs=Wr=null,hd(t),Qo=null,qa=0;var u=t.return;try{if(YE(e,u,t,s,dt)){$t=1,Ii(e,Wn(s,e.current)),lt=null;return}}catch(f){if(u!==null)throw lt=u,f;$t=1,Ii(e,Wn(s,e.current)),lt=null;return}t.flags&32768?(gt||l===1?e=!0:sa||(dt&536870912)!==0?e=!1:(jr=e=!0,(l===2||l===9||l===3||l===6)&&(l=Hn.current,l!==null&&l.tag===13&&(l.flags|=16384))),qx(t,e)):Qi(t)}function Qi(e){var t=e;do{if((t.flags&32768)!==0){qx(t,jr);return}e=t.return;var s=FE(t.alternate,t,Xs);if(s!==null){lt=s;return}if(t=t.sibling,t!==null){lt=t;return}lt=t=e}while(t!==null);$t===0&&($t=5)}function qx(e,t){do{var s=qE(e.alternate,e);if(s!==null){s.flags&=32767,lt=s;return}if(s=e.return,s!==null&&(s.flags|=32768,s.subtreeFlags=0,s.deletions=null),!t&&(e=e.sibling,e!==null)){lt=e;return}lt=e=s}while(e!==null);$t=6,lt=null}function Gx(e,t,s,l,u,f,v,R,$){e.cancelPendingCommit=null;do Zi();while(sn!==0);if((Et&6)!==0)throw Error(a(327));if(t!==null){if(t===e.current)throw Error(a(177));if(f=t.lanes|t.childLanes,f|=Pu,ln(e,s,f,v,R,$),e===zt&&(lt=zt=null,dt=0),oa=t,Cr=e,Ks=s,Qd=f,Zd=u,zx=l,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,sN(oe,function(){return Zx(),null})):(e.callbackNode=null,e.callbackPriority=0),l=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||l){l=D.T,D.T=null,u=z.p,z.p=2,v=Et,Et|=4;try{GE(e,t,s)}finally{Et=v,z.p=u,D.T=l}}sn=1,$x(),Xx(),Kx()}}function $x(){if(sn===1){sn=0;var e=Cr,t=oa,s=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||s){s=D.T,D.T=null;var l=z.p;z.p=2;var u=Et;Et|=4;try{Cx(t,e);var f=mf,v=Mh(e.containerInfo),R=f.focusedElem,$=f.selectionRange;if(v!==R&&R&&R.ownerDocument&&Ah(R.ownerDocument.documentElement,R)){if($!==null&&Iu(R)){var le=$.start,be=$.end;if(be===void 0&&(be=le),"selectionStart"in R)R.selectionStart=le,R.selectionEnd=Math.min(be,R.value.length);else{var Ne=R.ownerDocument||document,de=Ne&&Ne.defaultView||window;if(de.getSelection){var pe=de.getSelection(),Fe=R.textContent.length,Ze=Math.min($.start,Fe),_t=$.end===void 0?Ze:Math.min($.end,Fe);!pe.extend&&Ze>_t&&(v=_t,_t=Ze,Ze=v);var se=_h(R,Ze),Z=_h(R,_t);if(se&&Z&&(pe.rangeCount!==1||pe.anchorNode!==se.node||pe.anchorOffset!==se.offset||pe.focusNode!==Z.node||pe.focusOffset!==Z.offset)){var ae=Ne.createRange();ae.setStart(se.node,se.offset),pe.removeAllRanges(),Ze>_t?(pe.addRange(ae),pe.extend(Z.node,Z.offset)):(ae.setEnd(Z.node,Z.offset),pe.addRange(ae))}}}}for(Ne=[],pe=R;pe=pe.parentNode;)pe.nodeType===1&&Ne.push({element:pe,left:pe.scrollLeft,top:pe.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;R<Ne.length;R++){var Se=Ne[R];Se.element.scrollLeft=Se.left,Se.element.scrollTop=Se.top}}cc=!!ff,mf=ff=null}finally{Et=u,z.p=l,D.T=s}}e.current=t,sn=2}}function Xx(){if(sn===2){sn=0;var e=Cr,t=oa,s=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||s){s=D.T,D.T=null;var l=z.p;z.p=2;var u=Et;Et|=4;try{Ex(e,t.alternate,t)}finally{Et=u,z.p=l,D.T=s}}sn=3}}function Kx(){if(sn===4||sn===3){sn=0,Q();var e=Cr,t=oa,s=Ks,l=zx;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?sn=5:(sn=0,oa=Cr=null,Qx(e,e.pendingLanes));var u=e.pendingLanes;if(u===0&&(wr=null),In(s),t=t.stateNode,ut&&typeof ut.onCommitFiberRoot=="function")try{ut.onCommitFiberRoot(Mt,t,void 0,(t.current.flags&128)===128)}catch{}if(l!==null){t=D.T,u=z.p,z.p=2,D.T=null;try{for(var f=e.onRecoverableError,v=0;v<l.length;v++){var R=l[v];f(R.value,{componentStack:R.stack})}}finally{D.T=t,z.p=u}}(Ks&3)!==0&&Zi(),ys(e),u=e.pendingLanes,(s&261930)!==0&&(u&42)!==0?e===Jd?il++:(il=0,Jd=e):il=0,cl(0)}}function Qx(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Va(t)))}function Zi(){return $x(),Xx(),Kx(),Zx()}function Zx(){if(sn!==5)return!1;var e=Cr,t=Qd;Qd=0;var s=In(Ks),l=D.T,u=z.p;try{z.p=32>s?32:s,D.T=null,s=Zd,Zd=null;var f=Cr,v=Ks;if(sn=0,oa=Cr=null,Ks=0,(Et&6)!==0)throw Error(a(331));var R=Et;if(Et|=4,Ax(f.current),Rx(f,f.current,v,s),Et=R,cl(0,!1),ut&&typeof ut.onPostCommitFiberRoot=="function")try{ut.onPostCommitFiberRoot(Mt,f)}catch{}return!0}finally{z.p=u,D.T=l,Qx(e,t)}}function Jx(e,t,s){t=Wn(s,t),t=kd(e.stateNode,t,2),e=vr(e,t,2),e!==null&&(Dt(e,2),ys(e))}function Ct(e,t,s){if(e.tag===3)Jx(e,e,s);else for(;t!==null;){if(t.tag===3){Jx(t,e,s);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(wr===null||!wr.has(l))){e=Wn(s,e),s=Wg(2),l=vr(t,s,2),l!==null&&(ex(s,l,t,e),Dt(l,2),ys(l));break}}t=t.return}}function tf(e,t,s){var l=e.pingCache;if(l===null){l=e.pingCache=new KE;var u=new Set;l.set(t,u)}else u=l.get(t),u===void 0&&(u=new Set,l.set(t,u));u.has(s)||($d=!0,u.add(s),e=eN.bind(null,e,t,s),t.then(e,e))}function eN(e,t,s){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&s,e.warmLanes&=~s,zt===e&&(dt&s)===s&&($t===4||$t===3&&(dt&62914560)===dt&&300>Y()-qi?(Et&2)===0&&aa(e,0):Xd|=s,ra===dt&&(ra=0)),ys(e)}function Wx(e,t){t===0&&(t=Kt()),e=Qr(e,t),e!==null&&(Dt(e,t),ys(e))}function tN(e){var t=e.memoizedState,s=0;t!==null&&(s=t.retryLane),Wx(e,s)}function nN(e,t){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(t),Wx(e,s)}function sN(e,t){return ue(e,t)}var Ji=null,ia=null,nf=!1,Wi=!1,sf=!1,Rr=0;function ys(e){e!==ia&&e.next===null&&(ia===null?Ji=ia=e:ia=ia.next=e),Wi=!0,nf||(nf=!0,oN())}function cl(e,t){if(!sf&&Wi){sf=!0;do for(var s=!1,l=Ji;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-jt(42|e)+1)-1,f&=u&~(v&~R),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(s=!0,sb(l,f))}else f=dt,f=Ge(l,l===zt?f:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(f&3)===0||yt(l,f)||(s=!0,sb(l,f));l=l.next}while(s);sf=!1}}function rN(){eb()}function eb(){Wi=nf=!1;var e=0;Rr!==0&&hN()&&(e=Rr);for(var t=Y(),s=null,l=Ji;l!==null;){var u=l.next,f=tb(l,t);f===0?(l.next=null,s===null?Ji=u:s.next=u,u===null&&(ia=s)):(s=l,(e!==0||(f&3)!==0)&&(Wi=!0)),l=u}sn!==0&&sn!==5||cl(e),Rr!==0&&(Rr=0)}function tb(e,t){for(var s=e.suspendedLanes,l=e.pingedLanes,u=e.expirationTimes,f=e.pendingLanes&-62914561;0<f;){var v=31-jt(f),R=1<<v,$=u[v];$===-1?((R&s)===0||(R&l)!==0)&&(u[v]=Yt(R,t)):$<=t&&(e.expiredLanes|=R),f&=~R}if(t=zt,s=dt,s=Ge(e,e===t?s:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l=e.callbackNode,s===0||e===t&&(wt===2||wt===9)||e.cancelPendingCommit!==null)return l!==null&&l!==null&&ke(l),e.callbackNode=null,e.callbackPriority=0;if((s&3)===0||yt(e,s)){if(t=s&-s,t===e.callbackPriority)return t;switch(l!==null&&ke(l),In(s)){case 2:case 8:s=xe;break;case 32:s=oe;break;case 268435456:s=Ue;break;default:s=oe}return l=nb.bind(null,e),s=ue(s,l),e.callbackPriority=t,e.callbackNode=s,t}return l!==null&&l!==null&&ke(l),e.callbackPriority=2,e.callbackNode=null,2}function nb(e,t){if(sn!==0&&sn!==5)return e.callbackNode=null,e.callbackPriority=0,null;var s=e.callbackNode;if(Zi()&&e.callbackNode!==s)return null;var l=dt;return l=Ge(e,e===zt?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l===0?null:(Ix(e,l,t),tb(e,Y()),e.callbackNode!=null&&e.callbackNode===s?nb.bind(null,e):null)}function sb(e,t){if(Zi())return null;Ix(e,t,!0)}function oN(){xN(function(){(Et&6)!==0?ue(je,rN):eb()})}function rf(){if(Rr===0){var e=$o;e===0&&(e=qe,qe<<=1,(qe&261888)===0&&(qe=256)),Rr=e}return Rr}function rb(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:li(""+e)}function ob(e,t){var s=t.ownerDocument.createElement("input");return s.name=t.name,s.value=t.value,e.id&&s.setAttribute("form",e.id),t.parentNode.insertBefore(s,t),e=new FormData(e),s.parentNode.removeChild(s),e}function aN(e,t,s,l,u){if(t==="submit"&&s&&s.stateNode===u){var f=rb((u[Cn]||null).action),v=l.submitter;v&&(t=(t=v[Cn]||null)?rb(t.formAction):v.getAttribute("formAction"),t!==null&&(f=t,v=null));var R=new di("action","action",null,l,u);e.push({event:R,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Rr!==0){var $=v?ob(u,v):new FormData(u);jd(s,{pending:!0,data:$,method:u.method,action:f},null,$)}}else typeof f=="function"&&(R.preventDefault(),$=v?ob(u,v):new FormData(u),jd(s,{pending:!0,data:$,method:u.method,action:f},f,$))},currentTarget:u}]})}}for(var of=0;of<Yu.length;of++){var af=Yu[of],lN=af.toLowerCase(),iN=af[0].toUpperCase()+af.slice(1);cs(lN,"on"+iN)}cs(Lh,"onAnimationEnd"),cs(Ih,"onAnimationIteration"),cs(Bh,"onAnimationStart"),cs("dblclick","onDoubleClick"),cs("focusin","onFocus"),cs("focusout","onBlur"),cs(jE,"onTransitionRun"),cs(TE,"onTransitionStart"),cs(wE,"onTransitionCancel"),cs(Uh,"onTransitionEnd"),Mo("onMouseEnter",["mouseout","mouseover"]),Mo("onMouseLeave",["mouseout","mouseover"]),Mo("onPointerEnter",["pointerout","pointerover"]),Mo("onPointerLeave",["pointerout","pointerover"]),Gr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Gr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Gr("onBeforeInput",["compositionend","keypress","textInput","paste"]),Gr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Gr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Gr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ul="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(" "),cN=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(ul));function ab(e,t){t=(t&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(t)for(var v=l.length-1;0<=v;v--){var R=l[v],$=R.instance,le=R.currentTarget;if(R=R.listener,$!==f&&u.isPropagationStopped())break e;f=R,u.currentTarget=le;try{f(u)}catch(be){pi(be)}u.currentTarget=null,f=$}else for(v=0;v<l.length;v++){if(R=l[v],$=R.instance,le=R.currentTarget,R=R.listener,$!==f&&u.isPropagationStopped())break e;f=R,u.currentTarget=le;try{f(u)}catch(be){pi(be)}u.currentTarget=null,f=$}}}}function it(e,t){var s=t[yu];s===void 0&&(s=t[yu]=new Set);var l=e+"__bubble";s.has(l)||(lb(t,e,2,!1),s.add(l))}function lf(e,t,s){var l=0;t&&(l|=4),lb(s,e,l,t)}var ec="_reactListening"+Math.random().toString(36).slice(2);function cf(e){if(!e[ec]){e[ec]=!0,eh.forEach(function(s){s!=="selectionchange"&&(cN.has(s)||lf(s,!1,e),lf(s,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[ec]||(t[ec]=!0,lf("selectionchange",!1,t))}}function lb(e,t,s,l){switch(Lb(t)){case 2:var u=IN;break;case 8:u=BN;break;default:u=jf}s=u.bind(null,t,s,e),u=void 0,!Ou||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(u=!0),l?u!==void 0?e.addEventListener(t,s,{capture:!0,passive:u}):e.addEventListener(t,s,!0):u!==void 0?e.addEventListener(t,s,{passive:u}):e.addEventListener(t,s,!1)}function uf(e,t,s,l,u){var f=l;if((t&1)===0&&(t&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=ko(R),v===null)return;if($=v.tag,$===5||$===6||$===26||$===27){l=f=v;continue e}R=R.parentNode}}l=l.return}fh(function(){var le=f,be=wu(s),Ne=[];e:{var de=Hh.get(e);if(de!==void 0){var pe=di,Fe=e;switch(e){case"keypress":if(ci(s)===0)break e;case"keydown":case"keyup":pe=nE;break;case"focusin":Fe="focus",pe=Au;break;case"focusout":Fe="blur",pe=Au;break;case"beforeblur":case"afterblur":pe=Au;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":pe=hh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":pe=FS;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":pe=oE;break;case Lh:case Ih:case Bh:pe=$S;break;case Uh:pe=lE;break;case"scroll":case"scrollend":pe=PS;break;case"wheel":pe=cE;break;case"copy":case"cut":case"paste":pe=KS;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":pe=xh;break;case"toggle":case"beforetoggle":pe=dE}var Ze=(t&4)!==0,_t=!Ze&&(e==="scroll"||e==="scrollend"),se=Ze?de!==null?de+"Capture":null:de;Ze=[];for(var Z=le,ae;Z!==null;){var Se=Z;if(ae=Se.stateNode,Se=Se.tag,Se!==5&&Se!==26&&Se!==27||ae===null||se===null||(Se=Aa(Z,se),Se!=null&&Ze.push(dl(Z,Se,ae))),_t)break;Z=Z.return}0<Ze.length&&(de=new pe(de,Fe,null,s,be),Ne.push({event:de,listeners:Ze}))}}if((t&7)===0){e:{if(de=e==="mouseover"||e==="pointerover",pe=e==="mouseout"||e==="pointerout",de&&s!==Tu&&(Fe=s.relatedTarget||s.fromElement)&&(ko(Fe)||Fe[Ro]))break e;if((pe||de)&&(de=be.window===be?be:(de=be.ownerDocument)?de.defaultView||de.parentWindow:window,pe?(Fe=s.relatedTarget||s.toElement,pe=le,Fe=Fe?ko(Fe):null,Fe!==null&&(_t=d(Fe),Ze=Fe.tag,Fe!==_t||Ze!==5&&Ze!==27&&Ze!==6)&&(Fe=null)):(pe=null,Fe=le),pe!==Fe)){if(Ze=hh,Se="onMouseLeave",se="onMouseEnter",Z="mouse",(e==="pointerout"||e==="pointerover")&&(Ze=xh,Se="onPointerLeave",se="onPointerEnter",Z="pointer"),_t=pe==null?de:_a(pe),ae=Fe==null?de:_a(Fe),de=new Ze(Se,Z+"leave",pe,s,be),de.target=_t,de.relatedTarget=ae,Se=null,ko(be)===le&&(Ze=new Ze(se,Z+"enter",Fe,s,be),Ze.target=ae,Ze.relatedTarget=_t,Se=Ze),_t=Se,pe&&Fe)t:{for(Ze=uN,se=pe,Z=Fe,ae=0,Se=se;Se;Se=Ze(Se))ae++;Se=0;for(var Ke=Z;Ke;Ke=Ze(Ke))Se++;for(;0<ae-Se;)se=Ze(se),ae--;for(;0<Se-ae;)Z=Ze(Z),Se--;for(;ae--;){if(se===Z||Z!==null&&se===Z.alternate){Ze=se;break t}se=Ze(se),Z=Ze(Z)}Ze=null}else Ze=null;pe!==null&&ib(Ne,de,pe,Ze,!1),Fe!==null&&_t!==null&&ib(Ne,_t,Fe,Ze,!0)}}e:{if(de=le?_a(le):window,pe=de.nodeName&&de.nodeName.toLowerCase(),pe==="select"||pe==="input"&&de.type==="file")var vt=Th;else if(Nh(de))if(wh)vt=SE;else{vt=yE;var $e=bE}else pe=de.nodeName,!pe||pe.toLowerCase()!=="input"||de.type!=="checkbox"&&de.type!=="radio"?le&&ju(le.elementType)&&(vt=Th):vt=vE;if(vt&&(vt=vt(e,le))){jh(Ne,vt,s,be);break e}$e&&$e(e,de,le),e==="focusout"&&le&&de.type==="number"&&le.memoizedProps.value!=null&&Nu(de,"number",de.value)}switch($e=le?_a(le):window,e){case"focusin":(Nh($e)||$e.contentEditable==="true")&&(Uo=$e,Bu=le,Ha=null);break;case"focusout":Ha=Bu=Uo=null;break;case"mousedown":Uu=!0;break;case"contextmenu":case"mouseup":case"dragend":Uu=!1,Dh(Ne,s,be);break;case"selectionchange":if(NE)break;case"keydown":case"keyup":Dh(Ne,s,be)}var st;if(Du)e:{switch(e){case"compositionstart":var ft="onCompositionStart";break e;case"compositionend":ft="onCompositionEnd";break e;case"compositionupdate":ft="onCompositionUpdate";break e}ft=void 0}else Bo?Sh(e,s)&&(ft="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(ft="onCompositionStart");ft&&(bh&&s.locale!=="ko"&&(Bo||ft!=="onCompositionStart"?ft==="onCompositionEnd"&&Bo&&(st=mh()):(mr=be,Ru="value"in mr?mr.value:mr.textContent,Bo=!0)),$e=tc(le,ft),0<$e.length&&(ft=new gh(ft,e,null,s,be),Ne.push({event:ft,listeners:$e}),st?ft.data=st:(st=Eh(s),st!==null&&(ft.data=st)))),(st=mE?pE(e,s):hE(e,s))&&(ft=tc(le,"onBeforeInput"),0<ft.length&&($e=new gh("onBeforeInput","beforeinput",null,s,be),Ne.push({event:$e,listeners:ft}),$e.data=st)),aN(Ne,e,le,s,be)}ab(Ne,t)})}function dl(e,t,s){return{instance:e,listener:t,currentTarget:s}}function tc(e,t){for(var s=t+"Capture",l=[];e!==null;){var u=e,f=u.stateNode;if(u=u.tag,u!==5&&u!==26&&u!==27||f===null||(u=Aa(e,s),u!=null&&l.unshift(dl(e,u,f)),u=Aa(e,t),u!=null&&l.push(dl(e,u,f))),e.tag===3)return l;e=e.return}return[]}function uN(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function ib(e,t,s,l,u){for(var f=t._reactName,v=[];s!==null&&s!==l;){var R=s,$=R.alternate,le=R.stateNode;if(R=R.tag,$!==null&&$===l)break;R!==5&&R!==26&&R!==27||le===null||($=le,u?(le=Aa(s,f),le!=null&&v.unshift(dl(s,le,$))):u||(le=Aa(s,f),le!=null&&v.push(dl(s,le,$)))),s=s.return}v.length!==0&&e.push({event:t,listeners:v})}var dN=/\r\n?/g,fN=/\u0000|\uFFFD/g;function cb(e){return(typeof e=="string"?e:""+e).replace(dN,`
9
- `).replace(fN,"")}function ub(e,t){return t=cb(t),cb(e)===t}function kt(e,t,s,l,u,f){switch(s){case"children":typeof l=="string"?t==="body"||t==="textarea"&&l===""||zo(e,l):(typeof l=="number"||typeof l=="bigint")&&t!=="body"&&zo(e,""+l);break;case"className":oi(e,"class",l);break;case"tabIndex":oi(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":oi(e,s,l);break;case"style":uh(e,l,f);break;case"data":if(t!=="object"){oi(e,"data",l);break}case"src":case"href":if(l===""&&(t!=="a"||s!=="href")){e.removeAttribute(s);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=li(""+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"?(t!=="input"&&kt(e,t,"name",u.name,u,null),kt(e,t,"formEncType",u.formEncType,u,null),kt(e,t,"formMethod",u.formMethod,u,null),kt(e,t,"formTarget",u.formTarget,u,null)):(kt(e,t,"encType",u.encType,u,null),kt(e,t,"method",u.method,u,null),kt(e,t,"target",u.target,u,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=li(""+l),e.setAttribute(s,l);break;case"onClick":l!=null&&(e.onclick=Ds);break;case"onScroll":l!=null&&it("scroll",e);break;case"onScrollEnd":l!=null&&it("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=li(""+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":it("beforetoggle",e),it("toggle",e),ri(e,"popover",l);break;case"xlinkActuate":Ms(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Ms(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Ms(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Ms(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Ms(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Ms(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Ms(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Ms(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Ms(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":ri(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=HS.get(s)||s,ri(e,s,l))}}function df(e,t,s,l,u,f){switch(s){case"style":uh(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"?zo(e,l):(typeof l=="number"||typeof l=="bigint")&&zo(e,""+l);break;case"onScroll":l!=null&&it("scroll",e);break;case"onScrollEnd":l!=null&&it("scrollend",e);break;case"onClick":l!=null&&(e.onclick=Ds);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!th.hasOwnProperty(s))e:{if(s[0]==="o"&&s[1]==="n"&&(u=s.endsWith("Capture"),t=s.slice(2,u?s.length-7:void 0),f=e[Cn]||null,f=f!=null?f[s]:null,typeof f=="function"&&e.removeEventListener(t,f,u),typeof l=="function")){typeof f!="function"&&f!==null&&(s in e?e[s]=null:e.hasAttribute(s)&&e.removeAttribute(s)),e.addEventListener(t,l,u);break e}s in e?e[s]=l:l===!0?e.setAttribute(s,""):ri(e,s,l)}}}function yn(e,t,s){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":it("error",e),it("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,t));default:kt(e,t,f,v,s,null)}}u&&kt(e,t,"srcSet",s.srcSet,s,null),l&&kt(e,t,"src",s.src,s,null);return;case"input":it("invalid",e);var R=f=v=u=null,$=null,le=null;for(l in s)if(s.hasOwnProperty(l)){var be=s[l];if(be!=null)switch(l){case"name":u=be;break;case"type":v=be;break;case"checked":$=be;break;case"defaultChecked":le=be;break;case"value":f=be;break;case"defaultValue":R=be;break;case"children":case"dangerouslySetInnerHTML":if(be!=null)throw Error(a(137,t));break;default:kt(e,t,l,be,s,null)}}ah(e,f,R,$,le,v,u,!1);return;case"select":it("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:kt(e,t,u,R,s,null)}t=f,s=v,e.multiple=!!l,t!=null?Do(e,!!l,t,!1):s!=null&&Do(e,!!l,s,!0);return;case"textarea":it("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:kt(e,t,v,R,s,null)}ih(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":kt(e,t,$,l,s,null));return;case"dialog":it("beforetoggle",e),it("toggle",e),it("cancel",e),it("close",e);break;case"iframe":case"object":it("load",e);break;case"video":case"audio":for(l=0;l<ul.length;l++)it(ul[l],e);break;case"image":it("error",e),it("load",e);break;case"details":it("toggle",e);break;case"embed":case"source":case"link":it("error",e),it("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(le in s)if(s.hasOwnProperty(le)&&(l=s[le],l!=null))switch(le){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,t));default:kt(e,t,le,l,s,null)}return;default:if(ju(t)){for(be in s)s.hasOwnProperty(be)&&(l=s[be],l!==void 0&&df(e,t,be,l,s,void 0));return}}for(R in s)s.hasOwnProperty(R)&&(l=s[R],l!=null&&kt(e,t,R,l,s,null))}function mN(e,t,s,l){switch(t){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,le=null,be=null;for(pe in s){var Ne=s[pe];if(s.hasOwnProperty(pe)&&Ne!=null)switch(pe){case"checked":break;case"value":break;case"defaultValue":$=Ne;default:l.hasOwnProperty(pe)||kt(e,t,pe,null,l,Ne)}}for(var de in l){var pe=l[de];if(Ne=s[de],l.hasOwnProperty(de)&&(pe!=null||Ne!=null))switch(de){case"type":f=pe;break;case"name":u=pe;break;case"checked":le=pe;break;case"defaultChecked":be=pe;break;case"value":v=pe;break;case"defaultValue":R=pe;break;case"children":case"dangerouslySetInnerHTML":if(pe!=null)throw Error(a(137,t));break;default:pe!==Ne&&kt(e,t,de,pe,l,Ne)}}Eu(e,v,R,$,le,be,f,u);return;case"select":pe=v=R=de=null;for(f in s)if($=s[f],s.hasOwnProperty(f)&&$!=null)switch(f){case"value":break;case"multiple":pe=$;default:l.hasOwnProperty(f)||kt(e,t,f,null,l,$)}for(u in l)if(f=l[u],$=s[u],l.hasOwnProperty(u)&&(f!=null||$!=null))switch(u){case"value":de=f;break;case"defaultValue":R=f;break;case"multiple":v=f;default:f!==$&&kt(e,t,u,f,l,$)}t=R,s=v,l=pe,de!=null?Do(e,!!s,de,!1):!!l!=!!s&&(t!=null?Do(e,!!s,t,!0):Do(e,!!s,s?[]:"",!1));return;case"textarea":pe=de=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:kt(e,t,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":de=u;break;case"defaultValue":pe=u;break;case"children":break;case"dangerouslySetInnerHTML":if(u!=null)throw Error(a(91));break;default:u!==f&&kt(e,t,v,u,l,f)}lh(e,de,pe);return;case"option":for(var Fe in s)de=s[Fe],s.hasOwnProperty(Fe)&&de!=null&&!l.hasOwnProperty(Fe)&&(Fe==="selected"?e.selected=!1:kt(e,t,Fe,null,l,de));for($ in l)de=l[$],pe=s[$],l.hasOwnProperty($)&&de!==pe&&(de!=null||pe!=null)&&($==="selected"?e.selected=de&&typeof de!="function"&&typeof de!="symbol":kt(e,t,$,de,l,pe));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Ze in s)de=s[Ze],s.hasOwnProperty(Ze)&&de!=null&&!l.hasOwnProperty(Ze)&&kt(e,t,Ze,null,l,de);for(le in l)if(de=l[le],pe=s[le],l.hasOwnProperty(le)&&de!==pe&&(de!=null||pe!=null))switch(le){case"children":case"dangerouslySetInnerHTML":if(de!=null)throw Error(a(137,t));break;default:kt(e,t,le,de,l,pe)}return;default:if(ju(t)){for(var _t in s)de=s[_t],s.hasOwnProperty(_t)&&de!==void 0&&!l.hasOwnProperty(_t)&&df(e,t,_t,void 0,l,de);for(be in l)de=l[be],pe=s[be],!l.hasOwnProperty(be)||de===pe||de===void 0&&pe===void 0||df(e,t,be,de,l,pe);return}}for(var se in s)de=s[se],s.hasOwnProperty(se)&&de!=null&&!l.hasOwnProperty(se)&&kt(e,t,se,null,l,de);for(Ne in l)de=l[Ne],pe=s[Ne],!l.hasOwnProperty(Ne)||de===pe||de==null&&pe==null||kt(e,t,Ne,de,l,pe)}function db(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function pN(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=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&&db(v)){for(v=0,R=u.responseEnd,l+=1;l<s.length;l++){var $=s[l],le=$.startTime;if(le>R)break;var be=$.transferSize,Ne=$.initiatorType;be&&db(Ne)&&($=$.responseEnd,v+=be*($<R?1:(R-le)/($-le)))}if(--l,t+=8*(f+v)/(u.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var ff=null,mf=null;function nc(e){return e.nodeType===9?e:e.ownerDocument}function fb(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 mb(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function pf(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var hf=null;function hN(){var e=window.event;return e&&e.type==="popstate"?e===hf?!1:(hf=e,!0):(hf=null,!1)}var pb=typeof setTimeout=="function"?setTimeout:void 0,gN=typeof clearTimeout=="function"?clearTimeout:void 0,hb=typeof Promise=="function"?Promise:void 0,xN=typeof queueMicrotask=="function"?queueMicrotask:typeof hb<"u"?function(e){return hb.resolve(null).then(e).catch(bN)}:pb;function bN(e){setTimeout(function(){throw e})}function kr(e){return e==="head"}function gb(e,t){var s=t,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),fa(t);return}l--}else if(s==="$"||s==="$?"||s==="$~"||s==="$!"||s==="&")l++;else if(s==="html")fl(e.ownerDocument.documentElement);else if(s==="head"){s=e.ownerDocument.head,fl(s);for(var f=s.firstChild;f;){var v=f.nextSibling,R=f.nodeName;f[ka]||R==="SCRIPT"||R==="STYLE"||R==="LINK"&&f.rel.toLowerCase()==="stylesheet"||s.removeChild(f),f=v}}else s==="body"&&fl(e.ownerDocument.body);s=u}while(s);fa(t)}function xb(e,t){var s=e;e=0;do{var l=s.nextSibling;if(s.nodeType===1?t?(s._stashedDisplay=s.style.display,s.style.display="none"):(s.style.display=s._stashedDisplay||"",s.getAttribute("style")===""&&s.removeAttribute("style")):s.nodeType===3&&(t?(s._stashedText=s.nodeValue,s.nodeValue=""):s.nodeValue=s._stashedText||""),l&&l.nodeType===8)if(s=l.data,s==="/$"){if(e===0)break;e--}else s!=="$"&&s!=="$?"&&s!=="$~"&&s!=="$!"||e++;s=l}while(s)}function gf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var s=t;switch(t=t.nextSibling,s.nodeName){case"HTML":case"HEAD":case"BODY":gf(s),vu(s);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(s.rel.toLowerCase()==="stylesheet")continue}e.removeChild(s)}}function yN(e,t,s,l){for(;e.nodeType===1;){var u=s;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!l&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(l){if(!e[ka])switch(t){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(t==="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=rs(e.nextSibling),e===null)break}return null}function vN(e,t,s){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!s||(e=rs(e.nextSibling),e===null))return null;return e}function bb(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=rs(e.nextSibling),e===null))return null;return e}function xf(e){return e.data==="$?"||e.data==="$~"}function bf(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function SN(e,t){var s=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||s.readyState!=="loading")t();else{var l=function(){t(),s.removeEventListener("DOMContentLoaded",l)};s.addEventListener("DOMContentLoaded",l),e._reactRetry=l}}function rs(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var yf=null;function yb(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"||s==="/&"){if(t===0)return rs(e.nextSibling);t--}else s!=="$"&&s!=="$!"&&s!=="$?"&&s!=="$~"&&s!=="&"||t++}e=e.nextSibling}return null}function vb(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var s=e.data;if(s==="$"||s==="$!"||s==="$?"||s==="$~"||s==="&"){if(t===0)return e;t--}else s!=="/$"&&s!=="/&"||t++}e=e.previousSibling}return null}function Sb(e,t,s){switch(t=nc(s),e){case"html":if(e=t.documentElement,!e)throw Error(a(452));return e;case"head":if(e=t.head,!e)throw Error(a(453));return e;case"body":if(e=t.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function fl(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);vu(e)}var os=new Map,Eb=new Set;function sc(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Qs=z.d;z.d={f:EN,r:NN,D:jN,C:TN,L:wN,m:CN,X:RN,S:ON,M:kN};function EN(){var e=Qs.f(),t=Xi();return e||t}function NN(e){var t=_o(e);t!==null&&t.tag===5&&t.type==="form"?Ug(t):Qs.r(e)}var ca=typeof document>"u"?null:document;function Nb(e,t,s){var l=ca;if(l&&typeof t=="string"&&t){var u=Zn(t);u='link[rel="'+e+'"][href="'+u+'"]',typeof s=="string"&&(u+='[crossorigin="'+s+'"]'),Eb.has(u)||(Eb.add(u),e={rel:e,crossOrigin:s,href:t},l.querySelector(u)===null&&(t=l.createElement("link"),yn(t,"link",e),un(t),l.head.appendChild(t)))}}function jN(e){Qs.D(e),Nb("dns-prefetch",e,null)}function TN(e,t){Qs.C(e,t),Nb("preconnect",e,t)}function wN(e,t,s){Qs.L(e,t,s);var l=ca;if(l&&e&&t){var u='link[rel="preload"][as="'+Zn(t)+'"]';t==="image"&&s&&s.imageSrcSet?(u+='[imagesrcset="'+Zn(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(u+='[imagesizes="'+Zn(s.imageSizes)+'"]')):u+='[href="'+Zn(e)+'"]';var f=u;switch(t){case"style":f=ua(e);break;case"script":f=da(e)}os.has(f)||(e=x({rel:"preload",href:t==="image"&&s&&s.imageSrcSet?void 0:e,as:t},s),os.set(f,e),l.querySelector(u)!==null||t==="style"&&l.querySelector(ml(f))||t==="script"&&l.querySelector(pl(f))||(t=l.createElement("link"),yn(t,"link",e),un(t),l.head.appendChild(t)))}}function CN(e,t){Qs.m(e,t);var s=ca;if(s&&e){var l=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+Zn(l)+'"][href="'+Zn(e)+'"]',f=u;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=da(e)}if(!os.has(f)&&(e=x({rel:"modulepreload",href:e},t),os.set(f,e),s.querySelector(u)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(pl(f)))return}l=s.createElement("link"),yn(l,"link",e),un(l),s.head.appendChild(l)}}}function ON(e,t,s){Qs.S(e,t,s);var l=ca;if(l&&e){var u=Ao(l).hoistableStyles,f=ua(e);t=t||"default";var v=u.get(f);if(!v){var R={loading:0,preload:null};if(v=l.querySelector(ml(f)))R.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":t},s),(s=os.get(f))&&vf(e,s);var $=v=l.createElement("link");un($),yn($,"link",e),$._p=new Promise(function(le,be){$.onload=le,$.onerror=be}),$.addEventListener("load",function(){R.loading|=1}),$.addEventListener("error",function(){R.loading|=2}),R.loading|=4,rc(v,t,l)}v={type:"stylesheet",instance:v,count:1,state:R},u.set(f,v)}}}function RN(e,t){Qs.X(e,t);var s=ca;if(s&&e){var l=Ao(s).hoistableScripts,u=da(e),f=l.get(u);f||(f=s.querySelector(pl(u)),f||(e=x({src:e,async:!0},t),(t=os.get(u))&&Sf(e,t),f=s.createElement("script"),un(f),yn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(u,f))}}function kN(e,t){Qs.M(e,t);var s=ca;if(s&&e){var l=Ao(s).hoistableScripts,u=da(e),f=l.get(u);f||(f=s.querySelector(pl(u)),f||(e=x({src:e,async:!0,type:"module"},t),(t=os.get(u))&&Sf(e,t),f=s.createElement("script"),un(f),yn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(u,f))}}function jb(e,t,s,l){var u=(u=J.current)?sc(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"?(t=ua(s.href),s=Ao(u).hoistableStyles,l=s.get(t),l||(l={type:"style",instance:null,count:0,state:null},s.set(t,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=ua(s.href);var f=Ao(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(ml(e)))&&!f._p&&(v.instance=f,v.state.loading=5),os.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},os.set(e,s),f||_N(u,e,s,v.state))),t&&l===null)throw Error(a(528,""));return v}if(t&&l!==null)throw Error(a(529,""));return null;case"script":return t=s.async,s=s.src,typeof s=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=da(s),s=Ao(u).hoistableScripts,l=s.get(t),l||(l={type:"script",instance:null,count:0,state:null},s.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,e))}}function ua(e){return'href="'+Zn(e)+'"'}function ml(e){return'link[rel="stylesheet"]['+e+"]"}function Tb(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function _N(e,t,s,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),yn(t,"link",s),un(t),e.head.appendChild(t))}function da(e){return'[src="'+Zn(e)+'"]'}function pl(e){return"script[async]"+e}function wb(e,t,s){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+Zn(s.href)+'"]');if(l)return t.instance=l,un(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"),un(l),yn(l,"style",u),rc(l,s.precedence,e),t.instance=l;case"stylesheet":u=ua(s.href);var f=e.querySelector(ml(u));if(f)return t.state.loading|=4,t.instance=f,un(f),f;l=Tb(s),(u=os.get(u))&&vf(l,u),f=(e.ownerDocument||e).createElement("link"),un(f);var v=f;return v._p=new Promise(function(R,$){v.onload=R,v.onerror=$}),yn(f,"link",l),t.state.loading|=4,rc(f,s.precedence,e),t.instance=f;case"script":return f=da(s.src),(u=e.querySelector(pl(f)))?(t.instance=u,un(u),u):(l=s,(u=os.get(f))&&(l=x({},s),Sf(l,u)),e=e.ownerDocument||e,u=e.createElement("script"),un(u),yn(u,"link",l),e.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(a(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,rc(l,s.precedence,e));return t.instance}function rc(e,t,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===t)f=R;else if(f!==u)break}f?f.parentNode.insertBefore(e,f.nextSibling):(t=s.nodeType===9?s.head:s,t.insertBefore(e,t.firstChild))}function vf(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Sf(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var oc=null;function Cb(e,t,s){if(oc===null){var l=new Map,u=oc=new Map;u.set(s,l)}else u=oc,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[ka]||f[nn]||e==="link"&&f.getAttribute("rel")==="stylesheet")&&f.namespaceURI!=="http://www.w3.org/2000/svg"){var v=f.getAttribute(t)||"";v=e+v;var R=l.get(v);R?R.push(f):l.set(v,[f])}}return l}function Ob(e,t,s){e=e.ownerDocument||e,e.head.insertBefore(s,t==="title"?e.querySelector("head > title"):null)}function AN(e,t,s){if(s===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Rb(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function MN(e,t,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=ua(l.href),f=t.querySelector(ml(u));if(f){t=f._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ac.bind(e),t.then(e,e)),s.state.loading|=4,s.instance=f,un(f);return}f=t.ownerDocument||t,l=Tb(l),(u=os.get(u))&&vf(l,u),f=f.createElement("link"),un(f);var v=f;v._p=new Promise(function(R,$){v.onload=R,v.onerror=$}),yn(f,"link",l),s.instance=f}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(s,t),(t=s.state.preload)&&(s.state.loading&3)===0&&(e.count++,s=ac.bind(e),t.addEventListener("load",s),t.addEventListener("error",s))}}var Ef=0;function DN(e,t){return e.stylesheets&&e.count===0&&ic(e,e.stylesheets),0<e.count||0<e.imgCount?function(s){var l=setTimeout(function(){if(e.stylesheets&&ic(e,e.stylesheets),e.unsuspend){var f=e.unsuspend;e.unsuspend=null,f()}},6e4+t);0<e.imgBytes&&Ef===0&&(Ef=62500*pN());var u=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&ic(e,e.stylesheets),e.unsuspend)){var f=e.unsuspend;e.unsuspend=null,f()}},(e.imgBytes>Ef?50:800)+t);return e.unsuspend=s,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(u)}}:null}function ac(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ic(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var lc=null;function ic(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,lc=new Map,t.forEach(zN,e),lc=null,ac.call(e))}function zN(e,t){if(!(t.state.loading&4)){var s=lc.get(e);if(s)var l=s.get(null);else{s=new Map,lc.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=t.instance,v=u.getAttribute("data-precedence"),f=s.get(v)||l,f===l&&s.set(null,u),s.set(v,u),this.count++,l=ac.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)),t.state.loading|=4}}var hl={$$typeof:C,Provider:null,Consumer:null,_currentValue:P,_currentValue2:P,_threadCount:0};function LN(e,t,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=Kn(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Kn(0),this.hiddenUpdates=Kn(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 kb(e,t,s,l,u,f,v,R,$,le,be,Ne){return e=new LN(e,t,s,v,$,le,be,Ne,R),t=1,f===!0&&(t|=24),f=Un(3,null,null,t),e.current=f,f.stateNode=e,t=ed(),t.refCount++,e.pooledCache=t,t.refCount++,f.memoizedState={element:l,isDehydrated:s,cache:t},rd(f),e}function _b(e){return e?(e=Po,e):Po}function Ab(e,t,s,l,u,f){u=_b(u),l.context===null?l.context=u:l.pendingContext=u,l=yr(t),l.payload={element:s},f=f===void 0?null:f,f!==null&&(l.callback=f),s=vr(e,l,t),s!==null&&(Mn(s,e,t),$a(s,e,t))}function Mb(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<t?s:t}}function Nf(e,t){Mb(e,t),(e=e.alternate)&&Mb(e,t)}function Db(e){if(e.tag===13||e.tag===31){var t=Qr(e,67108864);t!==null&&Mn(t,e,67108864),Nf(e,67108864)}}function zb(e){if(e.tag===13||e.tag===31){var t=Fn();t=fr(t);var s=Qr(e,t);s!==null&&Mn(s,e,t),Nf(e,t)}}var cc=!0;function IN(e,t,s,l){var u=D.T;D.T=null;var f=z.p;try{z.p=2,jf(e,t,s,l)}finally{z.p=f,D.T=u}}function BN(e,t,s,l){var u=D.T;D.T=null;var f=z.p;try{z.p=8,jf(e,t,s,l)}finally{z.p=f,D.T=u}}function jf(e,t,s,l){if(cc){var u=Tf(l);if(u===null)uf(e,t,l,uc,s),Ib(e,l);else if(HN(u,e,t,s,l))l.stopPropagation();else if(Ib(e,l),t&4&&-1<UN.indexOf(e)){for(;u!==null;){var f=_o(u);if(f!==null)switch(f.tag){case 3:if(f=f.stateNode,f.current.memoizedState.isDehydrated){var v=Ot(f.pendingLanes);if(v!==0){var R=f;for(R.pendingLanes|=2,R.entangledLanes|=2;v;){var $=1<<31-jt(v);R.entanglements[1]|=$,v&=~$}ys(f),(Et&6)===0&&(Gi=Y()+500,cl(0))}}break;case 31:case 13:R=Qr(f,2),R!==null&&Mn(R,f,2),Xi(),Nf(f,2)}if(f=Tf(l),f===null&&uf(e,t,l,uc,s),f===u)break;u=f}u!==null&&l.stopPropagation()}else uf(e,t,l,null,s)}}function Tf(e){return e=wu(e),wf(e)}var uc=null;function wf(e){if(uc=null,e=ko(e),e!==null){var t=d(e);if(t===null)e=null;else{var s=t.tag;if(s===13){if(e=p(t),e!==null)return e;e=null}else if(s===31){if(e=g(t),e!==null)return e;e=null}else if(s===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return uc=e,null}function Lb(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(G()){case je:return 2;case xe:return 8;case oe:case Ce:return 32;case Ue:return 268435456;default:return 32}default:return 32}}var Cf=!1,_r=null,Ar=null,Mr=null,gl=new Map,xl=new Map,Dr=[],UN="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 Ib(e,t){switch(e){case"focusin":case"focusout":_r=null;break;case"dragenter":case"dragleave":Ar=null;break;case"mouseover":case"mouseout":Mr=null;break;case"pointerover":case"pointerout":gl.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":xl.delete(t.pointerId)}}function bl(e,t,s,l,u,f){return e===null||e.nativeEvent!==f?(e={blockedOn:t,domEventName:s,eventSystemFlags:l,nativeEvent:f,targetContainers:[u]},t!==null&&(t=_o(t),t!==null&&Db(t)),e):(e.eventSystemFlags|=l,t=e.targetContainers,u!==null&&t.indexOf(u)===-1&&t.push(u),e)}function HN(e,t,s,l,u){switch(t){case"focusin":return _r=bl(_r,e,t,s,l,u),!0;case"dragenter":return Ar=bl(Ar,e,t,s,l,u),!0;case"mouseover":return Mr=bl(Mr,e,t,s,l,u),!0;case"pointerover":var f=u.pointerId;return gl.set(f,bl(gl.get(f)||null,e,t,s,l,u)),!0;case"gotpointercapture":return f=u.pointerId,xl.set(f,bl(xl.get(f)||null,e,t,s,l,u)),!0}return!1}function Bb(e){var t=ko(e.target);if(t!==null){var s=d(t);if(s!==null){if(t=s.tag,t===13){if(t=p(s),t!==null){e.blockedOn=t,si(e.priority,function(){zb(s)});return}}else if(t===31){if(t=g(s),t!==null){e.blockedOn=t,si(e.priority,function(){zb(s)});return}}else if(t===3&&s.stateNode.current.memoizedState.isDehydrated){e.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}e.blockedOn=null}function dc(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var s=Tf(e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);Tu=l,s.target.dispatchEvent(l),Tu=null}else return t=_o(s),t!==null&&Db(t),e.blockedOn=s,!1;t.shift()}return!0}function Ub(e,t,s){dc(e)&&s.delete(t)}function YN(){Cf=!1,_r!==null&&dc(_r)&&(_r=null),Ar!==null&&dc(Ar)&&(Ar=null),Mr!==null&&dc(Mr)&&(Mr=null),gl.forEach(Ub),xl.forEach(Ub)}function fc(e,t){e.blockedOn===t&&(e.blockedOn=null,Cf||(Cf=!0,n.unstable_scheduleCallback(n.unstable_NormalPriority,YN)))}var mc=null;function Hb(e){mc!==e&&(mc=e,n.unstable_scheduleCallback(n.unstable_NormalPriority,function(){mc===e&&(mc=null);for(var t=0;t<e.length;t+=3){var s=e[t],l=e[t+1],u=e[t+2];if(typeof l!="function"){if(wf(l||s)===null)continue;break}var f=_o(s);f!==null&&(e.splice(t,3),t-=3,jd(f,{pending:!0,data:u,method:s.method,action:l},l,u))}}))}function fa(e){function t($){return fc($,e)}_r!==null&&fc(_r,e),Ar!==null&&fc(Ar,e),Mr!==null&&fc(Mr,e),gl.forEach(t),xl.forEach(t);for(var s=0;s<Dr.length;s++){var l=Dr[s];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Dr.length&&(s=Dr[0],s.blockedOn===null);)Bb(s),s.blockedOn===null&&Dr.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[Cn]||null;if(typeof f=="function")v||Hb(s);else if(v){var R=null;if(f&&f.hasAttribute("formAction")){if(u=f,v=f[Cn]||null)R=v.formAction;else if(wf(u)!==null)continue}else R=v.action;typeof R=="function"?s[l+1]=R:(s.splice(l,3),l-=3),Hb(s)}}}function Yb(){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 t(){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",t),navigation.addEventListener("navigateerror",t),setTimeout(s,100),function(){l=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),u!==null&&(u(),u=null)}}}function Of(e){this._internalRoot=e}pc.prototype.render=Of.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(a(409));var s=t.current,l=Fn();Ab(s,l,e,t,null,null)},pc.prototype.unmount=Of.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Ab(e.current,2,null,e,null,null),Xi(),t[Ro]=null}};function pc(e){this._internalRoot=e}pc.prototype.unstable_scheduleHydration=function(e){if(e){var t=As();e={blockedOn:null,target:e,priority:t};for(var s=0;s<Dr.length&&t!==0&&t<Dr[s].priority;s++);Dr.splice(s,0,e),s===0&&Bb(e)}};var Pb=r.version;if(Pb!=="19.2.8")throw Error(a(527,Pb,"19.2.8"));z.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(a(188)):(e=Object.keys(e).join(","),Error(a(268,e)));return e=m(t),e=e!==null?y(e):null,e=e===null?null:e.stateNode,e};var PN={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:D,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var hc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!hc.isDisabled&&hc.supportsFiber)try{Mt=hc.inject(PN),ut=hc}catch{}}return vl.createRoot=function(e,t){if(!c(e))throw Error(a(299));var s=!1,l="",u=Kg,f=Qg,v=Zg;return t!=null&&(t.unstable_strictMode===!0&&(s=!0),t.identifierPrefix!==void 0&&(l=t.identifierPrefix),t.onUncaughtError!==void 0&&(u=t.onUncaughtError),t.onCaughtError!==void 0&&(f=t.onCaughtError),t.onRecoverableError!==void 0&&(v=t.onRecoverableError)),t=kb(e,1,!1,null,null,s,l,null,u,f,v,Yb),e[Ro]=t.current,cf(e),new Of(t)},vl.hydrateRoot=function(e,t,s){if(!c(e))throw Error(a(299));var l=!1,u="",f=Kg,v=Qg,R=Zg,$=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)),t=kb(e,1,!0,t,s??null,l,u,$,f,v,R,Yb),t.context=_b(null),s=t.current,l=Fn(),l=fr(l),u=yr(l),u.callback=null,vr(s,u,l),s=l,t.current.lanes=s,Dt(t,s),ys(t),e[Ro]=t.current,cf(e),new pc(t)},vl.version="19.2.8",vl}var Jb;function WN(){if(Jb)return _f.exports;Jb=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),_f.exports=JN(),_f.exports}var ej=WN();const ja=["character","setting","location","hook","event","timepoint"],Um=["belongs_to","owns","masters","ally","rival","mentor","family","kills","appears_in","occurs_at","plot_edge","plants","advances","resolves","depends_on","involves","occurs_in"],Wb=["mystery","relationship","item","character_growth","world_building"],Xv=["inner","personal","extra_personal"],tj=[5,10,15,30,60],ey=30;function ms(n){const r=new Date(n);if(Number.isNaN(r.getTime()))return n;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 xo(n){const r=new Date(n);if(Number.isNaN(r.getTime()))return n;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} 天前`:ms(n)}const nj=["outline","entities","hooks","timeline","trash","settings"];function ty(n){const r=n.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 sj(){const[n,r]=h.useState(()=>ty(window.location.hash));return h.useEffect(()=>{const o=()=>{const a=ty(window.location.hash);r(a),a.isFallback&&window.location.hash!=="#/"&&window.location.replace("#/")};return window.addEventListener("hashchange",o),o(),()=>window.removeEventListener("hashchange",o)},[]),n}function an(n){const r=n.startsWith("#")?n:`#${n.startsWith("/")?n:`/${n}`}`;window.location.hash!==r&&(window.location.hash=r)}const Kv=(...n)=>n.filter((r,o,a)=>!!r&&r.trim()!==""&&a.indexOf(r)===o).join(" ").trim();const rj=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const oj=n=>n.replace(/^([A-Z])|[\s-_]+(\w)/g,(r,o,a)=>a?a.toUpperCase():o.toLowerCase());const ny=n=>{const r=oj(n);return r.charAt(0).toUpperCase()+r.slice(1)};var zf={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const aj=n=>{for(const r in n)if(r.startsWith("aria-")||r==="role"||r==="title")return!0;return!1},lj=h.createContext({}),ij=()=>h.useContext(lj),cj=h.forwardRef(({color:n,size:r,strokeWidth:o,absoluteStrokeWidth:a,className:c="",children:d,iconNode:p,...g},b)=>{const{size:m=24,strokeWidth:y=2,absoluteStrokeWidth:x=!1,color:S="currentColor",className:N=""}=ij()??{},j=a??x?Number(o??y)*24/Number(r??m):o??y;return h.createElement("svg",{ref:b,...zf,width:r??m??zf.width,height:r??m??zf.height,stroke:n??S,strokeWidth:j,className:Kv("lucide",N,c),...!d&&!aj(g)&&{"aria-hidden":"true"},...g},[...p.map(([w,_])=>h.createElement(w,_)),...Array.isArray(d)?d:[d]])});const rt=(n,r)=>{const o=h.forwardRef(({className:a,...c},d)=>h.createElement(cj,{ref:d,iconNode:r,className:Kv(`lucide-${rj(ny(n))}`,`lucide-${n}`,a),...c}));return o.displayName=ny(n),o};const uj=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],dj=rt("arrow-up",uj);const fj=[["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"}]],um=rt("book-open",fj);const mj=[["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"}]],pj=rt("calendar-clock",mj);const hj=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Qv=rt("check",hj);const gj=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],xj=rt("chevron-down",gj);const bj=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Hm=rt("chevron-right",bj);const yj=[["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"}]],Ym=rt("circle-alert",yj);const vj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Pm=rt("circle-check",vj);const Sj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Ej=rt("circle",Sj);const Nj=[["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"}]],jj=rt("download",Nj);const Tj=[["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"}]],Vm=rt("eye",Tj);const wj=[["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"}]],Cj=rt("fast-forward",wj);const Oj=[["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"}]],Zv=rt("grip-vertical",Oj);const Rj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],kj=rt("info",Rj);const _j=[["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"}]],Aj=rt("layout-grid",_j);const Mj=[["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"}]],Dj=rt("list-ordered",Mj);const zj=[["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"}]],Lj=rt("list-tree",zj);const Ij=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Bl=rt("loader-circle",Ij);const Bj=[["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"}]],Ul=rt("message-square",Bj);const Uj=[["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"}]],Hj=rt("moon",Uj);const Yj=[["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"}]],Pj=rt("network",Yj);const Vj=[["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"}]],Fj=rt("octagon-x",Vj);const qj=[["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"}]],Gj=rt("panel-left-close",qj);const $j=[["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"}]],Xj=rt("panel-left-open",$j);const Kj=[["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"}]],Qj=rt("panel-right-close",Kj);const Zj=[["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"}]],Jj=rt("panel-right-open",Zj);const Wj=[["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"}]],Ql=rt("pencil",Wj);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"}]],tT=rt("pin",eT);const nT=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Fm=rt("plus",nT);const sT=[["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"}]],rT=rt("puzzle",sT);const oT=[["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"}]],aT=rt("refresh-cw",oT);const lT=[["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"}]],iT=rt("rotate-ccw",lT);const cT=[["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"}]],uT=rt("send",cT);const dT=[["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"}]],fT=rt("settings",dT);const mT=[["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"}]],Jv=rt("sparkles",mT);const pT=[["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=rt("sun",pT);const gT=[["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"}]],Zl=rt("trash-2",gT);const xT=[["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"}]],qm=rt("triangle-alert",xT);const bT=[["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"}]],yT=rt("upload",bT);const vT=[["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"}]],ST=rt("wrench",vT);const ET=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ir=rt("x",ET);function Gm(n){const[r,o]=h.useState(()=>window.matchMedia(n).matches);return h.useEffect(()=>{const a=window.matchMedia(n),c=d=>o(d.matches);return o(a.matches),a.addEventListener("change",c),()=>a.removeEventListener("change",c)},[n]),r}const Hl=160,$m=480,Yl=240,Xm=720,NT=320,Wv="ai-editor:panels",sy=1024,dm=1440;function Pl(n,r,o){return Math.round(Math.min(Math.max(n,r),o))}function gc(n){const r=Number.isFinite(n)&&n>0?n:dm;return{sidebarWidth:r<sy?Hl:Pl(r*.1,Hl,$m),chatWidth:r<sy?Yl:Pl(r*.4,Yl,Xm),collapsedSidebar:!1,collapsedChat:!1}}function jT(n,r){if(!n)return gc(r);let o;try{o=JSON.parse(n)}catch{return gc(r)}if(typeof o!="object"||o===null||Array.isArray(o))return gc(r);const a=o,c=a.sidebarWidth,d=a.chatWidth;return typeof c!="number"||!Number.isFinite(c)||typeof d!="number"||!Number.isFinite(d)?gc(r):{sidebarWidth:Pl(c,Hl,$m),chatWidth:Pl(d,Yl,Xm),collapsedSidebar:a.collapsedSidebar===!0,collapsedChat:a.collapsedChat===!0}}function ry(n){return JSON.stringify({sidebarWidth:n.sidebarWidth,chatWidth:n.chatWidth,collapsedSidebar:n.collapsedSidebar,collapsedChat:n.collapsedChat})}function TT(){if(typeof window>"u")return null;try{return window.localStorage.getItem(Wv)}catch{return null}}function oy(n){try{window.localStorage.setItem(Wv,n)}catch{}}function wT(){if(typeof window>"u")return dm;const n=window.innerWidth;return Number.isFinite(n)&&n>0?n:dm}function CT(){const[n,r]=h.useState(()=>jT(TT(),wT())),[o,a]=h.useState(null),c=Gm("(min-width: 1024px)"),d=h.useRef(null);h.useEffect(()=>{!c&&d.current!==null&&(d.current=null,a(null))},[c]);function p(x){const S=x.lastX-x.startX,[N,j]=x.side==="sidebar"?[Hl,$m]:[Yl,Xm],w=x.side==="sidebar"?x.startWidth+S:x.startWidth-S;return Pl(w,N,j)}function g(x,S){const N=x==="sidebar"?n.sidebarWidth:n.chatWidth;d.current={side:x,startX:S,startWidth:N,lastX:S},a(x)}function b(x,S){const N=d.current;if(!N||N.side!==x)return;N.lastX=S;const j=p(N);r(w=>({...w,...x==="sidebar"?{sidebarWidth:j}:{chatWidth:j}}))}function m(){const x=d.current;if(!x)return;const S=p(x);d.current=null,a(null),r(N=>{const j={...N,...x.side==="sidebar"?{sidebarWidth:S}:{chatWidth:S}};return oy(ry(j)),j})}function y(x){r(S=>{const N=x==="sidebar"?{...S,collapsedSidebar:!S.collapsedSidebar}:{...S,collapsedChat:!S.collapsedChat};return oy(ry(N)),N})}return{layout:n,isDesktop:c,dragSide:o,toggleCollapse:y,startResize:g,moveResize:b,endResize:m}}function e0(n){var r,o,a="";if(typeof n=="string"||typeof n=="number")a+=n;else if(typeof n=="object")if(Array.isArray(n)){var c=n.length;for(r=0;r<c;r++)n[r]&&(o=e0(n[r]))&&(a&&(a+=" "),a+=o)}else for(o in n)n[o]&&(a&&(a+=" "),a+=o);return a}function t0(){for(var n,r,o=0,a="",c=arguments.length;o<c;o++)(n=arguments[o])&&(r=e0(n))&&(a&&(a+=" "),a+=r);return a}const OT=(n,r)=>{const o=new Array(n.length+r.length);for(let a=0;a<n.length;a++)o[a]=n[a];for(let a=0;a<r.length;a++)o[n.length+a]=r[a];return o},RT=(n,r)=>({classGroupId:n,validator:r}),n0=(n=new Map,r=null,o)=>({nextPart:n,validators:r,classGroupId:o}),Hc="-",ay=[],kT="arbitrary..",_T=n=>{const r=MT(n),{conflictingClassGroups:o,conflictingClassGroupModifiers:a}=n;return{getClassGroupId:p=>{if(p.startsWith("[")&&p.endsWith("]"))return AT(p);const g=p.split(Hc),b=g[0]===""&&g.length>1?1:0;return s0(g,b,r)},getConflictingClassGroupIds:(p,g)=>{if(g){const b=a[p],m=o[p];return b?m?OT(m,b):b:m||ay}return o[p]||ay}}},s0=(n,r,o)=>{if(n.length-r===0)return o.classGroupId;const c=n[r],d=o.nextPart.get(c);if(d){const m=s0(n,r+1,d);if(m)return m}const p=o.validators;if(p===null)return;const g=r===0?n.join(Hc):n.slice(r).join(Hc),b=p.length;for(let m=0;m<b;m++){const y=p[m];if(y.validator(g))return y.classGroupId}},AT=n=>n.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=n.slice(1,-1),o=r.indexOf(":"),a=r.slice(0,o);return a?kT+a:void 0})(),MT=n=>{const{theme:r,classGroups:o}=n;return DT(o,r)},DT=(n,r)=>{const o=n0();for(const a in n){const c=n[a];Km(c,o,a,r)}return o},Km=(n,r,o,a)=>{const c=n.length;for(let d=0;d<c;d++){const p=n[d];zT(p,r,o,a)}},zT=(n,r,o,a)=>{if(typeof n=="string"){LT(n,r,o);return}if(typeof n=="function"){IT(n,r,o,a);return}BT(n,r,o,a)},LT=(n,r,o)=>{const a=n===""?r:r0(r,n);a.classGroupId=o},IT=(n,r,o,a)=>{if(UT(n)){Km(n(a),r,o,a);return}r.validators===null&&(r.validators=[]),r.validators.push(RT(o,n))},BT=(n,r,o,a)=>{const c=Object.entries(n),d=c.length;for(let p=0;p<d;p++){const[g,b]=c[p];Km(b,r0(r,g),o,a)}},r0=(n,r)=>{let o=n;const a=r.split(Hc),c=a.length;for(let d=0;d<c;d++){const p=a[d];let g=o.nextPart.get(p);g||(g=n0(),o.nextPart.set(p,g)),o=g}return o},UT=n=>"isThemeGetter"in n&&n.isThemeGetter===!0,HT=n=>{if(n<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),a=Object.create(null);const c=(d,p)=>{o[d]=p,r++,r>n&&(r=0,a=o,o=Object.create(null))};return{get(d){let p=o[d];if(p!==void 0)return p;if((p=a[d])!==void 0)return c(d,p),p},set(d,p){d in o?o[d]=p:c(d,p)}}},fm="!",ly=":",YT=[],iy=(n,r,o,a,c)=>({modifiers:n,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:a,isExternal:c}),PT=n=>{const{prefix:r,experimentalParseClassName:o}=n;let a=c=>{const d=[];let p=0,g=0,b=0,m;const y=c.length;for(let w=0;w<y;w++){const _=c[w];if(p===0&&g===0){if(_===ly){d.push(c.slice(b,w)),b=w+1;continue}if(_==="/"){m=w;continue}}_==="["?p++:_==="]"?p--:_==="("?g++:_===")"&&g--}const x=d.length===0?c:c.slice(b);let S=x,N=!1;x.endsWith(fm)?(S=x.slice(0,-1),N=!0):x.startsWith(fm)&&(S=x.slice(1),N=!0);const j=m&&m>b?m-b:void 0;return iy(d,N,S,j)};if(r){const c=r+ly,d=a;a=p=>p.startsWith(c)?d(p.slice(c.length)):iy(YT,!1,p,void 0,!0)}if(o){const c=a;a=d=>o({className:d,parseClassName:c})}return a},VT=n=>{const r=new Map;return n.orderSensitiveModifiers.forEach((o,a)=>{r.set(o,1e6+a)}),o=>{const a=[];let c=[];for(let d=0;d<o.length;d++){const p=o[d],g=p[0]==="[",b=r.has(p);g||b?(c.length>0&&(c.sort(),a.push(...c),c=[]),a.push(p)):c.push(p)}return c.length>0&&(c.sort(),a.push(...c)),a}},FT=n=>({cache:HT(n.cacheSize),parseClassName:PT(n),sortModifiers:VT(n),postfixLookupClassGroupIds:qT(n),..._T(n)}),qT=n=>{const r=Object.create(null),o=n.postfixLookupClassGroups;if(o)for(let a=0;a<o.length;a++)r[o[a]]=!0;return r},GT=/\s+/,$T=(n,r)=>{const{parseClassName:o,getClassGroupId:a,getConflictingClassGroupIds:c,sortModifiers:d,postfixLookupClassGroupIds:p}=r,g=[],b=n.trim().split(GT);let m="";for(let y=b.length-1;y>=0;y-=1){const x=b[y],{isExternal:S,modifiers:N,hasImportantModifier:j,baseClassName:w,maybePostfixModifierPosition:_}=o(x);if(S){m=x+(m.length>0?" "+m:m);continue}let E=!!_,T;if(E){const L=w.substring(0,_);T=a(L);const O=T&&p[T]?a(w):void 0;O&&O!==T&&(T=O,E=!1)}else T=a(w);if(!T){if(!E){m=x+(m.length>0?" "+m:m);continue}if(T=a(w),!T){m=x+(m.length>0?" "+m:m);continue}E=!1}const C=N.length===0?"":N.length===1?N[0]:d(N).join(":"),k=j?C+fm:C,F=k+T;if(g.indexOf(F)>-1)continue;g.push(F);const A=c(T,E);for(let L=0;L<A.length;++L){const O=A[L];g.push(k+O)}m=x+(m.length>0?" "+m:m)}return m},XT=(...n)=>{let r=0,o,a,c="";for(;r<n.length;)(o=n[r++])&&(a=o0(o))&&(c&&(c+=" "),c+=a);return c},o0=n=>{if(typeof n=="string")return n;let r,o="";for(let a=0;a<n.length;a++)n[a]&&(r=o0(n[a]))&&(o&&(o+=" "),o+=r);return o},KT=(n,...r)=>{let o,a,c,d;const p=b=>{const m=r.reduce((y,x)=>x(y),n());return o=FT(m),a=o.cache.get,c=o.cache.set,d=g,g(b)},g=b=>{const m=a(b);if(m)return m;const y=$T(b,o);return c(b,y),y};return d=p,(...b)=>d(XT(...b))},QT=[],rn=n=>{const r=o=>o[n]||QT;return r.isThemeGetter=!0,r},a0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,l0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ZT=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,JT=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,WT=/\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$/,e2=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,t2=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,n2=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Lr=n=>ZT.test(n),at=n=>!!n&&!Number.isNaN(Number(n)),vs=n=>!!n&&Number.isInteger(Number(n)),Lf=n=>n.endsWith("%")&&at(n.slice(0,-1)),Zs=n=>JT.test(n),i0=()=>!0,s2=n=>WT.test(n)&&!e2.test(n),Qm=()=>!1,r2=n=>t2.test(n),o2=n=>n2.test(n),a2=n=>!Ye(n)&&!Pe(n),l2=n=>n.startsWith("@container")&&(n[10]==="/"&&n[11]!==void 0||n[11]==="s"&&n[16]!==void 0&&n.startsWith("-size/",10)||n[11]==="n"&&n[18]!==void 0&&n.startsWith("-normal/",10)),i2=n=>Vr(n,d0,Qm),Ye=n=>a0.test(n),co=n=>Vr(n,f0,s2),cy=n=>Vr(n,g2,at),c2=n=>Vr(n,p0,i0),u2=n=>Vr(n,m0,Qm),uy=n=>Vr(n,c0,Qm),d2=n=>Vr(n,u0,o2),xc=n=>Vr(n,h0,r2),Pe=n=>l0.test(n),Sl=n=>No(n,f0),f2=n=>No(n,m0),dy=n=>No(n,c0),m2=n=>No(n,d0),p2=n=>No(n,u0),bc=n=>No(n,h0,!0),h2=n=>No(n,p0,!0),Vr=(n,r,o)=>{const a=a0.exec(n);return a?a[1]?r(a[1]):o(a[2]):!1},No=(n,r,o=!1)=>{const a=l0.exec(n);return a?a[1]?r(a[1]):o:!1},c0=n=>n==="position"||n==="percentage",u0=n=>n==="image"||n==="url",d0=n=>n==="length"||n==="size"||n==="bg-size",f0=n=>n==="length",g2=n=>n==="number",m0=n=>n==="family-name",p0=n=>n==="number"||n==="weight",h0=n=>n==="shadow",x2=()=>{const n=rn("color"),r=rn("font"),o=rn("text"),a=rn("font-weight"),c=rn("tracking"),d=rn("leading"),p=rn("breakpoint"),g=rn("container"),b=rn("spacing"),m=rn("radius"),y=rn("shadow"),x=rn("inset-shadow"),S=rn("text-shadow"),N=rn("drop-shadow"),j=rn("blur"),w=rn("perspective"),_=rn("aspect"),E=rn("ease"),T=rn("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],F=()=>[...k(),Pe,Ye],A=()=>["auto","hidden","clip","visible","scroll"],L=()=>["auto","contain","none"],O=()=>[Pe,Ye,b],X=()=>[Lr,"full","auto",...O()],ne=()=>[vs,"none","subgrid",Pe,Ye],fe=()=>["auto",{span:["full",vs,Pe,Ye]},vs,Pe,Ye],ee=()=>[vs,"auto",Pe,Ye],K=()=>["auto","min","max","fr",Pe,Ye],te=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],D=()=>["auto",...O()],z=()=>[Lr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...O()],P=()=>[Lr,"screen","full","dvw","lvw","svw","min","max","fit",...O()],U=()=>[Lr,"screen","full","lh","dvh","lvh","svh","min","max","fit",...O()],V=()=>[n,Pe,Ye],M=()=>[...k(),dy,uy,{position:[Pe,Ye]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",m2,i2,{size:[Pe,Ye]}],H=()=>[Lf,Sl,co],q=()=>["","none","full",m,Pe,Ye],J=()=>["",at,Sl,co],he=()=>["solid","dashed","dotted","double"],re=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ce=()=>[at,Lf,dy,uy],Ie=()=>["","none",j,Pe,Ye],_e=()=>["none",at,Pe,Ye],we=()=>["none",at,Pe,Ye],Be=()=>[at,Pe,Ye],ge=()=>[Lr,"full",...O()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Zs],breakpoint:[Zs],color:[i0],container:[Zs],"drop-shadow":[Zs],ease:["in","out","in-out"],font:[a2],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Zs],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Zs],shadow:[Zs],spacing:["px",at],text:[Zs],"text-shadow":[Zs],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Lr,Ye,Pe,_]}],container:["container"],"container-type":[{"@container":["","normal","size",Pe,Ye]}],"container-named":[l2],columns:[{columns:[at,Ye,Pe,g]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"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:F()}],overflow:[{overflow:A()}],"overflow-x":[{"overflow-x":A()}],"overflow-y":[{"overflow-y":A()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:X()}],"inset-x":[{"inset-x":X()}],"inset-y":[{"inset-y":X()}],start:[{"inset-s":X(),start:X()}],end:[{"inset-e":X(),end:X()}],"inset-bs":[{"inset-bs":X()}],"inset-be":[{"inset-be":X()}],top:[{top:X()}],right:[{right:X()}],bottom:[{bottom:X()}],left:[{left:X()}],visibility:["visible","invisible","collapse"],z:[{z:[vs,"auto",Pe,Ye]}],basis:[{basis:[Lr,"full","auto",g,...O()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[at,Lr,"auto","initial","none",Ye]}],grow:[{grow:["",at,Pe,Ye]}],shrink:[{shrink:["",at,Pe,Ye]}],order:[{order:[vs,"first","last","none",Pe,Ye]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:fe()}],"col-start":[{"col-start":ee()}],"col-end":[{"col-end":ee()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:fe()}],"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":K()}],"auto-rows":[{"auto-rows":K()}],gap:[{gap:O()}],"gap-x":[{"gap-x":O()}],"gap-y":[{"gap-y":O()}],"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:O()}],px:[{px:O()}],py:[{py:O()}],ps:[{ps:O()}],pe:[{pe:O()}],pbs:[{pbs:O()}],pbe:[{pbe:O()}],pt:[{pt:O()}],pr:[{pr:O()}],pb:[{pb:O()}],pl:[{pl:O()}],m:[{m:D()}],mx:[{mx:D()}],my:[{my:D()}],ms:[{ms:D()}],me:[{me:D()}],mbs:[{mbs:D()}],mbe:[{mbe:D()}],mt:[{mt:D()}],mr:[{mr:D()}],mb:[{mb:D()}],ml:[{ml:D()}],"space-x":[{"space-x":O()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":O()}],"space-y-reverse":["space-y-reverse"],size:[{size:z()}],"inline-size":[{inline:["auto",...P()]}],"min-inline-size":[{"min-inline":["auto",...P()]}],"max-inline-size":[{"max-inline":["none",...P()]}],"block-size":[{block:["auto",...U()]}],"min-block-size":[{"min-block":["auto",...U()]}],"max-block-size":[{"max-block":["none",...U()]}],w:[{w:[g,"screen",...z()]}],"min-w":[{"min-w":[g,"screen","none",...z()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[p]},...z()]}],h:[{h:["screen","lh",...z()]}],"min-h":[{"min-h":["screen","lh","none",...z()]}],"max-h":[{"max-h":["screen","lh",...z()]}],"font-size":[{text:["base",o,Sl,co]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,h2,c2]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Lf,Ye]}],"font-family":[{font:[f2,u2,r]}],"font-features":[{"font-features":[Ye]}],"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,Pe,Ye]}],"line-clamp":[{"line-clamp":[at,"none",Pe,cy]}],leading:[{leading:[d,...O()]}],"list-image":[{"list-image":["none",Pe,Ye]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Pe,Ye]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:V()}],"text-color":[{text:V()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...he(),"wavy"]}],"text-decoration-thickness":[{decoration:[at,"from-font","auto",Pe,co]}],"text-decoration-color":[{decoration:V()}],"underline-offset":[{"underline-offset":[at,"auto",Pe,Ye]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"tab-size":[{tab:[vs,Pe,Ye]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Pe,Ye]}],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",Pe,Ye]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:M()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},vs,Pe,Ye],radial:["",Pe,Ye],conic:[vs,Pe,Ye]},p2,d2]}],"bg-color":[{bg:V()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:V()}],"gradient-via":[{via:V()}],"gradient-to":[{to:V()}],rounded:[{rounded:q()}],"rounded-s":[{"rounded-s":q()}],"rounded-e":[{"rounded-e":q()}],"rounded-t":[{"rounded-t":q()}],"rounded-r":[{"rounded-r":q()}],"rounded-b":[{"rounded-b":q()}],"rounded-l":[{"rounded-l":q()}],"rounded-ss":[{"rounded-ss":q()}],"rounded-se":[{"rounded-se":q()}],"rounded-ee":[{"rounded-ee":q()}],"rounded-es":[{"rounded-es":q()}],"rounded-tl":[{"rounded-tl":q()}],"rounded-tr":[{"rounded-tr":q()}],"rounded-br":[{"rounded-br":q()}],"rounded-bl":[{"rounded-bl":q()}],"border-w":[{border:J()}],"border-w-x":[{"border-x":J()}],"border-w-y":[{"border-y":J()}],"border-w-s":[{"border-s":J()}],"border-w-e":[{"border-e":J()}],"border-w-bs":[{"border-bs":J()}],"border-w-be":[{"border-be":J()}],"border-w-t":[{"border-t":J()}],"border-w-r":[{"border-r":J()}],"border-w-b":[{"border-b":J()}],"border-w-l":[{"border-l":J()}],"divide-x":[{"divide-x":J()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":J()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...he(),"hidden","none"]}],"divide-style":[{divide:[...he(),"hidden","none"]}],"border-color":[{border:V()}],"border-color-x":[{"border-x":V()}],"border-color-y":[{"border-y":V()}],"border-color-s":[{"border-s":V()}],"border-color-e":[{"border-e":V()}],"border-color-bs":[{"border-bs":V()}],"border-color-be":[{"border-be":V()}],"border-color-t":[{"border-t":V()}],"border-color-r":[{"border-r":V()}],"border-color-b":[{"border-b":V()}],"border-color-l":[{"border-l":V()}],"divide-color":[{divide:V()}],"outline-style":[{outline:[...he(),"none","hidden"]}],"outline-offset":[{"outline-offset":[at,Pe,Ye]}],"outline-w":[{outline:["",at,Sl,co]}],"outline-color":[{outline:V()}],shadow:[{shadow:["","none",y,bc,xc]}],"shadow-color":[{shadow:V()}],"inset-shadow":[{"inset-shadow":["none",x,bc,xc]}],"inset-shadow-color":[{"inset-shadow":V()}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:V()}],"ring-offset-w":[{"ring-offset":[at,co]}],"ring-offset-color":[{"ring-offset":V()}],"inset-ring-w":[{"inset-ring":J()}],"inset-ring-color":[{"inset-ring":V()}],"text-shadow":[{"text-shadow":["none",S,bc,xc]}],"text-shadow-color":[{"text-shadow":V()}],opacity:[{opacity:[at,Pe,Ye]}],"mix-blend":[{"mix-blend":[...re(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":re()}],"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":[at]}],"mask-image-linear-from-pos":[{"mask-linear-from":ce()}],"mask-image-linear-to-pos":[{"mask-linear-to":ce()}],"mask-image-linear-from-color":[{"mask-linear-from":V()}],"mask-image-linear-to-color":[{"mask-linear-to":V()}],"mask-image-t-from-pos":[{"mask-t-from":ce()}],"mask-image-t-to-pos":[{"mask-t-to":ce()}],"mask-image-t-from-color":[{"mask-t-from":V()}],"mask-image-t-to-color":[{"mask-t-to":V()}],"mask-image-r-from-pos":[{"mask-r-from":ce()}],"mask-image-r-to-pos":[{"mask-r-to":ce()}],"mask-image-r-from-color":[{"mask-r-from":V()}],"mask-image-r-to-color":[{"mask-r-to":V()}],"mask-image-b-from-pos":[{"mask-b-from":ce()}],"mask-image-b-to-pos":[{"mask-b-to":ce()}],"mask-image-b-from-color":[{"mask-b-from":V()}],"mask-image-b-to-color":[{"mask-b-to":V()}],"mask-image-l-from-pos":[{"mask-l-from":ce()}],"mask-image-l-to-pos":[{"mask-l-to":ce()}],"mask-image-l-from-color":[{"mask-l-from":V()}],"mask-image-l-to-color":[{"mask-l-to":V()}],"mask-image-x-from-pos":[{"mask-x-from":ce()}],"mask-image-x-to-pos":[{"mask-x-to":ce()}],"mask-image-x-from-color":[{"mask-x-from":V()}],"mask-image-x-to-color":[{"mask-x-to":V()}],"mask-image-y-from-pos":[{"mask-y-from":ce()}],"mask-image-y-to-pos":[{"mask-y-to":ce()}],"mask-image-y-from-color":[{"mask-y-from":V()}],"mask-image-y-to-color":[{"mask-y-to":V()}],"mask-image-radial":[{"mask-radial":[Pe,Ye]}],"mask-image-radial-from-pos":[{"mask-radial-from":ce()}],"mask-image-radial-to-pos":[{"mask-radial-to":ce()}],"mask-image-radial-from-color":[{"mask-radial-from":V()}],"mask-image-radial-to-color":[{"mask-radial-to":V()}],"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":k()}],"mask-image-conic-pos":[{"mask-conic":[at]}],"mask-image-conic-from-pos":[{"mask-conic-from":ce()}],"mask-image-conic-to-pos":[{"mask-conic-to":ce()}],"mask-image-conic-from-color":[{"mask-conic-from":V()}],"mask-image-conic-to-color":[{"mask-conic-to":V()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:M()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Pe,Ye]}],filter:[{filter:["","none",Pe,Ye]}],blur:[{blur:Ie()}],brightness:[{brightness:[at,Pe,Ye]}],contrast:[{contrast:[at,Pe,Ye]}],"drop-shadow":[{"drop-shadow":["","none",N,bc,xc]}],"drop-shadow-color":[{"drop-shadow":V()}],grayscale:[{grayscale:["",at,Pe,Ye]}],"hue-rotate":[{"hue-rotate":[at,Pe,Ye]}],invert:[{invert:["",at,Pe,Ye]}],saturate:[{saturate:[at,Pe,Ye]}],sepia:[{sepia:["",at,Pe,Ye]}],"backdrop-filter":[{"backdrop-filter":["","none",Pe,Ye]}],"backdrop-blur":[{"backdrop-blur":Ie()}],"backdrop-brightness":[{"backdrop-brightness":[at,Pe,Ye]}],"backdrop-contrast":[{"backdrop-contrast":[at,Pe,Ye]}],"backdrop-grayscale":[{"backdrop-grayscale":["",at,Pe,Ye]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[at,Pe,Ye]}],"backdrop-invert":[{"backdrop-invert":["",at,Pe,Ye]}],"backdrop-opacity":[{"backdrop-opacity":[at,Pe,Ye]}],"backdrop-saturate":[{"backdrop-saturate":[at,Pe,Ye]}],"backdrop-sepia":[{"backdrop-sepia":["",at,Pe,Ye]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":O()}],"border-spacing-x":[{"border-spacing-x":O()}],"border-spacing-y":[{"border-spacing-y":O()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Pe,Ye]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[at,"initial",Pe,Ye]}],ease:[{ease:["linear","initial",E,Pe,Ye]}],delay:[{delay:[at,Pe,Ye]}],animate:[{animate:["none",T,Pe,Ye]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Pe,Ye]}],"perspective-origin":[{"perspective-origin":F()}],rotate:[{rotate:_e()}],"rotate-x":[{"rotate-x":_e()}],"rotate-y":[{"rotate-y":_e()}],"rotate-z":[{"rotate-z":_e()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:Be()}],"skew-x":[{"skew-x":Be()}],"skew-y":[{"skew-y":Be()}],transform:[{transform:[Pe,Ye,"","none","gpu","cpu"]}],"transform-origin":[{origin:F()}],"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:[vs,Pe,Ye]}],accent:[{accent:V()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:V()}],"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",Pe,Ye]}],"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":V()}],"scrollbar-track-color":[{"scrollbar-track":V()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mbs":[{"scroll-mbs":O()}],"scroll-mbe":[{"scroll-mbe":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pbs":[{"scroll-pbs":O()}],"scroll-pbe":[{"scroll-pbe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"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",Pe,Ye]}],fill:[{fill:["none",...V()]}],"stroke-w":[{stroke:[at,Sl,co,cy]}],stroke:[{stroke:["none",...V()]}],"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"]}},b2=KT(x2);function Ee(...n){return b2(t0(n))}const Rl="flex shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",kl={bar:"h-8 w-6",sm:"size-7",md:"size-8"},y2="disabled:pointer-events-none disabled:opacity-50",Gn="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",Wc="rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",Lt="animate-pulse rounded bg-muted",v2="rounded-xl border border-border bg-card p-4",fy=n=>{let r;const o=new Set,a=(m,y)=>{const x=typeof m=="function"?m(r):m;if(!Object.is(x,r)){const S=r;r=y??(typeof x!="object"||x===null)?x:Object.assign({},r,x),o.forEach(N=>N(r,S))}},c=()=>r,g={setState:a,getState:c,getInitialState:()=>b,subscribe:m=>(o.add(m),()=>o.delete(m))},b=r=n(a,c,g);return g},S2=(n=>n?fy(n):fy),E2=n=>n;function N2(n,r=E2){const o=Me.useSyncExternalStore(n.subscribe,Me.useCallback(()=>r(n.getState()),[n,r]),Me.useCallback(()=>r(n.getInitialState()),[n,r]));return Me.useDebugValue(o),o}const my=n=>{const r=S2(n),o=a=>N2(r,a);return Object.assign(o,r),o},Zm=(n=>n?my(n):my),j2="/api/v1",ot="CLIENT_NETWORK_ERROR";class De extends Error{code;constructor(r,o){super(o),this.name="ApiError",this.code=r}}function T2(n){const r=new URLSearchParams;for(const[a,c]of Object.entries(n))c!=null&&r.set(a,String(c));const o=r.toString();return o?`?${o}`:""}function g0(n,r){const o=n.startsWith("/")?n:`/${n}`;return`${j2}${o}${T2(r??{})}`}function w2(n){return typeof n=="object"&&n!==null&&n.success===!0}function x0(n){if(typeof n!="object"||n===null)return!1;const r=n.error;return n.success===!1&&typeof r=="object"&&r!==null&&typeof r.code=="string"&&typeof r.message=="string"}async function nt(n,r={}){const{method:o="GET",body:a,query:c,headers:d,signal:p}=r;let g;try{g=await fetch(g0(n,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:p})}catch(m){throw new De(ot,m instanceof Error?m.message:"网络请求失败")}const b=await g.json().catch(()=>null);if(w2(b))return b.data;throw x0(b)?new De(b.error.code,b.error.message):new De(ot,`非预期响应(HTTP ${g.status})`)}function C2(){return nt("/project/config")}function O2(n){return nt("/project/config",{method:"PUT",body:n})}function R2(){return nt("/outline")}function k2(n){return nt("/outline",{method:"POST",body:n})}function b0(n,r){return nt(`/outline/${n}`,{method:"PUT",body:r})}function py(n,r){return nt(`/outline/${n}/move`,{method:"PUT",body:r})}function _2(n){return nt(`/outline/${n}`,{method:"DELETE"})}function A2(){return nt("/trash")}function M2(n,r){return nt(`/trash/entity/${n}/${r}/restore`,{method:"POST"})}function D2(n,r){return nt(`/trash/entity/${n}/${r}`,{method:"DELETE"})}function hy(n){return nt(`/trash/outline/${n}/restore`,{method:"POST"})}function z2(n){return nt(`/trash/outline/${n}`,{method:"DELETE"})}function Nn(n,r={}){return nt(`/entity/${n}`,{query:r})}function po(n,r){return nt(`/entity/${n}/${r}`)}function Yc(n,r){return nt(`/entity/${n}`,{method:"POST",body:r})}function bo(n,r,o){return nt(`/entity/${n}/${r}`,{method:"PUT",body:o})}function eu(n,r){return nt(`/entity/${n}/${r}`,{method:"DELETE"})}function L2(n,r){return nt(`/entity/event/${n}/move`,{method:"PUT",body:r})}function I2(n,r){return nt(`/entity/timepoint/${n}/move`,{method:"PUT",body:r})}function y0(n,r){return nt(`/entity/event/${n}/move_to`,{method:"POST",body:r})}function Ta(n){return nt("/relation",{query:{source_type:n.source_type,source_id:n.source_id,target_type:n.target_type,target_id:n.target_id,relation_type:n.relation_type,depth:n.depth}})}function Hr(n){return nt("/relation",{method:"POST",body:n})}function Dl(n){return nt(`/relation/${n}`,{method:"DELETE"})}function B2(n){return nt(`/delta/node/${n}`)}function U2(n){return nt("/delta/compute",{method:"POST",body:n})}function Jm(n){return nt("/delta",{method:"POST",body:n})}function H2(){return nt("/project/list")}function Y2(n,r){return nt("/project/create",{method:"POST",body:{path:n,...r!==void 0?{config:r}:{}}})}function P2(n){return nt("/project/open",{method:"POST",body:{path:n}})}function V2(){return nt("/project/close",{method:"POST"})}function F2(n){if(n!==null){const r=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(n);if(r)try{return decodeURIComponent(r[1])}catch{}const o=/filename\s*=\s*"?([^";]+)"?/i.exec(n);if(o)return o[1]}return"project.zip"}async function q2(){let n;try{n=await fetch(g0("/project/export"))}catch(o){throw new De(ot,o instanceof Error?o.message:"网络请求失败")}const r=n.headers.get("content-type")??"";if(n.ok&&(r.includes("zip")||r.includes("octet-stream")))return{blob:await n.blob(),filename:F2(n.headers.get("content-disposition"))};if(r.includes("application/json")){const o=await n.json().catch(()=>null);if(x0(o))throw new De(o.error.code,o.error.message)}throw new De(ot,`非预期响应(HTTP ${n.status})`)}async function G2(n,r){const o=new FormData;return o.append("file",n,"backup.zip"),o.append("name",r),nt("/project/import",{method:"POST",body:o})}function $2(){return nt("/project/backups")}function X2(n){return nt("/project/backup",{method:"POST",...n!==void 0?{body:{name:n}}:{}})}function K2(n){return nt("/project/backup/restore",{method:"POST",body:{fileName:n}})}function Q2(n,r){const o=r?.trim()??"";return nt("/project/backup/rename",{method:"POST",body:{fileName:n,name:o}})}function Z2(n){return nt("/project/rename",{method:"POST",body:{name:n}})}function J2(){return nt("/settings/llm")}function If(n){return nt("/settings/llm",{method:"PUT",body:n})}function W2(){return nt("/chat/sessions").then(n=>n.sessions)}function ew(n){return nt(`/chat/sessions/${n}/messages`)}function tw(n){return nt(`/proposal/${n}/confirm`,{method:"POST"})}function nw(n){return nt(`/proposal/${n}/reject`,{method:"POST"})}const mm=3e3;let sw=0;const Oe=Zm((n,r)=>({error:null,showError:(o,a)=>n({error:{code:o,message:a}}),clearError:()=>n({error:null}),toast:null,showToast:(o,a="success")=>{const c=++sw;n({toast:{id:c,kind:a,text:o}}),setTimeout(()=>{n(d=>d.toast?.id===c?{toast:null}:{})},mm)},clearToast:()=>n({toast:null}),confirmState:null,confirm:o=>new Promise(a=>{n({confirmState:{...o,resolve:a}})}),resolveConfirm:o=>{const a=r().confirmState;a&&(a.resolve(o),n({confirmState:null}))},focusOutlineNodeId:null,setFocusOutlineNode:o=>n({focusOutlineNodeId:o}),clearFocusOutlineNode:()=>n({focusOutlineNodeId:null}),dataVersion:0,notifyDataChanged:()=>n(o=>({dataVersion:o.dataVersion+1}))})),Le=Zm((n,r)=>({config:null,configLoading:!1,loadError:null,outline:null,outlineLoading:!1,bookshelf:null,bookshelfLoading:!1,bookshelfError:null,loadConfig:async()=>{if(!r().configLoading){n({configLoading:!0});try{const o=await C2();n({config:o,loadError:null})}catch(o){const a=o instanceof De?o.code:"CLIENT_NETWORK_ERROR";n({config:null,loadError:a})}finally{n({configLoading:!1})}}},updateConfig:async o=>{await O2(o),await r().loadConfig()},loadOutline:async()=>{if(!r().outlineLoading){n({outlineLoading:!0});try{const o=await R2();n({outline:o})}catch{n({outline:null})}finally{n({outlineLoading:!1})}}},loadBookshelf:async()=>{if(!r().bookshelfLoading){n({bookshelfLoading:!0});try{const o=await H2();n({bookshelf:o,bookshelfError:null})}catch(o){const a=o instanceof De?o.code:"CLIENT_NETWORK_ERROR";n({bookshelf:null,bookshelfError:a})}finally{n({bookshelfLoading:!1})}}},openProjectAt:async o=>{const a=await P2(o);n({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 Y2(o,a),await r().openProjectAt(o)},closeProject:async()=>{await V2(),n({config:null,loadError:null,outline:null}),Oe.getState().clearFocusOutlineNode()}}));function v0(n,r){if(n.id===r)return n;if("children"in n&&n.children)for(const o of n.children){const a=v0(o,r);if(a)return a}return null}function S0(n,r){if(!n||!r)return null;for(const o of n.children){const a=v0(o,r);if(a)return a.title}return null}function E0(n,r){return`${n.replace(/\/+$/,"")}/books/${r.trim()}`}const rw="[DONE]",ow=6e4;function aw(n){const r=[];let o=n,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 gy(n){let r="message";const o=[];for(const a of n.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 xy(n){if(typeof n!="object"||n===null)return!1;const r=n.error;return typeof r=="object"&&r!==null&&typeof r.code=="string"&&typeof r.message=="string"}function lw(n,r){const{onEvent:o,timeoutMs:a=ow,onTimeout:c,onEnd:d,signal:p,body:g}=r,b=new AbortController,m=()=>b.abort();p&&(p.aborted?b.abort():p.addEventListener("abort",m));let y="",x=!1,S=!1,N=!1,j=!1,w=null;const _=()=>{w!==null&&(clearTimeout(w),w=null)},E=()=>{_(),w=setTimeout(()=>{x||(S=!0,x=!0,c?.(),b.abort())},a)},T=C=>{if(C.data===rw)return!1;let k=C.data;try{k=JSON.parse(C.data)}catch{}return o(C.event,k),C.event!=="error"};return E(),(async()=>{try{const C=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:g===void 0?void 0:JSON.stringify(g),signal:b.signal});if(!C.ok||!C.body){const A=await C.json().catch(()=>null),L=xy(A)?A.error.code:ot,O=xy(A)?A.error.message:`SSE 请求失败(HTTP ${C.status})`;x=!0,j=!0,o("error",{code:L,message:O});return}const k=C.body.getReader(),F=new TextDecoder;for(;!x;){const{done:A,value:L}=await k.read();if(A)break;y=(y+F.decode(L,{stream:!0})).replace(/\r\n/g,`
14
- `);const{frames:O,rest:X}=aw(y);y=X;for(const ne of O){const fe=gy(ne);if(fe){if(!T(fe)){x=!0;break}E()}}}if(!x&&y.trim()!==""){const A=gy(y.trim());A&&!T(A)&&(x=!0)}}catch{!S&&!N&&(x=!0,j=!0,o("error",{code:ot,message:"网络请求失败"}))}finally{_(),p&&p.removeEventListener("abort",m),x=!0,!S&&!N&&!j&&d?.()}})(),()=>{x||(N=!0,x=!0,_(),b.abort())}}function iw(n,r){return r.includes("HTTP 404")?"聊天服务暂不可用":n==="CLIENT_NETWORK_ERROR"&&!r.includes("HTTP ")?"连接失败,请确认服务已启动":r}function cw(n,r){switch(n){case"INTERNAL_ERROR":return"提案执行失败,请让 AI 重新生成提案";case"CLIENT_NETWORK_ERROR":return"网络请求失败,请重试";default:return r}}let ma=0,pa=0,by=0,uo=null,Ss=null,ha=null;const pt=Zm((n,r)=>{const o=async(a,c,d)=>{const p=r().proposals.find(g=>g.proposalId===a);if(!(!p||p.status!=="pending"||p.processing===!0)){n(g=>({proposals:g.proposals.map(b=>b.proposalId===a?{...b,processing:!0}:b)}));try{await c(a),n(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",m=g instanceof Error?g.message:"网络请求失败";switch(b){case"PROPOSAL_STALE":n(y=>({proposals:y.proposals.map(x=>x.proposalId===a?{...x,status:"stale",processing:!1}:x)}));return;case"PROPOSAL_NOT_FOUND":case"PROPOSAL_PROJECT_MISMATCH":n(y=>({proposals:y.proposals.filter(x=>x.proposalId!==a)}));return;default:Oe.getState().showToast(cw(b,m),"error"),n(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=++ma;n({sessionsLoading:!0});try{const c=await W2();if(a!==ma)return;n({sessions:c,sessionsError:null}),r().currentSessionId===null&&c.length>0&&r().setCurrentSession(c[0].id)}catch(c){if(a!==ma)return;const d=c instanceof De?c.code:"CLIENT_NETWORK_ERROR";n({sessions:null,sessionsError:d})}finally{a===ma&&n({sessionsLoading:!1})}},setCurrentSession:a=>{a!==r().currentSessionId&&(pa++,uo?.(),uo=null,Ss=null,ha=null,n({currentSessionId:a,messages:[],messagesLoading:!1,streaming:!1,streamError:null,disconnected:!1,focusContext:null,proposals:[],streamTools:[]}),a!==null&&r().loadMessages(a))},newSession:()=>{ma++,r().setCurrentSession(null)},clearSessions:()=>{ma++,pa++,uo?.(),uo=null,Ss=null,ha=null,n({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=++pa;n({messagesLoading:!0});try{const d=await ew(a);if(c!==pa)return;const p=d.messages.map(g=>({...g,sessionId:d.sessionId}));n({messages:p})}catch{if(c!==pa)return;n({messages:[]})}finally{c===pa&&n({messagesLoading:!1})}},streaming:!1,streamError:null,setStreamError:a=>n({streamError:a}),focusContext:null,setFocusContext:a=>n({focusContext:a}),clearFocusContext:()=>n({focusContext:null}),disconnected:!1,setDisconnected:a=>n({disconnected:a}),proposals:[],streamTools:[],sendMessage:a=>{const{streaming:c,messagesLoading:d,currentSessionId:p,focusContext:g}=r(),b=a.trim();if(!b||c||d)return;uo?.(),uo=null;const m=new Date().toISOString(),y=p??"",x=`local-${++by}`;Ss=x,ha=b,n(N=>({messages:[...N.messages,{id:`local-${++by}`,sessionId:y,role:"user",content:b,createdAt:m},{id:x,sessionId:y,role:"assistant",content:"",createdAt:m}],streaming:!0,streamError:null,disconnected:!1,proposals:[],streamTools:[]}));const S={message:b};p&&(S.session_id=p),g&&(S.context=g),uo=lw("/api/v1/chat",{body:S,onEvent:(N,j)=>{switch(N){case"ping":break;case"text":{const w=j?.delta??"";Ss&&n(_=>({messages:_.messages.map(E=>E.id===Ss?{...E,content:(E.content??"")+w}:E)}));break}case"tool_call":{const{tool:w,args:_,id:E}=j;if(!E||!w)break;n(T=>({streamTools:[...T.streamTools,{id:E,tool:w,args:_,status:"running"}]}));break}case"tool_result":{const{id:w}=j;if(!w)break;n(_=>({streamTools:_.streamTools.map(E=>E.id===w?{...E,result:j.result,status:"ok"}:E)}));break}case"proposal":{const{proposal_id:w,type:_,preview:E}=j;if(!w||!_)break;n(T=>({proposals:[...T.proposals,{proposalId:w,type:_,preview:E,status:"pending"}]}));break}case"done":{if(Ss===null)break;const w=j?.session_id;n({streaming:!1,currentSessionId:w??r().currentSessionId}),w&&r().loadSessions();break}case"error":{const{code:w,message:_}=j;n({streaming:!1,streamError:iw(w??"",_??"")});break}}},onTimeout:()=>{Ss===x&&(Ss=null,n({streaming:!1,disconnected:!0,proposals:[],streamTools:[]}))},onEnd:()=>{Ss===x&&(Ss=null,n(N=>N.streaming?{streaming:!1}:{}))}})},resendLast:()=>{const{messages:a,streaming:c}=r();if(c||!ha)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===ha&&(d=d.slice(0,-1)),n({messages:d}),r().sendMessage(ha)},confirmProposal:a=>o(a,tw,"confirmed"),rejectProposal:a=>o(a,nw,"rejected")}});let yy=Le.getState().config?.id??null;Le.subscribe(n=>{const r=n.config?.id??null;r!==yy&&(yy=r,pt.getState().clearSessions(),r!==null&&pt.getState().loadSessions())});function tu(){return typeof window<"u"}function vn(n){return Wm(n)?(n.nodeName||"").toLowerCase():"#document"}function Xt(n){var r;return(n==null||(r=n.ownerDocument)==null?void 0:r.defaultView)||window}function cr(n){var r;return(r=(Wm(n)?n.ownerDocument:n.document)||window.document)==null?void 0:r.documentElement}function Wm(n){return tu()?n instanceof Node||n instanceof Xt(n).Node:!1}function mt(n){return tu()?n instanceof Element||n instanceof Xt(n).Element:!1}function Bt(n){return tu()?n instanceof HTMLElement||n instanceof Xt(n).HTMLElement:!1}function wa(n){return!tu()||typeof ShadowRoot>"u"?!1:n instanceof ShadowRoot||n instanceof Xt(n).ShadowRoot}function jo(n){const{overflow:r,overflowX:o,overflowY:a,display:c}=$n(n);return/auto|scroll|overlay|hidden|clip/.test(r+a+o)&&c!=="inline"&&c!=="contents"}function uw(n){return/^(table|td|th)$/.test(vn(n))}function nu(n){try{if(n.matches(":popover-open"))return!0}catch{}try{return n.matches(":modal")}catch{return!1}}const dw=/transform|translate|scale|rotate|perspective|filter/,fw=/paint|layout|strict|content/,fo=n=>!!n&&n!=="none";let Bf;function ep(n){const r=mt(n)?$n(n):n;return fo(r.transform)||fo(r.translate)||fo(r.scale)||fo(r.rotate)||fo(r.perspective)||!tp()&&(fo(r.backdropFilter)||fo(r.filter))||dw.test(r.willChange||"")||fw.test(r.contain||"")}function mw(n){let r=or(n);for(;Bt(r)&&!er(r);){if(ep(r))return r;if(nu(r))return null;r=or(r)}return null}function tp(){return Bf==null&&(Bf=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Bf}function er(n){return/^(html|body|#document)$/.test(vn(n))}function $n(n){return Xt(n).getComputedStyle(n)}function su(n){return mt(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function or(n){if(vn(n)==="html")return n;const r=n.assignedSlot||n.parentNode||wa(n)&&n.host||cr(n);return wa(r)?r.host:r}function N0(n){const r=or(n);return er(r)?(n.ownerDocument||n).body:Bt(r)&&jo(r)?r:N0(r)}function Vl(n,r,o){var a;r===void 0&&(r=[]),o===void 0&&(o=!0);const c=N0(n),d=c===((a=n.ownerDocument)==null?void 0:a.body),p=Xt(c);if(d){const g=pm(p);return r.concat(p,p.visualViewport||[],jo(c)?c:[],g&&o?Vl(g):[])}else return r.concat(c,Vl(c,[],o))}function pm(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}const np={...XN},vy={};function Ln(n,r){const o=h.useRef(vy);return o.current===vy&&(o.current=n(r)),o}const Uf=np.useInsertionEffect,pw=Uf&&Uf!==np.useLayoutEffect?Uf:n=>n();function We(n){const r=Ln(hw).current;return r.next=n,pw(r.effect),r.trampoline}function hw(){const n={next:void 0,callback:gw,trampoline:(...r)=>n.callback?.(...r),effect:()=>{n.callback=n.next}};return n}function gw(){}const xw=()=>{},Xe=typeof document<"u"?h.useLayoutEffect:xw;function hm(n,r){if(n&&!r)return n;if(!n&&r)return r;if(n||r)return{...n,...r}}const sp={};function tr(n,r,o,a,c){if(!o&&!a&&!c&&!n)return Pc(r);let d=Pc(n);return r&&(d=_l(d,r)),o&&(d=_l(d,o)),a&&(d=_l(d,a)),c&&(d=_l(d,c)),d}function bw(n){if(n.length===0)return sp;if(n.length===1)return Pc(n[0]);let r=Pc(n[0]);for(let o=1;o<n.length;o+=1)r=_l(r,n[o]);return r}function Pc(n){return rp(n)?{...T0(n,sp)}:yw(n)}function _l(n,r){return rp(r)?T0(r,n):vw(n,r)}function yw(n){const r={...n};for(const o in r){const a=r[o];j0(o,a)&&(r[o]=w0(a))}return r}function vw(n,r){if(!r)return n;for(const o in r){const a=r[o];switch(o){case"style":{n[o]=hm(n.style,a);break}case"className":{n[o]=C0(n.className,a);break}default:j0(o,a)?n[o]=Sw(n[o],a):n[o]=a}}return n}function j0(n,r){const o=n.charCodeAt(0),a=n.charCodeAt(1),c=n.charCodeAt(2);return o===111&&a===110&&c>=65&&c<=90&&(typeof r=="function"||typeof r>"u")}function rp(n){return typeof n=="function"}function T0(n,r){return rp(n)?n(r):n??sp}function Sw(n,r){return r?n?(...o)=>{const a=o[0];if(O0(a)){const d=a;Vc(d);const p=r(...o);return d.baseUIHandlerPrevented||n?.(...o),p}const c=r(...o);return n?.(...o),c}:w0(r):n}function w0(n){return n&&((...r)=>{const o=r[0];return O0(o)&&Vc(o),n(...r)})}function Vc(n){return n.preventBaseUIHandler=()=>{n.baseUIHandlerPrevented=!0},n}function C0(n,r){return r?n?r+" "+n:r:n}function O0(n){return n!=null&&typeof n=="object"&&"nativeEvent"in n}function Ew(n,r){return function(a,...c){const d=new URL(n);return d.searchParams.set("code",a.toString()),c.forEach(p=>d.searchParams.append("args[]",p)),`${r} error #${a}; visit ${d} for the full message.`}}const jn=Ew("https://base-ui.com/production-error","Base UI"),Nw=h.createContext(void 0);function op(n=!1){const r=h.useContext(Nw);if(r===void 0&&!n)throw new Error(jn(16));return r}function jw(n){const{focusableWhenDisabled:r,disabled:o,composite:a=!1,tabIndex:c=0,isNativeButton:d}=n,p=a&&r!==!1,g=a&&r===!1;return{props:h.useMemo(()=>{const m={onKeyDown(y){o&&r&&y.key!=="Tab"&&y.preventDefault()}};return a||(m.tabIndex=c,!d&&o&&(m.tabIndex=r?c:-1)),(d&&(r||p)||!d&&o)&&(m["aria-disabled"]=o),d&&(!r||g)&&(m.disabled=o),m},[a,o,r,p,g,d,c])}}function Jl(n={}){const{disabled:r=!1,focusableWhenDisabled:o,tabIndex:a=0,native:c=!0,composite:d}=n,p=h.useRef(null),g=op(!0),b=d??g!==void 0,{props:m}=jw({focusableWhenDisabled:o,disabled:r,composite:b,tabIndex:a,isNativeButton:c}),y=h.useCallback(()=>{const N=p.current;Hf(N)&&b&&r&&m.disabled===void 0&&N.disabled&&(N.disabled=!1)},[r,m.disabled,b]);Xe(y,[y]);const x=h.useCallback((N={})=>{const{onClick:j,onMouseDown:w,onKeyUp:_,onKeyDown:E,onPointerDown:T,...C}=N;return tr({onClick(k){if(r){k.preventDefault();return}j?.(k)},onMouseDown(k){r||w?.(k)},onKeyDown(k){if(r||(Vc(k),E?.(k),k.baseUIHandlerPrevented))return;const F=k.target===k.currentTarget,A=k.currentTarget,L=Hf(A),O=!c&&Tw(A),X=F&&(c?L:!O),ne=k.key==="Enter",fe=k.key===" ",ee=A.getAttribute("role"),K=ee?.startsWith("menuitem")||ee==="option"||ee==="gridcell";if(F&&b&&fe){if(k.defaultPrevented&&K)return;k.preventDefault(),O||c&&L?(A.click(),k.preventBaseUIHandler()):X&&(j?.(k),k.preventBaseUIHandler());return}X&&(!c&&(fe||ne)&&k.preventDefault(),!c&&ne&&j?.(k))},onKeyUp(k){if(!r){if(Vc(k),_?.(k),k.target===k.currentTarget&&c&&b&&Hf(k.currentTarget)&&k.key===" "){k.preventDefault();return}k.baseUIHandlerPrevented||k.target===k.currentTarget&&!c&&!b&&k.key===" "&&j?.(k)}},onPointerDown(k){if(r){k.preventDefault();return}T?.(k)}},c?{type:"button"}:{role:"button"},m,C)},[r,m,b,c]),S=We(N=>{p.current=N,y()});return{getButtonProps:x,buttonRef:S}}function Hf(n){return Bt(n)&&n.tagName==="BUTTON"}function Tw(n){return!!(n?.tagName==="A"&&n?.href)}function Ca(n,r,o,a){const c=Ln(R0).current;return Cw(c,n,r,o,a)&&k0(c,[n,r,o,a]),c.callback}function ww(n){const r=Ln(R0).current;return Ow(r,n)&&k0(r,n),r.callback}function R0(){return{callback:null,cleanup:null,refs:[]}}function Cw(n,r,o,a,c){return n.refs[0]!==r||n.refs[1]!==o||n.refs[2]!==a||n.refs[3]!==c}function Ow(n,r){return n.refs.length!==r.length||n.refs.some((o,a)=>o!==r[a])}function k0(n,r){if(n.refs=r,r.every(o=>o==null)){n.callback=null;return}n.callback=o=>{if(n.cleanup&&(n.cleanup(),n.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 p=d(o);typeof p=="function"&&(a[c]=p);break}case"object":{d.current=o;break}}}n.cleanup=()=>{for(let c=0;c<r.length;c+=1){const d=r[c];if(d!=null)switch(typeof d){case"function":{const p=a[c];typeof p=="function"?p():d(null);break}case"object":{d.current=null;break}}}}}}}const Rw=parseInt(h.version,10);function ap(n){return Rw>=n}function Sy(n){if(!h.isValidElement(n))return null;const r=n,o=r.props;return(ap(19)?o?.ref:r.ref)??null}function fn(){}const Fc=Object.freeze([]),Ut=Object.freeze({});function kw(n,r){const o={};for(const a in n){const c=n[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 _w(n,r){return typeof n=="function"?n(r):n}function Aw(n,r){return typeof n=="function"?n(r):n}function pn(n,r,o={}){const a=r.render,c=Mw(r,o);if(o.enabled===!1)return null;const d=o.state??Ut;return Lw(n,a,c,d)}function Mw(n,r={}){const{className:o,style:a,render:c}=n,{state:d=Ut,ref:p,props:g,stateAttributesMapping:b,enabled:m=!0}=r,y=m?_w(o,d):void 0,x=m?Aw(a,d):void 0,S=m?kw(d,b):Ut,N=m&&g?Dw(g):void 0,j=m?hm(S,N)??{}:Ut;return typeof document<"u"&&(m?Array.isArray(p)?j.ref=ww([j.ref,Sy(c),...p]):j.ref=Ca(j.ref,Sy(c),p):Ca(null,null)),m?(y!==void 0&&(j.className=C0(j.className,y)),x!==void 0&&(j.style=hm(j.style,x)),j):Ut}function Dw(n){return Array.isArray(n)?bw(n):tr(void 0,n)}const zw=Symbol.for("react.lazy");function Lw(n,r,o,a){if(r){if(typeof r=="function")return r(o,a);const c=tr(o,r.props);c.ref=o.ref;let d=r;return d?.$$typeof===zw&&(d=h.Children.toArray(r)[0]),h.cloneElement(d,c)}if(n&&typeof n=="string")return Iw(n,o);throw new Error(jn(8))}function Iw(n,r){return n==="button"?h.createElement("button",{type:"button",...r,key:r.key}):n==="img"?h.createElement("img",{alt:"",...r,key:r.key}):h.createElement(n,r)}const Bw=h.forwardRef(function(r,o){const{render:a,className:c,disabled:d=!1,focusableWhenDisabled:p=!1,nativeButton:g=!0,style:b,...m}=r,{getButtonProps:y,buttonRef:x}=Jl({disabled:d,focusableWhenDisabled:p,native:g});return pn("button",r,{state:{disabled:d},ref:[o,x],props:[m,y]})}),Ey=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,Ny=t0,Uw=(n,r)=>o=>{var a;if(r?.variants==null)return Ny(n,o?.class,o?.className);const{variants:c,defaultVariants:d}=r,p=Object.keys(c).map(m=>{const y=o?.[m],x=d?.[m];if(y===null)return null;const S=Ey(y)||Ey(x);return c[m][S]}),g=o&&Object.entries(o).reduce((m,y)=>{let[x,S]=y;return S===void 0||(m[x]=S),m},{}),b=r==null||(a=r.compoundVariants)===null||a===void 0?void 0:a.reduce((m,y)=>{let{class:x,className:S,...N}=y;return Object.entries(N).every(j=>{let[w,_]=j;return Array.isArray(_)?_.includes({...d,...g}[w]):{...d,...g}[w]===_})?[...m,x,S]:m},[]);return Ny(n,p,b,o?.class,o?.className)},gm=Uw("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function me({className:n,variant:r="default",size:o="default",...a}){return i.jsx(Bw,{"data-slot":"button",className:Ee(gm({variant:r,size:o,className:n})),...a})}const _0=h.createContext(void 0);function A0(n){const r=h.useContext(_0);if(r===void 0&&!n)throw new Error(jn(33));return r}const M0=h.createContext(void 0);function To(n){const r=h.useContext(M0);if(r===void 0&&!n)throw new Error(jn(36));return r}let Fl=(function(n){return n.startingStyle="data-starting-style",n.endingStyle="data-ending-style",n})({});const Hw={[Fl.startingStyle]:""},Yw={[Fl.endingStyle]:""},ru={transitionStatus(n){return n==="starting"?Hw:n==="ending"?Yw:null}};let ho=(function(n){return n.open="data-open",n.closed="data-closed",n[n.startingStyle=Fl.startingStyle]="startingStyle",n[n.endingStyle=Fl.endingStyle]="endingStyle",n.anchorHidden="data-anchor-hidden",n.side="data-side",n.align="data-align",n})({}),xm=(function(n){return n.popupOpen="data-popup-open",n.pressed="data-pressed",n})({});const Pw={[xm.popupOpen]:""},Vw={[xm.popupOpen]:"",[xm.pressed]:""},Fw={[ho.open]:""},qw={[ho.closed]:""},Gw={[ho.anchorHidden]:""},$w={open(n){return n?Pw:null}},bm={open(n){return n?Vw:null}},Wl={open(n){return n?Fw:qw},anchorHidden(n){return n?Gw:null}},Xw=h.createContext(void 0);function ou(n=!0){const r=h.useContext(Xw);if(r===void 0&&!n)throw new Error(jn(25));return r}const D0="none",yo="trigger-press",mn="trigger-hover",zl="trigger-focus",lp="outside-press",z0="item-press",L0="close-press",vo="focus-out",au="escape-key",ym="list-navigation",Kw="cancel-open",Al="sibling-open",ip="imperative-action";function Qw({controlled:n,default:r,name:o,state:a="value"}){const{current:c}=h.useRef(n!==void 0),[d,p]=h.useState(r),g=c?n:d,b=h.useCallback(m=>{c||p(m)},[]);return[g,b]}function Zw(){return typeof navigator>"u"?{userAgent:"",platform:"",maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??0}}const{userAgent:Jw,platform:Ww,maxTouchPoints:eC}=Zw(),lu=Jw.toLowerCase(),ql=Ww.toLowerCase(),iu=/^i(os$|p)/.test(ql)||ql==="macintel"&&eC>1,jy="android",vm=ql===jy||lu.includes(jy),cp=!iu&&ql.startsWith("mac");ql.startsWith("win");const tC=cp||iu,wo=typeof CSS<"u"&&!!CSS.supports?.("-webkit-backdrop-filter:none");!wo&&lu.includes("firefox");!wo&&lu.includes("chrom");const nC=tC,up=/jsdom|happydom/.test(lu);function sC(n){const{closeOnClick:r,highlighted:o,id:a,nodeId:c,store:d,typingRef:p,itemRef:g,itemMetadata:b}=n,{events:m}=d.useState("floatingTreeRoot"),y=d.useState("open"),x=ou(!0),S=x!==void 0;return h.useMemo(()=>({id:a,role:"menuitem",tabIndex:y&&o?0:-1,onKeyDown(N){N.key===" "&&p?.current&&N.preventDefault()},onMouseMove(N){c&&m.emit("itemhover",{nodeId:c,target:N.currentTarget})},onClick(N){r&&m.emit("close",{domEvent:N,reason:z0})},onMouseUp(N){if(x){const j=x.initialCursorPointRef.current;if(x.initialCursorPointRef.current=null,S&&j&&Math.abs(N.clientX-j.x)<=1&&Math.abs(N.clientY-j.y)<=1||S&&!cp&&N.button===2)return}g.current&&d.context.allowMouseUpTriggerRef.current&&(!S||N.button===2)&&(!b||b.type==="regular-item")&&g.current.click()}}),[r,o,a,m,c,y,d,p,g,x,S,b])}const rC={type:"regular-item"};function oC(n){const{closeOnClick:r,disabled:o=!1,highlighted:a,id:c,store:d,typingRef:p=d.context.typingRef,nativeButton:g,itemMetadata:b,nodeId:m}=n,y=d.useState("disabled"),x=o||y,S=h.useRef(null),{getButtonProps:N,buttonRef:j}=Jl({disabled:x,focusableWhenDisabled:!0,native:g,composite:!0}),w=sC({closeOnClick:r,highlighted:a,id:c,nodeId:m,store:d,typingRef:p,itemRef:S,itemMetadata:b}),_=h.useCallback(T=>tr(w,{onMouseEnter(){b.type==="submenu-trigger"&&b.setActive()}},T,N),[w,N,b]),E=Ca(S,j);return h.useMemo(()=>({getItemProps:_,itemRef:E}),[_,E])}const I0=h.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function aC(){return h.useContext(I0)}let lC=(function(n){return n[n.None=0]="None",n[n.GuessFromOrder=1]="GuessFromOrder",n})({});function B0(n={}){const{label:r,metadata:o,textRef:a,indexGuessBehavior:c,index:d}=n,{register:p,unregister:g,subscribeMapChange:b,elementsRef:m,labelsRef:y,nextIndexRef:x}=aC(),S=h.useRef(-1),[N,j]=h.useState(d??(c===lC.GuessFromOrder?()=>{if(S.current===-1){const E=x.current;x.current+=1,S.current=E}return S.current}:-1)),w=h.useRef(null),_=h.useCallback(E=>{if(w.current=E,N!==-1&&E!==null&&(m.current[N]=E,y)){const T=r!==void 0;y.current[N]=T?r:a?.current?.textContent??E.textContent}},[N,m,y,r,a]);return Xe(()=>{if(d!=null)return;const E=w.current;if(E)return p(E,o),()=>{g(E)}},[d,p,g,o]),Xe(()=>{if(d==null)return b(E=>{const T=w.current?E.get(w.current)?.index:null;T!=null&&j(T)})},[d,b,j]),{ref:_,index:N}}let Ty=0;function iC(n,r="mui"){const[o,a]=h.useState(n),c=n||o;return h.useEffect(()=>{o==null&&(Ty+=1,a(`${r}-${Ty}`))},[o,r]),c}const wy=np.useId;function So(n,r){if(wy!==void 0){const o=wy();return n??(r?`${r}-${o}`:o)}return iC(n,r)}function Co(n){return So(n,"base-ui")}function bt(n,r,o,a){let c=!1,d=!1;const p=Ut;return{reason:n,event:r??new Event("base-ui"),cancel(){c=!0},allowPropagation(){d=!0},get isCanceled(){return c},get isPropagationAllowed(){return d},trigger:o,...p}}const cC=[];function dp(n){h.useEffect(n,cC)}const yc=null;class uC{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 vc=new uC;class js{static create(){return new js}static request(r){return vc.request(r)}static cancel(r){return vc.cancel(r)}currentId=yc;request(r){this.cancel(),this.currentId=vc.request(()=>{this.currentId=yc,r()})}cancel=()=>{this.currentId!==yc&&(vc.cancel(this.currentId),this.currentId=yc)};disposeEffect=()=>this.cancel}function Gl(){const n=Ln(js.create).current;return dp(n.disposeEffect),n}function dC(n,r=!1,o=!1){const[a,c]=h.useState(n&&r?"idle":void 0),[d,p]=h.useState(n);return n&&!d&&(p(!0),c("starting")),!n&&d&&a!=="ending"&&!o&&c("ending"),!n&&!d&&a==="ending"&&c(void 0),Xe(()=>{if(!n&&d&&a!=="ending"&&o){const g=js.request(()=>{c("ending")});return()=>{js.cancel(g)}}},[n,d,a,o]),Xe(()=>{if(!n||r)return;const g=js.request(()=>{c(void 0)});return()=>{js.cancel(g)}},[r,n]),Xe(()=>{if(!n||!r)return;n&&d&&a!=="idle"&&c("starting");const g=js.request(()=>{c("idle")});return()=>{js.cancel(g)}},[r,n,d,a]),{mounted:d,setMounted:p,transitionStatus:a}}var ar=$v();const fC=Gv(ar);function Js(n){return n==null?n:"current"in n?n.current:n}function fp(n,r=!1,o=!0){const a=Gl();return We((c,d=null)=>{a.cancel();const p=Js(n);if(p==null)return;const g=p,b=()=>{ar.flushSync(c)};if(typeof g.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){c();return}function m(){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")&&m()})}if(r){const y=Fl.startingStyle;if(!g.hasAttribute(y)){a.request(m);return}const x=new MutationObserver(()=>{g.hasAttribute(y)||(x.disconnect(),m())});x.observe(g,{attributes:!0,attributeFilter:[y]}),d?.addEventListener("abort",()=>x.disconnect(),{once:!0});return}a.request(m)})}function cu(n){const{enabled:r=!0,open:o,ref:a,onComplete:c}=n,d=We(c),p=fp(a,o,!1);h.useEffect(()=>{if(!r)return;const g=new AbortController;return p(d,g.signal),()=>{g.abort()}},[r,o,d,p])}const U0=h.createContext(void 0);function mC(){const n=h.useContext(U0);if(n===void 0)throw new Error(jn(31));return n}const pC=h.forwardRef(function(r,o){const{render:a,className:c,style:d,...p}=r,[g,b]=h.useState(void 0),m=pn("div",r,{ref:o,props:{role:"group","aria-labelledby":g,...p}});return i.jsx(U0.Provider,{value:b,children:m})}),hC=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:p,...g}=r,b=Co(p),m=mC();return Xe(()=>(m(b),()=>{m(void 0)}),[m,b]),pn("div",r,{ref:o,props:{id:b,role:"presentation",...g}})}),gC=h.forwardRef(function(r,o){const{render:a,className:c,id:d,label:p,nativeButton:g=!1,disabled:b=!1,closeOnClick:m=!0,style:y,...x}=r,S=B0({label:p}),N=A0(!0),j=Co(d),{store:w}=To(),_=w.useState("isActive",S.index),E=w.useState("itemProps"),{getItemProps:T,itemRef:C}=oC({closeOnClick:m,disabled:b,highlighted:_,id:j,store:w,nativeButton:g,nodeId:N?.context.nodeId,itemMetadata:rC});return pn("div",r,{state:{disabled:b,highlighted:_},props:[E,x,T],ref:[C,o,S.ref]})}),El=0;class ps{static create(){return new ps}currentId=El;start(r,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=El,o()},r)}isStarted(){return this.currentId!==El}clear=()=>{this.currentId!==El&&(clearTimeout(this.currentId),this.currentId=El)};disposeEffect=()=>this.clear}function Xn(){const n=Ln(ps.create).current;return dp(n.disposeEffect),n}function Ns(n){n.preventDefault(),n.stopPropagation()}function xC(n){return"nativeEvent"in n}function H0(n){return n.pointerType===""&&n.isTrusted?!0:vm&&n.pointerType?n.type==="click"&&n.buttons===1:n.detail===0&&!n.pointerType}function Y0(n){return up?!1:!vm&&n.width===0&&n.height===0||vm&&n.width===1&&n.height===1&&n.pressure===0&&n.detail===0&&n.pointerType==="mouse"||n.width<1&&n.height<1&&n.pressure===0&&n.detail===0&&n.pointerType==="touch"}function $l(n,r){const o=["mouse","pen"];return r||o.push("",void 0),o.includes(n)}function bC(n){const r=n.type;return r==="click"||r==="mousedown"||r==="keydown"||r==="keyup"}const Sm="data-base-ui-focusable",P0="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",uu="ArrowLeft",du="ArrowRight",V0="ArrowUp",mp="ArrowDown";function wn(n){let r=n.activeElement;for(;r?.shadowRoot?.activeElement!=null;)r=r.shadowRoot.activeElement;return r}function Je(n,r){if(!n||!r)return!1;const o=r.getRootNode?.();if(n.contains(r))return!0;if(o&&wa(o)){let a=r;for(;a;){if(n===a)return!0;a=a.parentNode||a.host}}return!1}function zn(n){return"composedPath"in n?n.composedPath()[0]:n.target}function qc(n,r){if(!mt(n))return!1;const o=n;if(r.hasElement(o))return!o.hasAttribute("data-trigger-disabled");for(const[,a]of r.entries())if(Je(a,o))return!a.hasAttribute("data-trigger-disabled");return!1}function Yf(n,r){if(r==null)return!1;if("composedPath"in n)return n.composedPath().includes(r);const o=n;return o.target!=null&&r.contains(o.target)}function yC(n){return n.matches("html,body")}function fu(n){return Bt(n)&&n.matches(P0)}function vC(n){return n?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${P0}`)!=null}function Em(n){return n?n.getAttribute("role")==="combobox"&&fu(n):!1}function SC(n){if(!n||up)return!0;try{return n.matches(":focus-visible")}catch{return!0}}function Nm(n){return n?n.hasAttribute(Sm)?n:n.querySelector(`[${Sm}]`)||n:null}function EC(n,r){return r!=null&&!$l(r)?0:typeof n=="function"?n():n}function jm(n,r,o){const a=EC(n,o);return typeof a=="number"?a:a?.[r]}function Cy(n){return typeof n=="function"?n():n}function F0(n,r){return r||n==="click"||n==="mousedown"}function NC(n){return n?.includes("mouse")&&n!=="mousedown"}function ct(n,r,o,a){return n.addEventListener(r,o,a),()=>{n.removeEventListener(r,o,a)}}function ks(...n){return()=>{for(let r=0;r<n.length;r+=1){const o=n[r];o&&o()}}}function on(n){const r=Ln(jC,n).current;return r.next=n,Xe(r.effect),r}function jC(n){const r={current:n,next:n,effect:()=>{r.current=r.next}};return r}function xt(n){return n?.ownerDocument||document}const TC={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},wC={...TC,position:"fixed",top:0,left:0},Yr=h.forwardRef(function(r,o){const[a,c]=h.useState();Xe(()=>{nC&&wo&&c("button")},[]);const d={tabIndex:0,role:a};return i.jsx("span",{...r,ref:o,style:wC,"aria-hidden":a?void 0:!0,...d,"data-base-ui-focus-guard":""})}),CC=["top","right","bottom","left"],Oa=Math.min,nr=Math.max,Gc=Math.round,Sc=Math.floor,sr=n=>({x:n,y:n}),OC={left:"right",right:"left",bottom:"top",top:"bottom"};function q0(n,r,o){return nr(n,Oa(r,o))}function lr(n,r){return typeof n=="function"?n(r):n}function qn(n){return n.split("-")[0]}function Fr(n){return n.split("-")[1]}function pp(n){return n==="x"?"y":"x"}function hp(n){return n==="y"?"height":"width"}function ls(n){const r=n[0];return r==="t"||r==="b"?"y":"x"}function gp(n){return pp(ls(n))}function RC(n,r,o){o===void 0&&(o=!1);const a=Fr(n),c=gp(n),d=hp(c);let p=c==="x"?a===(o?"end":"start")?"right":"left":a==="start"?"bottom":"top";return r.reference[d]>r.floating[d]&&(p=$c(p)),[p,$c(p)]}function kC(n){const r=$c(n);return[Tm(n),r,Tm(r)]}function Tm(n){return n.includes("start")?n.replace("start","end"):n.replace("end","start")}const Oy=["left","right"],Ry=["right","left"],_C=["top","bottom"],AC=["bottom","top"];function MC(n,r,o){switch(n){case"top":case"bottom":return o?r?Ry:Oy:r?Oy:Ry;case"left":case"right":return r?_C:AC;default:return[]}}function DC(n,r,o,a){const c=Fr(n);let d=MC(qn(n),o==="start",a);return c&&(d=d.map(p=>p+"-"+c),r&&(d=d.concat(d.map(Tm)))),d}function $c(n){const r=qn(n);return OC[r]+n.slice(r.length)}function zC(n){var r,o,a,c;return{top:(r=n.top)!=null?r:0,right:(o=n.right)!=null?o:0,bottom:(a=n.bottom)!=null?a:0,left:(c=n.left)!=null?c:0}}function G0(n){return typeof n!="number"?zC(n):{top:n,right:n,bottom:n,left:n}}function Xc(n){const{x:r,y:o,width:a,height:c}=n;return{width:a,height:c,top:o,left:r,right:r+a,bottom:o+c,x:r,y:o}}function ky(n,r){return r<0||r>=n.length}function Pf(n,r){return Sa(n.current,{disabledIndices:r})}function _y(n,r){return Sa(n.current,{decrement:!0,startingIndex:n.current.length,disabledIndices:r})}function Sa(n,{startingIndex:r=-1,decrement:o=!1,disabledIndices:a,amount:c=1}={}){let d=r;do d+=o?-c:c;while(d>=0&&d<=n.length-1&&$0(n,d,a));return d}function $0(n,r,o){if(typeof o=="function"?o(r):o?.includes(r)??!1)return!0;const c=n[r];return c?mu(c)?!o&&(c.hasAttribute("disabled")||c.getAttribute("aria-disabled")==="true"):!0:!1}function LC(n){return n.visibility==="hidden"||n.visibility==="collapse"}function mu(n,r=n?$n(n):null){return!n||!n.isConnected||!r||LC(r)?!1:typeof n.checkVisibility=="function"?n.checkVisibility():r.display!=="none"&&r.display!=="contents"}const IC='a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';function BC(n){const r=n.assignedSlot;if(r)return r;if(n.parentElement)return n.parentElement;const o=n.getRootNode();return wa(o)?o.host:null}function wm(n){for(const r of Array.from(n.children))if(vn(r)==="summary")return r;return null}function UC(n,r){const o=wm(r);return!!o&&(n===o||Je(o,n))}function X0(n){const r=n?vn(n):"";return n!=null&&n.matches(IC)&&(r!=="summary"||n.parentElement!=null&&vn(n.parentElement)==="details"&&wm(n.parentElement)===n)&&(r!=="details"||wm(n)==null)&&(r!=="input"||n.type!=="hidden")}function K0(n){if(!X0(n)||!n.isConnected||n.matches(":disabled"))return!1;for(let r=n;r;r=BC(r)){const o=r!==n,a=vn(r)==="slot";if(r.hasAttribute("inert")||o&&vn(r)==="details"&&!r.open&&!UC(n,r)||r.hasAttribute("hidden")||!a&&!HC(r,o))return!1}return!0}function HC(n,r){const o=$n(n);return r?o.display!=="none":mu(n,o)}function Q0(n){const r=n.tabIndex;if(r<0){const o=vn(n);if(o==="details"||o==="audio"||o==="video"||Bt(n)&&n.isContentEditable)return 0}return r}function Vf(n){if(vn(n)!=="input")return null;const r=n;return r.type==="radio"&&r.name!==""?r:null}function YC(n,r){const o=Vf(n);if(!o)return!0;const a=r.find(c=>{const d=Vf(c);return d?.name===o.name&&d.form===o.form&&d.checked});return a?a===o:r.find(c=>{const d=Vf(c);return d?.name===o.name&&d.form===o.form})===o}function Z0(n){if(Bt(n)&&vn(n)==="slot"){const r=n.assignedElements({flatten:!0});if(r.length>0)return r}return Bt(n)&&n.shadowRoot?Array.from(n.shadowRoot.children):Array.from(n.children)}function J0(n,r){Z0(n).forEach(o=>{X0(o)&&r.push(o),J0(o,r)})}function W0(n,r,o){Z0(n).forEach(a=>{Bt(a)&&a.matches(r)&&o.push(a),W0(a,r,o)})}function xp(n){return K0(n)&&Q0(n)>=0}function e1(n){const r=[];return J0(n,r),r.filter(K0)}function ei(n){const r=e1(n);return r.filter(o=>Q0(o)>=0&&YC(o,r))}function t1(n,r){const o=ei(n),a=o.length;if(a===0)return;const c=wn(xt(n)),d=o.indexOf(c),p=d===-1?r===1?0:a-1:d+r;return o[p]}function bp(n){return t1(xt(n).body,1)||n}function n1(n){return t1(xt(n).body,-1)||n}function s1(n,r){if(!n)return null;const o=ei(xt(n).body),a=o.length;if(a===0)return null;const c=o.indexOf(n);if(c===-1)return null;const d=(c+r+a)%a;return o[d]}function PC(n){return s1(n,1)}function VC(n){return s1(n,-1)}function Ea(n,r){const o=r||n.currentTarget,a=n.relatedTarget;return!a||!Je(o,a)}function FC(n){ei(n).forEach(o=>{o.dataset.tabindex=o.getAttribute("tabindex")||"",o.setAttribute("tabindex","-1")})}function Ay(n){const r=[];W0(n,"[data-tabindex]",r),r.forEach(o=>{const a=o.dataset.tabindex;delete o.dataset.tabindex,a?o.setAttribute("tabindex",a):o.removeAttribute("tabindex")})}function Pr(n,r,o=!0){return n.filter(c=>c.parentId===r).flatMap(c=>[...!o||c.context?.open?[c]:[],...Pr(n,c.id,o)])}function My(n,r){let o=[],a=n.find(c=>c.id===r)?.parentId;for(;a;){const c=n.find(d=>d.id===a);a=c?.parentId,c&&(o=o.concat(c))}return o}function Xl(n){return`data-base-ui-${n}`}let Ec=0;function Dc(n,r={}){const{preventScroll:o=!1,sync:a=!1,shouldFocus:c}=r;cancelAnimationFrame(Ec);function d(){c&&!c()||n?.focus({preventScroll:o})}if(a)return d(),fn;const p=requestAnimationFrame(d);return Ec=p,()=>{Ec===p&&(cancelAnimationFrame(p),Ec=0)}}const Ff={inert:new WeakMap,"aria-hidden":new WeakMap},Dy="data-base-ui-inert",Cm={inert:new WeakSet,"aria-hidden":new WeakSet};let Nl=new WeakMap,qf=0;function qC(n){return Cm[n]}function r1(n){return n?wa(n)?n.host:r1(n.parentNode):null}const zy=(n,r)=>r.map(o=>{if(n.contains(o))return o;const a=r1(o);return n.contains(a)?a:null}).filter(o=>o!=null),Ly=n=>{const r=new Set;return n.forEach(o=>{let a=o;for(;a&&!r.has(a);)r.add(a),a=a.parentNode}),r},Iy=(n,r,o)=>{const a=[],c=d=>{!d||o.has(d)||Array.from(d.children).forEach(p=>{vn(p)!=="script"&&(r.has(p)?c(p):a.push(p))})};return c(n),a};function GC(n,r,o,a,{mark:c=!0}){let d=null;a?d="inert":o&&(d="aria-hidden");let p=null,g=null;const b=zy(r,n),m=c?Iy(r,Ly(b),new Set(b)):[],y=[],x=[];if(d){const S=Ff[d],N=qC(d);g=N,p=S;const j=zy(r,Array.from(r.querySelectorAll("[aria-live]"))),w=b.concat(j);Iy(r,Ly(w),new Set(w)).forEach(E=>{const T=E.getAttribute(d),C=T!==null&&T!=="false",k=(S.get(E)||0)+1;S.set(E,k),y.push(E),k===1&&C&&N.add(E),C||E.setAttribute(d,d==="inert"?"":"true")})}return c&&m.forEach(S=>{const N=(Nl.get(S)||0)+1;Nl.set(S,N),x.push(S),N===1&&S.setAttribute(Dy,"")}),qf+=1,()=>{p&&y.forEach(S=>{const j=(p.get(S)||0)-1;p.set(S,j),j||(!g?.has(S)&&d&&S.removeAttribute(d),g?.delete(S))}),c&&x.forEach(S=>{const N=(Nl.get(S)||0)-1;Nl.set(S,N),N||S.removeAttribute(Dy)}),qf-=1,qf||(Ff.inert=new WeakMap,Ff["aria-hidden"]=new WeakMap,Cm.inert=new WeakSet,Cm["aria-hidden"]=new WeakSet,Nl=new WeakMap)}}function By(n,r={}){const{ariaHidden:o=!1,inert:a=!1,mark:c=!0}=r,d=xt(n[0]).body;return GC(n,d,o,a,{mark:c})}const $C=500,o1=500,XC={style:{transition:"none"}},a1="data-base-ui-click-trigger",KC={fallbackAxisSide:"none"},l1={fallbackAxisSide:"end"},QC={clipPath:"inset(50%)",position:"fixed",top:0,left:0},i1=h.createContext(null),c1=()=>h.useContext(i1),ZC=Xl("portal");function JC(n={}){const{ref:r,container:o,componentProps:a=Ut,elementProps:c}=n,d=So(),g=c1()?.portalNode,[b,m]=h.useState(null),[y,x]=h.useState(null),S=We(_=>{_!==null&&x(_)}),N=h.useRef(null);Xe(()=>{if(o===null){N.current&&(N.current=null,x(null),m(null));return}if(d==null)return;const _=(o&&(Wm(o)?o:o.current))??g??document.body;if(_==null){N.current&&(N.current=null,x(null),m(null));return}N.current!==_&&(N.current=_,x(null),m(_))},[o,g,d]);const j=pn("div",a,{ref:[r,S],props:[{id:d,[ZC]:""},c]});return{portalNode:y,portalSubtree:b&&j?ar.createPortal(j,b):null}}const yp=h.forwardRef(function(r,o){const{render:a,className:c,style:d,children:p,container:g,renderGuards:b,...m}=r,{portalNode:y,portalSubtree:x}=JC({container:g,ref:o,componentProps:r,elementProps:m}),S=h.useRef(null),N=h.useRef(null),j=h.useRef(null),w=h.useRef(null),[_,E]=h.useState(null),T=h.useRef(!1),C=_?.modal,k=_?.open,F=typeof b=="boolean"?b:!!_&&!_.modal&&_.open&&!!y;h.useEffect(()=>{if(!y||C)return;function L(O){y&&O.relatedTarget&&Ea(O)&&(O.type==="focusin"?T.current&&(Ay(y),T.current=!1):(FC(y),T.current=!0))}return ks(ct(y,"focusin",L,!0),ct(y,"focusout",L,!0))},[y,C]),Xe(()=>{!y||k!==!0||!T.current||(Ay(y),T.current=!1)},[k,y]);const A=h.useMemo(()=>({beforeOutsideRef:S,afterOutsideRef:N,beforeInsideRef:j,afterInsideRef:w,portalNode:y,setFocusManagerState:E}),[y]);return i.jsxs(h.Fragment,{children:[x,i.jsxs(i1.Provider,{value:A,children:[F&&y&&i.jsx(Yr,{"data-type":"outside",ref:S,onFocus:L=>{if(Ea(L,y))j.current?.focus();else{const O=_?_.domReference:null;n1(O)?.focus()}}}),F&&y&&i.jsx("span",{"aria-owns":y.id,style:QC}),y&&ar.createPortal(p,y),F&&y&&i.jsx(Yr,{"data-type":"outside",ref:N,onFocus:L=>{if(Ea(L,y))w.current?.focus();else{const O=_?_.domReference:null;bp(O)?.focus(),_?.closeOnFocusOut&&_?.onOpenChange(!1,bt(vo,L.nativeEvent))}}})]})]})});function u1(){const n=new Map;return{emit(r,o){n.get(r)?.forEach(a=>a(o))},on(r,o){n.has(r)||n.set(r,new Set),n.get(r).add(o)},off(r,o){n.get(r)?.delete(o)}}}class vp{nodesRef={current:[]};events=u1();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 d1=h.createContext(null),f1=h.createContext(null),ur=()=>h.useContext(d1)?.id||null,qr=n=>{const r=h.useContext(f1);return n??r};function Sp(n){const r=So(),o=qr(n),a=ur();return Xe(()=>{if(!r)return;const c={id:r,parentId:a};return o?.addNode(c),()=>{o?.removeNode(c)}},[o,r,a]),r}function m1(n){const{children:r,id:o}=n,a=ur();return i.jsx(d1.Provider,{value:h.useMemo(()=>({id:o,parentId:a}),[o,a]),children:r})}function p1(n){const{children:r,externalTree:o}=n,a=Ln(()=>o??new vp).current;return i.jsx(f1.Provider,{value:a,children:r})}function WC(n,r){const o=Xt(zn(n));return n instanceof o.KeyboardEvent?"keyboard":n instanceof o.FocusEvent?r||"keyboard":"pointerType"in n?n.pointerType||"keyboard":"touches"in n?"touch":n instanceof o.MouseEvent?r||(n.detail===0?"keyboard":"mouse"):""}const Uy=20;let Ir=[];function Ep(){Ir=Ir.filter(n=>n.deref()?.isConnected)}function Hy(n){Ep(),n&&vn(n)!=="body"&&(Ir.push(new WeakRef(n)),Ir.length>Uy&&(Ir=Ir.slice(-Uy)))}function Yy(){return Ep(),Ir[Ir.length-1]?.deref()}function eO(n){return n?xp(n)?n:ei(n)[0]||n:null}function Py(n){if(n.hasAttribute("tabindex")&&!n.hasAttribute("data-tabindex")||!n.getAttribute("role")?.includes("dialog"))return;const o=e1(n).filter(c=>{const d=c.getAttribute("data-tabindex")||"";return xp(c)||c.hasAttribute("data-tabindex")&&!d.startsWith("-")}),a=n.getAttribute("tabindex");o.length===0?a!=="0"&&(n.setAttribute("tabindex","0"),n.setAttribute("data-tabindex","0")):(a!=="-1"||n.hasAttribute("data-tabindex")&&n.getAttribute("data-tabindex")!=="-1")&&(n.setAttribute("tabindex","-1"),n.setAttribute("data-tabindex","-1"))}function Np(n){const{context:r,children:o,disabled:a=!1,initialFocus:c=!0,returnFocus:d=!0,restoreFocus:p=!1,modal:g=!0,closeOnFocusOut:b=!0,openInteractionType:m="",nextFocusableElement:y,previousFocusableElement:x,beforeContentFocusGuardRef:S,externalTree:N,getInsideElements:j}=n,w="rootStore"in r?r.rootStore:r,_=w.useState("open"),E=w.useState("domReferenceElement"),T=w.useState("floatingElement"),{events:C,dataRef:k}=w.context,F=We(()=>k.current.floatingContext?.nodeId),A=c===!1,L=Em(E)&&A,O=on(c),X=on(d),ne=on(m),fe=on(_),ee=qr(N),K=c1(),te=h.useRef(!1),W=h.useRef(!1),D=h.useRef(!1),z=h.useRef(null),P=h.useRef(""),U=h.useRef(""),V=h.useRef(null),M=h.useRef(null),B=Ca(V,S,K?.beforeInsideRef),I=Ca(M,K?.afterInsideRef),H=Xn(),q=Xn(),J=Gl(),he=K!=null,re=Nm(T),ce=We((we=re)=>we?ei(we):[]),Ie=We(()=>j?.().filter(we=>we!=null)??[]);h.useEffect(()=>{if(a||!g)return;function we(ge){ge.key==="Tab"&&Je(re,wn(xt(re)))&&ce().length===0&&!L&&Ns(ge)}const Be=xt(re);return ct(Be,"keydown",we)},[a,re,g,L,ce]),h.useEffect(()=>{if(a||!_)return;const we=xt(re);function Be(){D.current=!1}function ge(He){const Re=zn(He),ze=Ie(),ve=Je(T,Re)||Je(E,Re)||Je(K?.portalNode,Re)||ze.some(ue=>ue===Re||Je(ue,Re));D.current=!ve,U.current=He.pointerType||"keyboard",Re?.closest(`[${a1}]`)&&(W.current=!0,q.start(0,()=>{W.current=!1}))}function ie(){U.current="keyboard"}return ks(ct(we,"pointerdown",ge,!0),ct(we,"pointerup",Be,!0),ct(we,"pointercancel",Be,!0),ct(we,"keydown",ie,!0),Be)},[a,T,E,re,_,K,q,Ie]),h.useEffect(()=>{if(a||!b)return;const we=xt(re);function Be(){W.current=!0,q.start(0,()=>{W.current=!1})}function ge(ze){const ve=zn(ze);xp(ve)&&(z.current=ve)}function ie(ze){const ve=ze.relatedTarget,ue=ze.currentTarget,ke=zn(ze);g&&ve==null&&ke!=null&&Je(T,ke)&&Hy(ke),queueMicrotask(()=>{const Ae=F(),Q=w.context.triggerElements,Y=Ie(),G=ve?.hasAttribute(Xl("focus-guard"))&&[V.current,M.current,K?.beforeInsideRef.current,K?.afterInsideRef.current,K?.beforeOutsideRef.current,K?.afterOutsideRef.current,Js(x),Js(y)].includes(ve),je=!(Je(E,ve)||Je(T,ve)||Je(ve,T)||Je(K?.portalNode,ve)||Y.some(xe=>xe===ve||Je(xe,ve))||ve!=null&&Q.hasElement(ve)||Q.hasMatchingElement(xe=>Je(xe,ve))||G||ee&&(Pr(ee.nodesRef.current,Ae).find(xe=>Je(xe.context?.elements.floating,ve)||Je(xe.context?.elements.domReference,ve))||My(ee.nodesRef.current,Ae).find(xe=>[xe.context?.elements.floating,Nm(xe.context?.elements.floating)].includes(ve)||xe.context?.elements.domReference===ve)));if(ue===E&&re&&Py(re),p&&ue!==E&&!mu(ke)&&wn(we)===we.body){if(Bt(re)&&(re.focus(),p==="popup")){J.request(()=>{re.focus()});return}const xe=ce(),oe=z.current,Ce=(oe&&xe.includes(oe)?oe:null)||xe[xe.length-1]||re;Bt(Ce)&&Ce.focus()}if(k.current.insideReactTree){k.current.insideReactTree=!1;return}(L||!g)&&ve&&je&&!W.current&&(L||ve!==Yy())&&(te.current=!0,w.setOpen(!1,bt(vo,ze)))})}function He(){D.current||(k.current.insideReactTree=!0,H.start(0,()=>{k.current.insideReactTree=!1}))}const Re=Bt(E)?E:null;if(!(!T&&!Re))return ks(Re&&ct(Re,"focusout",ie),Re&&ct(Re,"pointerdown",Be),T&&ct(T,"focusin",ge),T&&ct(T,"focusout",ie),T&&K&&ct(T,"focusout",He,!0))},[a,E,T,re,g,ee,K,w,b,p,ce,L,F,k,H,q,J,y,x,Ie]),h.useEffect(()=>{if(a||!T||!_)return;const we=Array.from(K?.portalNode?.querySelectorAll(`[${Xl("portal")}]`)||[]),ge=(ee?My(ee.nodesRef.current,F()):[]).find(ue=>Em(ue.context?.elements.domReference||null))?.context?.elements.domReference,He=[...[T,...we,V.current,M.current,K?.beforeOutsideRef.current,K?.afterOutsideRef.current,...Ie()],ge,Js(x),Js(y),L?E:null].filter(ue=>ue!=null),Re=By(He,{ariaHidden:g||L,mark:!1}),ze=[T,...we].filter(ue=>ue!=null),ve=By(ze);return()=>{ve(),Re()}},[_,a,E,T,g,K,L,ee,F,y,x,Ie]),Xe(()=>{if(!_||a||!Bt(re))return;const we=xt(re),Be=wn(we);queueMicrotask(()=>{const ge=O.current,ie=typeof ge=="function"?ge(ne.current||""):ge;if(ie===void 0||ie===!1||Je(re,Be))return;let Re=null;const ze=()=>(Re==null&&(Re=ce(re)),Re[0]||re);let ve;ie===!0||ie===null?ve=ze():ve=Js(ie),ve=ve||ze();const ue=Je(re,wn(we));Dc(ve,{preventScroll:ve===re,shouldFocus(){if(!fe.current)return!1;if(ue)return!0;const ke=wn(we);return!(ke!==ve&&Je(re,ke))}})})},[a,_,re,ce,O,ne,fe]),Xe(()=>{if(a||!re)return;const we=xt(re),Be=wn(we),ge=ne.current==null;Hy(Be);function ie(Re){if(Re.open||(P.current=WC(Re.nativeEvent,U.current)),Re.reason===mn&&Re.nativeEvent.type==="mouseleave"&&(te.current=!0),Re.reason===lp)if(Re.nested)te.current=!1;else if(H0(Re.nativeEvent)||Y0(Re.nativeEvent))te.current=!1;else{let ze=!1;xt(re).createElement("div").focus({get preventScroll(){return ze=!0,!1}}),ze?te.current=!1:te.current=!0}}C.on("openchange",ie);function He(){const Re=X.current;let ze=typeof Re=="function"?Re(P.current):Re;if(ze===void 0||ze===!1)return null;ze===null&&(ze=!0);const ve=E?.isConnected?E:null,ue=Be?.isConnected&&vn(Be)!=="body"?Be:null;let ke=ge?ue||ve:ve||ue;return ke||(ke=Yy()||null),typeof ze=="boolean"?ke:Js(ze)||ke||null}return()=>{C.off("openchange",ie);const Re=wn(we),ze=Ie(),ve=Je(T,Re)||ze.some(Ae=>Ae===Re||Je(Ae,Re))||ee&&Pr(ee.nodesRef.current,F(),!1).some(Ae=>Je(Ae.context?.elements.floating,Re)),ue=X.current,ke=He();queueMicrotask(()=>{const Ae=eO(ke),Q=typeof ue!="boolean";ue&&!te.current&&Bt(Ae)&&(!(!Q&&Ae!==Re&&Re!==we.body)||ve)&&Ae.focus({preventScroll:!0}),te.current=!1})}},[a,T,re,X,ne,C,ee,E,F,Ie]),Xe(()=>{if(!wo||_||!T)return;const we=wn(xt(T));!Bt(we)||!fu(we)||Je(T,we)&&we.blur()},[_,T]),Xe(()=>{if(!(a||!K))return K.setFocusManagerState({modal:g,closeOnFocusOut:b,open:_,onOpenChange:w.setOpen,domReference:E}),()=>{K.setFocusManagerState(null)}},[a,K,g,_,w,b,E]),Xe(()=>{if(!(a||!re))return Py(re),()=>{queueMicrotask(Ep)}},[a,re]);const _e=!a&&(g?!L:!0)&&(he||g);return i.jsxs(h.Fragment,{children:[_e&&i.jsx(Yr,{"data-type":"inside",ref:B,onFocus:we=>{if(g){const Be=ce();Dc(Be[Be.length-1])}else K?.portalNode&&(te.current=!1,Ea(we,K.portalNode)?bp(E)?.focus():Js(x??K.beforeOutsideRef)?.focus())}}),o,_e&&i.jsx(Yr,{"data-type":"inside",ref:I,onFocus:we=>{g?Dc(ce()[0]):K?.portalNode&&(b&&(te.current=!0),Ea(we,K.portalNode)?n1(E)?.focus():Js(y??K.afterOutsideRef)?.focus())}})]})}function h1(n,r={}){const{enabled:o=!0,event:a="click",toggle:c=!0,ignoreMouse:d=!1,stickIfOpen:p=!0,touchOpenDelay:g=0,reason:b=yo}=r,m="rootStore"in n?n.rootStore:n,y=m.context.dataRef,x=h.useRef(void 0),S=Gl(),N=Xn(),j=h.useMemo(()=>{function w(E,T,C,k){const F=bt(b,T,C);E&&k==="touch"&&g>0?N.start(g,()=>{m.setOpen(!0,F)}):m.setOpen(E,F)}function _(E,T,C){const k=y.current.openEvent,F=m.select("domReferenceElement")!==T;return E&&F||!E||!c?!0:k&&p?!C(k.type):!1}return{onPointerDown(E){x.current=E.pointerType},onMouseDown(E){const T=x.current,C=E.nativeEvent,k=m.select("open");if(E.button!==0||a==="click"||$l(T,!0)&&d)return;const F=_(k,E.currentTarget,O=>O==="click"||O==="mousedown"),A=zn(C);if(fu(A)){w(F,C,A,T);return}const L=E.currentTarget;S.request(()=>{w(F,C,L,T)})},onClick(E){if(a==="mousedown-only")return;const T=x.current;if(a==="mousedown"&&T){x.current=void 0;return}if($l(T,!0)&&d)return;const C=m.select("open"),k=_(C,E.currentTarget,F=>F==="click"||F==="mousedown"||F==="keydown"||F==="keyup");w(k,E.nativeEvent,E.currentTarget,T)},onKeyDown(){x.current=void 0}}},[y,a,d,b,m,p,c,S,N,g]);return h.useMemo(()=>o?{reference:j}:Ut,[o,j])}function tO(){return!1}function nO(n){return{escapeKey:typeof n=="boolean"?n:n?.escapeKey??!1,outsidePress:typeof n=="boolean"?n:n?.outsidePress??!0}}function jp(n,r={}){const{enabled:o=!0,escapeKey:a=!0,outsidePress:c=!0,outsidePressEvent:d="sloppy",referencePress:p=tO,bubbles:g,externalTree:b}=r,m="rootStore"in n?n.rootStore:n,y=m.useState("open"),x=m.useState("floatingElement"),{dataRef:S}=m.context,N=qr(b),j=We(typeof c=="function"?c:()=>!1),w=typeof c=="function"?j:c,_=w!==!1,E=We(()=>d),{escapeKey:T,outsidePress:C}=nO(g),k=h.useRef(!1),F=h.useRef(!1),A=h.useRef(!1),L=h.useRef(!1),O=h.useRef(""),X=h.useRef(null),ne=Xn(),fe=Xn(),ee=We(()=>{fe.clear(),S.current.insideReactTree=!1}),K=We(B=>{const I=S.current.floatingContext?.nodeId;return(N?Pr(N.nodesRef.current,I):[]).some(q=>q.context?.open&&!q.context.dataRef.current[B])}),te=We(B=>Yf(B,m.select("floatingElement"))||Yf(B,m.select("domReferenceElement"))),W=We(B=>{p()&&m.setOpen(!1,bt(yo,B.nativeEvent))}),D=We(B=>{if(!y||!o||!a||B.key!=="Escape"||L.current||!T&&K("__escapeKeyBubbles"))return;const I=xC(B)?B.nativeEvent:B,H=bt(au,I);m.setOpen(!1,H),H.isCanceled||B.preventDefault(),!T&&!H.isPropagationAllowed&&B.stopPropagation()}),z=We(()=>{S.current.insideReactTree=!0,fe.start(0,ee)}),P=We(B=>{if(!y||!o||B.button!==0)return;const I=zn(B.nativeEvent);Je(m.select("floatingElement"),I)&&(k.current||(k.current=!0,F.current=!1))}),U=We(B=>{!y||!o||(B.defaultPrevented||B.nativeEvent.defaultPrevented)&&k.current&&(F.current=!0)});h.useEffect(()=>{if(!y||!o)return;S.current.__escapeKeyBubbles=T,S.current.__outsidePressBubbles=C;const B=new ps,I=new ps;function H(){B.clear(),L.current=!0}function q(){B.start(wo?5:0,()=>{L.current=!1})}function J(){A.current=!0,I.start(0,()=>{A.current=!1})}function he(){k.current=!1,F.current=!1}function re(){const Y=O.current,G=Y==="pen"||!Y?"mouse":Y,je=E(),xe=typeof je=="function"?je():je;return typeof xe=="string"?xe:xe[G]}function ce(Y){const G=re();return G==="intentional"&&Y.type!=="click"||G==="sloppy"&&Y.type==="click"}function Ie(Y){const G=S.current.floatingContext?.nodeId,je=N&&Pr(N.nodesRef.current,G).some(xe=>Yf(Y,xe.context?.elements.floating));return te(Y)||je}function _e(Y){if(ce(Y)){Y.type!=="click"&&!te(Y)&&(I.clear(),A.current=!1),ee();return}if(S.current.insideReactTree){ee();return}const G=zn(Y),je=`[${Xl("inert")}]`,xe=mt(G)?G.getRootNode():null,oe=Array.from((wa(xe)?xe:xt(m.select("floatingElement"))).querySelectorAll(je)),Ce=m.context.triggerElements;if(G&&(Ce.hasElement(G)||Ce.hasMatchingElement(Qe=>Je(Qe,G))))return;let Ue=mt(G)?G:null;for(;Ue&&!er(Ue);){const Qe=or(Ue);if(er(Qe)||!mt(Qe))break;Ue=Qe}if(!(oe.length&&mt(G)&&!yC(G)&&!Je(G,m.select("floatingElement"))&&oe.every(Qe=>!Je(Ue,Qe)))){if(Bt(G)&&!("touches"in Y)){const Qe=er(G),ht=$n(G),Mt=/auto|scroll/,ut=Qe||Mt.test(ht.overflowX),It=Qe||Mt.test(ht.overflowY),jt=ut&&G.clientWidth>0&&G.scrollWidth>G.clientWidth,Ht=It&&G.clientHeight>0&&G.scrollHeight>G.clientHeight,Te=ht.direction==="rtl",ye=Ht&&(Te?Y.offsetX<=G.offsetWidth-G.clientWidth:Y.offsetX>G.clientWidth),qe=jt&&Y.offsetY>G.clientHeight;if(ye||qe)return}if(!Ie(Y)){if(re()==="intentional"&&A.current){I.clear(),A.current=!1;return}typeof w=="function"&&!w(Y)||K("__outsidePressBubbles")||(m.setOpen(!1,bt(lp,Y)),ee())}}}function we(Y){re()!=="sloppy"||Y.pointerType==="touch"||!m.select("open")||!o||te(Y)||_e(Y)}function Be(Y){if(re()!=="sloppy"||!m.select("open")||!o||te(Y))return;const G=Y.touches[0];G&&(X.current={startTime:Date.now(),startX:G.clientX,startY:G.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},ne.start(1e3,()=>{X.current&&(X.current.dismissOnTouchEnd=!1,X.current.dismissOnMouseDown=!1)}))}function ge(Y,G){const je=zn(Y);if(!je)return;const xe=ct(je,Y.type,()=>{G(Y),xe()})}function ie(Y){O.current="touch",ge(Y,Be)}function He(Y){ne.clear(),Y.type==="pointerdown"&&(O.current=Y.pointerType),!(Y.type==="mousedown"&&X.current&&!X.current.dismissOnMouseDown)&&ge(Y,G=>{G.type==="pointerdown"?we(G):_e(G)})}function Re(Y){if(!k.current)return;const G=F.current;if(he(),re()==="intentional"){if(Y.type==="pointercancel"){G&&J();return}if(!Ie(Y)){if(G){J();return}typeof w=="function"&&!w(Y)||(I.clear(),A.current=!0,ee())}}}function ze(Y){if(re()!=="sloppy"||!X.current||te(Y))return;const G=Y.touches[0];if(!G)return;const je=Math.abs(G.clientX-X.current.startX),xe=Math.abs(G.clientY-X.current.startY),oe=Math.sqrt(je*je+xe*xe);oe>5&&(X.current.dismissOnTouchEnd=!0),oe>10&&(_e(Y),ne.clear(),X.current=null)}function ve(Y){ge(Y,ze)}function ue(Y){re()!=="sloppy"||!X.current||te(Y)||(X.current.dismissOnTouchEnd&&_e(Y),ne.clear(),X.current=null)}function ke(Y){ge(Y,ue)}const Ae=xt(x),Q=ks(a&&ks(ct(Ae,"keydown",D),ct(Ae,"compositionstart",H),ct(Ae,"compositionend",q)),_&&ks(ct(Ae,"click",He,!0),ct(Ae,"pointerdown",He,!0),ct(Ae,"pointerup",Re,!0),ct(Ae,"pointercancel",Re,!0),ct(Ae,"mousedown",He,!0),ct(Ae,"mouseup",Re,!0),ct(Ae,"touchstart",ie,!0),ct(Ae,"touchmove",ve,!0),ct(Ae,"touchend",ke,!0)));return()=>{Q(),B.clear(),I.clear(),he(),A.current=!1}},[S,x,a,_,w,y,o,T,C,D,ee,E,K,te,N,m,ne]),h.useEffect(ee,[w,ee]);const V=h.useMemo(()=>({onKeyDown:D,onPointerDown:W,onClick:W}),[D,W]),M=h.useMemo(()=>({onKeyDown:D,onPointerDown:U,onMouseDown:U,onClickCapture:z,onMouseDownCapture(B){z(),P(B)},onPointerDownCapture(B){z(),P(B)},onMouseUpCapture:z,onTouchEndCapture:z,onTouchMoveCapture:z}),[D,z,P,U]);return h.useMemo(()=>o?{reference:V,floating:M,trigger:V}:{},[o,V,M])}function Vy(n,r,o){let{reference:a,floating:c}=n;const d=ls(r),p=gp(r),g=hp(p),b=qn(r),m=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 N;switch(b){case"top":N={x:y,y:a.y-c.height};break;case"bottom":N={x:y,y:a.y+a.height};break;case"right":N={x:a.x+a.width,y:x};break;case"left":N={x:a.x-c.width,y:x};break;default:N={x:a.x,y:a.y}}const j=Fr(r);return j&&(N[p]+=S*(j==="end"?1:-1)*(o&&m?-1:1)),N}async function sO(n,r){var o;r===void 0&&(r={});const{x:a,y:c,platform:d,rects:p,elements:g,strategy:b}=n,{boundary:m="clippingAncestors",rootBoundary:y="viewport",elementContext:x="floating",altBoundary:S=!1,padding:N=0}=lr(r,n),j=G0(N),_=g[S?x==="floating"?"reference":"floating":x],E=Xc(await d.getClippingRect({element:(o=await(d.isElement==null?void 0:d.isElement(_)))==null||o?_:_.contextElement||await(d.getDocumentElement==null?void 0:d.getDocumentElement(g.floating)),boundary:m,rootBoundary:y,strategy:b})),T=x==="floating"?{x:a,y:c,width:p.floating.width,height:p.floating.height}:p.reference,C=await(d.getOffsetParent==null?void 0:d.getOffsetParent(g.floating)),k=await(d.isElement==null?void 0:d.isElement(C))&&await(d.getScale==null?void 0:d.getScale(C))||{x:1,y:1},F=Xc(d.convertOffsetParentRelativeRectToViewportRelativeRect?await d.convertOffsetParentRelativeRectToViewportRelativeRect({elements:g,rect:T,offsetParent:C,strategy:b}):T);return{top:(E.top-F.top+j.top)/k.y,bottom:(F.bottom-E.bottom+j.bottom)/k.y,left:(E.left-F.left+j.left)/k.x,right:(F.right-E.right+j.right)/k.x}}const rO=50,oO=async(n,r,o)=>{const{placement:a="bottom",strategy:c="absolute",middleware:d=[],platform:p}=o,g=p.detectOverflow?p:{...p,detectOverflow:sO},b=await(p.isRTL==null?void 0:p.isRTL(r));let m=await p.getElementRects({reference:n,floating:r,strategy:c}),{x:y,y:x}=Vy(m,a,b),S=a,N=0;const j={};for(let w=0;w<d.length;w++){const _=d[w];if(!_)continue;const{name:E,fn:T}=_,{x:C,y:k,data:F,reset:A}=await T({x:y,y:x,initialPlacement:a,placement:S,strategy:c,middlewareData:j,rects:m,platform:g,elements:{reference:n,floating:r}});y=C??y,x=k??x,j[E]={...j[E],...F},A&&N<rO&&(N++,typeof A=="object"&&(A.placement&&(S=A.placement),A.rects&&(m=A.rects===!0?await p.getElementRects({reference:n,floating:r,strategy:c}):A.rects),{x:y,y:x}=Vy(m,S,b)),w=-1)}return{x:y,y:x,placement:S,strategy:c,middlewareData:j}},aO=function(n){return n===void 0&&(n={}),{name:"flip",options:n,async fn(r){var o,a;const{placement:c,middlewareData:d,rects:p,initialPlacement:g,platform:b,elements:m}=r,{mainAxis:y=!0,crossAxis:x=!0,fallbackPlacements:S,fallbackStrategy:N="bestFit",fallbackAxisSideDirection:j="none",flipAlignment:w=!0,..._}=lr(n,r);if((o=d.arrow)!=null&&o.alignmentOffset)return{};const E=qn(c),T=ls(g),C=qn(g)===g,k=await(b.isRTL==null?void 0:b.isRTL(m.floating)),F=S||(C||!w?[$c(g)]:kC(g)),A=j!=="none";!S&&A&&F.push(...DC(g,w,j,k));const L=[g,...F],O=await b.detectOverflow(r,_),X=[];let ne=((a=d.flip)==null?void 0:a.overflows)||[];if(y&&X.push(O[E]),x){const te=RC(c,p,k);X.push(O[te[0]],O[te[1]])}if(ne=[...ne,{placement:c,overflows:X}],!X.every(te=>te<=0)){var fe,ee;const te=(((fe=d.flip)==null?void 0:fe.index)||0)+1,W=L[te];if(W&&(!(x==="alignment"?T!==ls(W):!1)||ne.every(P=>ls(P.placement)===T?P.overflows[0]>0:!0)))return{data:{index:te,overflows:ne},reset:{placement:W}};let D=(ee=ne.filter(z=>z.overflows[0]<=0).sort((z,P)=>z.overflows[1]-P.overflows[1])[0])==null?void 0:ee.placement;if(!D)switch(N){case"bestFit":{var K;const z=(K=ne.filter(P=>{if(A){const U=ls(P.placement);return U===T||U==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(U=>U>0).reduce((U,V)=>U+V,0)]).sort((P,U)=>P[1]-U[1])[0])==null?void 0:K[0];z&&(D=z);break}case"initialPlacement":D=g;break}if(c!==D)return{reset:{placement:D}}}return{}}}};function Fy(n,r){return{top:n.top-r.height,right:n.right-r.width,bottom:n.bottom-r.height,left:n.left-r.width}}function qy(n){return CC.some(r=>n[r]>=0)}const lO=function(n){return n===void 0&&(n={}),{name:"hide",options:n,async fn(r){const{rects:o,platform:a}=r,{strategy:c="referenceHidden",...d}=lr(n,r);switch(c){case"referenceHidden":{const p=await a.detectOverflow(r,{...d,elementContext:"reference"}),g=Fy(p,o.reference);return{data:{referenceHiddenOffsets:g,referenceHidden:qy(g)}}}case"escaped":{const p=await a.detectOverflow(r,{...d,altBoundary:!0}),g=Fy(p,o.floating);return{data:{escapedOffsets:g,escaped:qy(g)}}}default:return{}}}}},g1=new Set(["left","top"]);async function iO(n,r){const{placement:o,platform:a,elements:c}=n,d=await(a.isRTL==null?void 0:a.isRTL(c.floating)),p=qn(o),g=Fr(o),b=ls(o)==="y",m=g1.has(p)?-1:1,y=d&&b?-1:1,x=lr(r,n);let{mainAxis:S,crossAxis:N,alignmentAxis:j}=typeof x=="number"?{mainAxis:x,crossAxis:0,alignmentAxis:null}:{mainAxis:x.mainAxis||0,crossAxis:x.crossAxis||0,alignmentAxis:x.alignmentAxis};return g&&typeof j=="number"&&(N=g==="end"?j*-1:j),b?{x:N*y,y:S*m}:{x:S*m,y:N*y}}const cO=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(r){var o,a;const{x:c,y:d,placement:p,middlewareData:g}=r,b=await iO(r,n);return p===((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:p}}}}},uO=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(r){const{x:o,y:a,placement:c,platform:d}=r,{mainAxis:p=!0,crossAxis:g=!1,limiter:b={fn:T=>{let{x:C,y:k}=T;return{x:C,y:k}}},...m}=lr(n,r),y={x:o,y:a},x=await d.detectOverflow(r,m),S=ls(c),N=pp(S);let j=y[N],w=y[S];const _=(T,C)=>q0(C+x[T==="y"?"top":"left"],C,C-x[T==="y"?"bottom":"right"]);p&&(j=_(N,j)),g&&(w=_(S,w));const E=b.fn({...r,[N]:j,[S]:w});return{...E,data:{x:E.x-o,y:E.y-a,enabled:{[N]:p,[S]:g}}}}}},dO=function(n){return n===void 0&&(n={}),{options:n,fn(r){var o,a;const{x:c,y:d,placement:p,rects:g,middlewareData:b}=r,{offset:m=0,mainAxis:y=!0,crossAxis:x=!0}=lr(n,r),S={x:c,y:d},N=ls(p),j=pp(N);let w=S[j],_=S[N];const E=lr(m,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 F=j==="y"?"height":"width",A=g.reference[j]-g.floating[F]+T.mainAxis,L=g.reference[j]+g.reference[F]-T.mainAxis;w<A?w=A:w>L&&(w=L)}if(x){var C,k;const F=j==="y"?"width":"height",A=g1.has(qn(p)),L=g.reference[N]-g.floating[F]+(A&&((C=b.offset)==null?void 0:C[N])||0)+(A?0:T.crossAxis),O=g.reference[N]+g.reference[F]+(A?0:((k=b.offset)==null?void 0:k[N])||0)-(A?T.crossAxis:0);_<L?_=L:_>O&&(_=O)}return{[j]:w,[N]:_}}}},fO=function(n){return n===void 0&&(n={}),{name:"size",options:n,async fn(r){const{placement:o,rects:a,platform:c,elements:d}=r,{apply:p=()=>{},...g}=lr(n,r),b=await c.detectOverflow(r,g),m=qn(o),y=Fr(o),x=ls(o)==="y",{width:S,height:N}=a.floating;let j,w;m==="top"||m==="bottom"?(j=m,w=y===(await(c.isRTL==null?void 0:c.isRTL(d.floating))?"start":"end")?"left":"right"):(w=m,j=y==="end"?"top":"bottom");const _=N-b.top-b.bottom,E=S-b.left-b.right,T=Oa(N-b[j],_),C=Oa(S-b[w],E),k=r.middlewareData.shift,F=!k;let A=T,L=C;k!=null&&k.enabled.x&&(L=E),k!=null&&k.enabled.y&&(A=_),F&&!y&&(x?L=S-2*nr(b.left,b.right):A=N-2*nr(b.top,b.bottom)),await p({...r,availableWidth:L,availableHeight:A});const O=await c.getDimensions(d.floating);return S!==O.width||N!==O.height?{reset:{rects:!0}}:{}}}};function x1(n){const r=$n(n);let o=parseFloat(r.width)||0,a=parseFloat(r.height)||0;const c=Bt(n),d=c?n.offsetWidth:o,p=c?n.offsetHeight:a,g=Gc(o)!==d||Gc(a)!==p;return g&&(o=d,a=p),{width:o,height:a,$:g}}function Tp(n){return mt(n)?n:n.contextElement}function Na(n){const r=Tp(n);if(!Bt(r))return sr(1);const o=r.getBoundingClientRect(),{width:a,height:c,$:d}=x1(r);let p=(d?Gc(o.width):o.width)/a,g=(d?Gc(o.height):o.height)/c;return(!p||!Number.isFinite(p))&&(p=1),(!g||!Number.isFinite(g))&&(g=1),{x:p,y:g}}const mO=sr(0);function b1(n){const r=Xt(n);return!tp()||!r.visualViewport?mO:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function pO(n,r,o){return r===void 0&&(r=!1),!!o&&r&&o===Xt(n)}function Eo(n,r,o,a){r===void 0&&(r=!1),o===void 0&&(o=!1);const c=n.getBoundingClientRect(),d=Tp(n);let p=sr(1);r&&(a?mt(a)&&(p=Na(a)):p=Na(n));const g=pO(d,o,a)?b1(d):sr(0);let b=(c.left+g.x)/p.x,m=(c.top+g.y)/p.y,y=c.width/p.x,x=c.height/p.y;if(d&&a){const S=Xt(d),N=mt(a)?Xt(a):a;let j=S,w=pm(j);for(;w&&N!==j;){const _=Na(w),E=w.getBoundingClientRect(),T=$n(w),C=E.left+(w.clientLeft+parseFloat(T.paddingLeft))*_.x,k=E.top+(w.clientTop+parseFloat(T.paddingTop))*_.y;b*=_.x,m*=_.y,y*=_.x,x*=_.y,b+=C,m+=k,j=Xt(w),w=pm(j)}}return Xc({width:y,height:x,x:b,y:m})}function pu(n,r){const o=su(n).scrollLeft;return r?r.left+o:Eo(cr(n)).left+o}function y1(n,r){const o=n.getBoundingClientRect(),a=o.left+r.scrollLeft-pu(n,o),c=o.top+r.scrollTop;return{x:a,y:c}}function hO(n){let{elements:r,rect:o,offsetParent:a,strategy:c}=n;const d=c==="fixed",p=cr(a),g=r?nu(r.floating):!1;if(a===p||g&&d)return o;let b={scrollLeft:0,scrollTop:0},m=sr(1);const y=sr(0),x=Bt(a);if((x||!d)&&((vn(a)!=="body"||jo(p))&&(b=su(a)),x)){const N=Eo(a);m=Na(a),y.x=N.x+a.clientLeft,y.y=N.y+a.clientTop}const S=p&&!x&&!d?y1(p,b):sr(0);return{width:o.width*m.x,height:o.height*m.y,x:o.x*m.x-b.scrollLeft*m.x+y.x+S.x,y:o.y*m.y-b.scrollTop*m.y+y.y+S.y}}function gO(n){return n.getClientRects?Array.from(n.getClientRects()):[]}function xO(n){const r=su(n),o=n.ownerDocument.body,a=nr(n.scrollWidth,n.clientWidth,o.scrollWidth,o.clientWidth),c=nr(n.scrollHeight,n.clientHeight,o.scrollHeight,o.clientHeight);let d=-r.scrollLeft+pu(n);const p=-r.scrollTop;return $n(o).direction==="rtl"&&(d+=nr(n.clientWidth,o.clientWidth)-a),{width:a,height:c,x:d,y:p}}const bO=25;function yO(n,r,o){o===void 0&&(o="viewport");const a=o==="layoutViewport",c=Xt(n),d=cr(n),p=c.visualViewport;let g=d.clientWidth,b=d.clientHeight,m=0,y=0;if(p){const S=!tp()||r==="fixed";a?S||(m=-p.offsetLeft,y=-p.offsetTop):(g=p.width,b=p.height,S&&(m=p.offsetLeft,y=p.offsetTop))}if(pu(d)<=0){const S=d.ownerDocument,N=S.body,j=getComputedStyle(N),w=S.compatMode==="CSS1Compat"&&parseFloat(j.marginLeft)+parseFloat(j.marginRight)||0,_=Math.abs(d.clientWidth-N.clientWidth-w),E=getComputedStyle(d).scrollbarGutter==="stable both-edges"?_/2:_;E<=bO&&(g-=E)}return{width:g,height:b,x:m,y}}function vO(n,r){const o=Eo(n,!0,r==="fixed"),a=o.top+n.clientTop,c=o.left+n.clientLeft,d=Na(n),p=n.clientWidth*d.x,g=n.clientHeight*d.y,b=c*d.x,m=a*d.y;return{width:p,height:g,x:b,y:m}}function Gy(n,r,o){let a;if(r==="viewport"||r==="layoutViewport")a=yO(n,o,r);else if(r==="document")a=xO(cr(n));else if(mt(r))a=vO(r,o);else{const c=b1(n);a={x:r.x-c.x,y:r.y-c.y,width:r.width,height:r.height}}return Xc(a)}function SO(n,r){const o=r.get(n);if(o)return o;let a=Vl(n,[],!1).filter(g=>mt(g)&&vn(g)!=="body"),c=null;const d=$n(n).position==="fixed";let p=d?or(n):n;for(;mt(p)&&!er(p);){const g=$n(p),b=ep(p),m=c?c.position:d?"fixed":"";!b&&(m==="fixed"||m==="absolute"&&g.position==="static")?a=a.filter(x=>x!==p):c=g,p=or(p)}return r.set(n,a),a}function EO(n){let{element:r,boundary:o,rootBoundary:a,strategy:c}=n;const p=[...o==="clippingAncestors"?nu(r)?[]:SO(r,this._c):[].concat(o),a],g=Gy(r,p[0],c);let b=g.top,m=g.right,y=g.bottom,x=g.left;for(let S=1;S<p.length;S++){const N=Gy(r,p[S],c);b=nr(N.top,b),m=Oa(N.right,m),y=Oa(N.bottom,y),x=nr(N.left,x)}return{width:m-x,height:y-b,x,y:b}}function NO(n){const{width:r,height:o}=x1(n);return{width:r,height:o}}function jO(n,r,o){const a=Bt(r),c=cr(r),d=o==="fixed",p=Eo(n,!0,d,r);let g={scrollLeft:0,scrollTop:0};const b=sr(0);if((a||!d)&&((vn(r)!=="body"||jo(c))&&(g=su(r)),a)){const S=Eo(r,!0,d,r);b.x=S.x+r.clientLeft,b.y=S.y+r.clientTop}!a&&c&&(b.x=pu(c));const m=c&&!a&&!d?y1(c,g):sr(0),y=p.left+g.scrollLeft-b.x-m.x,x=p.top+g.scrollTop-b.y-m.y;return{x:y,y:x,width:p.width,height:p.height}}function Gf(n){return $n(n).position==="static"}function $y(n,r){if(!Bt(n)||$n(n).position==="fixed")return null;if(r)return r(n);let o=n.offsetParent;return cr(n)===o&&(o=o.ownerDocument.body),o}function v1(n,r){const o=Xt(n);if(nu(n))return o;if(!Bt(n)){let c=or(n);for(;c&&!er(c);){if(mt(c)&&!Gf(c))return c;c=or(c)}return o}let a=$y(n,r);for(;a&&uw(a)&&Gf(a);)a=$y(a,r);return a&&er(a)&&Gf(a)&&!ep(a)?o:a||mw(n)||o}const TO=async function(n){const r=this.getOffsetParent||v1,o=this.getDimensions,a=await o(n.floating);return{reference:jO(n.reference,await r(n.floating),n.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function wO(n){return $n(n).direction==="rtl"}const CO={convertOffsetParentRelativeRectToViewportRelativeRect:hO,getDocumentElement:cr,getClippingRect:EO,getOffsetParent:v1,getElementRects:TO,getClientRects:gO,getDimensions:NO,getScale:Na,isElement:mt,isRTL:wO};function S1(n,r){return n.x===r.x&&n.y===r.y&&n.width===r.width&&n.height===r.height}function OO(n,r,o){let a=null,c;const d=cr(n);function p(){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),p();const S=n.getBoundingClientRect(),{left:N,top:j,width:w,height:_}=S;if(y||r(),!w||!_)return;const E=Sc(j),T=Sc(d.clientWidth-(N+w)),C=Sc(d.clientHeight-(j+_)),k=Sc(N),A={rootMargin:-E+"px "+-T+"px "+-C+"px "+-k+"px",threshold:nr(0,Oa(1,x))||1};let L=!0;function O(X){const ne=X[0].intersectionRatio;if(!S1(S,n.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(O,{...A,root:d.ownerDocument})}catch{a=new IntersectionObserver(O,A)}a.observe(n)}const b=Xt(n),m=()=>g(o);return b.addEventListener("resize",m),g(!0),()=>{b.removeEventListener("resize",m),p()}}function Xy(n,r,o,a){a===void 0&&(a={});const{ancestorScroll:c=!0,ancestorResize:d=!0,elementResize:p=typeof ResizeObserver=="function",layoutShift:g=typeof IntersectionObserver=="function",animationFrame:b=!1}=a,m=Tp(n),y=c||d?[...m?Vl(m):[],...r?Vl(r):[]]:[];y.forEach(E=>{c&&E.addEventListener("scroll",o),d&&E.addEventListener("resize",o)});const x=m&&g?OO(m,o,d):null;let S=-1,N=null;p&&(N=new ResizeObserver(E=>{let[T]=E;T&&T.target===m&&N&&r&&(N.unobserve(r),cancelAnimationFrame(S),S=requestAnimationFrame(()=>{var C;(C=N)==null||C.observe(r)})),o()}),m&&!b&&N.observe(m),r&&N.observe(r));let j,w=b?Eo(n):null;b&&_();function _(){const E=Eo(n);w&&!S1(w,E)&&o(),w=E,j=requestAnimationFrame(_)}return o(),()=>{var E;y.forEach(T=>{c&&T.removeEventListener("scroll",o),d&&T.removeEventListener("resize",o)}),x?.(),(E=N)==null||E.disconnect(),N=null,b&&cancelAnimationFrame(j)}}const RO=cO,kO=uO,_O=aO,AO=fO,MO=lO,DO=dO,zO=(n,r,o)=>{const a=new Map,c=o??{},d={...CO,...c.platform,_c:a};return oO(n,r,{...c,platform:d})};var LO=typeof document<"u",IO=function(){},zc=LO?h.useLayoutEffect:IO;function Kc(n,r){if(n===r)return!0;if(typeof n!=typeof r)return!1;if(typeof n=="function"&&n.toString()===r.toString())return!0;let o,a,c;if(n&&r&&typeof n=="object"){if(Array.isArray(n)){if(o=n.length,o!==r.length)return!1;for(a=o;a--!==0;)if(!Kc(n[a],r[a]))return!1;return!0}if(c=Object.keys(n),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"&&n.$$typeof)&&!Kc(n[d],r[d]))return!1}return!0}return n!==n&&r!==r}function E1(n){return typeof window>"u"?1:(n.ownerDocument.defaultView||window).devicePixelRatio||1}function Ky(n,r){const o=E1(n);return Math.round(r*o)/o}function $f(n){const r=h.useRef(n);return zc(()=>{r.current=n}),r}function BO(n){n===void 0&&(n={});const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:c,elements:{reference:d,floating:p}={},transform:g=!0,whileElementsMounted:b,open:m}=n,[y,x]=h.useState({x:0,y:0,strategy:o,placement:r,middlewareData:{},isPositioned:!1}),[S,N]=h.useState(a);Kc(S,a)||N(a);const[j,w]=h.useState(null),[_,E]=h.useState(null),T=h.useCallback(P=>{P!==A.current&&(A.current=P,w(P))},[]),C=h.useCallback(P=>{P!==L.current&&(L.current=P,E(P))},[]),k=d||j,F=p||_,A=h.useRef(null),L=h.useRef(null),O=h.useRef(y),X=b!=null,ne=$f(b),fe=$f(c),ee=$f(m),K=h.useCallback(()=>{if(!A.current||!L.current)return;const P={placement:r,strategy:o,middleware:S};fe.current&&(P.platform=fe.current),zO(A.current,L.current,P).then(U=>{const V={...U,isPositioned:ee.current!==!1};te.current&&!Kc(O.current,V)&&(O.current=V,ar.flushSync(()=>{x(V)}))})},[S,r,o,fe,ee]);zc(()=>{m===!1&&O.current.isPositioned&&(O.current.isPositioned=!1,x(P=>({...P,isPositioned:!1})))},[m]);const te=h.useRef(!1);zc(()=>(te.current=!0,()=>{te.current=!1}),[]),zc(()=>{if(k&&(A.current=k),F&&(L.current=F),k&&F){if(ne.current)return ne.current(k,F,K);K()}},[k,F,K,ne,X]);const W=h.useMemo(()=>({reference:A,floating:L,setReference:T,setFloating:C}),[T,C]),D=h.useMemo(()=>({reference:k,floating:F}),[k,F]),z=h.useMemo(()=>{const P={position:o,left:0,top:0};if(!D.floating)return P;const U=Ky(D.floating,y.x),V=Ky(D.floating,y.y);return g?{...P,transform:"translate("+U+"px, "+V+"px)",...E1(D.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:U,top:V}},[o,g,D.floating,y.x,y.y]);return h.useMemo(()=>({...y,update:K,refs:W,elements:D,floatingStyles:z}),[y,K,W,D,z])}const UO=(n,r)=>{const o=RO(n);return{name:o.name,fn:o.fn,options:[n,r]}},HO=(n,r)=>{const o=kO(n);return{name:o.name,fn:o.fn,options:[n,r]}},YO=(n,r)=>({fn:DO(n).fn,options:[n,r]}),PO=(n,r)=>{const o=_O(n);return{name:o.name,fn:o.fn,options:[n,r]}},VO=(n,r)=>{const o=AO(n);return{name:o.name,fn:o.fn,options:[n,r]}},FO=(n,r)=>{const o=MO(n);return{name:o.name,fn:o.fn,options:[n,r]}};function N1(n){const r=h.useRef(!0);r.current&&(r.current=!1,n())}const Ve=(n,r,o,a,c,d,...p)=>{if(p.length>0)throw new Error(jn(1));let g;if(n)g=n;else throw new Error("Missing arguments");return g};var Xf={exports:{}},Kf={};var Qy;function qO(){if(Qy)return Kf;Qy=1;var n=Kl();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=n.useState,c=n.useEffect,d=n.useLayoutEffect,p=n.useDebugValue;function g(x,S){var N=S(),j=a({inst:{value:N,getSnapshot:S}}),w=j[0].inst,_=j[1];return d(function(){w.value=N,w.getSnapshot=S,b(w)&&_({inst:w})},[x,N,S]),c(function(){return b(w)&&_({inst:w}),x(function(){b(w)&&_({inst:w})})},[x]),p(N),N}function b(x){var S=x.getSnapshot;x=x.value;try{var N=S();return!o(x,N)}catch{return!0}}function m(x,S){return S()}var y=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:g;return Kf.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:y,Kf}var Zy;function j1(){return Zy||(Zy=1,Xf.exports=qO()),Xf.exports}var T1=j1(),Qf={exports:{}},Zf={};var Jy;function GO(){if(Jy)return Zf;Jy=1;var n=Kl(),r=j1();function o(m,y){return m===y&&(m!==0||1/m===1/y)||m!==m&&y!==y}var a=typeof Object.is=="function"?Object.is:o,c=r.useSyncExternalStore,d=n.useRef,p=n.useEffect,g=n.useMemo,b=n.useDebugValue;return Zf.useSyncExternalStoreWithSelector=function(m,y,x,S,N){var j=d(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=g(function(){function E(A){if(!T){if(T=!0,C=A,A=S(A),N!==void 0&&w.hasValue){var L=w.value;if(N(L,A))return k=L}return k=A}if(L=k,a(C,A))return L;var O=S(A);return N!==void 0&&N(L,O)?(C=A,L):(C=A,k=O)}var T=!1,C,k,F=x===void 0?null:x;return[function(){return E(y())},F===null?void 0:function(){return E(F())}]},[y,x,S,N]);var _=c(m,j[0],j[1]);return p(function(){w.hasValue=!0,w.value=_},[_]),b(_),_},Zf}var Wy;function $O(){return Wy||(Wy=1,Qf.exports=GO()),Qf.exports}var XO=$O();const Om=[];let Rm;function KO(){return Rm}function QO(n){Om.push(n)}function w1(n){const r=(o,a)=>{const c=Ln(JO).current;let d;try{Rm=c;for(const p of Om)p.before(c);d=n(o,a);for(const p of Om)p.after(c);c.didInitialize=!0}finally{Rm=void 0}return d};return r.displayName=n.displayName||n.name,r}function ZO(n){return h.forwardRef(w1(n))}function JO(){return{didInitialize:!1}}const WO=ap(19),eR=WO?nR:sR;function C1(n,r,o,a,c){return eR(n,r,o,a,c)}function tR(n,r,o,a,c){const d=h.useCallback(()=>r(n.getSnapshot(),o,a,c),[n,r,o,a,c]);return T1.useSyncExternalStore(n.subscribe,d,d)}QO({before(n){n.syncIndex=0,n.didInitialize||(n.syncTick=1,n.syncHooks=[],n.didChangeStore=!0,n.getSnapshot=()=>{let r=!1;for(let o=0;o<n.syncHooks.length;o+=1){const a=n.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&&(n.syncTick+=1),n.syncTick})},after(n){n.syncHooks.length>0&&(n.didChangeStore&&(n.didChangeStore=!1,n.subscribe=r=>{const o=new Set;for(const c of n.syncHooks)o.add(c.store);const a=[];for(const c of o)a.push(c.subscribe(r));return()=>{for(const c of a)c()}}),T1.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot))}});function nR(n,r,o,a,c){const d=KO();if(!d)return tR(n,r,o,a,c);const p=d.syncIndex;d.syncIndex+=1;let g;return d.didInitialize?(g=d.syncHooks[p],(g.store!==n||g.selector!==r||!Object.is(g.a1,o)||!Object.is(g.a2,a)||!Object.is(g.a3,c))&&(g.store!==n&&(d.didChangeStore=!0),g.store=n,g.selector=r,g.a1=o,g.a2=a,g.a3=c,g.value=r(n.getSnapshot(),o,a,c))):(g={store:n,selector:r,a1:o,a2:a,a3:c,value:r(n.getSnapshot(),o,a,c)},d.syncHooks.push(g)),g.value}function sR(n,r,o,a,c){return XO.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getSnapshot,d=>r(d,o,a,c))}class rR{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 C1(this,r,o,a,c)}}class hu extends rR{constructor(r,o={},a){super(r),this.context=o,this.selectors=a}useSyncedValue(r,o){h.useDebugValue(r);const a=this;Xe(()=>{a.state[r]!==o&&a.set(r,o)},[a,r,o])}useSyncedValueWithCleanup(r,o){const a=this;Xe(()=>(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);Xe(()=>{o.update(r)},[o,...a])}useControlledProp(r,o){h.useDebugValue(r);const a=this,c=o!==void 0;Xe(()=>{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),C1(this,this.selectors[r],o,a,c)}useContextCallback(r,o){h.useDebugValue(r);const a=We(o??fn);this.context[r]=a}useStateSetter(r){const o=h.useRef(void 0);return o.current===void 0&&(o.current=a=>{this.set(r,a)}),o.current}observe(r,o){let a;typeof r=="function"?a=r:a=this.selectors[r];let c=a(this.state);return o(c,c,this),this.subscribe(d=>{const p=a(d);if(!Object.is(c,p)){const g=c;c=p,o(p,g,this)}})}}const oR={open:Ve(n=>n.open),transitionStatus:Ve(n=>n.transitionStatus),domReferenceElement:Ve(n=>n.domReferenceElement),referenceElement:Ve(n=>n.positionReference??n.referenceElement),floatingElement:Ve(n=>n.floatingElement),floatingId:Ve(n=>n.floatingId)};class gu extends hu{constructor(r){const{syncOnly:o,nested:a,onOpenChange:c,triggerElements:d,...p}=r;super({...p,positionReference:p.referenceElement,domReferenceElement:p.referenceElement},{onOpenChange:c,dataRef:{current:{}},events:u1(),nested:a,triggerElements:d},oR),this.syncOnly=o}syncOpenEvent=(r,o)=>{(!r||!this.state.open||o!=null&&bC(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 O1(n){const{popupStore:r,treatPopupAsFloatingElement:o=!1,floatingRootContext:a,floatingId:c,nested:d,onOpenChange:p}=n,g=r.useState("open"),b=r.useState("activeTriggerElement"),m=r.useState(o?"popupElement":"positionerElement"),y=r.context.triggerElements,x=p,S=h.useRef(null);a===void 0&&S.current===null&&(S.current=new gu({open:g,transitionStatus:void 0,referenceElement:b,floatingElement:m,triggerElements:y,onOpenChange:x,floatingId:c,syncOnly:!0,nested:d}));const N=a??S.current;return r.useSyncedValue("floatingId",c),Xe(()=>{const j={open:g,floatingId:c,referenceElement:b,floatingElement:m};mt(b)&&(j.domReferenceElement=b),N.state.positionReference===N.state.referenceElement&&(j.positionReference=b),N.update(j)},[g,c,b,m,N]),N.context.onOpenChange=x,N.context.nested=d,N}const xu={tabIndex:-1,[Sm]:""};function R1(n){return r=>r==="touch"?n.current:!0}function k1(n,r,o=!1){const a=So(),c=ur()!=null,d=h.useRef(null);n===void 0&&d.current===null&&(d.current=r(a,c));const p=n??d.current;return O1({popupStore:p,treatPopupAsFloatingElement:o,floatingRootContext:p.state.floatingRootContext,floatingId:a,nested:c,onOpenChange:p.setOpen}),{store:p,internalStore:d.current}}function aR(n,r){const o=h.useRef(null),a=h.useRef(null);return h.useCallback(c=>{if(n===void 0)return;let d=!1;if(o.current!==null){const p=o.current,g=a.current,b=r.context.triggerElements.getById(p);g&&b===g&&(r.context.triggerElements.delete(p),d=!0),o.current=null,a.current=null}if(c!==null&&(o.current=n,a.current=c,r.context.triggerElements.add(n,c),d=!0),d){const p=r.context.triggerElements.size;r.select("open")&&r.state.triggerCount!==p&&r.set("triggerCount",p)}},[r,n])}function wp(n,r,o,a=!1){r?n.preventUnmountingOnClose=!1:a&&(n.preventUnmountingOnClose=!0);const c=o?.id??null;(c||r)&&(n.activeTriggerId=c,n.activeTriggerElement=o??null)}function _1(n){let r=!1;return n.preventUnmountOnClose=()=>{r=!0},()=>r}function A1(n,r,o,a){N1(()=>{r===void 0&&n.state.open===!1&&o&&(n.state={...n.state,open:!0,activeTriggerId:a,preventUnmountingOnClose:!1})})}function M1(n,r,o,a){const c=o.useState("isMountedByTrigger",n),d=aR(n,o),p=We(g=>{if(d(g),!g)return;const b=o.select("open"),m=o.select("activeTriggerId");if(m===n){o.update({activeTriggerElement:g,...b?a:null});return}m==null&&b&&o.update({activeTriggerId:n,activeTriggerElement:g,...a})});return Xe(()=>{c&&o.update({activeTriggerElement:r.current,...a})},[c,o,r,...Object.values(a)]),{registerTrigger:p,isMountedByThisTrigger:c}}function Cp(n,r={}){const{closeOnActiveTriggerUnmount:o=!1}=r,a=n.useState("open"),c=n.useState("triggerCount");Xe(()=>{if(!a){n.state.triggerCount!==0&&n.set("triggerCount",0);return}const d=n.context.triggerElements.size,p={};n.state.triggerCount!==d&&(p.triggerCount=d);const g=n.select("activeTriggerId");let b=null;if(g){const m=n.context.triggerElements.getById(g);m?m!==n.state.activeTriggerElement&&(p.activeTriggerElement=m):b=g}if(!b&&!g&&d===1){const m=n.context.triggerElements.entries().next();if(!m.done){const[y,x]=m.value;p.activeTriggerId=y,p.activeTriggerElement=x}}(p.triggerCount!==void 0||p.activeTriggerId!==void 0||p.activeTriggerElement!==void 0)&&n.update(p),b&&o&&queueMicrotask(()=>{if(n.select("open")&&n.select("activeTriggerId")===b&&!n.context.triggerElements.getById(b)){const m=bt(D0);n.setOpen(!1,m),m.isCanceled||n.update({activeTriggerId:null,activeTriggerElement:null})}})},[a,n,c,o])}function Op(n,r,o){const{mounted:a,setMounted:c,transitionStatus:d}=dC(n),p=r.useState("preventUnmountingOnClose"),g=n?!1:p;r.useSyncedValues({mounted:a,transitionStatus:d,preventUnmountingOnClose:g});const b=We(()=>{c(!1),r.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),o?.(),r.context.onOpenChangeComplete?.(!1)});return cu({enabled:a&&!n&&!g,open:n,ref:r.context.popupRef,onComplete(){n||b()}}),{forceUnmount:b,transitionStatus:d}}function Rp(n,r){n.useSyncedValues(r),Xe(()=>()=>{n.update({activeTriggerProps:Ut,inactiveTriggerProps:Ut,popupProps:Ut})},[n])}function D1(n,r){Xe(()=>{!r&&n.state.openMethod!==null&&n.set("openMethod",null)},[r,n]),Xe(()=>()=>{n.state.openMethod!==null&&n.set("openMethod",null)},[n])}class ti{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 lR(){return new gu({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new ti,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function kp(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:lR(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:Ut,inactiveTriggerProps:Ut,popupProps:Ut}}function z1(n,r,o=!1){return new gu({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:n,floatingId:r,syncOnly:!0,nested:o,onOpenChange:void 0})}const Ll=Ve(n=>n.triggerIdProp??n.activeTriggerId),_p=Ve(n=>n.openProp??n.open),ev=Ve(n=>(n.popupElement?.id??n.floatingId)||void 0);function L1(n,r){return r!==void 0&&_p(n)&&Ll(n)===r}function iR(n,r){return L1(n,r)?!0:r!==void 0&&_p(n)&&Ll(n)==null&&n.triggerCount===1}const Ap={open:_p,mounted:Ve(n=>n.mounted),transitionStatus:Ve(n=>n.transitionStatus),floatingRootContext:Ve(n=>n.floatingRootContext),triggerCount:Ve(n=>n.triggerCount),preventUnmountingOnClose:Ve(n=>n.preventUnmountingOnClose),payload:Ve(n=>n.payload),activeTriggerId:Ll,activeTriggerElement:Ve(n=>n.mounted?n.activeTriggerElement:null),popupId:ev,isTriggerActive:Ve((n,r)=>r!==void 0&&Ll(n)===r),isOpenedByTrigger:Ve((n,r)=>L1(n,r)),isMountedByTrigger:Ve((n,r)=>r!==void 0&&Ll(n)===r&&n.mounted),triggerProps:Ve((n,r)=>r?n.activeTriggerProps:n.inactiveTriggerProps),triggerPopupId:Ve((n,r)=>iR(n,r)?ev(n):void 0),popupProps:Ve(n=>n.popupProps),popupElement:Ve(n=>n.popupElement),positionerElement:Ve(n=>n.positionerElement)};function cR(n){const{open:r=!1,onOpenChange:o,elements:a={}}=n,c=So(),d=ur()!=null,p=Ln(()=>new gu({open:r,transitionStatus:void 0,onOpenChange:o,referenceElement:a.reference??null,floatingElement:a.floating??null,triggerElements:new ti,floatingId:c,syncOnly:!1,nested:d})).current;return Xe(()=>{const g={open:r,floatingId:c};a.reference!==void 0&&(g.referenceElement=a.reference,g.domReferenceElement=mt(a.reference)?a.reference:null),a.floating!==void 0&&(g.floatingElement=a.floating),p.update(g)},[r,c,a.reference,a.floating,p]),p.context.onOpenChange=o,p.context.nested=d,p}function uR(n={}){const{nodeId:r,externalTree:o}=n,a=cR(n),c=n.rootContext||a,d=c.useState("referenceElement"),p=c.useState("floatingElement"),g=c.useState("domReferenceElement"),b=c.useState("open"),m=c.useState("floatingId"),[y,x]=h.useState(null),[S,N]=h.useState(void 0),[j,w]=h.useState(void 0),_=h.useRef(null),E=qr(o),T=h.useMemo(()=>({reference:d,floating:p,domReference:g}),[d,p,g]),C=BO({...n,elements:{...T,...y&&{reference:y}}}),k=mt(S)?S:null,F=j===void 0?c.state.floatingElement:j;c.useSyncedValue("referenceElement",S??null),c.useSyncedValue("domReferenceElement",S===void 0?g:k),c.useSyncedValue("floatingElement",F);const A=h.useCallback(ee=>{const K=mt(ee)?{getBoundingClientRect:()=>ee.getBoundingClientRect(),getClientRects:()=>ee.getClientRects(),contextElement:ee}:ee;x(K),C.refs.setReference(K)},[C.refs]),L=h.useCallback(ee=>{(mt(ee)||ee===null)&&(_.current=ee,N(ee)),(mt(C.refs.reference.current)||C.refs.reference.current===null||ee!==null&&!mt(ee))&&C.refs.setReference(ee)},[C.refs,N]),O=h.useCallback(ee=>{w(ee),C.refs.setFloating(ee)},[C.refs]),X=h.useMemo(()=>({...C.refs,setReference:L,setFloating:O,setPositionReference:A,domReference:_}),[C.refs,L,O,A]),ne=h.useMemo(()=>({...C.elements,domReference:g}),[C.elements,g]),fe=h.useMemo(()=>({...C,dataRef:c.context.dataRef,open:b,onOpenChange:c.setOpen,events:c.context.events,floatingId:m,refs:X,elements:ne,nodeId:r,rootStore:c}),[C,X,ne,r,c,b,m]);return Xe(()=>{g&&(_.current=g)},[g]),Xe(()=>{c.context.dataRef.current.floatingContext=fe;const ee=E?.nodesRef.current.find(K=>K.id===r);ee&&(ee.context=fe)}),h.useMemo(()=>({...C,context:fe,refs:X,elements:ne,rootStore:c}),[C,X,ne,fe,c])}const Jf=cp&&wo;function dR(n,r={}){const{enabled:o=!0,delay:a}=r,c="rootStore"in n?n.rootStore:n,{events:d,dataRef:p}=c.context,g=h.useRef(!1),b=h.useRef(null),m=h.useRef(!0),y=Xn();h.useEffect(()=>{const S=c.select("domReferenceElement");if(!o)return;const N=Xt(S);function j(){const E=c.select("domReferenceElement");!c.select("open")&&Bt(E)&&E===wn(xt(E))&&(g.current=!0)}function w(){m.current=!0}function _(){m.current=!1}return ks(ct(N,"blur",j),Jf&&ct(N,"keydown",w,!0),Jf&&ct(N,"pointerdown",_,!0))},[c,o]),h.useEffect(()=>{if(!o)return;function S(N){if(N.reason===yo||N.reason===au){const j=c.select("domReferenceElement");mt(j)&&(b.current=j,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(N){const j=N.currentTarget;if(g.current){if(b.current===j)return;S()}const w=zn(N.nativeEvent);if(mt(w)){if(Jf&&!N.relatedTarget){if(!m.current&&!fu(w))return}else if(!SC(w))return}const _=qc(N.relatedTarget,c.context.triggerElements),{nativeEvent:E,currentTarget:T}=N,C=typeof a=="function"?a():a;if(c.select("open")&&_||C===0||C===void 0){c.setOpen(!0,bt(zl,E,T));return}y.start(C,()=>{g.current||c.setOpen(!0,bt(zl,E,T))})},onBlur(N){S();const j=N.relatedTarget,w=N.nativeEvent,_=mt(j)&&j.hasAttribute(Xl("focus-guard"))&&j.getAttribute("data-type")==="outside";y.start(0,()=>{const E=c.select("domReferenceElement"),T=wn(xt(E));!j&&T===E||Je(p.current.floatingContext?.refs.floating.current,T)||Je(E,T)||_||qc(j??T,c.context.triggerElements)||c.setOpen(!1,bt(zl,w))})}}},[p,a,c,y]);return h.useMemo(()=>o?{reference:x,trigger:x}:{},[o,x])}class Mp{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 ps,this.restTimeout=new ps,this.handleCloseOptions=void 0}static create(){return new Mp}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const Qc=new WeakMap;function Zc(n){if(!n.performedPointerEventsMutation)return;const r=n.pointerEventsScopeElement;r&&Qc.get(r)===n&&(n.pointerEventsScopeElement?.style.removeProperty("pointer-events"),n.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),n.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),Qc.delete(r)),n.performedPointerEventsMutation=!1,n.pointerEventsScopeElement=null,n.pointerEventsReferenceElement=null,n.pointerEventsFloatingElement=null}function I1(n,r){const{scopeElement:o,referenceElement:a,floatingElement:c}=r,d=Qc.get(o);d&&d!==n&&Zc(d),Zc(n),n.performedPointerEventsMutation=!0,n.pointerEventsScopeElement=o,n.pointerEventsReferenceElement=a,n.pointerEventsFloatingElement=c,Qc.set(o,n),o.style.pointerEvents="none",a.style.pointerEvents="auto",c.style.pointerEvents="auto"}function B1(n){const r=n.context.dataRef.current,o=Ln(()=>r.hoverInteractionState??Mp.create()).current;return r.hoverInteractionState||(r.hoverInteractionState=o),dp(r.hoverInteractionState.disposeEffect),r.hoverInteractionState}function U1(n,r={}){const{enabled:o=!0,closeDelay:a=0,nodeId:c}=r,d="rootStore"in n?n.rootStore:n,p=d.useState("open"),g=d.useState("floatingElement"),b=d.useState("domReferenceElement"),{dataRef:m}=d.context,y=qr(),x=ur(),S=B1(d),N=Xn(),j=We(()=>F0(m.current.openEvent?.type,S.interactedInside)),w=We(()=>NC(m.current.openEvent?.type)),_=We(()=>{Zc(S)});Xe(()=>{p||(S.pointerType=void 0,S.restTimeoutPending=!1,S.interactedInside=!1,_())},[p,S,_]),h.useEffect(()=>_,[_]),Xe(()=>{if(o&&p&&S.handleCloseOptions?.blockPointerEvents&&w()&&mt(b)&&g){const E=b,T=g,C=xt(g),k=y?.nodesRef.current.find(O=>O.id===x)?.context?.elements.floating;k&&(k.style.pointerEvents="");const F=S.pointerEventsScopeElement!==T?S.pointerEventsScopeElement:null,A=k!==T?k:null,L=S.handleCloseOptions?.getScope?.()??F??A??E.closest("[data-rootownerid]")??C.body;return I1(S,{scopeElement:L,referenceElement:E,floatingElement:T}),()=>{_()}}},[o,p,b,g,S,w,y,x,_]),h.useEffect(()=>{if(!o)return;function E(){return!!(y&&x&&Pr(y.nodesRef.current,x).length>0)}function T(O){const X=jm(a,"close",S.pointerType),ne=()=>{d.setOpen(!1,bt(mn,O)),y?.events.emit("floating.closed",O)};X?S.openChangeTimeout.start(X,ne):(S.openChangeTimeout.clear(),ne())}function C(O){const X=zn(O);if(!vC(X)){S.interactedInside=!1;return}S.interactedInside=X?.closest("[aria-haspopup]")!=null}function k(){S.openChangeTimeout.clear(),N.clear(),y?.events.off("floating.closed",A),_()}function F(O){if(E()&&y){y.events.on("floating.closed",A);return}if(qc(O.relatedTarget,d.context.triggerElements))return;const X=m.current.floatingContext?.nodeId??c,ne=O.relatedTarget;if(!(y&&X&&mt(ne)&&Pr(y.nodesRef.current,X,!1).some(ee=>Je(ee.context?.elements.floating,ne)))){if(S.handler){S.handler(O);return}_(),w()&&!j()&&T(O)}}function A(O){!y||!x||E()||N.start(0,()=>{y.events.off("floating.closed",A),d.setOpen(!1,bt(mn,O)),y.events.emit("floating.closed",O)})}const L=g;return ks(L&&ct(L,"mouseenter",k),L&&ct(L,"mouseleave",F),L&&ct(L,"pointerdown",C,!0),()=>{y?.events.off("floating.closed",A)})},[o,g,d,m,a,c,w,j,_,S,y,x,N])}const fR={current:null};function H1(n,r={}){const{enabled:o=!0,delay:a=0,handleClose:c=null,mouseOnly:d=!1,restMs:p=0,move:g=!0,triggerElementRef:b=fR,externalTree:m,isActiveTrigger:y=!0,getHandleCloseContext:x,isClosing:S,shouldOpen:N}=r,j="rootStore"in n?n.rootStore:n,{dataRef:w,events:_}=j.context,E=qr(m),T=B1(j),C=h.useRef(!1),k=on(c),F=on(a),A=on(p),L=on(o),O=on(N),X=on(S),ne=We(()=>F0(w.current.openEvent?.type,T.interactedInside)),fe=We(()=>O.current?.()!==!1),ee=We((W,D,z)=>{const P=j.context.triggerElements;if(P.hasElement(D))return!W||!Je(W,D);if(!mt(z))return!1;const U=z;return P.hasMatchingElement(V=>Je(V,U))&&(!W||!Je(W,U))}),K=We(()=>{if(!T.handler)return;xt(j.select("domReferenceElement")).removeEventListener("mousemove",T.handler),T.handler=void 0}),te=We(()=>{Zc(T)});return y&&(T.handleCloseOptions=k.current?.__options),h.useEffect(()=>K,[K]),h.useEffect(()=>{if(!o)return;function W(D){D.open?C.current=!1:(C.current=D.reason===mn,K(),T.openChangeTimeout.clear(),T.restTimeout.clear(),T.blockMouseMove=!0,T.restTimeoutPending=!1)}return _.on("openchange",W),()=>{_.off("openchange",W)}},[o,_,T,K]),h.useEffect(()=>{if(!o)return;function W(U,V=!0){const M=jm(F.current,"close",T.pointerType);M?T.openChangeTimeout.start(M,()=>{j.setOpen(!1,bt(mn,U)),E?.events.emit("floating.closed",U)}):V&&(T.openChangeTimeout.clear(),j.setOpen(!1,bt(mn,U)),E?.events.emit("floating.closed",U))}const D=b.current??(y?j.select("domReferenceElement"):null);if(!mt(D))return;function z(U){if(T.openChangeTimeout.clear(),T.blockMouseMove=!1,d&&!$l(T.pointerType))return;const V=Cy(A.current),M=jm(F.current,"open",T.pointerType),B=zn(U),I=U.currentTarget??null,H=j.select("domReferenceElement");let q=I;if(mt(B)&&!j.context.triggerElements.hasElement(B)){for(const ge of j.context.triggerElements.elements())if(Je(ge,B)){q=ge;break}}mt(I)&&mt(H)&&!j.context.triggerElements.hasElement(I)&&Je(I,H)&&(q=H);const J=q==null?!1:ee(H,q,B),he=j.select("open"),re=X.current?.()??j.select("transitionStatus")==="ending",ce=!he&&re&&C.current,Ie=!J&&mt(q)&&mt(H)&&Je(H,q)&&ce,_e=V>0&&!M,we=J&&(he||ce)||Ie,Be=!he||J;if(we){fe()&&j.setOpen(!0,bt(mn,U,q));return}_e||(M?T.openChangeTimeout.start(M,()=>{Be&&fe()&&j.setOpen(!0,bt(mn,U,q))}):Be&&fe()&&j.setOpen(!0,bt(mn,U,q)))}function P(U){if(ne()){te();return}K();const V=j.select("domReferenceElement"),M=xt(V);T.restTimeout.clear(),T.restTimeoutPending=!1;const B=w.current.floatingContext??x?.();if(qc(U.relatedTarget,j.context.triggerElements))return;if(k.current&&B){j.select("open")||T.openChangeTimeout.clear();const H=b.current;T.handler=k.current({...B,tree:E,x:U.clientX,y:U.clientY,onClose(){te(),K(),L.current&&!ne()&&H===j.select("domReferenceElement")&&W(U,!0)}}),M.addEventListener("mousemove",T.handler),T.handler(U);return}(T.pointerType!=="touch"||!Je(j.select("floatingElement"),U.relatedTarget))&&W(U)}return g?ks(ct(D,"mousemove",z,{once:!0}),ct(D,"mouseenter",z),ct(D,"mouseleave",P)):ks(ct(D,"mouseenter",z),ct(D,"mouseleave",P))},[K,te,w,F,j,o,k,T,y,ee,ne,d,g,A,b,E,L,x,X,fe]),h.useMemo(()=>{if(!o)return;function W(D){T.pointerType=D.pointerType}return{onPointerDown:W,onPointerEnter:W,onMouseMove(D){const{nativeEvent:z}=D,P=D.currentTarget,U=j.select("domReferenceElement"),V=j.select("open"),M=ee(U,P,D.target);if(d&&!$l(T.pointerType))return;if(V&&M&&T.handleCloseOptions?.blockPointerEvents){const H=j.select("floatingElement");if(H){const q=T.handleCloseOptions?.getScope?.()??P.ownerDocument.body;I1(T,{scopeElement:q,referenceElement:P,floatingElement:H})}}const B=Cy(A.current);if(V&&!M||B===0||!M&&T.restTimeoutPending&&D.movementX**2+D.movementY**2<2)return;T.restTimeout.clear();function I(){if(T.restTimeoutPending=!1,ne())return;const H=j.select("open");!T.blockMouseMove&&(!H||M)&&fe()&&j.setOpen(!0,bt(mn,z,P))}T.pointerType==="touch"?ar.flushSync(()=>{I()}):M&&V?I():(T.restTimeoutPending=!0,T.restTimeout.start(B,I))}}},[o,T,ne,ee,d,j,A,fe])}const mR="Escape";function bu(n,r,o){switch(n){case"vertical":return r;case"horizontal":return o;default:return r||o}}function Nc(n,r){return bu(r,n===V0||n===mp,n===uu||n===du)}function Wf(n,r,o){return bu(r,n===mp,o?n===uu:n===du)||n==="Enter"||n===" "||n===""}function pR(n,r,o){return bu(r,o?n===uu:n===du,n===mp)}function hR(n,r,o,a){const c=o?n===du:n===uu,d=n===V0;return r==="both"||r==="horizontal"&&a?n===mR:bu(r,c,d)}function gR(n,r){const{listRef:o,activeIndex:a,onNavigate:c=()=>{},enabled:d=!0,selectedIndex:p=null,allowEscape:g=!1,loopFocus:b=!1,nested:m=!1,rtl:y=!1,virtual:x=!1,focusItemOnOpen:S="auto",focusItemOnHover:N=!0,openOnArrowKeyDown:j=!0,disabledIndices:w=void 0,orientation:_="vertical",parentOrientation:E,id:T,resetOnPointerLeave:C=!0,externalTree:k,grid:F}=r,A=F!=null,L="rootStore"in n?n.rootStore:n,O=L.useState("open"),X=L.useState("floatingElement"),ne=L.useState("domReferenceElement"),fe=L.context.dataRef,ee=Nm(X),K=Em(ne),te=on(ee),W=ur(),D=qr(k),z=h.useRef(S),P=h.useRef(p??-1),U=h.useRef(null),V=h.useRef(!0),M=We(Y=>{c(P.current===-1?null:P.current,Y)}),B=h.useRef(!!X),I=h.useRef(O),H=h.useRef(!1),q=h.useRef(!1),J=h.useRef(null),he=on(w),re=on(O),ce=on(p),Ie=on(C),_e=Gl(),we=Gl(),Be=We(()=>{function Y(oe){x?D?.events.emit("virtualfocus",oe):J.current=Dc(oe,{sync:H.current,preventScroll:!0})}const G=o.current[P.current],je=q.current;G&&Y(G),(H.current?oe=>oe():oe=>_e.request(oe))(()=>{const oe=o.current[P.current]||G;if(!oe)return;G||Y(oe),ve&&(je||!V.current)&&oe.scrollIntoView?.({block:"nearest",inline:"nearest"})})});Xe(()=>{fe.current.orientation=_},[fe,_]),Xe(()=>{d&&(O&&X?(P.current=p??-1,z.current&&p!=null&&(q.current=!0,M())):B.current&&(P.current=-1,M()))},[d,O,X,p,M]),Xe(()=>{if(d){if(!O){H.current=!1;return}if(X)if(a==null){if(H.current=!1,ce.current!=null)return;if(B.current&&(P.current=-1,Be()),(!I.current||!B.current)&&z.current&&(U.current!=null||z.current===!0&&U.current==null)){let Y=0;const G=()=>{o.current[0]==null?(Y<2&&(Y?xe=>we.request(xe):queueMicrotask)(G),Y+=1):(P.current=U.current==null||Wf(U.current,_,y)||m?Pf(o):_y(o),U.current=null,M())};G()}}else ky(o.current,a)||(P.current=a,Be(),q.current=!1)}},[d,O,X,a,ce,m,o,_,y,M,Be,we]),Xe(()=>{if(!d||X||!D||x||!B.current)return;const Y=D.nodesRef.current,G=Y.find(oe=>oe.id===W)?.context?.elements.floating,je=wn(xt(ne??G??null)),xe=Y.some(oe=>oe.context&&Je(oe.context.elements.floating,je));G&&!xe&&V.current&&G.focus({preventScroll:!0})},[d,X,ne,D,W,x]),Xe(()=>{I.current=O,B.current=!!X}),Xe(()=>{O||(U.current=null,z.current=S)},[O,S]);const ge=a!=null,ie=We(Y=>{if(!re.current)return;const G=o.current.indexOf(Y.currentTarget);G!==-1&&(P.current!==G||a!==G)&&(P.current=G,M(Y))}),He=We(()=>E??D?.nodesRef.current.find(Y=>Y.id===W)?.context?.dataRef?.current.orientation),Re=We(()=>Pf(o,he.current)),ze=We(Y=>{if(V.current=!1,H.current=!0,Y.which===229||!re.current&&Y.currentTarget===te.current)return;if(m&&hR(Y.key,_,y,A)){Nc(Y.key,He())||Ns(Y),L.setOpen(!1,bt(ym,Y.nativeEvent)),Bt(ne)&&(x?D?.events.emit("virtualfocus",ne):ne.focus());return}const G=P.current,je=Pf(o,w),xe=_y(o,w);if(K||(Y.key==="Home"&&(Ns(Y),P.current=je,M(Y)),Y.key==="End"&&(Ns(Y),P.current=xe,M(Y))),F!=null){const oe=F(Y,P.current,o,_,b,y,w,je,xe);if(oe!=null&&(P.current=oe,M(Y)),_==="both")return}if(Nc(Y.key,_)){if(Ns(Y),O&&!x&&wn(Y.currentTarget.ownerDocument)===Y.currentTarget){P.current=Wf(Y.key,_,y)?je:xe,M(Y);return}Wf(Y.key,_,y)?b?G>=xe?g&&G!==o.current.length?P.current=-1:(H.current=!1,P.current=je):P.current=Sa(o.current,{startingIndex:G,disabledIndices:w}):P.current=Math.min(xe,Sa(o.current,{startingIndex:G,disabledIndices:w})):b?G<=je?g&&G!==-1?P.current=o.current.length:(H.current=!1,P.current=xe):P.current=Sa(o.current,{startingIndex:G,decrement:!0,disabledIndices:w}):P.current=Math.max(je,Sa(o.current,{startingIndex:G,decrement:!0,disabledIndices:w})),ky(o.current,P.current)&&(P.current=-1),M(Y)}}),ve=h.useMemo(()=>({onFocus(G){H.current=!0,ie(G)},onClick:({currentTarget:G})=>G.focus({preventScroll:!0}),onMouseMove(G){H.current=!0,q.current=!1,N&&ie(G)},onPointerLeave(G){if(!re.current||!V.current||G.pointerType==="touch")return;H.current=!0;const je=G.relatedTarget;if(!(!N||o.current.includes(je))&&Ie.current&&(J.current?.(),J.current=null,P.current=-1,M(G),!x)){const xe=te.current,oe=wn(xt(xe));xe&&Je(xe,oe)&&xe.focus({preventScroll:!0})}}}),[ie,re,te,N,o,M,Ie,x]),ue=h.useMemo(()=>x&&O&&ge&&{"aria-activedescendant":`${T}-${a}`},[x,O,ge,T,a]),ke=h.useMemo(()=>({"aria-orientation":_==="both"?void 0:_,...K?{}:ue,onKeyDown(Y){if(Y.key==="Tab"&&Y.shiftKey&&O&&!x){const G=zn(Y.nativeEvent);if(G&&!Je(te.current,G))return;Ns(Y),L.setOpen(!1,bt(vo,Y.nativeEvent)),Bt(ne)&&ne.focus();return}ze(Y)},onPointerMove(){V.current=!0}}),[ue,ze,te,_,K,L,O,x,ne]),Ae=h.useMemo(()=>{function Y(xe){L.setOpen(!0,bt(ym,xe.nativeEvent,xe.currentTarget))}function G(xe){S==="auto"&&H0(xe.nativeEvent)&&(z.current=!x)}function je(xe){z.current=S,S==="auto"&&Y0(xe.nativeEvent)&&(z.current=!0)}return{onKeyDown(xe){const oe=L.select("open");V.current=!1;const Ce=xe.key.startsWith("Arrow"),Ue=pR(xe.key,He(),y),Qe=Nc(xe.key,_),ht=(m?Ue:Qe)||xe.key==="Enter"||xe.key.trim()==="";if(x&&oe)return ze(xe);if(!(!oe&&!j&&Ce)){if(ht){const Mt=Nc(xe.key,He());U.current=m&&Mt?null:xe.key}if(m){Ue&&(Ns(xe),oe?(P.current=Re(),M(xe)):Y(xe));return}Qe&&(ce.current!=null&&(P.current=ce.current),Ns(xe),!oe&&j?Y(xe):ze(xe),oe&&M(xe))}},onFocus(xe){L.select("open")&&!x&&(P.current=-1,M(xe))},onPointerDown:je,onPointerEnter:je,onMouseDown:G,onClick:G}},[ze,S,Re,m,M,L,j,_,He,y,ce,x]),Q=h.useMemo(()=>({...ue,...Ae}),[ue,Ae]);return h.useMemo(()=>d?{reference:Q,floating:ke,item:ve,trigger:Ae}:{},[d,Q,ke,Ae,ve])}function xR(n,r){const{listRef:o,elementsRef:a,activeIndex:c,onMatch:d,disabledIndices:p,onTyping:g,enabled:b=!0,resetMs:m=750,selectedIndex:y=null}=r,x="rootStore"in n?n.rootStore:n,S=x.useState("open"),N=Xn(),j=h.useRef(""),w=h.useRef(y??c??-1),_=h.useRef(null),E=We(k=>{function F(te){const W=a?.current[te];return!W||mu(W)}function A(te){return F(te)?p==null||!$0(Fc,te,p):!1}function L(te,W,D=0){if(te.length===0)return-1;const z=(D%te.length+te.length)%te.length,P=W.toLowerCase();for(let U=0;U<te.length;U+=1){const V=(z+U)%te.length;if(!(!te[V]?.toLowerCase().startsWith(P)||!A(V)))return V}return-1}const O=o.current;if(j.current.length>0&&k.key===" "&&(Ns(k),g?.(!0)),j.current.length>0&&j.current[0]!==" "&&L(O,j.current)===-1&&k.key!==" "&&g?.(!1),O==null||k.key.length!==1||k.ctrlKey||k.metaKey||k.altKey)return;S&&k.key!==" "&&(Ns(k),g?.(!0));const X=j.current==="";X&&(w.current=y??c??-1),O.every((te,W)=>te&&A(W)?te[0]?.toLowerCase()!==te[1]?.toLowerCase():!0)&&j.current===k.key&&(j.current="",w.current=_.current),j.current+=k.key,N.start(m,()=>{j.current="",w.current=_.current,g?.(!1)});const ee=((X?y??c??-1:w.current)??0)+1,K=L(O,j.current,ee);K!==-1?(d?.(K),_.current=K):k.key!==" "&&(j.current="",g?.(!1))}),T=We(k=>{const F=k.relatedTarget,A=x.select("domReferenceElement"),L=x.select("floatingElement");Je(A,F)||Je(L,F)||(N.clear(),j.current="",w.current=_.current,g?.(!1))});Xe(()=>{!S&&y!==null||(N.clear(),_.current=null,j.current!==""&&(j.current=""))},[S,y,N]),Xe(()=>{S&&j.current===""&&(w.current=y??c??-1)},[S,y,c]);const C=h.useMemo(()=>({onKeyDown:E,onBlur:T}),[E,T]);return h.useMemo(()=>b?{reference:C,floating:C}:{},[b,C])}const tv=.1,bR=tv*tv,At=.5;function jc(n,r,o,a,c,d){return a>=r!=d>=r&&n<=(c-o)*(r-a)/(d-a)+o}function Tc(n,r,o,a,c,d,p,g,b,m){let y=!1;return jc(n,r,o,a,c,d)&&(y=!y),jc(n,r,c,d,p,g)&&(y=!y),jc(n,r,p,g,b,m)&&(y=!y),jc(n,r,b,m,o,a)&&(y=!y),y}function yR(n,r,o){return n>=o.x&&n<=o.x+o.width&&r>=o.y&&r<=o.y+o.height}function wc(n,r,o,a,c,d){const p=Math.min(o,c),g=Math.max(o,c),b=Math.min(a,d),m=Math.max(a,d);return n>=p&&n<=g&&r>=b&&r<=m}function Y1(n={}){const{blockPointerEvents:r=!1}=n,o=new ps,a=({x:c,y:d,placement:p,elements:g,onClose:b,nodeId:m,tree:y})=>{const x=p?.split("-")[0];let S=!1,N=null,j=null,w=typeof performance<"u"?performance.now():0;function _(T,C){const k=performance.now(),F=k-w;if(N===null||j===null||F===0)return N=T,j=C,w=k,!1;const A=T-N,L=C-j,O=A*A+L*L,X=F*F*bR;return N=T,j=C,w=k,O<X}function E(){o.clear(),b()}return function(C){o.clear();const k=g.domReference,F=g.floating;if(!k||!F||x==null||c==null||d==null)return;const{clientX:A,clientY:L}=C,O=zn(C),X=C.type==="mouseleave",ne=Je(F,O),fe=Je(k,O);if(ne&&(S=!0,!X))return;if(fe&&(S=!1,!X)){S=!0;return}if(X&&mt(C.relatedTarget)&&Je(F,C.relatedTarget))return;function ee(){return!!(y&&Pr(y.nodesRef.current,m).length>0)}function K(){ee()||E()}if(ee())return;const te=k.getBoundingClientRect(),W=F.getBoundingClientRect(),D=c>W.right-W.width/2,z=d>W.bottom-W.height/2,P=W.width>te.width,U=W.height>te.height,V=(P?te:W).left,M=(P?te:W).right,B=(U?te:W).top,I=(U?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){K();return}let H=!1;switch(x){case"top":H=wc(A,L,V,te.top+1,M,W.bottom-1);break;case"bottom":H=wc(A,L,V,W.top+1,M,te.bottom-1);break;case"left":H=wc(A,L,W.right-1,I,te.left+1,B);break;case"right":H=wc(A,L,te.right-1,I,W.left+1,B);break}if(H)return;if(S&&!yR(A,L,te)){K();return}if(!X&&_(A,L)){K();return}let q=!1;switch(x){case"top":{const J=P?At/2:At*4,he=P||D?c+J:c-J,re=P?c-J:D?c+J:c-J,ce=d+At+1,Ie=D||P?W.bottom-At:W.top,_e=D?P?W.bottom-At:W.top:W.bottom-At;q=Tc(A,L,he,ce,re,ce,W.left,Ie,W.right,_e);break}case"bottom":{const J=P?At/2:At*4,he=P||D?c+J:c-J,re=P?c-J:D?c+J:c-J,ce=d-At,Ie=D||P?W.top+At:W.bottom,_e=D?P?W.top+At:W.bottom:W.top+At;q=Tc(A,L,he,ce,re,ce,W.left,Ie,W.right,_e);break}case"left":{const J=U?At/2:At*4,he=U||z?d+J:d-J,re=U?d-J:z?d+J:d-J,ce=c+At+1,Ie=z||U?W.right-At:W.left,_e=z?U?W.right-At:W.left:W.right-At;q=Tc(A,L,Ie,W.top,_e,W.bottom,ce,he,ce,re);break}case"right":{const J=U?At/2:At*4,he=U||z?d+J:d-J,re=U?d-J:z?d+J:d-J,ce=c-At,Ie=z||U?W.left+At:W.right,_e=z?U?W.left+At:W.right:W.left+At;q=Tc(A,L,ce,he,ce,re,Ie,W.top,_e,W.bottom);break}}q?S||o.start(40,K):K()}};return a.__options={...n,blockPointerEvents:r},a}const vR=h.createContext(void 0);function P1(n){return h.useContext(vR)}const SR="ArrowUp",ER="ArrowDown",NR="ArrowLeft",jR="ArrowRight",TR="Home",wR="End",CR=new Set([NR,jR]),OR=new Set([SR,ER]),RR=new Set([...CR,...OR]),Dp=new Set([...RR,TR,wR]);function zp(n){return n==="starting"?XC:Ut}const kR={...Wl,...ru},_R=h.forwardRef(function(r,o){const{render:a,className:c,style:d,finalFocus:p,...g}=r,{store:b}=To(),{side:m,align:y}=A0(),x=P1()!=null,S=b.useState("open"),N=b.useState("transitionStatus"),j=b.useState("popupProps"),w=b.useState("mounted"),_=b.useState("instantType"),E=b.useState("activeTriggerElement"),T=b.useState("parent"),C=b.useState("lastOpenChangeReason"),k=b.useState("rootId"),F=b.useState("floatingRootContext"),A=b.useState("floatingTreeRoot"),L=b.useState("closeDelay"),O=b.useState("activeTriggerElement"),X=b.useState("hoverEnabled"),ne=b.useState("disabled"),fe=b.useState("openMethod"),ee=T.type==="context-menu";cu({open:S,ref:b.context.popupRef,onComplete(){S&&b.context.onOpenChangeComplete?.(!0)}}),h.useEffect(()=>{function z(P){b.setOpen(!1,bt(P.reason,P.domEvent))}return A.events.on("close",z),()=>{A.events.off("close",z)}},[A.events,b]),U1(F,{enabled:X&&!ne&&!ee&&T.type!=="menubar",closeDelay:L});const K=h.useCallback(z=>{b.set("popupElement",z)},[b]),te={transitionStatus:N,side:m,align:y,open:S,nested:T.type==="menu",instant:_},W=pn("div",r,{state:te,ref:[o,b.context.popupRef,K],stateAttributesMapping:kR,props:[j,{onKeyDown(z){x&&Dp.has(z.key)&&z.stopPropagation()}},zp(N),g,{"data-rootownerid":k}]});let D=T.type===void 0||ee;return(E||T.type==="menubar"&&C!==lp)&&(D=!0),i.jsx(Np,{context:F,openInteractionType:fe,modal:ee,disabled:!w,returnFocus:p===void 0?D:p,initialFocus:T.type!=="menu",restoreFocus:!0,externalTree:T.type!=="menubar"?A:void 0,previousFocusableElement:O,nextFocusableElement:T.type===void 0?b.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:T.type===void 0?b.context.beforeContentFocusGuardRef:void 0,children:W})}),V1=h.createContext(void 0);function AR(){const n=h.useContext(V1);if(n===void 0)throw new Error(jn(32));return n}const MR=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=To();return d.useState("mounted")||a?i.jsx(V1.Provider,{value:a,children:i.jsx(yp,{ref:o,...c})}):null});function Lp(n){return ap(19)?n:n?"true":void 0}const DR=h.createContext(void 0);function F1(){return h.useContext(DR)?.direction??"ltr"}const zR=n=>({name:"arrow",options:n,async fn(r){const{x:o,y:a,placement:c,rects:d,platform:p,elements:g,middlewareData:b}=r,{element:m,padding:y=0,offsetParent:x="real"}=lr(n,r)||{};if(m==null)return{};const S=G0(y),N={x:o,y:a},j=gp(c),w=hp(j),_=await p.getDimensions(m),E=j==="y",T=E?"top":"left",C=E?"bottom":"right",k=E?"clientHeight":"clientWidth",F=d.reference[w]+d.reference[j]-N[j]-d.floating[w],A=N[j]-d.reference[j],L=x==="real"?await p.getOffsetParent?.(m):g.floating;let O=g.floating[k]||d.floating[w];(!O||!await p.isElement?.(L))&&(O=g.floating[k]||d.floating[w]);const X=F/2-A/2,ne=O/2-_[w]/2-1,fe=Math.min(S[T],ne),ee=Math.min(S[C],ne),K=fe,te=O-_[w]-ee,W=O/2-_[w]/2+X,D=q0(K,W,te),z=!b.arrow&&Fr(c)!=null&&W!==D&&d.reference[w]/2-(W<K?fe:ee)-_[w]/2<0,P=z?W<K?W-K:W-te:0;return{[j]:N[j]+P,data:{[j]:D,centerOffset:W-D-P,...z&&{alignmentOffset:P}},reset:z}}}),LR=(n,r)=>({...zR(n),options:[n,r]}),IR=FO().fn,BR={name:"hide",async fn(n){const{width:r,height:o,x:a,y:c}=n.rects.reference,d=r===0&&o===0&&a===0&&c===0;return{data:{referenceHidden:(await IR(n)).data?.referenceHidden||d}}}},Lc={sideX:"left",sideY:"top"},q1={name:"adaptiveOrigin",async fn(n){const{x:r,y:o,rects:{floating:a},elements:{floating:c},platform:d,strategy:p,placement:g}=n,b=Xt(c),m=b.getComputedStyle(c);if(!(m.transitionDuration!=="0s"&&m.transitionDuration!==""))return{x:r,y:o,data:Lc};const x=await d.getOffsetParent?.(c);let S={width:0,height:0};if(p==="fixed"&&b?.visualViewport)S={width:b.visualViewport.width,height:b.visualViewport.height};else if(x===b){const T=xt(c);S={width:T.documentElement.clientWidth,height:T.documentElement.clientHeight}}else await d.isElement?.(x)&&(S=await d.getDimensions(x));const N=qn(g);let j=r,w=o;N==="left"&&(j=S.width-(r+a.width)),N==="top"&&(w=S.height-(o+a.height));const _=N==="left"?"right":Lc.sideX,E=N==="top"?"bottom":Lc.sideY;return{x:j,y:w,data:{sideX:_,sideY:E}}}};function G1(n,r,o){const a=n==="inline-start"||n==="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 nv(n,r,o){const{rects:a,placement:c}=n;return{side:G1(r,qn(c),o),align:Fr(c)||"center",anchor:{width:a.reference.width,height:a.reference.height},positioner:{width:a.floating.width,height:a.floating.height}}}function $1(n){const{anchor:r,positionMethod:o="absolute",side:a="bottom",sideOffset:c=0,align:d="center",alignOffset:p=0,collisionBoundary:g,collisionPadding:b=5,sticky:m=!1,arrowPadding:y=5,disableAnchorTracking:x=!1,inline:S,keepMounted:N=!1,floatingRootContext:j,mounted:w,collisionAvoidance:_,shiftCrossAxis:E=!1,nodeId:T,adaptiveOrigin:C,lazyFlip:k=!1,externalTree:F}=n,[A,L]=h.useState(null);!w&&A!==null&&L(null);const O=_.side||"flip",X=_.align||"flip",ne=_.fallbackAxisSide||"end",fe=typeof r=="function"?r:void 0,ee=We(fe),K=fe?ee:r,te=on(r),W=on(w),z=F1()==="rtl",P=A||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":z?"left":"right","inline-start":z?"right":"left"}[a],U=d==="center"?P:`${P}-${d}`;let V=b;const M=1,B=a==="bottom"?M:0,I=a==="top"?M:0,H=a==="right"?M:0,q=a==="left"?M:0;typeof V=="number"?V={top:V+B,right:V+q,bottom:V+I,left:V+H}:V&&(V={top:(V.top||0)+B,right:(V.right||0)+q,bottom:(V.bottom||0)+I,left:(V.left||0)+H});const J={boundary:g==="clipping-ancestors"?"clippingAncestors":g,padding:V},he=h.useRef(null),re=on(c),ce=on(p),Ie=typeof c!="function"?c:0,_e=typeof p!="function"?p:0,we=[];S&&we.push(S),we.push(UO(ye=>{const qe=nv(ye,a,z),Tt=typeof re.current=="function"?re.current(qe):re.current,qt=typeof ce.current=="function"?ce.current(qe):ce.current;return{mainAxis:Tt,crossAxis:qt,alignmentAxis:qt}},[Ie,_e,z,a]));const Be=X==="none"&&O!=="shift",ge=!Be&&(m||E||O==="shift"),ie=O==="none"?null:PO({...J,padding:{top:V.top+M,right:V.right+M,bottom:V.bottom+M,left:V.left+M},mainAxis:!E&&O==="flip",crossAxis:X==="flip"?"alignment":!1,fallbackAxisSideDirection:ne}),He=Be?null:HO(ye=>{const qe=xt(ye.elements.floating).documentElement;return{...J,rootBoundary:E?{x:0,y:0,width:qe.clientWidth,height:qe.clientHeight}:void 0,mainAxis:X!=="none",crossAxis:ge,limiter:m||E?void 0:YO(Tt=>{if(!he.current)return{};const{width:qt,height:Ot}=he.current.getBoundingClientRect(),Ge=ls(qn(Tt.placement)),yt=Ge==="y"?qt:Ot,Yt=Ge==="y"?V.left+V.right:V.top+V.bottom;return{offset:yt/2+Yt/2}})}},[J,m,E,V,X]);O==="shift"||X==="shift"||d==="center"?we.push(He,ie):we.push(ie,He),we.push(VO({...J,apply({elements:{floating:ye},availableWidth:qe,availableHeight:Tt,rects:qt}){if(!W.current)return;const Ot=ye.style;Ot.setProperty("--available-width",`${qe}px`),Ot.setProperty("--available-height",`${Tt}px`);const Ge=Xt(ye).devicePixelRatio||1,{x:yt,y:Yt,width:Kt,height:Kn}=qt.reference,Dt=(Math.round((yt+Kt)*Ge)-Math.round(yt*Ge))/Ge,ln=(Math.round((Yt+Kn)*Ge)-Math.round(Yt*Ge))/Ge;Ot.setProperty("--anchor-width",`${Dt}px`),Ot.setProperty("--anchor-height",`${ln}px`)}}),LR(ye=>({element:he.current||xt(ye.elements.floating).createElement("div"),padding:y,offsetParent:"floating"}),[y]),{name:"transformOrigin",fn(ye){const{elements:qe,middlewareData:Tt,placement:qt,rects:Ot,y:Ge}=ye,yt=qn(qt),Yt=ls(yt),Kt=he.current,Kn=Tt.arrow?.x||0,Dt=Tt.arrow?.y||0,ln=Kt?.clientWidth||0,_s=Kt?.clientHeight||0,cn=Kn+ln/2,hn=Dt+_s/2,fr=Math.abs(Tt.shift?.y||0),In=Ot.reference.height/2,As=typeof c=="function"?c(nv(ye,a,z)):c,si=fr>As,hs={top:`${cn}px calc(100% + ${As}px)`,bottom:`${cn}px ${-As}px`,left:`calc(100% + ${As}px) ${hn}px`,right:`${-As}px ${hn}px`}[yt],nn=`${cn}px ${Ot.reference.y+In-Ge}px`;return qe.floating.style.setProperty("--transform-origin",ge&&Yt==="y"&&si?nn:hs),{}}},BR,C),Xe(()=>{!w&&j&&j.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[w,j]);const Re=h.useMemo(()=>({elementResize:!x&&typeof ResizeObserver<"u",layoutShift:!x&&typeof IntersectionObserver<"u"}),[x]),{refs:ze,elements:ve,x:ue,y:ke,middlewareData:Ae,update:Q,placement:Y,context:G,isPositioned:je,floatingStyles:xe}=uR({rootContext:j,open:N?w:void 0,placement:U,middleware:we,strategy:o,whileElementsMounted:N?void 0:(...ye)=>Xy(...ye,Re),nodeId:T,externalTree:F}),{sideX:oe,sideY:Ce}=Ae.adaptiveOrigin||Lc,Ue=je?o:"fixed",Qe=h.useMemo(()=>{const ye=C?{position:Ue,[oe]:ue,[Ce]:ke}:{position:Ue,...xe};return je||(ye.opacity=0),ye},[C,Ue,oe,ue,Ce,ke,xe,je]),ht=h.useRef(null);Xe(()=>{if(!w)return;const ye=te.current,qe=typeof ye=="function"?ye():ye,qt=(sv(qe)?qe.current:qe)||null||null;qt!==ht.current&&(ze.setPositionReference(qt),ht.current=qt)},[w,ze,K,te]),h.useEffect(()=>{if(!w)return;const ye=te.current;typeof ye!="function"&&sv(ye)&&ye.current!==ht.current&&(ze.setPositionReference(ye.current),ht.current=ye.current)},[w,ze,K,te]),h.useEffect(()=>{if(N&&w&&ve.reference&&ve.floating)return Xy(ve.reference,ve.floating,Q,Re)},[N,w,ve,Q,Re]);const Mt=qn(Y),ut=G1(a,Mt,z),It=Fr(Y)||"center",jt=!!Ae.hide?.referenceHidden;Xe(()=>{k&&w&&je&&L(Mt)},[k,w,je,Mt]);const Ht=h.useMemo(()=>({position:"absolute",top:Ae.arrow?.y,left:Ae.arrow?.x}),[Ae.arrow]),Te=Ae.arrow?.centerOffset!==0;return h.useMemo(()=>({positionerStyles:Qe,arrowStyles:Ht,arrowRef:he,arrowUncentered:Te,side:ut,align:It,physicalSide:Mt,anchorHidden:jt,refs:ze,context:G,isPositioned:je,update:Q}),[Qe,Ht,he,Te,ut,It,Mt,jt,ze,G,je,Q])}function sv(n){return n!=null&&"current"in n}function UR(n){const{children:r,elementsRef:o,labelsRef:a,onMapChange:c}=n,d=We(c),p=h.useRef(0),g=Ln(YR).current,b=Ln(HR).current,[m,y]=h.useState(0),x=h.useRef(m),S=We((E,T)=>{b.set(E,T??null),x.current+=1,y(x.current)}),N=We(E=>{b.delete(E),x.current+=1,y(x.current)}),j=h.useMemo(()=>{const E=new Map;return Array.from(b.keys()).filter(C=>C.isConnected).sort(PR).forEach((C,k)=>{const F=b.get(C)??{};E.set(C,{...F,index:k})}),E},[b,m]);Xe(()=>{if(typeof MutationObserver!="function"||j.size===0)return;const E=new MutationObserver(T=>{const C=new Set,k=F=>C.has(F)?C.delete(F):C.add(F);T.forEach(F=>{F.removedNodes.forEach(k),F.addedNodes.forEach(k)}),C.size===0&&(x.current+=1,y(x.current))});return j.forEach((T,C)=>{C.parentElement&&E.observe(C.parentElement,{childList:!0})}),()=>{E.disconnect()}},[j]),Xe(()=>{x.current===m&&(o.current.length!==j.size&&(o.current.length=j.size),a&&a.current.length!==j.size&&(a.current.length=j.size),p.current=j.size),d(j)},[d,j,o,a,m]),Xe(()=>()=>{o.current=[]},[o]),Xe(()=>()=>{a&&(a.current=[])},[a]);const w=We(E=>(g.add(E),()=>{g.delete(E)}));Xe(()=>{g.forEach(E=>E(j))},[g,j]);const _=h.useMemo(()=>({register:S,unregister:N,subscribeMapChange:w,elementsRef:o,labelsRef:a,nextIndexRef:p}),[S,N,w,o,a,p]);return i.jsx(I0.Provider,{value:_,children:r})}function HR(){return new Map}function YR(){return new Set}function PR(n,r){const o=n.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 Ip=h.forwardRef(function(r,o){const{cutout:a,...c}=r;let d;if(a){const p=a.getBoundingClientRect();d=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${p.left}px ${p.top}px,${p.left}px ${p.bottom}px,${p.right}px ${p.bottom}px,${p.right}px ${p.top}px,${p.left}px ${p.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 X1(n,r,{styles:o,transitionStatus:a,props:c,refs:d,hidden:p,inert:g=!1}){const b={...o};return g&&(b.pointerEvents="none"),pn("div",n,{state:r,ref:d,props:[{role:"presentation",hidden:p,style:b},zp(a),c],stateAttributesMapping:Wl})}let rv={},ov={},av="";function VR(n){if(typeof document>"u")return!1;const r=xt(n);return Xt(r).innerWidth-r.documentElement.clientWidth>0}function FR(n){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const o=xt(n),a=o.documentElement,c=o.body,d=jo(a)?a:c,p=d.style.overflowY,g=a.style.scrollbarGutter;a.style.scrollbarGutter="stable",d.style.overflowY="scroll";const b=d.offsetWidth;d.style.overflowY="hidden";const m=d.offsetWidth;return d.style.overflowY=p,a.style.scrollbarGutter=g,b===m}function qR(n){const r=xt(n),o=r.documentElement,a=r.body,c=jo(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 GR(n){const r=xt(n),o=r.documentElement,a=r.body,c=Xt(o);let d=0,p=0,g=!1;const b=js.create();if(wo&&(c.visualViewport?.scale??1)!==1)return()=>{};function m(){const N=c.getComputedStyle(o),j=c.getComputedStyle(a),E=(N.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";d=o.scrollTop,p=o.scrollLeft,rv={scrollbarGutter:o.style.scrollbarGutter,overflowY:o.style.overflowY,overflowX:o.style.overflowX},av=o.style.scrollBehavior,ov={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,C=o.scrollWidth>o.clientWidth,k=N.overflowY==="scroll"||j.overflowY==="scroll",F=N.overflowX==="scroll"||j.overflowX==="scroll",A=Math.max(0,c.innerWidth-a.clientWidth),L=Math.max(0,c.innerHeight-a.clientHeight),O=parseFloat(j.marginTop)+parseFloat(j.marginBottom),X=parseFloat(j.marginLeft)+parseFloat(j.marginRight),ne=jo(o)?o:a;if(g=FR(n),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||k)&&(o.style.overflowY="scroll"),(C||F)&&(o.style.overflowX="scroll"),Object.assign(a.style,{position:"relative",height:O||L?`calc(100dvh - ${O+L}px)`:"100dvh",width:X||A?`calc(100vw - ${X+A}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),a.scrollTop=d,a.scrollLeft=p,o.setAttribute("data-base-ui-scroll-locked",""),o.style.scrollBehavior="unset"}function y(){Object.assign(o.style,rv),Object.assign(a.style,ov),g||(o.scrollTop=d,o.scrollLeft=p,o.removeAttribute("data-base-ui-scroll-locked"),o.style.scrollBehavior=av)}function x(){y(),b.request(m)}m();const S=ct(c,"resize",x);return()=>{b.cancel(),y(),typeof c.removeEventListener=="function"&&S()}}class $R{lockCount=0;restore=null;timeoutLock=ps.create();timeoutUnlock=ps.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=xt(r).documentElement,c=Xt(a).getComputedStyle(a).overflowY;if(c==="hidden"||c==="clip"){this.restore=fn;return}const d=iu||!VR(r);this.restore=d?qR(r):GR(r)}}const XR=new $R;function K1(n=!0,r=null){Xe(()=>{if(n)return XR.acquire(r)},[n,r])}const KR=20;function Q1(n,r,o,a){const[c,d]=h.useState(!1);Xe(()=>{if(!n||!r||o==null){d(!1);return}const p=xt(o).documentElement.clientWidth,g=o.offsetWidth;d(p>0&&g>0&&g>=p-KR)},[n,r,o]),K1(n&&(!r||c),a)}const QR=h.forwardRef(function(r,o){const{anchor:a,positionMethod:c="absolute",className:d,render:p,side:g,align:b,sideOffset:m=0,alignOffset:y=0,collisionBoundary:x="clipping-ancestors",collisionPadding:S=5,arrowPadding:N=5,sticky:j=!1,disableAnchorTracking:w=!1,collisionAvoidance:_=KC,style:E,...T}=r,{store:C}=To(),k=AR(),F=ou(!0),A=C.useState("parent"),L=C.useState("floatingRootContext"),O=C.useState("floatingTreeRoot"),X=C.useState("mounted"),ne=C.useState("open"),fe=C.useState("modal"),ee=C.useState("openMethod"),K=C.useState("activeTriggerElement"),te=C.useState("transitionStatus"),W=C.useState("positionerElement"),D=C.useState("instantType"),z=C.useState("hasViewport"),P=C.useState("lastOpenChangeReason"),U=C.useState("floatingNodeId"),V=C.useState("floatingParentNodeId"),M=L.useState("domReferenceElement"),B=h.useRef(null),I=fp(W,!1,!1);let H=a,q=m,J=y,he=b,re=_;A.type==="context-menu"&&(H=a??A.context?.anchor,he=he??"start",!g&&he!=="center"&&(J=r.alignOffset??2,q=r.sideOffset??-5));let ce=g,Ie=he;A.type==="menu"?(ce=ce??"inline-end",Ie=Ie??"start",re=r.collisionAvoidance??l1):A.type==="menubar"&&(ce=ce??(A.context.orientation==="vertical"?"inline-end":"bottom"),Ie=Ie??"start");const _e=A.type==="context-menu",we=$1({anchor:H,floatingRootContext:L,positionMethod:F?"fixed":c,mounted:X,side:ce,sideOffset:q,align:Ie,alignOffset:J,arrowPadding:_e?0:N,collisionBoundary:x,collisionPadding:S,sticky:j,nodeId:U,keepMounted:k,disableAnchorTracking:w,collisionAvoidance:re,shiftCrossAxis:_e&&!("side"in re&&re.side==="flip"),externalTree:O,adaptiveOrigin:z?q1:void 0});h.useEffect(()=>{function ue(ke){ke.open&&(ke.parentNodeId===U&&C.set("hoverEnabled",!1),ke.nodeId!==U&&ke.parentNodeId===C.select("floatingParentNodeId")&&C.setOpen(!1,bt(Al)))}return O.events.on("menuopenchange",ue),()=>{O.events.off("menuopenchange",ue)}},[C,O.events,U]),h.useEffect(()=>{if(C.select("floatingParentNodeId")==null)return;function ue(ke){if(ke.open||ke.nodeId!==C.select("floatingParentNodeId"))return;const Ae=ke.reason??Al;C.setOpen(!1,bt(Ae))}return O.events.on("menuopenchange",ue),()=>{O.events.off("menuopenchange",ue)}},[O.events,C]);const Be=Xn();h.useEffect(()=>{ne||Be.clear()},[ne,Be]),h.useEffect(()=>{function ue(ke){if(!(!ne||ke.nodeId!==C.select("floatingParentNodeId")))if(ke.target&&K&&K!==ke.target){const Ae=C.select("closeDelay");Ae>0?Be.isStarted()||Be.start(Ae,()=>{C.setOpen(!1,bt(Al))}):C.setOpen(!1,bt(Al))}else Be.clear()}return O.events.on("itemhover",ue),()=>{O.events.off("itemhover",ue)}},[O.events,ne,K,C,Be]),h.useEffect(()=>{const ue={open:ne,nodeId:U,parentNodeId:V,reason:C.select("lastOpenChangeReason")};O.events.emit("menuopenchange",ue)},[O.events,ne,C,U,V]),Xe(()=>{const ue=M,ke=B.current;if(ue&&(B.current=ue),ke&&ue&&ue!==ke){C.set("instantType",void 0);const Ae=new AbortController;return I(()=>{C.set("instantType","trigger-change")},Ae.signal),()=>{Ae.abort()}}},[M,I,C]);const ge={open:ne,side:we.side,align:we.align,anchorHidden:we.anchorHidden,nested:A.type==="menu",instant:D},ie=A.type==="menubar"&&A.context.modal;Q1(ne&&(ie||fe&&P!==mn),ee==="touch",W,K);const Re=X1(r,ge,{styles:we.positionerStyles,transitionStatus:te,props:T,refs:[o,C.useStateSetter("positionerElement")],hidden:!X,inert:!ne}),ze=X&&A.type!=="menu"&&(A.type!=="menubar"&&fe&&P!==mn||A.type==="menubar"&&A.context.modal);let ve=null;return A.type==="menubar"?ve=A.context.contentElement:A.type===void 0&&(ve=K),i.jsxs(_0.Provider,{value:we,children:[ze&&i.jsx(Ip,{ref:A.type==="context-menu"||A.type==="nested-context-menu"?A.context.internalBackdropRef:null,inert:Lp(!ne),cutout:ve}),i.jsx(m1,{id:U,children:i.jsx(UR,{elementsRef:C.context.itemDomElements,labelsRef:C.context.itemLabels,children:Re})})]})}),ZR=h.createContext(null);function Z1(n){return h.useContext(ZR)}function JR(n){const r=h.useRef(""),o=h.useCallback(c=>{c.defaultPrevented||(r.current=c.pointerType,n(c,c.pointerType))},[n]);return{onClick:h.useCallback(c=>{if(c.detail===0){n(c,"keyboard");return}"pointerType"in c?n(c,c.pointerType):n(c,r.current),r.current=""},[n]),onPointerDown:o}}function WR(n,r){const o=h.useRef(n),a=We(r);Xe(()=>{o.current!==n&&a(o.current)},[n,a]),Xe(()=>{o.current=n},[n])}function J1(n,r){const o=We((d,p)=>{(typeof n=="function"?n():n)||r(p||(iu?"touch":""))}),{onClick:a,onPointerDown:c}=JR(o);return h.useMemo(()=>({onClick:a,onPointerDown:c}),[a,c])}function ek(n){const[r,o]=h.useState(null),a=J1(n,o);return WR(n,c=>{c&&!n&&o(null)}),h.useMemo(()=>({openMethod:r,triggerProps:a}),[r,a])}const tk={...Ap,disabled:Ve(n=>n.parent.type==="menubar"&&n.parent.context.disabled||n.disabled),modal:Ve(n=>(n.parent.type===void 0||n.parent.type==="context-menu")&&(n.modal??!0)),openMethod:Ve(n=>n.openMethod),allowMouseEnter:Ve(n=>n.allowMouseEnter),highlightItemOnHover:Ve(n=>n.highlightItemOnHover),stickIfOpen:Ve(n=>n.stickIfOpen),parent:Ve(n=>n.parent),rootId:Ve(n=>n.parent.type==="menu"?n.parent.store.select("rootId"):n.parent.type!==void 0?n.parent.context.rootId:n.rootId),activeIndex:Ve(n=>n.activeIndex),isActive:Ve((n,r)=>n.activeIndex===r),hoverEnabled:Ve(n=>n.hoverEnabled),instantType:Ve(n=>n.instantType),lastOpenChangeReason:Ve(n=>n.openChangeReason),floatingTreeRoot:Ve(n=>n.parent.type==="menu"?n.parent.store.select("floatingTreeRoot"):n.floatingTreeRoot),floatingNodeId:Ve(n=>n.floatingNodeId),floatingParentNodeId:Ve(n=>n.floatingParentNodeId),itemProps:Ve(n=>n.itemProps),closeDelay:Ve(n=>n.closeDelay),hasViewport:Ve(n=>n.hasViewport),keyboardEventRelay:Ve(n=>{if(n.keyboardEventRelay)return n.keyboardEventRelay;if(n.parent.type==="menu")return n.parent.store.select("keyboardEventRelay")})};class Bp extends hu{constructor(r){super({...nk(),...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 ti},tk),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 p=o.store.select("rootId"),g=o.store.select("floatingTreeRoot"),b=o.store.select("keyboardEventRelay");a===p&&c===g&&d===b||(a=p,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=Ln(()=>new Bp(o)).current;return r??a}unsubscribeParentListener=null}function nk(){return{...kp(),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 vp,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:Ut,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}const sk=h.createContext(void 0);function rk(){return h.useContext(sk)}const ok=w1(function(r){const{children:o,open:a,onOpenChange:c,onOpenChangeComplete:d,defaultOpen:p=!1,disabled:g=!1,modal:b,loopFocus:m=!0,orientation:y="vertical",actionsRef:x,closeParentOnEsc:S=!1,handle:N,triggerId:j,defaultTriggerId:w=null,highlightItemOnHover:_=!0}=r,E=ou(!0),T=To(!0),C=Z1(!0),k=rk(),F=h.useMemo(()=>k&&T?{type:"menu",store:T.store}:C?{type:"menubar",context:C}:E&&!T?{type:"context-menu",context:E}:{type:void 0},[E,T,C,k]),A=Bp.useStore(N?.store,{open:p,openProp:a,activeTriggerId:w,triggerIdProp:j,parent:F});A1(A,a,p,w),A.useControlledProp("openProp",a),A.useControlledProp("triggerIdProp",j),A.useContextCallback("onOpenChangeComplete",d);const L=So(),O=So(),X=A.useState("floatingTreeRoot"),ne=Sp(X),fe=ur(),ee=A.useState("open"),K=A.useState("activeTriggerElement"),te=A.useState("positionerElement"),W=A.useState("hoverEnabled"),D=A.useState("disabled"),z=A.useState("lastOpenChangeReason"),P=A.useState("parent"),U=A.useState("activeIndex"),V=A.useState("payload"),M=A.useState("floatingParentNodeId"),B=h.useRef(null),I=h.useRef(P.type!=="context-menu"),H=Xn(),q=h.useRef(!0),J=Xn(),he=M!=null,{openMethod:re,triggerProps:ce}=ek(ee);A.useSyncedValues({disabled:g,highlightItemOnHover:_,modal:P.type===void 0?b:void 0,openMethod:re,rootId:L}),Cp(A);const{forceUnmount:Ie}=Op(ee,A,()=>{A.update({allowMouseEnter:!1,stickIfOpen:!0})});Xe(()=>{E&&!T?A.update({parent:{type:"context-menu",context:E},floatingNodeId:ne,floatingParentNodeId:fe}):T&&A.update({floatingNodeId:ne,floatingParentNodeId:fe})},[E,T,ne,fe,A]),h.useEffect(()=>{if(ee||(B.current=null),P.type==="context-menu"){if(!ee){H.clear(),I.current=!1;return}H.start(500,()=>{I.current=!0})}},[H,ee,P.type]),Xe(()=>{!ee&&!W&&A.set("hoverEnabled",!0)},[ee,W,A]);const _e=We((oe,Ce)=>{const Ue=Ce.reason;if(ee===oe&&Ce.trigger===K&&z===Ue)return;const Qe=_1(Ce);if(!oe&&Ce.trigger==null&&(Ce.trigger=K??void 0),c?.(oe,Ce),Ce.isCanceled)return;A.state.floatingRootContext.dispatchOpenChange(oe,Ce);const ht=Ce.event;if(oe===!1&&ht?.type==="click"&&ht.pointerType==="touch"&&!q.current)return;oe&&Ue===zl?(q.current=!1,J.start(300,()=>{q.current=!0})):(q.current=!0,J.clear());const Mt=(Ue===yo||Ue===z0)&&ht.detail===0&&ht?.isTrusted,ut=!oe&&(Ue===au||Ue==null),It={open:oe,openChangeReason:Ue};B.current=Ce.event??null,wp(It,oe,Ce.trigger,Qe()),A.update(It),P.type==="menubar"&&(Ue===zl||Ue===vo||Ue===mn||Ue===ym||Ue===Al)?A.set("instantType","group"):Mt||ut?A.set("instantType",Mt?"click":"dismiss"):A.set("instantType",void 0)}),we=O1({popupStore:A,floatingId:O,nested:fe!=null,onOpenChange:_e}),Be=we.context.events;h.useEffect(()=>{const oe=({open:Ce,eventDetails:Ue})=>_e(Ce,Ue);return Be.on("setOpen",oe),()=>{Be?.off("setOpen",oe)}},[Be,_e]);const ge=h.useCallback(()=>{A.setOpen(!1,bt(ip))},[A]);h.useImperativeHandle(x,()=>({unmount:Ie,close:ge}),[Ie,ge]);let ie;P.type==="context-menu"&&(ie=P.context),h.useImperativeHandle(ie?.positionerRef,()=>te,[te]),h.useImperativeHandle(ie?.actionsRef,()=>({setOpen:_e}),[_e]);const He=jp(we,{enabled:!D,bubbles:{escapeKey:S&&P.type==="menu"},outsidePress(){return P.type!=="context-menu"||B.current?.type==="contextmenu"?!0:I.current},externalTree:he?X:void 0}),Re=F1(),ze=h.useCallback(oe=>{A.select("activeIndex")!==oe&&A.set("activeIndex",oe)},[A]),ve=gR(we,{enabled:!D,listRef:A.context.itemDomElements,activeIndex:U,nested:P.type!==void 0,loopFocus:m,orientation:y,parentOrientation:P.type==="menubar"?P.context.orientation:void 0,rtl:Re==="rtl",disabledIndices:Fc,onNavigate:ze,openOnArrowKeyDown:P.type!=="context-menu",externalTree:he?X:void 0,focusItemOnHover:_}),ue=h.useCallback(oe=>{A.context.typingRef.current=oe},[A]),ke=xR(we,{enabled:!D,listRef:A.context.itemLabels,elementsRef:A.context.itemDomElements,activeIndex:U,resetMs:$C,onMatch:oe=>{ee&&oe!==U&&A.set("activeIndex",oe)},onTyping:ue}),Ae=h.useMemo(()=>{const oe=tr(ke.reference,ve.reference,He.reference,{onMouseMove(){A.set("allowMouseEnter",!0)}},ce);return oe["aria-haspopup"]="menu",oe["aria-expanded"]=ee,oe},[A,ke.reference,ve.reference,He.reference,ce,ee]),Q=h.useMemo(()=>{const oe=tr(ve.trigger,He.trigger,ce);return oe["aria-haspopup"]="menu",oe["aria-expanded"]=!1,oe},[ve.trigger,He.trigger,ce]),Y=h.useMemo(()=>tr(xu,{id:O,role:"menu","aria-labelledby":K?.id,onMouseMove(){A.set("allowMouseEnter",!0),P.type==="menu"&&A.set("hoverEnabled",!1)},onClick(){A.select("hoverEnabled")&&A.set("hoverEnabled",!1)},onKeyDown(oe){const Ce=A.select("keyboardEventRelay");Ce&&!oe.isPropagationStopped()&&Ce(oe)}},ke.floating,ve.floating,He.floating),[K,O,P.type,A,ke.floating,ve.floating,He.floating]),G=ve.item??Ut;Rp(A,{floatingRootContext:we,activeTriggerProps:Ae,inactiveTriggerProps:Q,popupProps:Y,itemProps:G});const je=h.useMemo(()=>({store:A,parent:F}),[A,F]),xe=i.jsx(M0.Provider,{value:je,children:typeof o=="function"?o({payload:V}):o});return P.type===void 0||P.type==="context-menu"?i.jsx(p1,{externalTree:X,children:xe}):xe});function ak(n){const r=n.getBoundingClientRect(),o=Xt(n);if(up)return r;const a=o.getComputedStyle(n,"::before"),c=o.getComputedStyle(n,"::after");if(!(a.content!=="none"||c.content!=="none"))return r;const p=parseFloat(a.width)||0,g=parseFloat(a.height)||0,b=parseFloat(c.width)||0,m=parseFloat(c.height)||0,y=Math.max(r.width,p,b),x=Math.max(r.height,g,m),S=y-r.width,N=x-r.height;return{left:r.left-S/2,right:r.right+S/2,top:r.top-N/2,bottom:r.bottom+N/2}}function lk(n={}){const{highlightItemOnHover:r,highlightedIndex:o,onHighlightedIndexChange:a}=op(),{ref:c,index:d}=B0(n),p=o===d,g=h.useRef(null),b=Ca(c,g);return{compositeProps:{tabIndex:p?0:-1,onFocus(){a(d)},onMouseMove(){const y=g.current;if(!r||!y)return;const x=y.hasAttribute("disabled")||y.ariaDisabled==="true";!p&&!x&&y.focus()}},compositeRef:b,index:d}}function ik(n){const{render:r,className:o,style:a,state:c=Ut,props:d=Fc,refs:p=Fc,metadata:g,stateAttributesMapping:b,tag:m="div",...y}=n,{compositeProps:x,compositeRef:S}=lk({metadata:g});return pn(m,n,{state:c,ref:[...p,S],props:[x,...d,y],stateAttributesMapping:b})}function W1(n){if(Bt(n)&&n.hasAttribute("data-rootownerid"))return n.getAttribute("data-rootownerid")??void 0;if(!er(n))return W1(or(n))}function eS(n,r){const o=h.useRef(null);function a(d){ar.flushSync(()=>{n.setOpen(!1,bt(vo,d.nativeEvent,d.currentTarget))}),VC(o.current)?.focus()}function c(d){const p=n.select("positionerElement");if(p&&Ea(d,p))n.context.beforeContentFocusGuardRef.current?.focus();else{ar.flushSync(()=>{n.setOpen(!1,bt(vo,d.nativeEvent,d.currentTarget))});let g=PC(n.context.triggerFocusTargetRef.current||r.current);for(;g!==null&&Je(p,g);){const b=g;if(g=bp(g),g===b)break}g?.focus()}}return{preFocusGuardRef:o,handlePreFocusGuardFocus:a,handleFocusTargetFocus:c}}function ck(n){const{enabled:r=!0,mouseDownAction:o,open:a}=n,c=h.useRef(!1);return h.useMemo(()=>r?{onMouseDown:d=>{(o==="open"&&!a||o==="close"&&a)&&(c.current=!0,xt(d.currentTarget).addEventListener("click",()=>{c.current=!1},{once:!0}))},onClick:d=>{c.current&&(c.current=!1,d.preventBaseUIHandler())}}:Ut,[r,o,a])}const Cc=2,uk=ZO(function(r,o){const{render:a,className:c,style:d,disabled:p=!1,nativeButton:g=!0,id:b,openOnHover:m,delay:y=100,closeDelay:x=0,handle:S,payload:N,...j}=r,w=To(!0),_=S?.store??w?.store;if(!_)throw new Error(jn(85));const E=Co(b),T=_.useState("isTriggerActive",E),C=_.useState("floatingRootContext"),k=_.useState("isOpenedByTrigger",E),F=_.useState("triggerPopupId",E),A=h.useRef(null),L=fk(),O=op(!0),X=qr(),ne=h.useMemo(()=>X??new vp,[X]),fe=Sp(ne),ee=ur(),{registerTrigger:K,isMountedByThisTrigger:te}=M1(E,A,_,{payload:N,closeDelay:x,parent:L,floatingTreeRoot:ne,floatingNodeId:fe,floatingParentNodeId:ee,keyboardEventRelay:O?.relayKeyboardEvent}),W=L.type==="menubar",D=_.useState("disabled"),z=p||D||W&&L.context.disabled,{getButtonProps:P,buttonRef:U}=Jl({disabled:z,native:g});h.useEffect(()=>{!k&&L.type===void 0&&(_.context.allowMouseUpTriggerRef.current=!1)},[_,k,L.type]);const V=h.useRef(null),M=Xn(),B=We(ve=>{if(!V.current)return;M.clear(),_.context.allowMouseUpTriggerRef.current=!1;const ue=ve.target;if(Je(V.current,ue)||Je(_.select("positionerElement"),ue)||ue===V.current||ue!=null&&W1(ue)===_.select("rootId"))return;const ke=ak(V.current);ve.clientX>=ke.left-Cc&&ve.clientX<=ke.right+Cc&&ve.clientY>=ke.top-Cc&&ve.clientY<=ke.bottom+Cc||ne.events.emit("close",{domEvent:ve,reason:Kw})});h.useEffect(()=>{k&&_.select("lastOpenChangeReason")===mn&&xt(V.current).addEventListener("mouseup",B,{once:!0})},[k,B,_]);const I=W&&L.context.hasSubmenuOpen,q=H1(C,{enabled:(m??I)&&!z&&L.type!=="context-menu"&&(!W||I&&!te),handleClose:Y1({blockPointerEvents:!W}),mouseOnly:!0,move:!1,restMs:L.type===void 0?y:void 0,delay:{close:x},triggerElementRef:A,externalTree:ne,isActiveTrigger:T,isClosing:()=>_.select("transitionStatus")==="ending"}),J=dk(k,_.select("lastOpenChangeReason")),he=h1(C,{enabled:!z&&L.type!=="context-menu",event:k&&W?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:L.type===void 0?J:!1}),re=dR(C,{enabled:!z&&I}),ce=ck({open:k,enabled:W,mouseDownAction:"open"}),Ie=h.useMemo(()=>tr(re.reference,he.reference),[re.reference,he.reference]),_e=_.useState("triggerProps",te),{preFocusGuardRef:we,handlePreFocusGuardFocus:Be,handleFocusTargetFocus:ge}=eS(_,A),ie={disabled:z,open:k},He=[V,o,U,K,A],Re=[Ie,q??Ut,_e,{"aria-haspopup":"menu","aria-controls":F,id:E,onMouseDown:ve=>{if(_.select("open"))return;M.start(200,()=>{_.context.allowMouseUpTriggerRef.current=!0}),xt(ve.currentTarget).addEventListener("mouseup",B,{once:!0})}},W?{role:"menuitem"}:{},ce,j,P],ze=pn("button",r,{enabled:!W,stateAttributesMapping:bm,state:ie,ref:He,props:Re});return W?i.jsx(ik,{tag:"button",render:a,className:c,style:d,state:ie,refs:He,props:Re,stateAttributesMapping:bm}):k?i.jsxs(h.Fragment,{children:[i.jsx(Yr,{ref:we,onFocus:Be},`${E}-pre-focus-guard`),i.jsx(h.Fragment,{children:ze},E),i.jsx(Yr,{ref:_.context.triggerFocusTargetRef,onFocus:ge},`${E}-post-focus-guard`)]}):i.jsx(h.Fragment,{children:ze},E)});function dk(n,r){const o=Xn(),[a,c]=h.useState(!1);return Xe(()=>{n&&r==="trigger-hover"?(c(!0),o.start(o1,()=>{c(!1)})):n||(o.clear(),c(!1))},[n,r,o]),a}function fk(){const n=ou(!0),r=To(!0),o=Z1();return h.useMemo(()=>o?{type:"menubar",context:o}:n&&!r?{type:"context-menu",context:n}:{type:void 0},[n,r,o])}const mk=h.forwardRef(function(r,o){const{className:a,render:c,orientation:d="horizontal",style:p,...g}=r;return pn("div",r,{state:{orientation:d},ref:o,props:[{role:"separator","aria-orientation":d},g]})});function pk({...n}){return i.jsx(ok,{"data-slot":"dropdown-menu",...n})}function hk({...n}){return i.jsx(uk,{"data-slot":"dropdown-menu-trigger",...n})}function gk({align:n="start",alignOffset:r=0,side:o="bottom",sideOffset:a=4,className:c,...d}){return i.jsx(MR,{children:i.jsx(QR,{className:"isolate z-50 outline-none",align:n,alignOffset:r,side:o,sideOffset:a,children:i.jsx(_R,{"data-slot":"dropdown-menu-content",className:Ee("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",c),...d})})})}function xk({...n}){return i.jsx(pC,{"data-slot":"dropdown-menu-group",...n})}function bk({className:n,inset:r,...o}){return i.jsx(hC,{"data-slot":"dropdown-menu-label","data-inset":r,className:Ee("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7",n),...o})}function yk({className:n,inset:r,variant:o="default",...a}){return i.jsx(gC,{"data-slot":"dropdown-menu-item","data-inset":r,"data-variant":o,className:Ee("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",n),...a})}function vk({className:n,...r}){return i.jsx(mk,{"data-slot":"dropdown-menu-separator",className:Ee("-mx-1 my-1 h-px bg-border",n),...r})}const Sk={propose_create_entity:"新建实体",propose_update_entity:"更新实体",propose_add_relation:"新增关系",propose_outline_node:"新建大纲节点",propose_reorder_timepoints:"重排时间轴时间点"},Ek={character:"角色",setting:"设定",location:"地点",hook:"伏笔"};function Nk(n){const r=n.focus_entity_id??n.focus_node_id??"",o=n.focus_entity_type?Ek[n.focus_entity_type]??n.focus_entity_type:n.focus_node_id?"大纲节点":"";return o?`${o} ${r}`:r||"当前内容"}const jk=n=>typeof n=="object"&&n!==null?n:{};function Tk({disabled:n,onClose:r,onToggleCollapse:o}){const a=pt(m=>m.sessions),c=pt(m=>m.currentSessionId),d=pt(m=>m.setCurrentSession),p=pt(m=>m.newSession),g=a?.find(m=>m.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(Ul,{className:"size-4 shrink-0 text-muted-foreground"}),i.jsxs(pk,{children:[i.jsx(hk,{render:i.jsxs(me,{variant:"outline",size:"sm",disabled:n,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(xj,{className:"size-3.5 shrink-0 text-muted-foreground"})]})}),i.jsxs(gk,{align:"start",className:"w-64",children:[i.jsx(xk,{children:i.jsx(bk,{children:"会话(本项目)"})}),i.jsx(vk,{}),a&&a.length===0&&i.jsx("div",{className:"px-2 py-2 text-xs text-muted-foreground",children:"暂无历史会话"}),a?.map(m=>i.jsx(yk,{onClick:()=>d(m.id),className:Ee(m.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:m.lastMessage||"(空会话)"}),i.jsxs("span",{className:"text-xs text-muted-foreground",children:[m.messageCount," 条 · ",xo(m.updatedAt)]})]})},m.id))]})]}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"shrink-0 text-muted-foreground",disabled:n,onClick:p,"aria-label":"新会话",title:"新会话",children:i.jsx(Fm,{className:"size-4"})}),o&&i.jsx(me,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:o,"aria-label":"收起聊天面板",title:"收起聊天面板",children:i.jsx(Qj,{className:"size-4"})}),r&&i.jsx(me,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:r,"aria-label":"关闭聊天面板",children:i.jsx(ir,{className:"size-4"})})]})}function wk(){const n=pt(a=>a.disconnected),r=pt(a=>a.setDisconnected),o=pt(a=>a.resendLast);return n?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(qm,{className:"size-3.5 shrink-0"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:"上次会话已取消"}),i.jsx(me,{size:"xs",variant:"outline",className:"shrink-0",onClick:o,children:"重新发送"}),i.jsx("button",{className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",onClick:()=>r(!1),"aria-label":"关闭断连提示",children:i.jsx(ir,{className:"size-3.5"})})]}):null}function Ck(){const n=pt(o=>o.streamError),r=pt(o=>o.setStreamError);return n?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(Ym,{className:"size-3.5 shrink-0"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:n}),i.jsx("button",{className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",onClick:()=>r(null),"aria-label":"关闭错误提示",children:i.jsx(ir,{className:"size-3.5"})})]}):null}function tS({toolName:n,args:r,result:o,status:a}){const[c,d]=h.useState(!1),p=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(Hm,{className:Ee("size-3 shrink-0 transition-transform",c&&"rotate-90")}),i.jsx(ST,{className:"size-3 shrink-0"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["调用了 ",n]}),a==="error"&&i.jsx("span",{className:"shrink-0 text-destructive",children:"✗"}),p&&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 Ok({message:n,toolResults:r}){if(n.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:n.content})});if(n.role==="tool")return null;const o=Array.isArray(n.toolCalls)?n.toolCalls:[];return i.jsxs("div",{className:"space-y-1.5",children:[o.map((a,c)=>{const d=jk(a),p=d.id??`hist-${c}`,g=p?r.get(p):void 0;return i.jsx(tS,{toolName:d.tool??d.name??"工具",args:d.args,result:g?.content,status:g?"ok":void 0},p)}),n.content?i.jsx("p",{className:"font-serif text-[17px] leading-[1.72] whitespace-pre-wrap text-foreground",children:n.content}):null]})}function Rk({proposal:n}){const r=pt(d=>d.confirmProposal),o=pt(d=>d.rejectProposal),a=Sk[n.type]??n.type,c=n.status!=="pending"||n.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(Jv,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["提案:",a]}),n.status==="confirmed"&&i.jsx("span",{className:"shrink-0 text-xs text-primary",children:"✓ 已确认"}),n.status==="rejected"&&i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:"已拒绝"}),n.status==="stale"&&i.jsx("span",{className:"shrink-0 text-xs text-destructive",children:"⚠ 数据已变化,此提案已失效"})]}),n.preview!==void 0&&i.jsx("pre",{className:"mt-1 max-h-32 overflow-auto text-xs whitespace-pre-wrap text-muted-foreground",children:typeof n.preview=="string"?n.preview:JSON.stringify(n.preview,null,2)}),i.jsxs("div",{className:"mt-2 flex gap-1.5",children:[i.jsx(me,{size:"xs",disabled:c,onClick:()=>{r(n.proposalId)},children:"确认"}),i.jsx(me,{size:"xs",variant:"outline",disabled:c,onClick:()=>{o(n.proposalId)},children:"拒绝"})]})]})}function kk(){const n=pt(o=>o.focusContext),r=pt(o=>o.clearFocusContext);return n?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(Jv,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate text-muted-foreground",children:["正在讨论:",Nk(n)]}),i.jsx("button",{className:"shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted",onClick:r,"aria-label":"清除讨论上下文",children:i.jsx(ir,{className:"size-3.5"})})]}):null}function _k({disabled:n}){const[r,o]=h.useState(""),a=pt(g=>g.streaming),c=pt(g=>g.sendMessage),d=!n&&!a&&r.trim().length>0,p=()=>{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(),p())},placeholder:a?"AI 思考中…":"输入消息…",rows:1,disabled:n||a,className:"max-h-32 min-h-9 flex-1 resize-none rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs(me,{onClick:p,disabled:!d,className:"shrink-0",children:[a?i.jsx(Bl,{className:"size-4 animate-spin"}):i.jsx(uT,{className:"size-4"}),a?"思考中":"发送"]})]})})}function Ak({disabled:n}){const r=pt(m=>m.messages),o=pt(m=>m.messagesLoading),a=pt(m=>m.streamTools),c=pt(m=>m.proposals),d=h.useRef(null),p=h.useMemo(()=>{const m=new Map;for(const y of r)y.role==="tool"&&y.toolCallId&&m.set(y.toolCallId,y);return m},[r]),g=r.length;if(h.useEffect(()=>{const m=d.current;m&&(m.scrollTop=m.scrollHeight)},[g,o,a.length,c.length]),n)return i.jsxs("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-2 p-4",children:[i.jsx(Ul,{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(m=>i.jsx("div",{className:Ee(Lt,"rounded-lg bg-muted/60"),style:{height:40,width:m%2?"70%":"90%"}},m))});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(Ul,{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(m=>i.jsx(Ok,{message:m,toolResults:p},m.id)),a.map(m=>i.jsx(tS,{toolName:m.tool,args:m.args,result:m.result,status:m.status},m.id)),c.map(m=>i.jsx(Rk,{proposal:m},m.proposalId))]})})}function lv({onClose:n,onToggleCollapse:r}){const a=!Le(c=>c.config);return i.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[i.jsx(Tk,{disabled:a,onClose:n,onToggleCollapse:r}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(wk,{}),i.jsx(Ck,{})]}),i.jsx(Ak,{disabled:a}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(kk,{}),i.jsx(_k,{disabled:a})]})]})}function Mk({open:n,onClose:r,width:o,onToggleCollapse:a}){return Gm("(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:Yl}:void 0,children:i.jsx(lv,{onToggleCollapse:a})}):n?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(lv,{onClose:r})})]}):null}function Dk(n){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=n:o.appendChild(document.createTextNode(n))}const zk=n=>{switch(n){case"success":return Bk;case"info":return Hk;case"warning":return Uk;case"error":return Yk;default:return null}},Lk=Array(12).fill(0),Ik=({visible:n,className:r})=>Me.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":n},Me.createElement("div",{className:"sonner-spinner"},Lk.map((o,a)=>Me.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),Bk=Me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Me.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"})),Uk=Me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Me.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"})),Hk=Me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Me.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"})),Yk=Me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Me.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"})),Pk=Me.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"},Me.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Me.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Vk=()=>{const[n,r]=Me.useState(document.hidden);return Me.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),n};let km=1;class Fk{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:km++,p=this.toasts.find(b=>b.id===d),g=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(d)&&this.dismissedToasts.delete(d),p?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,p;const g=c.then(async m=>{if(p=["resolve",m],Me.isValidElement(m))d=!1,this.create({id:a,type:"default",message:m});else if(Gk(m)&&!m.ok){d=!1;const x=typeof o.error=="function"?await o.error(`HTTP error! status: ${m.status}`):o.error,S=typeof o.description=="function"?await o.description(`HTTP error! status: ${m.status}`):o.description,j=typeof x=="object"&&!Me.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...j})}else if(m instanceof Error){d=!1;const x=typeof o.error=="function"?await o.error(m):o.error,S=typeof o.description=="function"?await o.description(m):o.description,j=typeof x=="object"&&!Me.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...j})}else if(o.success!==void 0){d=!1;const x=typeof o.success=="function"?await o.success(m):o.success,S=typeof o.description=="function"?await o.description(m):o.description,j=typeof x=="object"&&!Me.isValidElement(x)?x:{message:x};this.create({id:a,type:"success",description:S,...j})}}).catch(async m=>{if(p=["reject",m],o.error!==void 0){d=!1;const y=typeof o.error=="function"?await o.error(m):o.error,x=typeof o.description=="function"?await o.description(m):o.description,N=typeof y=="object"&&!Me.isValidElement(y)?y:{message:y};this.create({id:a,type:"error",description:x,...N})}}).finally(()=>{d&&(this.dismiss(a),a=void 0),o.finally==null||o.finally.call(o)}),b=()=>new Promise((m,y)=>g.then(()=>p[0]==="reject"?y(p[1]):m(p[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||km++;return this.create({jsx:r(a),id:a,...o}),a},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Dn=new Fk,qk=(n,r)=>{const o=r?.id||km++;return Dn.addToast({title:n,...r,id:o}),o},Gk=n=>n&&typeof n=="object"&&"ok"in n&&typeof n.ok=="boolean"&&"status"in n&&typeof n.status=="number",$k=qk,Xk=()=>Dn.toasts,Kk=()=>Dn.getActiveToasts(),iv=Object.assign($k,{success:Dn.success,info:Dn.info,warning:Dn.warning,error:Dn.error,custom:Dn.custom,message:Dn.message,promise:Dn.promise,dismiss:Dn.dismiss,loading:Dn.loading},{getHistory:Xk,getToasts:Kk});Dk("[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 Oc(n){return n.label!==void 0}const Qk=3,Zk="24px",Jk="16px",cv=4e3,Wk=356,e_=14,t_=45,n_=200;function Es(...n){return n.filter(Boolean).join(" ")}function s_(n){const[r,o]=n.split("-"),a=[];return r&&a.push(r),o&&a.push(o),a}const r_=n=>{var r,o,a,c,d,p,g,b,m;const{invert:y,toast:x,unstyled:S,interacting:N,setHeights:j,visibleToasts:w,heights:_,index:E,toasts:T,expanded:C,removeToast:k,defaultRichColors:F,closeButton:A,style:L,cancelButtonStyle:O,actionButtonStyle:X,className:ne="",descriptionClassName:fe="",duration:ee,position:K,gap:te,expandByDefault:W,classNames:D,icons:z,closeButtonAriaLabel:P="Close toast"}=n,[U,V]=Me.useState(null),[M,B]=Me.useState(null),[I,H]=Me.useState(!1),[q,J]=Me.useState(!1),[he,re]=Me.useState(!1),[ce,Ie]=Me.useState(!1),[_e,we]=Me.useState(!1),[Be,ge]=Me.useState(0),[ie,He]=Me.useState(0),Re=Me.useRef(x.duration||ee||cv),ze=Me.useRef(null),ve=Me.useRef(null),ue=E===0,ke=E+1<=w,Ae=x.type,Q=x.dismissible!==!1,Y=x.className||"",G=x.descriptionClassName||"",je=Me.useMemo(()=>_.findIndex(Ge=>Ge.toastId===x.id)||0,[_,x.id]),xe=Me.useMemo(()=>{var Ge;return(Ge=x.closeButton)!=null?Ge:A},[x.closeButton,A]),oe=Me.useMemo(()=>x.duration||ee||cv,[x.duration,ee]),Ce=Me.useRef(0),Ue=Me.useRef(0),Qe=Me.useRef(0),ht=Me.useRef(null),[Mt,ut]=K.split("-"),It=Me.useMemo(()=>_.reduce((Ge,yt,Yt)=>Yt>=je?Ge:Ge+yt.height,0),[_,je]),jt=Vk(),Ht=x.invert||y,Te=Ae==="loading";Ue.current=Me.useMemo(()=>je*te+It,[je,It]),Me.useEffect(()=>{Re.current=oe},[oe]),Me.useEffect(()=>{H(!0)},[]),Me.useEffect(()=>{const Ge=ve.current;if(Ge){const yt=Ge.getBoundingClientRect().height;return He(yt),j(Yt=>[{toastId:x.id,height:yt,position:x.position},...Yt]),()=>j(Yt=>Yt.filter(Kt=>Kt.toastId!==x.id))}},[j,x.id]),Me.useLayoutEffect(()=>{if(!I)return;const Ge=ve.current,yt=Ge.style.height;Ge.style.height="auto";const Yt=Ge.getBoundingClientRect().height;Ge.style.height=yt,He(Yt),j(Kt=>Kt.find(Dt=>Dt.toastId===x.id)?Kt.map(Dt=>Dt.toastId===x.id?{...Dt,height:Yt}:Dt):[{toastId:x.id,height:Yt,position:x.position},...Kt])},[I,x.title,x.description,j,x.id,x.jsx,x.action,x.cancel]);const ye=Me.useCallback(()=>{J(!0),ge(Ue.current),j(Ge=>Ge.filter(yt=>yt.toastId!==x.id)),setTimeout(()=>{k(x)},n_)},[x,k,j,Ue]);Me.useEffect(()=>{if(x.promise&&Ae==="loading"||x.duration===1/0||x.type==="loading")return;let Ge;return C||N||jt?(()=>{if(Qe.current<Ce.current){const Kt=new Date().getTime()-Ce.current;Re.current=Re.current-Kt}Qe.current=new Date().getTime()})():Re.current!==1/0&&(Ce.current=new Date().getTime(),Ge=setTimeout(()=>{x.onAutoClose==null||x.onAutoClose.call(x,x),ye()},Re.current)),()=>clearTimeout(Ge)},[C,N,x,Ae,jt,ye]),Me.useEffect(()=>{x.delete&&(ye(),x.onDismiss==null||x.onDismiss.call(x,x))},[ye,x.delete]);function qe(){var Ge;if(z?.loading){var yt;return Me.createElement("div",{className:Es(D?.loader,x==null||(yt=x.classNames)==null?void 0:yt.loader,"sonner-loader"),"data-visible":Ae==="loading"},z.loading)}return Me.createElement(Ik,{className:Es(D?.loader,x==null||(Ge=x.classNames)==null?void 0:Ge.loader),visible:Ae==="loading"})}const Tt=x.icon||z?.[Ae]||zk(Ae);var qt,Ot;return Me.createElement("li",{tabIndex:0,ref:ve,className:Es(ne,Y,D?.toast,x==null||(r=x.classNames)==null?void 0:r.toast,D?.default,D?.[Ae],x==null||(o=x.classNames)==null?void 0:o[Ae]),"data-sonner-toast":"","data-rich-colors":(qt=x.richColors)!=null?qt:F,"data-styled":!(x.jsx||x.unstyled||S),"data-mounted":I,"data-promise":!!x.promise,"data-swiped":_e,"data-removed":q,"data-visible":ke,"data-y-position":Mt,"data-x-position":ut,"data-index":E,"data-front":ue,"data-swiping":he,"data-dismissible":Q,"data-type":Ae,"data-invert":Ht,"data-swipe-out":ce,"data-swipe-direction":M,"data-expanded":!!(C||W&&I),"data-testid":x.testId,style:{"--index":E,"--toasts-before":E,"--z-index":T.length-E,"--offset":`${q?Be:Ue.current}px`,"--initial-height":W?"auto":`${ie}px`,...L,...x.style},onDragEnd:()=>{re(!1),V(null),ht.current=null},onPointerDown:Ge=>{Ge.button!==2&&(Te||!Q||(ze.current=new Date,ge(Ue.current),Ge.target.setPointerCapture(Ge.pointerId),Ge.target.tagName!=="BUTTON"&&(re(!0),ht.current={x:Ge.clientX,y:Ge.clientY})))},onPointerUp:()=>{var Ge,yt,Yt;if(ce||!Q)return;ht.current=null;const Kt=Number(((Ge=ve.current)==null?void 0:Ge.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Kn=Number(((yt=ve.current)==null?void 0:yt.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Dt=new Date().getTime()-((Yt=ze.current)==null?void 0:Yt.getTime()),ln=U==="x"?Kt:Kn,_s=Math.abs(ln)/Dt;if(Math.abs(ln)>=t_||_s>.11){ge(Ue.current),x.onDismiss==null||x.onDismiss.call(x,x),B(U==="x"?Kt>0?"right":"left":Kn>0?"down":"up"),ye(),Ie(!0);return}else{var cn,hn;(cn=ve.current)==null||cn.style.setProperty("--swipe-amount-x","0px"),(hn=ve.current)==null||hn.style.setProperty("--swipe-amount-y","0px")}we(!1),re(!1),V(null)},onPointerMove:Ge=>{var yt,Yt,Kt;if(!ht.current||!Q||((yt=window.getSelection())==null?void 0:yt.toString().length)>0)return;const Dt=Ge.clientY-ht.current.y,ln=Ge.clientX-ht.current.x;var _s;const cn=(_s=n.swipeDirections)!=null?_s:s_(K);!U&&(Math.abs(ln)>1||Math.abs(Dt)>1)&&V(Math.abs(ln)>Math.abs(Dt)?"x":"y");let hn={x:0,y:0};const fr=In=>1/(1.5+Math.abs(In)/20);if(U==="y"){if(cn.includes("top")||cn.includes("bottom"))if(cn.includes("top")&&Dt<0||cn.includes("bottom")&&Dt>0)hn.y=Dt;else{const In=Dt*fr(Dt);hn.y=Math.abs(In)<Math.abs(Dt)?In:Dt}}else if(U==="x"&&(cn.includes("left")||cn.includes("right")))if(cn.includes("left")&&ln<0||cn.includes("right")&&ln>0)hn.x=ln;else{const In=ln*fr(ln);hn.x=Math.abs(In)<Math.abs(ln)?In:ln}(Math.abs(hn.x)>0||Math.abs(hn.y)>0)&&we(!0),(Yt=ve.current)==null||Yt.style.setProperty("--swipe-amount-x",`${hn.x}px`),(Kt=ve.current)==null||Kt.style.setProperty("--swipe-amount-y",`${hn.y}px`)}},xe&&!x.jsx&&Ae!=="loading"?Me.createElement("button",{"aria-label":P,"data-disabled":Te,"data-close-button":!0,onClick:Te||!Q?()=>{}:()=>{ye(),x.onDismiss==null||x.onDismiss.call(x,x)},className:Es(D?.closeButton,x==null||(a=x.classNames)==null?void 0:a.closeButton)},(Ot=z?.close)!=null?Ot:Pk):null,(Ae||x.icon||x.promise)&&x.icon!==null&&(z?.[Ae]!==null||x.icon)?Me.createElement("div",{"data-icon":"",className:Es(D?.icon,x==null||(c=x.classNames)==null?void 0:c.icon)},x.promise||x.type==="loading"&&!x.icon?x.icon||qe():null,x.type!=="loading"?Tt:null):null,Me.createElement("div",{"data-content":"",className:Es(D?.content,x==null||(d=x.classNames)==null?void 0:d.content)},Me.createElement("div",{"data-title":"",className:Es(D?.title,x==null||(p=x.classNames)==null?void 0:p.title)},x.jsx?x.jsx:typeof x.title=="function"?x.title():x.title),x.description?Me.createElement("div",{"data-description":"",className:Es(fe,G,D?.description,x==null||(g=x.classNames)==null?void 0:g.description)},typeof x.description=="function"?x.description():x.description):null),Me.isValidElement(x.cancel)?x.cancel:x.cancel&&Oc(x.cancel)?Me.createElement("button",{"data-button":!0,"data-cancel":!0,style:x.cancelButtonStyle||O,onClick:Ge=>{Oc(x.cancel)&&Q&&(x.cancel.onClick==null||x.cancel.onClick.call(x.cancel,Ge),ye())},className:Es(D?.cancelButton,x==null||(b=x.classNames)==null?void 0:b.cancelButton)},x.cancel.label):null,Me.isValidElement(x.action)?x.action:x.action&&Oc(x.action)?Me.createElement("button",{"data-button":!0,"data-action":!0,style:x.actionButtonStyle||X,onClick:Ge=>{Oc(x.action)&&(x.action.onClick==null||x.action.onClick.call(x.action,Ge),!Ge.defaultPrevented&&ye())},className:Es(D?.actionButton,x==null||(m=x.classNames)==null?void 0:m.actionButton)},x.action.label):null)};function uv(){if(typeof window>"u"||typeof document>"u")return"ltr";const n=document.documentElement.getAttribute("dir");return n==="auto"||!n?window.getComputedStyle(document.documentElement).direction:n}function o_(n,r){const o={};return[n,r].forEach((a,c)=>{const d=c===1,p=d?"--mobile-offset":"--offset",g=d?Jk:Zk;function b(m){["top","right","bottom","left"].forEach(y=>{o[`${p}-${y}`]=typeof m=="number"?`${m}px`:m})}typeof a=="number"||typeof a=="string"?b(a):typeof a=="object"?["top","right","bottom","left"].forEach(m=>{a[m]===void 0?o[`${p}-${m}`]=g:o[`${p}-${m}`]=typeof a[m]=="number"?`${a[m]}px`:a[m]}):b(g)}),o}const a_=Me.forwardRef(function(r,o){const{id:a,invert:c,position:d="bottom-right",hotkey:p=["altKey","KeyT"],expand:g,closeButton:b,className:m,offset:y,mobileOffset:x,theme:S="light",richColors:N,duration:j,style:w,visibleToasts:_=Qk,toastOptions:E,dir:T=uv(),gap:C=e_,icons:k,containerAriaLabel:F="Notifications"}=r,[A,L]=Me.useState([]),O=Me.useMemo(()=>a?A.filter(I=>I.toasterId===a):A.filter(I=>!I.toasterId),[A,a]),X=Me.useMemo(()=>Array.from(new Set([d].concat(O.filter(I=>I.position).map(I=>I.position)))),[O,d]),[ne,fe]=Me.useState([]),[ee,K]=Me.useState(!1),[te,W]=Me.useState(!1),[D,z]=Me.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),P=Me.useRef(null),U=p.join("+").replace(/Key/g,"").replace(/Digit/g,""),V=Me.useRef(null),M=Me.useRef(!1),B=Me.useCallback(I=>{L(H=>{var q;return(q=H.find(J=>J.id===I.id))!=null&&q.delete||Dn.dismiss(I.id),H.filter(({id:J})=>J!==I.id)})},[]);return Me.useEffect(()=>Dn.subscribe(I=>{if(I.dismiss){requestAnimationFrame(()=>{L(H=>H.map(q=>q.id===I.id?{...q,delete:!0}:q))});return}setTimeout(()=>{fC.flushSync(()=>{L(H=>{const q=H.findIndex(J=>J.id===I.id);return q!==-1?[...H.slice(0,q),{...H[q],...I},...H.slice(q+1)]:[I,...H]})})})}),[A]),Me.useEffect(()=>{if(S!=="system"){z(S);return}if(S==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?z("dark"):z("light")),typeof window>"u")return;const I=window.matchMedia("(prefers-color-scheme: dark)");try{I.addEventListener("change",({matches:H})=>{z(H?"dark":"light")})}catch{I.addListener(({matches:q})=>{try{z(q?"dark":"light")}catch(J){console.error(J)}})}},[S]),Me.useEffect(()=>{A.length<=1&&K(!1)},[A]),Me.useEffect(()=>{const I=H=>{var q;if(p.every(re=>H[re]||H.code===re)){var he;K(!0),(he=P.current)==null||he.focus()}H.code==="Escape"&&(document.activeElement===P.current||(q=P.current)!=null&&q.contains(document.activeElement))&&K(!1)};return document.addEventListener("keydown",I),()=>document.removeEventListener("keydown",I)},[p]),Me.useEffect(()=>{if(P.current)return()=>{V.current&&(V.current.focus({preventScroll:!0}),V.current=null,M.current=!1)}},[P.current]),Me.createElement("section",{ref:o,"aria-label":`${F} ${U}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},X.map((I,H)=>{var q;const[J,he]=I.split("-");return O.length?Me.createElement("ol",{key:I,dir:T==="auto"?uv():T,tabIndex:-1,ref:P,className:m,"data-sonner-toaster":!0,"data-sonner-theme":D,"data-y-position":J,"data-x-position":he,style:{"--front-toast-height":`${((q=ne[0])==null?void 0:q.height)||0}px`,"--width":`${Wk}px`,"--gap":`${C}px`,...w,...o_(y,x)},onBlur:re=>{M.current&&!re.currentTarget.contains(re.relatedTarget)&&(M.current=!1,V.current&&(V.current.focus({preventScroll:!0}),V.current=null))},onFocus:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||M.current||(M.current=!0,V.current=re.relatedTarget)},onMouseEnter:()=>K(!0),onMouseMove:()=>K(!0),onMouseLeave:()=>{te||K(!1)},onDragEnd:()=>K(!1),onPointerDown:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},O.filter(re=>!re.position&&H===0||re.position===I).map((re,ce)=>{var Ie,_e;return Me.createElement(r_,{key:re.id,icons:k,index:ce,toast:re,defaultRichColors:N,duration:(Ie=E?.duration)!=null?Ie:j,className:E?.className,descriptionClassName:E?.descriptionClassName,invert:c,visibleToasts:_,closeButton:(_e=E?.closeButton)!=null?_e: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:O.filter(we=>we.position==re.position),heights:ne.filter(we=>we.position==re.position),setHeights:fe,expandByDefault:g,gap:C,expanded:ee,swipeDirections:r.swipeDirections})})):null}))}),nS=h.createContext(!1),sS=h.createContext(void 0);function Oo(n){const r=h.useContext(sS);if(n===!1&&r===void 0)throw new Error(jn(27));return r}const l_={...Wl,...ru},i_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,forceRender:p=!1,...g}=r,{store:b}=Oo(),m=b.useState("open"),y=b.useState("nested"),x=b.useState("mounted"),S=b.useState("transitionStatus");return pn("div",r,{state:{open:m,transitionStatus:S},ref:[b.context.backdropRef,o],stateAttributesMapping:l_,props:[{role:"presentation",hidden:!x,style:{userSelect:"none",WebkitUserSelect:"none"}},g],enabled:p||!y})}),rS=h.forwardRef(function(r,o){const{render:a,className:c,style:d,disabled:p=!1,nativeButton:g=!0,...b}=r,{store:m}=Oo(),y=m.useState("open"),{getButtonProps:x,buttonRef:S}=Jl({disabled:p,native:g}),N={disabled:p};function j(w){y&&m.setOpen(!1,bt(L0,w.nativeEvent))}return pn("button",r,{state:N,ref:[o,S],props:[{onClick:j},b,x]})}),c_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:p,...g}=r,{store:b}=Oo(),m=Co(p);return b.useSyncedValueWithCleanup("descriptionElementId",m),pn("p",r,{ref:o,props:[{id:m},g]})});let u_=(function(n){return n.nestedDialogs="--nested-dialogs",n})({}),d_=(function(n){return n[n.open=ho.open]="open",n[n.closed=ho.closed]="closed",n[n.startingStyle=ho.startingStyle]="startingStyle",n[n.endingStyle=ho.endingStyle]="endingStyle",n.nested="data-nested",n.nestedDialogOpen="data-nested-dialog-open",n})({});const oS=h.createContext(void 0);function f_(){const n=h.useContext(oS);if(n===void 0)throw new Error(jn(26));return n}const m_={...Wl,...ru,nestedDialogOpen(n){return n?{[d_.nestedDialogOpen]:""}:null}},p_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,finalFocus:p,initialFocus:g,...b}=r,{store:m}=Oo(),y=m.useState("descriptionElementId"),x=m.useState("disablePointerDismissal"),S=m.useState("floatingRootContext"),N=m.useState("popupProps"),j=m.useState("modal"),w=m.useState("mounted"),_=m.useState("nested"),E=m.useState("nestedOpenDialogCount"),T=m.useState("open"),C=m.useState("openMethod"),k=m.useState("titleElementId"),F=m.useState("transitionStatus"),A=m.useState("role"),L=S.useState("floatingId"),O=b.id??L;f_(),cu({open:T,ref:m.context.popupRef,onComplete(){T&&m.context.onOpenChangeComplete?.(!0)}});const X=g===void 0?R1(m.context.popupRef):g,ne=E>0,fe=m.useStateSetter("popupElement"),K=pn("div",r,{state:{open:T,nested:_,transitionStatus:F,nestedDialogOpen:ne},props:[N,{id:O,"aria-labelledby":k??void 0,"aria-describedby":y??void 0,role:A,...xu,hidden:!w,onKeyDown(te){Dp.has(te.key)&&te.stopPropagation()},style:{[u_.nestedDialogs]:E}},b],ref:[o,m.context.popupRef,fe],stateAttributesMapping:m_});return i.jsx(Np,{context:S,openInteractionType:C,disabled:!w,closeOnFocusOut:!x,initialFocus:X,returnFocus:p,modal:j!==!1,restoreFocus:"popup",children:K})}),h_=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=Oo(),p=d.useState("mounted"),g=d.useState("modal"),b=d.useState("open");return p||a?i.jsx(oS.Provider,{value:a,children:i.jsxs(yp,{ref:o,...c,children:[p&&g===!0&&i.jsx(Ip,{ref:d.context.internalBackdropRef,inert:Lp(!b)}),r.children]})}):null});function g_(n){const{store:r,actionsRef:o}=n,a=r.useState("open");D1(r,a),Cp(r);const{forceUnmount:c}=Op(a,r),d=h.useCallback(()=>{r.setOpen(!1,bt(ip))},[r]);h.useImperativeHandle(o,()=>({unmount:c,close:d}),[c,d])}function x_({store:n,parentContext:r,isDrawer:o}){const a=n.useState("open"),c=n.useState("disablePointerDismissal"),d=n.useState("modal"),p=n.useState("popupElement"),g=n.useState("floatingRootContext"),[b,m]=h.useState(0),[y,x]=h.useState(0),S=b===0,N=jp(g,{outsidePressEvent(){return n.context.internalBackdropRef.current||n.context.backdropRef.current?"intentional":{mouse:d==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(E){if(!n.context.outsidePressEnabledRef.current||"button"in E&&E.button!==0||"touches"in E&&E.touches.length!==1)return!1;const T=zn(E);return S&&!c?d&&(n.context.internalBackdropRef.current||n.context.backdropRef.current)?n.context.internalBackdropRef.current===T||n.context.backdropRef.current===T||Je(T,p)&&!T?.hasAttribute("data-base-ui-portal"):!0:!1},escapeKey:S});K1(a&&d===!0,p),n.useContextCallback("onNestedDialogOpen",(E,T)=>{m(E),x(T)}),n.useContextCallback("onNestedDialogClose",()=>{m(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 j=N.reference??Ut,w=N.trigger??Ut,_=N.floating??Ut;return Rp(n,{activeTriggerProps:j,inactiveTriggerProps:w,popupProps:_,nestedOpenDialogCount:b,nestedOpenDrawerCount:y}),null}const b_={...Ap,modal:Ve(n=>n.modal),nested:Ve(n=>n.nested),nestedOpenDialogCount:Ve(n=>n.nestedOpenDialogCount),nestedOpenDrawerCount:Ve(n=>n.nestedOpenDrawerCount),disablePointerDismissal:Ve(n=>n.disablePointerDismissal),openMethod:Ve(n=>n.openMethod),descriptionElementId:Ve(n=>n.descriptionElementId),titleElementId:Ve(n=>n.titleElementId),viewportElement:Ve(n=>n.viewportElement),role:Ve(n=>n.role)};class Up extends hu{constructor(r,o,a=!1){const c=new ti,d=y_(r);d.floatingRootContext=z1(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},b_)}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};wp(a,r,o.trigger),this.update(a)};static useStore(r,o){return k1(r,(c,d)=>new Up(o,c,d),!0).store}}function y_(n={}){return{...kp(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...n}}function v_(n,r="dialog"){const{children:o,open:a,defaultOpen:c=!1,onOpenChange:d,onOpenChangeComplete:p,disablePointerDismissal:g=!1,modal:b=!0,actionsRef:m,handle:y,triggerId:x,defaultTriggerId:S=null}=n,N=r==="drawer",j=r==="alert-dialog",w=j?!0:b,_=j||g,E=j?"alertdialog":"dialog",T=Oo(!0),k={modal:w,disablePointerDismissal:_,nested:!!T,role:E},F=Up.useStore(y?.store,{open:c,openProp:a,activeTriggerId:S,triggerIdProp:x,...k});N1(()=>{const fe=a===void 0&&F.state.open===!1&&c===!0?{open:!0,activeTriggerId:S}:null;j?F.update(fe?{...k,...fe}:k):fe&&F.update(fe)}),F.useControlledProp("openProp",a),F.useControlledProp("triggerIdProp",x),F.useSyncedValues(k),F.useContextCallback("onOpenChange",d),F.useContextCallback("onOpenChangeComplete",p);const A=F.useState("open"),L=F.useState("mounted"),O=F.useState("payload");g_({store:F,actionsRef:m});const X=A||L,ne=h.useMemo(()=>({store:F}),[F]);return i.jsx(nS.Provider,{value:!1,children:i.jsxs(sS.Provider,{value:ne,children:[X&&i.jsx(x_,{store:F,parentContext:T?.store.context,isDrawer:N}),typeof o=="function"?o({payload:O}):o]})})}function S_(n){const r=h.useContext(nS)?"drawer":"dialog";return v_(n,r)}const E_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:p,...g}=r,{store:b}=Oo(),m=Co(p);return b.useSyncedValueWithCleanup("titleElementId",m),pn("h2",r,{ref:o,props:[{id:m},g]})});function Ts({...n}){return i.jsx(S_,{"data-slot":"dialog",...n})}function N_({...n}){return i.jsx(h_,{"data-slot":"dialog-portal",...n})}function j_({className:n,...r}){return i.jsx(i_,{"data-slot":"dialog-overlay",className:Ee("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",n),...r})}function ws({className:n,children:r,showCloseButton:o=!0,...a}){return i.jsxs(N_,{children:[i.jsx(j_,{}),i.jsxs(p_,{"data-slot":"dialog-content",className:Ee("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",n),...a,children:[r,o&&i.jsxs(rS,{"data-slot":"dialog-close",render:i.jsx(me,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[i.jsx(ir,{}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function Cs({className:n,...r}){return i.jsx("div",{"data-slot":"dialog-header",className:Ee("flex flex-col gap-2",n),...r})}function Os({className:n,showCloseButton:r=!1,children:o,...a}){return i.jsxs("div",{"data-slot":"dialog-footer",className:Ee("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",n),...a,children:[o,r&&i.jsx(rS,{render:i.jsx(me,{variant:"outline"}),children:"Close"})]})}function Rs({className:n,...r}){return i.jsx(E_,{"data-slot":"dialog-title",className:Ee("font-heading text-base leading-none font-medium",n),...r})}function T_({className:n,...r}){return i.jsx(c_,{"data-slot":"dialog-description",className:Ee("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",n),...r})}const fs={volume:"卷",chapter:"章",scene:"场"},w_={volume:"chapter",chapter:"scene",scene:null};function Ra({title:n,description:r,confirmLabel:o,danger:a=!1,onConfirm:c,onClose:d}){const[p,g]=h.useState(null),[b,m]=h.useState(!1);async function y(){m(!0),g(null);try{await c(),d()}catch(x){g(x instanceof De?x.message:"操作失败,请稍后重试")}finally{m(!1)}}return i.jsx(Ts,{open:!0,onOpenChange:x=>!x&&d(),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Rs,{children:n})}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r}),p&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:p}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:d,disabled:b,children:"取消"}),i.jsx(me,{variant:a?"destructive":"default",type:"button",onClick:()=>{y()},disabled:b,children:o})]})]})})}const dv="ai-editor:theme";function aS(){const[n,r]=h.useState("light");h.useEffect(()=>{const c=localStorage.getItem(dv)==="dark"?"dark":"light";r(c),document.documentElement.classList.toggle("dark",c==="dark")},[]);function o(){const a=n==="dark"?"light":"dark";localStorage.setItem(dv,a),document.documentElement.classList.toggle("dark",a==="dark"),r(a)}return{theme:n,toggleTheme:o}}const C_=({...n})=>{const{theme:r="light"}=aS();return i.jsx(a_,{theme:r,position:"top-right",className:"toaster group",icons:{success:i.jsx(Pm,{className:"size-4"}),info:i.jsx(kj,{className:"size-4"}),warning:i.jsx(qm,{className:"size-4"}),error:i.jsx(Fj,{className:"size-4"}),loading:i.jsx(Bl,{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"}},...n})};function O_(n,r){return n!==null&&n.id!==r}function R_(){const n=Oe(o=>o.confirmState),r=Oe(o=>o.resolveConfirm);return n===null?null:i.jsx(Ra,{title:n.title,description:n.description??"",confirmLabel:"确认",danger:n.danger,onConfirm:async()=>r(!0),onClose:()=>r(!1)})}function k_(){const n=Oe(c=>c.toast),r=Oe(c=>c.error),o=Oe(c=>c.clearError),a=h.useRef(null);return h.useEffect(()=>{!n||!O_(n,a.current)||(a.current=n.id,n.kind==="error"?iv.error(n.text,{duration:mm}):iv.success(n.text,{duration:mm}))},[n]),i.jsxs(i.Fragment,{children:[i.jsx(C_,{}),i.jsx(R_,{}),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(Ym,{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(ir,{className:"size-4"})})]})]})}function __({chatOpen:n,onToggleChat:r}){const o=Le(y=>y.config),a=Le(y=>y.configLoading),c=Le(y=>y.outline),d=Oe(y=>y.setFocusOutlineNode),p=Oe(y=>y.notifyDataChanged),g=Gm("(min-width: 1024px)"),b=o?.currentPosition!=null?S0(c,o.currentPosition)??o.currentPosition:null,m=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:m})]}),i.jsxs("a",{href:"#/outline",onClick:()=>{o?.currentPosition!=null&&d(o.currentPosition)},title:o?.currentPosition!=null?"跳转大纲并定位该节点":void 0,className:"flex min-w-0 items-center gap-1 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[i.jsx("span",{className:"shrink-0",children:"当前位置:"}),i.jsx("span",{className:"truncate text-foreground",children:b??"未设置"})]}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:p,"aria-label":"刷新数据",title:"刷新数据",children:i.jsx(aT,{className:"size-4"})}),i.jsxs("span",{className:"shrink-0 text-sm text-muted-foreground",children:["语言: ",o?.language??"—"]}),!g&&i.jsx(me,{variant:"ghost",size:"icon-sm",className:n?"bg-secondary text-foreground":"text-muted-foreground",onClick:r,"aria-label":n?"关闭聊天面板":"打开聊天面板",children:i.jsx(Ul,{className:"size-4"})})]})}const A_=[{label:"概览",href:"#/",segment:null,icon:Aj},{label:"大纲",href:"#/outline",segment:"outline",icon:Lj},{label:"实体关系",href:"#/entities/character",segment:"entities",icon:Pj},{label:"伏笔",href:"#/hooks",segment:"hooks",icon:rT},{label:"时间轴",href:"#/timeline",segment:"timeline",icon:pj},{label:"回收站",href:"#/trash",segment:"trash",icon:Zl}];function M_({route:n}){const r=n.segments[0]??null,o=Le(d=>d.loadError==="NO_PROJECT_OPEN"),a=Oe(d=>d.showToast),c=(d,p)=>{!o||p.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:A_.map(d=>{const p=d.icon,g=r===d.segment;return i.jsxs("a",{href:d.href,"aria-current":g?"page":void 0,onClick:b=>c(b,d),className:Ee("flex min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",g&&"bg-card text-foreground shadow-sm"),children:[i.jsx(p,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:d.label})]},d.label)})})}function D_({route:n,chatOpen:r,onToggleChat:o,isDesktop:a,children:c}){const d=Le(p=>p.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:NT}:void 0,children:[i.jsx(__,{chatOpen:r,onToggleChat:o}),i.jsx("div",{className:"shrink-0 px-3 py-2",children:i.jsx(M_,{route:n})}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-6",children:c})]})}function Il(n){switch(n){case"INVALID_PROJECT_PATH":return"路径无效:请使用绝对路径,且目标目录须已含 project.json(不是项目目录)";case"PROJECT_ALREADY_EXISTS":return"该目录已是项目,请直接打开(书架列表或「打开其他路径」)";case"PROJECT_VERSION_NEWER":return"该项目由更高版本的 ai-editor 创建,请升级程序后再打开(避免降级导致数据丢失)";case"NO_PROJECT_OPEN":return"";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function z_(n,r){switch(n){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 L_(n,r){return n==="CLIENT_NETWORK_ERROR"?"无法连接服务,请确认 ai-editor 服务已启动":r}function Ic(n){const r=n.trim();return r===""?"请输入书名":/[\\/]|^\.+$|[\u0000-\u001f]/.test(r)?"书名不能包含 /、\\ 或为 . / ..":null}let fv=(function(n){return n.disabled="data-disabled",n.valid="data-valid",n.invalid="data-invalid",n.touched="data-touched",n.dirty="data-dirty",n.filled="data-filled",n.focused="data-focused",n})({});const I_={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Ml={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},B_={disabled:!1,...Ml},U_={valid(n){return n===null?null:n?{[fv.valid]:""}:{[fv.invalid]:""}}},H_={invalid:void 0,name:void 0,validityData:{state:I_,errors:[],error:"",value:"",initialValue:null},setValidityData:fn,disabled:void 0,touched:Ml.touched,setTouched:fn,dirty:Ml.dirty,setDirty:fn,filled:Ml.filled,setFilled:fn,focused:Ml.focused,setFocused:fn,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:B_,markedDirtyRef:{current:!1},registerFieldControl:fn,validation:{getValidationProps:(n,r=Ut)=>r,inputRef:{current:null},registerInput:fn,commit:async()=>{},change:fn}},Y_=h.createContext(H_);function lS(n=!0){const r=h.useContext(Y_);if(r.setValidityData===fn&&!n)throw new Error(jn(28));return r}const P_=h.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:fn,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function V_(){return h.useContext(P_)}const F_=h.createContext({controlId:void 0,registerControlId:fn,labelId:void 0,setLabelId:fn,messageIds:[],setMessageIds:fn,getDescriptionProps:n=>n});function iS(){return h.useContext(F_)}function q_(n={}){const{id:r,implicit:o=!1,controlRef:a}=n,{controlId:c,registerControlId:d}=iS(),p=Co(r),g=o?c:void 0,b=Ln(()=>Symbol("labelable-control")),m=h.useRef(!1),y=h.useRef(r!=null),x=We(()=>{!m.current||d===fn||(m.current=!1,d(b.current,void 0))});return Xe(()=>{if(d===fn)return;let S;if(o){const N=a?.current;mt(N)&&N.closest("label")!=null?S=r??null:S=g??p}else if(r!=null)y.current=!0,S=r;else if(y.current)S=p;else{x();return}if(S===void 0){x();return}m.current=!0,d(b.current,S)},[r,a,g,d,o,p,b,x]),h.useEffect(()=>x,[x]),c??p}function G_(n,r,o,a,c=!0,d){const{registerFieldControl:p}=lS(),g=h.useRef(null);g.current||(g.current=Symbol()),Xe(()=>{const b=g.current;return!b||!c?void 0:(p(b,{controlRef:n,getValue:a,id:r,name:d,value:o}),()=>{p(b,void 0)})},[n,c,a,r,d,p,o])}const $_=h.forwardRef(function(r,o){const{render:a,className:c,id:d,name:p,value:g,disabled:b=!1,onValueChange:m,defaultValue:y,autoFocus:x=!1,style:S,...N}=r,{state:j,name:w,disabled:_,setTouched:E,setDirty:T,validityData:C,setFocused:k,setFilled:F,validationMode:A,validation:L}=lS(),{clearErrors:O}=V_(),X=_||b,ne=w??p,fe={...j,disabled:X},{labelId:ee}=iS(),K=q_({id:d});Xe(()=>{const V=g!=null;L.inputRef.current?.value||V&&g!==""?F(!0):V&&g===""&&F(!1)},[L.inputRef,F,g]);const te=h.useRef(null);Xe(()=>{x&&te.current===wn(xt(te.current))&&k(!0)},[x,k]);const[W]=Qw({controlled:g,default:y,name:"FieldControl",state:"value"}),D=g!==void 0,z=D?W:void 0,P=We(()=>L.inputRef.current?.value);return G_(L.inputRef,K,z,P,!X,p),pn("input",r,{ref:[o,te],state:fe,props:[{id:K,disabled:X,name:ne,ref:L.inputRef,"aria-labelledby":ee,autoFocus:x,...D?{value:z}:{defaultValue:y},onChange(V){const M=V.currentTarget.value;m?.(M,bt(D0,V.nativeEvent)),T(M!==C.initialValue),F(M!==""),V.nativeEvent.defaultPrevented||(O(ne),L.change(M))},onFocus(){k(!0)},onBlur(V){E(!0),k(!1),A==="onBlur"&&L.commit(V.currentTarget.value)},onKeyDown(V){V.currentTarget.tagName==="INPUT"&&V.key==="Enter"&&(E(!0),L.commit(V.currentTarget.value))}},N,V=>L.getValidationProps(X,V)],stateAttributesMapping:U_})}),X_=h.forwardRef(function(r,o){return i.jsx($_,{ref:o,...r})});function Nt({className:n,type:r,autoComplete:o="off",...a}){return i.jsx(X_,{type:r,autoComplete:o,"data-slot":"input",className:Ee("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",n),...a})}function K_(n){const r=new Date(n);if(Number.isNaN(r.getTime()))return n;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 Q_(){const n=pt(p=>p.sessions),r=pt(p=>p.sessionsLoading),o=pt(p=>p.sessionsError),a=pt(p=>p.loadSessions),c=pt(p=>p.currentSessionId),d=pt(p=>p.setCurrentSession);return h.useEffect(()=>{n===null&&!r&&o===null&&a()},[n,r,o,a]),n===null?o!==null?o==="NO_PROJECT_OPEN"?i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"打开项目后查看会话"}):i.jsxs("div",{className:"ml-3 border-l border-border py-1 pl-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"会话加载失败"}),i.jsx(me,{variant:"outline",size:"xs",className:"mt-0.5",onClick:()=>{a()},children:"重试"})]}):i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"会话加载中…"}):n.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:n.map(p=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:p.lastMessage||"空会话",onClick:()=>d(p.id),className:Ee("flex h-7 w-full min-w-0 items-center gap-1.5 rounded-md px-2 text-left text-xs transition-colors",c===p.id?"bg-accent font-medium text-accent-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[i.jsx(Ul,{className:"size-3 shrink-0 opacity-70"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:p.lastMessage||"(空会话)"}),i.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",children:xo(p.updatedAt)})]})},p.id))})}function Z_({width:n,onToggleCollapse:r}){const{theme:o,toggleTheme:a}=aS(),c=Le(Q=>Q.config),d=Le(Q=>Q.bookshelf),p=Le(Q=>Q.bookshelfLoading),g=Le(Q=>Q.bookshelfError),b=Le(Q=>Q.loadBookshelf),m=Le(Q=>Q.openProjectAt),y=Le(Q=>Q.createProjectAt),[x,S]=h.useState(null),[N,j]=h.useState(!1),[w,_]=h.useState(""),[E,T]=h.useState(null),[C,k]=h.useState(!1),[F,A]=h.useState(!1),[L,O]=h.useState(null),[X,ne]=h.useState(""),[fe,ee]=h.useState(null),[K,te]=h.useState(!1),[W,D]=h.useState(!1),[z,P]=h.useState(""),[U,V]=h.useState(!1),[M,B]=h.useState(null),[I,H]=h.useState(""),[q,J]=h.useState(null),[he,re]=h.useState(!1),ce=h.useRef(null);h.useEffect(()=>{!p&&d===null&&g===null&&b()},[p,d,g,b]);async function Ie(Q){try{await m(Q),S(Q)}catch(Y){Oe.getState().showToast(Il(Y instanceof De?Y.code:null),"error")}}const _e=c?.id??null,we=h.useRef(_e);h.useEffect(()=>{we.current!==_e&&(we.current=_e,S(null),B(null))},[_e]);function Be(){_(""),T(null),j(!1)}async function ge(Q){Q.preventDefault();const Y=w.trim(),G=Ic(Y);if(G!==null){T(G);return}if(!d){T("书架未加载,请稍后重试");return}k(!0),T(null);try{await y(E0(d.rootPath,Y),{name:Y,language:"zh"}),Oe.getState().showToast(`已创建并打开《${Y}》`),await b();const je=Le.getState().bookshelf?.books.find(xe=>xe.name===Y);je&&S(je.path),_(""),j(!1)}catch(je){T(Il(je instanceof De?je.code:null))}finally{k(!1)}}async function ie(Q){if(!U){V(!0);try{const{blob:Y,filename:G}=await q2(),je=URL.createObjectURL(Y),xe=document.createElement("a");xe.href=je,xe.download=G,document.body.appendChild(xe),xe.click(),xe.remove(),setTimeout(()=>URL.revokeObjectURL(je),0),Oe.getState().showToast(`已导出《${Q}》备份`)}catch(Y){Oe.getState().showToast(L_(Y instanceof De?Y.code:null,Y instanceof De?Y.message:"导出失败,请重试"),"error")}finally{V(!1)}}}function He(Q){const Y=Q.target.files?.[0]??null;if(O(Y),ee(null),Y){const G=Y.name.replace(/\.zip$/i,""),je=X.trim()===""?G:X;ne(je),Re(je)}}function Re(Q){const Y=Q.trim(),G=je=>d?.books.some(xe=>xe.name===je)??!1;if(W){if(Y===`${z} (2)`||Y===z&&G(Y))return;if(G(Y)){P(Y),ne(`${Y} (2)`);return}D(!1),P("");return}Y!==""&&G(Y)&&(P(Y),D(!0),ne(`${Y} (2)`))}function ze(Q){const Y=Q.target.value;ne(Y),Re(Y)}async function ve(Q,Y){const G=Q.trim();if(!L){ee("请选择备份文件");return}const je=Ic(G);if(je!==null){ee(je);return}te(!0),ee(null);try{const xe=await G2(L,G);Oe.getState().showToast(xe.mode==="restored"?`已恢复备份《${xe.name}》`:`已导入为新书《${xe.name}》`),await b(),A(!1),O(null),ne(""),D(!1),P("")}catch(xe){const oe=z_(xe instanceof De?xe.code:null,xe instanceof De?xe.message:"导入失败,请重试");ee(oe),oe!==""&&Oe.getState().showToast(oe,"error")}finally{te(!1)}}function ue(Q){B(Q.path),H(Q.name),J(null),window.setTimeout(()=>ce.current?.focus(),150)}function ke(){B(null),H(""),J(null)}async function Ae(){if(M===null||he)return;const Q=I.trim();if(Q===Le.getState().config?.name){ke();return}const Y=Ic(Q);if(Y!==null){J(Y);return}re(!0),J(null);try{await Z2(Q),Oe.getState().showToast(`已重命名为《${Q}》`),await Promise.all([b(),Le.getState().loadConfig()]),ke()}catch(G){(G instanceof De?G.code:null)==="PROJECT_ALREADY_EXISTS"?J("书架已有同名书籍,请换一个名字"):G instanceof De&&G.code!==ot?J(G.message):J("无法连接服务,请确认 ai-editor 服务已启动")}finally{re(!1)}}return i.jsxs("aside",{className:"flex min-w-0 flex-[1_1_10%] flex-col border-r border-border bg-sidebar",style:n!==void 0?{flex:`0 1 ${n}px`,minWidth:Hl}:void 0,children:[i.jsxs("div",{className:"flex h-12 shrink-0 items-center border-b border-border",children:[i.jsxs("a",{href:"#/",className:"flex h-full min-w-0 flex-1 items-center gap-1.5 px-3 font-serif text-base text-foreground italic hover:text-primary",children:[i.jsx("span",{className:"text-primary",children:"◈"}),i.jsx("span",{className:"truncate",children:"我的小说"})]}),r&&i.jsx("button",{type:"button",onClick:r,"aria-label":"收起左栏",title:"收起左栏",className:Ee(Rl,kl.sm,"mr-1.5"),children:i.jsx(Gj,{className:"size-4"})})]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 py-2",children:[i.jsxs("div",{className:"mb-1 flex items-center justify-between px-1",children:[i.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"书架"}),i.jsxs("div",{className:"flex items-center gap-0.5",children:[i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:()=>A(!0),"aria-label":"导入备份",title:"导入备份(zip)",children:i.jsx(yT,{})}),N?i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:Be,"aria-label":"取消新建项目",title:"取消新建",children:i.jsx(ir,{})}):i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:()=>j(!0),"aria-label":"新建项目",title:"新建项目",children:i.jsx(Fm,{})})]})]}),N&&i.jsxs("form",{onSubmit:ge,className:"mb-1 flex flex-col gap-1 px-1","aria-label":"新建项目",children:[i.jsx(Nt,{value:w,onChange:Q=>_(Q.target.value),onKeyDown:Q=>{Q.key==="Escape"&&Be()},onBlur:Be,placeholder:"书名,回车创建",maxLength:60,disabled:C,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===ot?"无法连接服务":"书架加载失败"}),i.jsx(me,{variant:"outline",size:"xs",onClick:()=>{b()},children:"重试"})]}),p&&d===null&&i.jsx("div",{className:"space-y-1 px-1 py-2",children:[0,1,2].map(Q=>i.jsx("div",{className:Ee(Lt,"h-8 rounded-lg")},Q))}),g===null&&!p&&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(Q=>{const Y=x===Q.path,G=c!==null&&Q.name===c.name,je=M===Q.path;return i.jsxs("li",{children:[i.jsxs("div",{className:"flex items-center",children:[je?i.jsxs("div",{className:"flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-muted px-2",children:[i.jsx(um,{className:"size-3.5 shrink-0 text-primary"}),i.jsx(Nt,{ref:ce,value:I,onChange:xe=>H(xe.target.value),onKeyDown:xe=>{xe.key==="Enter"?(xe.preventDefault(),Ae()):xe.key==="Escape"&&ke()},onBlur:()=>{Ae()},maxLength:60,disabled:he,"aria-label":"重命名书名",className:"h-6 min-w-0 flex-1 rounded-md bg-transparent px-1.5 text-sm focus-visible:ring-2"})]}):i.jsxs("button",{type:"button",title:`打开《${Q.name}》`,onClick:()=>{Ie(Q.path)},className:Ee("flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2 text-left text-sm transition-colors",G?"bg-muted font-medium text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[i.jsx(um,{className:Ee("size-3.5 shrink-0",G?"text-primary":"text-muted-foreground/60")}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:Q.name}),i.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",title:ms(Q.updatedAt),children:K_(Q.updatedAt)})]}),G&&i.jsx("button",{type:"button",onClick:()=>{ie(Q.name)},disabled:U,"aria-label":`导出《${Q.name}》备份`,title:"导出备份(zip)",className:Ee(Rl,kl.bar,y2),children:U?i.jsx(Bl,{className:"size-3.5 animate-spin"}):i.jsx(jj,{className:"size-3.5"})}),i.jsx("button",{type:"button",onClick:()=>S(xe=>xe===Q.path?null:Q.path),"aria-expanded":Y,"aria-label":Y?`收起《${Q.name}》会话`:`展开《${Q.name}》会话`,className:Ee(Rl,kl.bar),children:i.jsx(Hm,{className:Ee("size-4 transition-transform duration-200",Y&&"rotate-90")})}),G&&i.jsx("button",{type:"button","aria-label":`重命名《${Q.name}》`,title:"重命名",onClick:()=>ue(Q),className:Ee(Rl,kl.bar),children:i.jsx(Ql,{className:"size-3.5"})})]}),je&&q&&i.jsx("p",{className:"px-2 pb-1 text-xs text-destructive",children:q}),Y&&i.jsx(Q_,{})]},Q.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(fT,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:"设置"})]}),i.jsxs(me,{variant:"outline",size:"sm",className:"justify-start text-muted-foreground",onClick:a,"aria-label":"切换主题",children:[o==="dark"?i.jsx(hT,{className:"size-4 shrink-0"}):i.jsx(Hj,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:o==="dark"?"浅色模式":"深色模式"})]})]}),i.jsx(Ts,{open:F,onOpenChange:Q=>{A(Q),Q||(ee(null),O(null),ne(""),D(!1),P(""))},children:i.jsxs(ws,{className:"sm:max-w-sm",children:[i.jsxs(Cs,{children:[i.jsx(Rs,{children:"导入书籍"}),i.jsx(T_,{children:"从备份 zip 导入;与书架已有书 id 匹配时覆盖恢复,否则导入为新书(同名可重命名或保持原样并存)"})]}),i.jsxs("form",{id:"import-book-form",onSubmit:Q=>{Q.preventDefault(),ve(X)},className:"flex flex-col gap-3",children:[i.jsx("input",{type:"file",accept:".zip,application/zip",onChange:He,disabled:K,"aria-label":"选择备份文件",className:"block w-full cursor-pointer rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground file:mr-2 file:cursor-pointer file:rounded file:border-0 file:bg-muted file:px-2 file:py-1 file:text-xs file:text-muted-foreground disabled:opacity-50"}),i.jsx(Nt,{value:X,onChange:ze,placeholder:"书名(默认取文件名)",maxLength:60,disabled:K}),W&&i.jsxs("p",{className:"text-sm text-primary",children:["书架已有同名书籍《",z,"》——可重命名导入,或保持原样(服务端自动去重)"]}),fe&&i.jsx("p",{className:"text-sm text-destructive",children:fe})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>A(!1),disabled:K,children:"取消"}),W?i.jsxs(i.Fragment,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>{ve(z)},disabled:K||L===null,children:K?"导入中…":"保持原样导入"}),i.jsx(me,{type:"button",onClick:()=>{ve(X)},disabled:K||L===null,children:K?"导入中…":"重命名导入"})]}):i.jsx(me,{type:"submit",form:"import-book-form",disabled:K||L===null,children:K?"导入中…":"导入"})]})]})})]})}function mv({side:n,active:r,onStart:o,onMove:a,onEnd:c}){return i.jsxs("div",{role:"separator","aria-orientation":"vertical","aria-label":n==="sidebar"?"调整左栏宽度":"调整右栏宽度",title:n==="sidebar"?"拖动调整左栏宽度":"拖动调整右栏宽度",onPointerDown:d=>{d.preventDefault(),d.currentTarget.setPointerCapture(d.pointerId),o(n,d.clientX)},onPointerMove:d=>a(n,d.clientX),onPointerUp:c,onPointerCancel:c,className:Ee("group relative z-10 h-full w-1.5 shrink-0 cursor-col-resize touch-none bg-transparent transition-colors hover:bg-border",r&&"bg-border"),children:[i.jsx("div",{className:"absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border/60 transition-colors group-hover:bg-primary/70"}),i.jsx(Zv,{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 pv({side:n,onExpand:r}){const o=n==="sidebar",a=o?Xj:Jj;return i.jsx("div",{className:Ee("flex h-full w-8 shrink-0 flex-col items-center bg-sidebar",o?"border-r border-border":"border-l border-border"),children:i.jsx("button",{type:"button",onClick:r,"aria-label":o?"展开左栏":"展开右栏",title:o?"展开左栏":"展开右栏",className:Ee(Rl,kl.md,"mt-3"),children:i.jsx(a,{className:"size-4"})})})}function J_({route:n,children:r}){const[o,a]=h.useState(!1),{layout:c,isDesktop:d,dragSide:p,toggleCollapse:g,startResize:b,moveResize:m,endResize:y}=CT(),x=p!==null;return i.jsxs("div",{className:Ee("flex h-screen overflow-hidden",x&&"select-none"),children:[d&&c.collapsedSidebar?i.jsx(pv,{side:"sidebar",onExpand:()=>g("sidebar")}):i.jsx(Z_,{width:d?c.sidebarWidth:void 0,onToggleCollapse:d?()=>g("sidebar"):void 0}),d&&!c.collapsedSidebar&&i.jsx(mv,{side:"sidebar",active:p==="sidebar",onStart:b,onMove:m,onEnd:y}),i.jsx(D_,{isDesktop:d,route:n,chatOpen:o,onToggleChat:()=>a(S=>!S),children:r}),d&&!c.collapsedChat&&i.jsx(mv,{side:"chat",active:p==="chat",onStart:b,onMove:m,onEnd:y}),d&&c.collapsedChat?i.jsx(pv,{side:"chat",onExpand:()=>g("chat")}):i.jsx(Mk,{open:o,onClose:()=>a(!1),width:d?c.chatWidth:void 0,onToggleCollapse:d?()=>g("chat"):void 0}),i.jsx(k_,{})]})}class W_ 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(Ym,{className:"size-8 text-destructive"}),i.jsx("p",{className:"font-serif text-base font-medium text-foreground",children:"界面出现异常"}),i.jsx("p",{className:"max-w-md text-sm text-muted-foreground",children:"数据不会丢失,请重新加载页面继续写作。"}),i.jsx("p",{className:"max-w-md font-mono text-xs break-all text-destructive/80",children:r.message||String(r)}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[i.jsxs(me,{type:"button",onClick:()=>window.location.reload(),children:[i.jsx(iT,{className:"size-4"}),"重新加载"]}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>{window.location.hash="#/",window.location.reload()},children:"回到首页"})]})]})})}}function Ws({title:n,action:r,className:o,children:a}){return i.jsxs("div",{className:Ee(v2,o),children:[n!==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:n}),r]}),a]})}function dr(n){const r=Oe(a=>a.dataVersion),o=h.useRef(r);h.useEffect(()=>{r!==o.current&&(o.current=r,n())},[r])}const hv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},gv=["character","setting","location","hook"];function e3(n){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(n),r}function em(n){return n instanceof De?n.code:null}function xv(){const n=Le(ie=>ie.config),r=Le(ie=>ie.configLoading),o=Le(ie=>ie.outline),a=Le(ie=>ie.outlineLoading),c=Le(ie=>ie.loadOutline),d=Le(ie=>ie.bookshelf),p=Le(ie=>ie.bookshelfLoading),g=Le(ie=>ie.bookshelfError),b=Le(ie=>ie.loadBookshelf),m=Le(ie=>ie.openProjectAt),y=Le(ie=>ie.createProjectAt),x=pt(ie=>ie.sessions),S=pt(ie=>ie.sessionsLoading),N=pt(ie=>ie.sessionsError),j=pt(ie=>ie.loadSessions),w=pt(ie=>ie.setCurrentSession),_=pt(ie=>ie.currentSessionId),E=Oe(ie=>ie.setFocusOutlineNode),[T,C]=h.useState(""),[k,F]=h.useState(null),[A,L]=h.useState(null),[O,X]=h.useState(!1),[ne,fe]=h.useState(!1),[ee,K]=h.useState(""),[te,W]=h.useState(null),[D,z]=h.useState(!1),[P,U]=h.useState(null),[V,M]=h.useState(!1),[B,I]=h.useState(null),[H,q]=h.useState(0),[J,he]=h.useState(!1),re=n===null&&!r,ce=o?e3(o.children):null,Ie=n?.currentPosition!=null?S0(o,n.currentPosition)??n.currentPosition:null;h.useEffect(()=>{re&&!p&&d===null&&g===null&&b()},[re,p,d,g,b]),h.useEffect(()=>{he(!1)},[n?.id]),dr(()=>{q(ie=>ie+1),c(),j()}),h.useEffect(()=>{L(null)},[n?.id]),h.useEffect(()=>{n!==null&&o===null&&!a&&!J&&(he(!0),c())},[n,o,a,J,c]),h.useEffect(()=>{if(n===null)return;let ie=!1;return U(null),M(!0),I(null),Promise.allSettled(gv.map(async He=>({type:He,total:(await Nn(He,{limit:1})).total}))).then(He=>{if(ie)return;const Re={};let ze=!1;for(const ve of He)ve.status==="fulfilled"?Re[ve.value.type]=ve.value.total:ze=!0;U(Re),I(ze?"要素统计加载失败":null),M(!1)}),()=>{ie=!0}},[n,H]),h.useEffect(()=>{n!==null&&x===null&&!S&&N===null&&j()},[n,x,S,N,j]);async function _e(ie){ie.preventDefault();const He=T.trim(),Re=Ic(He);if(Re!==null){F(Re);return}if(!d){F("书架未加载,请稍后重试");return}z(!0),F(null);try{await y(E0(d.rootPath,He),{name:He,language:"zh"}),await b(),Oe.getState().showToast(`已创建并打开《${He}》`),C("")}catch(ze){F(Il(em(ze)))}finally{z(!1)}}async function we(ie){if(ie.preventDefault(),!ee.trim()){W("请输入项目目录路径(绝对路径)");return}z(!0),W(null);try{await m(ee.trim())}catch(He){W(Il(em(He)))}finally{z(!1)}}async function Be(ie){L(null);try{await m(ie)}catch(He){L(Il(em(He)))}}function ge(){n?.currentPosition!=null&&E(n.currentPosition)}if(r)return i.jsx("section",{children:i.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"加载中…"})});if(re){let ie=function(ve){return i.jsxs("form",{onSubmit:_e,className:ve,children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Nt,{value:T,onChange:ue=>C(ue.target.value),placeholder:"书名",maxLength:60,disabled:D}),i.jsx(me,{type:"submit",disabled:D||d===null,children:"新建"})]}),k&&i.jsx("p",{className:"text-left text-sm text-destructive",children:k})]})};const He=d===null&&p,Re=g!==null,ze=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===ot?"无法连接服务,请确认 ai-editor 服务已启动后重试。":"书架加载失败,请重试。"}),i.jsx(me,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>{b()},type:"button",children:"重试"})]}),i.jsx("div",{className:"mx-auto mt-10 max-w-md rounded-2xl border border-dashed border-border bg-card px-6 py-8 text-center",children:He?i.jsxs("div",{className:"py-2",children:[i.jsx("div",{className:Ee(Lt,"mx-auto h-6 w-2/3")}),i.jsx("div",{className:Ee(Lt,"mx-auto mt-2 h-4 w-1/2")}),i.jsxs("div",{className:"mt-5 space-y-2",children:[i.jsx("div",{className:Ee(Lt,"h-10 rounded-lg")}),i.jsx("div",{className:Ee(Lt,"h-10 rounded-lg")})]})]}):i.jsxs(i.Fragment,{children:[ze?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:()=>{Be(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(um,{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:xo(ve.updatedAt)})]})},ve.path))}),A!==null&&i.jsx("p",{className:"mt-3 text-left text-sm text-destructive",children:A}),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:()=>X(ve=>!ve),children:O?"收起":"新建一本…"}),O&&ie("mt-2 flex flex-col gap-2 text-left")]})]}):Re?i.jsx("p",{className:"py-6 text-sm text-muted-foreground",children:"书架加载失败,重试后可查看书籍或新建"}):i.jsxs(i.Fragment,{children:[i.jsx("h1",{className:"font-serif text-lg text-foreground",children:"还没有书,先创建一本"}),i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"每本书一个独立目录(books/书名/),写作数据互不干扰"}),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:()=>fe(ve=>!ve),children:ne?"收起":"打开其他路径…"}),ne&&i.jsxs("form",{onSubmit:we,className:"mt-2 flex flex-col gap-2 text-left",children:[i.jsx(Nt,{value:ee,onChange:ve=>K(ve.target.value),placeholder:"/absolute/path/to/project(须含 project.json)",disabled:D}),i.jsx("div",{children:i.jsx(me,{type:"submit",variant:"outline",disabled:D,children:"打开"})}),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(Ws,{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:n?.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:n?.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:n?.currentPosition!=null?i.jsx("a",{href:"#/outline",onClick:ge,className:"text-primary hover:underline",children:Ie??n.currentPosition}):i.jsx("span",{className:"text-muted-foreground",children:"未设置"})}),i.jsx("a",{href:"#/outline",onClick:ge,className:gm({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:n?.prompt||"(未设置)"})]})]}),i.jsx(Ws,{title:"创作要素",children:V&&P===null?i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:[0,1,2,3].map(ie=>i.jsx("div",{className:Ee(Lt,"h-20 rounded-lg")},ie))}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:gv.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:`查看${hv[ie]}列表`,children:[i.jsx("p",{className:"font-serif text-2xl font-semibold text-foreground",children:P?.[ie]??"–"}),i.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground transition-colors group-hover:text-foreground",children:hv[ie]})]},ie))}),B!==null&&i.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-destructive",children:[B,i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>q(ie=>ie+1),children:"重试"})]})]})}),i.jsx(Ws,{title:"大纲概览",className:"lg:col-span-2",children:o===null&&(a||!J)?i.jsxs("div",{className:"mt-3 space-y-2",children:[i.jsx("div",{className:Ee(Lt,"h-5 w-2/5")}),i.jsx("div",{className:Ee(Lt,"h-4 w-1/3")})]}):o===null?i.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>he(!1),children:"重试"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("p",{className:"mt-3 text-sm text-foreground",children:["卷 ",ce?.volumes??0," · 章 ",ce?.chapters??0," · 场景"," ",ce?.scenes??0]}),i.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["最近更新:"," ",ce?.updatedAt?xo(ce.updatedAt):"—"]}),o.children.length===0&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"大纲还是空的"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>w(null),children:"和 AI 聊聊设定"})]}),i.jsx("div",{className:"mt-3",children:i.jsx("a",{href:"#/outline",onClick:ge,className:Ee(gm({variant:"outline",size:"sm"})),children:"去大纲编辑"})})]})}),i.jsx(Ws,{title:"最近会话",className:"lg:col-span-2",children:x===null?N!==null?i.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:["会话加载失败",i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{j()},children:"重试"})]}):i.jsx("div",{className:"mt-3 space-y-2",children:[0,1,2].map(ie=>i.jsx("div",{className:Ee(Lt,"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(me,{variant:"outline",size:"sm",className:"mt-3",type:"button",onClick:()=>w(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:()=>w(ie.id),className:Ee("flex w-full items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-muted",_===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:xo(ie.updatedAt)})]})},ie.id))}),i.jsx("div",{className:"mt-3",children:i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:()=>w(null),children:"开始新对话"})})]})})]})]})}const bv={plants:"埋设",advances:"推进",resolves:"回收"},t3={plants:tT,advances:Cj,resolves:Pm};function n3({mark:n}){const r=t3[n.relationType];return i.jsx("span",{className:"shrink-0 rounded px-0.5 text-muted-foreground hover:text-foreground",title:`${bv[n.relationType]}伏笔:${n.hookName}`,"aria-label":`${bv[n.relationType]}伏笔:${n.hookName}`,children:i.jsx(r,{className:"size-3"})})}const s3={sm:"py-10",md:"py-12",lg:"py-14"};function is({children:n,icon:r,action:o,padding:a="md",className:c}){return i.jsxs("div",{className:Ee("rounded-lg border border-dashed border-border px-6 text-center",s3[a],c),children:[r,i.jsx("p",{className:"text-sm text-muted-foreground",children:n}),o&&i.jsx("div",{className:"mt-4",children:o})]})}const cS=["plants","advances","resolves"],yv=["plants","advances","resolves"];function vv(n){const r=yv.indexOf(n);return r===-1?yv.length:r}function r3(n){const r=new Map;for(const o of n){if(!cS.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)=>vv(a.relationType)-vv(c.relationType)||(a.hookName<c.hookName?-1:a.hookName>c.hookName?1:0)||(a.hookId<c.hookId?-1:a.hookId>c.hookId?1:0));return r}const En="root",Sv={id:En,label:"(根)",depth:0};function o3(n,r){if(r==="volume")return[Sv];const o=r==="chapter"?[Sv]:[],a=(c,d)=>{for(const p of c)r==="chapter"&&p.type==="volume"?o.push({id:p.id,label:p.title,depth:d}):r==="scene"&&p.type==="chapter"&&o.push({id:p.id,label:p.title,depth:d}),p.children&&a(p.children,d+1)};return a(n,1),o}function Br(n,r){for(const o of n){if(o.id===r)return o;if(o.type!=="scene"&&o.children){const a=Br(o.children,r);if(a)return a}}return null}function Hp(n,r,o=[]){for(const a of n){const c=[...o,a.id];if(a.id===r)return c;if(a.type!=="scene"&&a.children){const d=Hp(a.children,r,c);if(d)return d}}return null}function rr(n,r=0,o=[]){for(const a of n)o.push({id:a.id,label:a.title,depth:r}),a.type!=="scene"&&a.children&&rr(a.children,r+1,o);return o}function a3(n,r,o){const a=Br(n,r);if(!a)return!1;const c=d=>d.id===o?!0:d.type!=="scene"&&d.children?d.children.some(p=>c(p)):!1;return c(a)}function Rc(n,r,o){return r===n.id||a3(o,n.id,r)?!1:o3(o,n.type).some(a=>a.id===r)}function uS(n,r){const o=r.trim();return o!==""&&o!==n.trim()}function dS(n,r){return r.trim()!==(n??"").trim()}function l3(n){return n==="OUTLINE_NODE_NOT_FOUND"?"abandon":"restore"}function fS(n,r){if(r===En)return n;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(n)}function Ev(n,r,o){const a=o===void 0?n:n.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 Nv(n,r){return n===null||r===null?n===r:n.kind==="root-end"||r.kind==="root-end"?n.kind===r.kind:n.kind===r.kind&&n.nodeId===r.nodeId}function _m(n,r){const o=(a,c)=>{for(const d of a){if(d.id===r)return c;if(d.children){const p=o(d.children,d.id);if(p!==null)return p}}return null};return o(n,En)}function i3(n,r){const o=_m(n,r);if(o===null)return null;const c=(fS(n,o)??[]).findIndex(d=>d.id===r);return c===-1?null:{parentId:o,index:c}}function jv(n,r,o,a){const c=i3(n,r);return c===null||c.parentId!==o?!1:a===c.index}function kc(n){return n instanceof De?n.code:null}function ga(n){switch(n){case"OUTLINE_NODE_NOT_FOUND":return"节点不存在(可能已被彻底删除),大纲已刷新";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function Bc(n,r,o,a,c){return i.jsx("input",{autoComplete:"off",autoFocus:!0,value:n,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 Tv({type:n,onTypeChange:r,value:o,onChange:a,onKeyDown:c,onCancel:d,className:p}){return i.jsxs("div",{className:Ee("flex items-center gap-2 rounded-md px-2 py-1",p),children:[i.jsx("div",{className:"flex shrink-0 gap-1",children:["volume","chapter"].map(g=>i.jsx("button",{type:"button",onClick:()=>r(g),className:Ee("rounded border px-2 py-0.5 text-xs transition-colors",n===g?"border-primary bg-primary text-primary-foreground":"border-border text-muted-foreground hover:bg-muted hover:text-foreground"),children:fs[g]},g))}),Bc(o,a,c,d,`新${fs[n]}标题,Enter 创建`)]})}function c3(){const n=Le(Q=>Q.outline),r=Le(Q=>Q.outlineLoading),o=Le(Q=>Q.config),a=Le(Q=>Q.configLoading),c=Le(Q=>Q.loadOutline),d=Oe(Q=>Q.focusOutlineNodeId),p=Oe(Q=>Q.clearFocusOutlineNode);dr(()=>{c()});const[g,b]=h.useState(!1),[m,y]=h.useState(null),[x,S]=h.useState(new Set),[N,j]=h.useState(!1),[w,_]=h.useState(null),[E,T]=h.useState(null),[C,k]=h.useState(null),[F,A]=h.useState(""),[L,O]=h.useState(null),[X,ne]=h.useState(""),[fe,ee]=h.useState(null),[K,te]=h.useState(null),[W,D]=h.useState(null),z=o===null&&!a;h.useEffect(()=>{n===null&&!r&&!g&&(b(!0),c())},[n,r,g,c]),h.useEffect(()=>{if(n===null){D(null);return}let Q=!1;return Promise.all(cS.map(Y=>Ta({source_type:"outline_node",relation_type:Y,depth:1}).then(G=>G.relations).catch(()=>[]))).then(Y=>{Q||D(r3(Y.flat()))}),()=>{Q=!0}},[n]),h.useEffect(()=>{if(w===null)return;const Q=setTimeout(()=>_(null),3e3);return()=>clearTimeout(Q)},[w]),h.useEffect(()=>{if(d===null||n===null)return;const Q=d,Y=Hp(n.children,Q);if(Y===null){p();return}S(je=>{if(Y.every(oe=>!je.has(oe)))return je;const xe=new Set(je);for(const oe of Y)xe.delete(oe);return xe});const G=setTimeout(()=>{const je=document.querySelector(`[data-node-id="${Q}"]`);je&&(je.scrollIntoView({block:"center"}),T(Q)),p()},0);return()=>clearTimeout(G)},[d,n,p]),h.useEffect(()=>{if(E===null)return;const Q=setTimeout(()=>T(null),3e3);return()=>clearTimeout(Q)},[E]);async function P(Q,Y){Q&&V(Q),await c(),Y&&_(Y)}function U(Q){S(Y=>{const G=new Set(Y);return G.has(Q)?G.delete(Q):G.add(Q),G})}function V(Q){S(Y=>{if(!Y.has(Q))return Y;const G=new Set(Y);return G.delete(Q),G})}function M(Q,Y=[]){for(const G of Q)G.type!=="scene"&&G.children&&G.children.length>0&&(Y.push(G.id),M(G.children,Y));return Y}function B(Q,Y){he(),k({nodeId:Q.id,field:Y}),A(Y==="title"?Q.title:Q.summary??"")}function I(){k(null),A("")}async function H(Q,Y){if(!C||C.nodeId!==Q.id||C.field!==Y||N)return;const G=F;if(!(Y==="title"?uS(Q.title,G):dS(Q.summary,G))){I();return}j(!0);try{await b0(Q.id,Y==="title"?{title:G.trim()}:{summary:G.trim()}),I(),Oe.getState().showToast("已保存"),await P()}catch(xe){const oe=kc(xe);if(l3(oe)==="abandon"){I(),y(ga(oe)),await P();return}y(ga(oe))}finally{j(!1)}}function q(Q,Y){return G=>{G.key==="Enter"?(G.preventDefault(),H(Q,Y)):G.key==="Escape"&&I()}}function J(Q,Y){I(),O({parentId:Q,type:Y}),ne(""),Q!==En&&V(Q)}function he(){O(null),ne("")}async function re(){if(!L)return;const Q=X.trim(),{parentId:Y,type:G}=L;if(!Q){he();return}he();try{const je=await k2({type:G,title:Q,parent_id:Y});Oe.getState().showToast(`已创建${fs[G]}《${Q}》`),await P(Y,je.id)}catch(je){y(ga(kc(je)))}}function ce(Q){Q.key==="Enter"?(Q.preventDefault(),re()):Q.key==="Escape"&&he()}function Ie(Q,Y){Q.dataTransfer.setData("text/plain",Y.id),Q.dataTransfer.effectAllowed="move",ee(Y.id),te(null)}function _e(){ee(null),te(null)}function we(Q){const Y=Q.currentTarget.getBoundingClientRect();return Q.clientY<Y.top+Y.height/2?"before":"after"}function Be(Q,Y){Q.stopPropagation();const G=fe?Br(n?.children??[],fe):null;if(!G)return;const je=_m(n?.children??[],Y)??En;if(!Rc(G,je,n?.children??[]))return;Q.preventDefault(),Q.dataTransfer.dropEffect="move";const xe={kind:we(Q),nodeId:Y};te(oe=>Nv(oe,xe)?oe:xe)}function ge(Q,Y){Q.currentTarget.contains(Q.relatedTarget)||te(G=>G!==null&&G.kind!=="root-end"&&G.nodeId===Y?null:G)}async function ie(Q,Y){if(Q.stopPropagation(),Q.preventDefault(),!fe)return;const G=Br(n?.children??[],fe);if(!G)return;const je=_m(n?.children??[],Y)??En;if(!Rc(G,je,n?.children??[]))return;if(Y===G.id){ee(null),te(null);return}const xe=fS(n?.children??[],je)??[],oe=Ev(xe,{kind:we(Q),nodeId:Y},G.id);if(jv(n?.children??[],G.id,je,oe)){ee(null),te(null);return}j(!0);try{await py(G.id,{parent_id:je,order:oe}),Oe.getState().showToast(`已移动《${G.title}》`),await P(je)}catch(Ce){y(ga(kc(Ce)))}finally{j(!1),ee(null),te(null)}}function He(Q){const Y=fe?Br(n?.children??[],fe):null;!Y||!Rc(Y,En,n?.children??[])||(Q.preventDefault(),Q.dataTransfer.dropEffect="move",te(G=>Nv(G,{kind:"root-end"})?G:{kind:"root-end"}))}function Re(Q){Q.currentTarget.contains(Q.relatedTarget)||te(Y=>Y?.kind==="root-end"?null:Y)}async function ze(Q){if(Q.preventDefault(),!fe)return;const Y=Br(n?.children??[],fe);if(!Y||!Rc(Y,En,n?.children??[]))return;const G=Ev(n?.children??[],{kind:"end"},Y.id);if(jv(n?.children??[],Y.id,En,G)){ee(null),te(null);return}j(!0);try{await py(Y.id,{parent_id:En,order:G}),Oe.getState().showToast(`已移动《${Y.title}》`),await P()}catch(je){y(ga(kc(je)))}finally{j(!1),ee(null),te(null)}}async function ve(Q){try{const Y=await _2(Q.id),{children:G,relations:je,deltas:xe}=Y.cascaded,oe=[];G>0&&oe.push(`${G} 个子节点`),je>0&&oe.push(`${je} 条关联`),xe>0&&oe.push(`${xe} 条变化记录`),Oe.getState().showToast(`已移入回收站${oe.length>0?`(含 ${oe.join("、")})`:""}`),await P()}catch(Y){if(Y instanceof De&&Y.code==="OUTLINE_NODE_NOT_FOUND"){y(ga("OUTLINE_NODE_NOT_FOUND")),await P();return}Oe.getState().showToast(Y instanceof De?Y.message:"删除失败,请重试","error")}}function ue(){return L?.parentId!==En?null:i.jsx(Tv,{className:"mb-1",type:L.type,onTypeChange:Q=>O({parentId:En,type:Q}),value:X,onChange:ne,onKeyDown:ce,onCancel:he})}function ke(Q,Y){return Q.map(G=>{const je=G.type!=="scene"&&(G.children?.length??0)>0,xe=x.has(G.id),oe=o?.currentPosition===G.id,Ce=w_[G.type],Ue=C?.nodeId===G.id&&C.field==="title",Qe=C?.nodeId===G.id&&C.field==="summary",ht=K?.kind==="before"&&K.nodeId===G.id,Mt=K?.kind==="after"&&K.nodeId===G.id,ut=fe===G.id,It=L?.parentId===G.id,jt=G.id===E;return i.jsxs("div",{children:[i.jsxs("div",{"data-node-id":G.id,draggable:!Ue&&!Qe&&!ut&&!N,onDragStart:Ht=>Ie(Ht,G),onDragEnd:_e,onDragOver:Ht=>Be(Ht,G.id),onDragLeave:Ht=>ge(Ht,G.id),onDrop:Ht=>{ie(Ht,G.id)},className:Ee("relative cursor-grab rounded-md px-2 py-1 transition-colors hover:bg-muted/60 active:cursor-grabbing",G.id===w&&"bg-accent/40",jt&&"bg-accent ring-1 ring-ring ring-inset",ut&&"opacity-50"),style:{paddingLeft:Y*20+8},title:"拖动到目标行即可移动(上半=插前、下半=插后)",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[je?i.jsx("button",{type:"button",className:"w-4 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>U(G.id),"aria-label":xe?"展开":"折叠",children:xe?"▸":"▾"}):i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"flex h-5 w-7 shrink-0 items-center justify-center rounded bg-muted text-xs text-muted-foreground",children:fs[G.type]}),Ue?Bc(F,A,q(G,"title"),()=>{H(G,"title")},"标题"):i.jsx("span",{className:Ee("min-w-0 cursor-text truncate text-sm hover:underline",jt?"text-accent-foreground":"text-foreground"),title:"点击编辑标题",onClick:()=>B(G,"title"),children:G.title}),W!==null&&(W.get(G.id)?.length??0)>0&&i.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:(W.get(G.id)??[]).map(Ht=>i.jsx(n3,{mark:Ht},`${Ht.relationType}-${Ht.hookId}`))}),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-1",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:()=>an(`/outline/${G.id}`),children:i.jsx(Vm,{className:"size-3.5"})}),Ce!==null&&i.jsx("button",{type:"button",className:"shrink-0 rounded px-1 text-muted-foreground hover:bg-muted hover:text-foreground",title:`就地新建${fs[Ce]}`,"aria-label":`新建${fs[Ce]}`,onClick:()=>J(G.id,Ce),children:"+"}),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(G)},children:i.jsx(Zl,{className:"size-3.5"})}),oe&&i.jsx("span",{className:"shrink-0 rounded bg-accent px-1.5 py-0.5 text-xs text-accent-foreground",children:"当前位置"})]})]}),Qe||G.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"}),Qe?Bc(F,A,q(G,"summary"),()=>{H(G,"summary")},"摘要"):i.jsx("span",{className:"min-w-0 cursor-text truncate text-xs text-muted-foreground hover:underline",title:"点击编辑摘要",onClick:()=>B(G,"summary"),children:G.summary})]}):null,ht&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -top-px h-0.5 rounded bg-accent"}),Mt&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -bottom-px h-0.5 rounded bg-accent"})]}),je&&!xe&&i.jsx("div",{children:ke(G.children??[],Y+1)}),It&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md px-2 py-1",style:{paddingLeft:(Y+1)*20+8},children:[i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"flex h-5 w-7 shrink-0 items-center justify-center rounded bg-muted text-xs text-muted-foreground",children:fs[L.type]}),Bc(X,ne,ce,he,`新${fs[L.type]}标题,Enter 创建`)]})]},G.id)})}function Ae(){n&&(x.size>0?S(new Set):S(new Set(M(n.children))))}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-4 flex items-center justify-between gap-4",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"大纲"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(me,{variant:"outline",type:"button",onClick:Ae,disabled:!n||n.children.length===0,children:x.size>0?"全部展开":"全部折叠"}),i.jsx(me,{type:"button",onClick:()=>J(En,"volume"),children:"+ 新建"})]})]}),m&&i.jsx("div",{className:Ee(Wc,"mb-3"),children:m}),z?i.jsxs("div",{className:"rounded-md border border-dashed border-border px-6 py-10 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"未打开项目,无法编辑大纲"}),i.jsx("a",{href:"#/",className:"mt-2 inline-block text-sm text-muted-foreground underline hover:text-foreground",children:"回到首页打开或创建书籍"})]}):r&&n===null?i.jsx("div",{className:"space-y-2 rounded-md border border-border p-3",children:Array.from({length:6},(Q,Y)=>i.jsx("div",{className:Ee(Lt,"h-5"),style:{width:`${92-Y%3*24}%`,marginLeft:Y%3*20}},Y))}):n===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):n.children.length===0?L?.parentId===En?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(Tv,{type:L.type,onTypeChange:Q=>O({parentId:En,type:Q}),value:X,onChange:ne,onKeyDown:ce,onCancel:he})})]}):i.jsxs(is,{action:i.jsx(me,{type:"button",onClick:()=>J(En,"volume"),children:"新建第一卷"}),children:["大纲还是空的,先建第一卷",i.jsx("span",{className:"mt-1 block text-xs text-muted-foreground/70",children:"大纲是三层结构:卷 → 章 → 场景"})]}):i.jsxs("div",{className:Ee("rounded-md border border-border p-2",K?.kind==="root-end"&&"ring-1 ring-accent ring-inset"),onDragOver:He,onDragLeave:Re,onDrop:Q=>{ze(Q)},children:[ue(),ke(n.children,0)]})]})}const jl=20;function u3(n,r){return Math.max(1,Math.ceil(n/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:""}},Yp={planted:"已埋设",progressing:"推进中",resolved:"已回收",abandoned:"已弃用"},Pp={immediate:"立即",near_term:"近期",mid_arc:"中段",slow_burn:"慢热",endgame:"终局"};function _c(n,r,o){if(o==null||o==="")return"—";if(n==="hook"&&r==="status")return Yp[String(o)]??String(o);if(n==="hook"&&r==="payoff_timing")return Pp[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 wv(n){return n.parentName!==void 0&&n.parentName!==""?n.parentName:"—"}const Cv={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 Vp(n){switch(n){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:Yp},{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:Pp},{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 f3={belongs_to:"所属",owns:"拥有",masters:"掌握",ally:"盟友",rival:"对手",mentor:"师徒",family:"家族",kills:"击杀",appears_in:"出现于",occurs_in:"锚定于",occurs_at:"发生于",plot_edge:"剧情连线",plants:"埋设",advances:"推进",resolves:"回收",depends_on:"依赖",involves:"涉及"};function go(n){return f3[n]??n}function tm(n,r){const o=n.filter(d=>d.relationType==="belongs_to"&&d.sourceType==="setting"&&d.targetType==="setting"),a=[];let c=null;for(const d of o){const p={relationId:d.id,parentId:d.targetId,parentName:d.targetName,childId:d.sourceId,childName:d.sourceName};d.sourceId===r?c===null&&(c=p):d.targetId===r&&a.push(p)}return{parent:c,children:a}}function Fp(n,r){const o={};for(const a of new Set([...Object.keys(n),...Object.keys(r)])){const c=r[a];if(c===void 0)continue;const d=Ov(n[a]),p=Ov(c);JSON.stringify(d)!==JSON.stringify(p)&&(o[a]=c)}return Object.keys(o).length>0?o:null}function Ov(n){return n==null||n===""||Array.isArray(n)&&n.length===0?null:n}const nm={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},m3=Um.filter(n=>n!=="occurs_at"),xa="w-full rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function qp({source:n,onCreated:r,onClose:o}){const a=Le(O=>O.outline),[c,d]=h.useState("character"),[p,g]=h.useState(null),[b,m]=h.useState(""),[y,x]=h.useState("character"),[S,N]=h.useState(null),[j,w]=h.useState(""),[_,E]=h.useState(Um[0]),[T,C]=h.useState(null),[k,F]=h.useState(!1);h.useEffect(()=>{n||(m(""),g(null),Nn(c,{limit:100}).then(O=>g(O.items)).catch(()=>g([])))},[n,c]),h.useEffect(()=>{if(w(""),y==="outline_node"){N(null);return}N(null),Nn(y,{limit:100}).then(O=>N(O.items)).catch(()=>N([]))},[y]);const A=rr(a?.children??[]);async function L(O){if(O.preventDefault(),!n&&!b){C("请选择源实体");return}if(!j){C("请选择关联对象");return}F(!0),C(null);try{const X={source_type:n?n.type:c,source_id:n?n.id:b,target_type:y,target_id:j,relation_type:_};await Hr(X),Oe.getState().showToast("已建立关系"),await r(),o()}catch(X){X instanceof De&&X.code==="RELATION_EXISTS"?C("这条关系已经存在"):C(X instanceof De?X.message:"创建失败,请重试")}finally{F(!1)}}return i.jsx(Ts,{open:!0,onOpenChange:O=>!O&&o(),children:i.jsxs(ws,{className:"sm:max-w-2xl",children:[i.jsx(Cs,{children:i.jsx(Rs,{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:"源实体"}),n?i.jsxs("div",{title:n.name,className:"min-w-0 truncate rounded-md border border-border bg-muted/40 px-3 py-1.5 text-sm text-foreground",children:[n.type==="outline_node"?"本节点":"本实体",":",n.name]}):i.jsxs(i.Fragment,{children:[i.jsx("select",{value:c,onChange:O=>d(O.target.value),className:xa,children:ja.map(O=>i.jsx("option",{value:O,children:nm[O]},O))}),i.jsxs("select",{value:b,onChange:O=>m(O.target.value),className:xa,children:[i.jsxs("option",{value:"",children:["选择",nm[c],"…"]}),(p??[]).map(O=>i.jsx("option",{value:O.id,children:O.name},O.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:_,onChange:O=>E(O.target.value),className:xa,children:m3.map(O=>i.jsx("option",{value:O,children:go(O)},O))}),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:O=>x(O.target.value),className:xa,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:j,onChange:O=>w(O.target.value),className:xa,children:[i.jsx("option",{value:"",children:"选择大纲节点…"}),A.map(O=>i.jsxs("option",{value:O.id,children:[" ".repeat(O.depth),O.label]},O.id))]}):i.jsxs("select",{value:j,onChange:O=>w(O.target.value),className:xa,children:[i.jsxs("option",{value:"",children:["选择",nm[y],"…"]}),(S??[]).map(O=>i.jsx("option",{value:O.id,children:O.name},O.id))]})]})]}),T&&i.jsx("p",{className:"text-sm text-destructive",children:T})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:o,disabled:k,children:"取消"}),i.jsx(me,{type:"submit",form:"create-relation-form",disabled:k,children:"建立"})]})]})})}const mS={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"},Rv={endpointType:"",relationType:"",nameQuery:""};function p3(n,r){const o=r.nameQuery.trim().toLowerCase();return n.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 kv({type:n}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:mS[n]??n})}function sm({type:n,id:r,name:o}){const a=o??r;if(!(ja.includes(n)||n==="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(kv,{type:n})]});const d=n==="outline_node"?`/outline/${r}`:`/entities/${n}/${r}`;return i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("button",{type:"button",onClick:()=>an(d),title:`打开《${a}》`,className:"min-w-0 truncate font-medium text-foreground underline-offset-2 hover:text-primary hover:underline",children:a}),i.jsx(kv,{type:n})]})}function _v(n,r){const o=r==="source"?n.sourceName:n.targetName,a=r==="source"?n.sourceId:n.targetId;return o??a}function pS({reloadKey:n,onOpenCreate:r,scope:o}){const[a,c]=h.useState(null),[d,p]=h.useState(!1),[g,b]=h.useState(null),[m,y]=h.useState(0),[x,S]=h.useState(Rv),[N,j]=h.useState(null);h.useEffect(()=>{let E=!1;p(!0),b(null);const T=o!==void 0?{source_type:o.type,source_id:o.id,depth:1}:{depth:1};return Ta(T).then(C=>{E||c(C.relations)}).catch(C=>{E||(c(null),b(C instanceof De?C.code:ot))}).finally(()=>{E||p(!1)}),()=>{E=!0}},[n,m,o?.type,o?.id]);async function w(){if(N)try{await Dl(N.id),Oe.getState().showToast("已删除关系"),j(null),y(E=>E+1)}catch(E){throw E}}const _=a===null?[]:p3(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(mS).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:"全部关系类型"}),Um.map(E=>i.jsx("option",{value:E,children:go(E)},E))]}),i.jsx(Nt,{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===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"关系加载失败,请重试。",i.jsx(me,{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:Ee(Lt,"h-4 w-1/4")}),i.jsx("div",{className:Ee(Lt,"h-4 w-1/6")}),i.jsx("div",{className:Ee(Lt,"h-4 w-1/4")}),i.jsx("div",{className:Ee(Lt,"ml-auto h-4 w-12")})]},T))}),!d&&a!==null&&a.length===0&&i.jsx(is,{action:i.jsx(me,{type:"button",onClick:r,children:"+ 建立关联"}),children:"还没有关联,建立一条"}),!d&&a!==null&&a.length>0&&_.length===0&&i.jsx(is,{action:i.jsx(me,{variant:"outline",type:"button",onClick:()=>S(Rv),children:"清空过滤"}),children:"没有匹配的关联"}),!d&&a!==null&&_.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:_.map(E=>i.jsxs("li",{className:"flex items-center gap-2 px-3 py-2 text-sm",children:[o!==void 0?i.jsxs(i.Fragment,{children:[i.jsxs("span",{className:"shrink-0 truncate rounded bg-muted px-1.5 py-0.5 text-center text-xs text-muted-foreground",children:[go(E.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(sm,{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(sm,{type:E.sourceType,id:E.sourceId,name:E.sourceName})}),i.jsxs("span",{className:"w-1/4 shrink-0 truncate rounded bg-muted px-1.5 py-0.5 text-center text-xs text-muted-foreground",children:[go(E.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(sm,{type:E.targetType,id:E.targetId,name:E.targetName})})]}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 w-14 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>j(E),children:"删除"})]},E.id))})]}),N&&i.jsx(Ra,{title:"删除关系",description:`删除关系「${_v(N,"source")} ${go(N.relationType)} ${_v(N,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:w,onClose:()=>j(null)})]})}const h3={set:"设为",update:"更新",add:"追加",remove:"移除"},g3={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"};function Gp(n){return g3[n]??n}function as(n){return n==null?"空":typeof n=="object"?JSON.stringify(n):String(n)}function x3(n){switch(n.op){case"set":return`${n.field} = ${as(n.to)}`;case"update":return`${n.field} ${as(n.from)} → ${as(n.to)}`;case"add":return`${n.field} +${as(n.value??n.to)}`;case"remove":return`${n.field} -${as(n.value??n.to)}`}}function b3(n,r){const o=[];for(const a of new Set([...Object.keys(n),...Object.keys(r)])){const c=n[a]??null,d=r[a]??null;JSON.stringify(c)!==JSON.stringify(d)&&o.push({field:a,from:n[a],to:r[a]})}return o}function hS({changes:n,skipped:r}){const o=r?new Set(r):null;return i.jsx("div",{className:"flex flex-wrap items-center gap-1",children:n.map((a,c)=>{const d=o?.has(c)??!1;return i.jsxs("span",{title:d?"该变更未应用(数据与变更记录不一致,见冲突标注)":void 0,className:Ee("inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-xs",d?"text-destructive":"text-muted-foreground"),children:[i.jsx("span",{className:Ee("shrink-0 font-medium",d?"text-destructive":"text-foreground/70"),children:h3[a.op]}),x3(a)]},c)})})}function y3({nodeId:n,reloadKey:r}){const[o,a]=h.useState(null),[c,d]=h.useState(!1),[p,g]=h.useState(null),[b,m]=h.useState(0);return h.useEffect(()=>{let y=!1;return d(!0),g(null),B2(n).then(x=>{y||a([...x.deltas].sort((S,N)=>S.order-N.order))}).catch(x=>{y||g(x instanceof De?x.code:ot)}).finally(()=>{y||d(!1)}),()=>{y=!0}},[n,b,r]),i.jsxs("div",{children:[c&&o===null&&p===null&&i.jsxs("div",{className:"space-y-2 py-1",children:[i.jsx("div",{className:Ee(Lt,"h-4 w-2/3")}),i.jsx("div",{className:Ee(Lt,"h-4 w-1/2")})]}),p!==null&&i.jsxs("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[i.jsx("span",{children:p==="OUTLINE_NODE_NOT_FOUND"?"节点不存在(可能已被删除),变更记录不可用":p===ot?"无法连接服务,请确认 ai-editor 服务已启动":"变更记录加载失败"}),p!=="OUTLINE_NODE_NOT_FOUND"&&i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>m(y=>y+1),children:"重试"})]}),!c&&p===null&&o!==null&&o.length===0&&i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"该节点没有变更记录"}),!c&&p===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:ms(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:[Gp(y.targetType),"《",y.targetName??y.targetId,"》"]}),i.jsx(hS,{changes:y.changes})]})]},y.id))})]})}const v3=ja.filter(n=>n!=="event"&&n!=="timepoint").map(n=>({value:n,label:Gp(n)})),S3={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"]},E3={character:Ac("character"),setting:Ac("setting"),location:Ac("location"),hook:Ac("hook")};function Ac(n){return Object.fromEntries(Vp(n).map(r=>[r.key,r.label]))}const N3={character:["personality","abilities"],setting:["tags","rules"]},j3={character:["age"],hook:["half_life"]};function Am(n,r){return(N3[n]??[]).includes(r)}function T3(n,r){return(j3[n]??[]).includes(r)}function w3(n){return(S3[n]??[]).filter(o=>o!=="custom_fields").map(o=>({key:o,label:E3[n]?.[o]??o,array:Am(n,o)}))}function gS(n){if(n!==void 0){if(n===null)return null;if(typeof n=="string"||typeof n=="number")return n}}function Av(n){return n.array?{options:["add","remove"],default:"add"}:gS(n.currentValue)!==void 0?{options:["update","set"],default:"update"}:{options:["set"],default:"set"}}function C3(n){const r=n.rawValue.trim();if(r==="")return{error:"请填写值"};const o=Number(r),a=n.numeric&&!Number.isNaN(o)?o:r;switch(n.op){case"add":return{change:{field:n.field,op:"add",value:a}};case"remove":return{change:{field:n.field,op:"remove",value:a}};case"set":return{change:{field:n.field,op:"set",to:a}};case"update":{const c=gS(n.currentValue);return c===void 0?{error:"无法确定旧值(当前数据无此字段或类型不可表达),请改用「设为」"}:{change:{field:n.field,op:"update",from:c,to:a}}}}}const ba="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",O3={set:"设为",update:"更新",add:"追加",remove:"移除"};function R3({nodeId:n,onCreated:r,onClose:o}){const[a,c]=h.useState(""),[d,p]=h.useState(""),[g,b]=h.useState(""),[m,y]=h.useState("add"),[x,S]=h.useState(""),[N,j]=h.useState(""),[w,_]=h.useState(!1),[E,T]=h.useState(null),[C,k]=h.useState(null),[F,A]=h.useState(null),[L,O]=h.useState(0),[X,ne]=h.useState(null),[fe,ee]=h.useState(null);h.useEffect(()=>{if(p(""),ne(null),ee(null),a===""){k(null),A(null);return}let U=!1;return k(null),A(null),Nn(a).then(V=>{U||k(V.items)}).catch(V=>{U||(k(null),A(V instanceof De?V.code:ot))}),()=>{U=!0}},[a,L]),h.useEffect(()=>{if(a===""||d==="")return;let U=!1;return ne(null),ee(null),po(a,d).then(V=>{U||ne(V.data)}).catch(V=>{U||(ne(null),ee(V instanceof De?V.code:ot))}),()=>{U=!0}},[a,d]),h.useEffect(()=>{b(""),S(""),T(null)},[a,d]);const K=w3(a),te=X?.[g],W=Av({array:Am(a,g),currentValue:te});function D(U){b(U),y(Av({array:Am(a,U),currentValue:X?.[U]}).default)}async function z(){if(w)return;if(a===""||d===""){T("请选择变更目标");return}if(g===""){T("请选择变更字段");return}const U=N.trim();if(U===""){T("请填写描述(本节点触发了什么变化)");return}const V=C3({field:g,op:m,rawValue:x,numeric:T3(a,g),currentValue:te});if("error"in V){T(V.error);return}_(!0),T(null);try{await Jm({node_id:n,target_type:a,target_id:d,changes:[V.change],description:U}),Oe.getState().showToast("已记录变更"),r()}catch(M){if(M instanceof De&&M.code==="OUTLINE_NODE_NOT_FOUND"){Oe.getState().showToast("节点不存在(可能已被删除),无法记录变更","error"),o();return}T(M instanceof De?M.message:"提交失败,请重试")}finally{_(!1)}}const P=a;return i.jsxs("div",{className:"mb-3 space-y-3 rounded-md border border-border bg-muted/40 p-3",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"目标类型"}),i.jsxs("select",{value:a,onChange:U=>c(U.target.value),className:Ee(ba,a===""&&"text-muted-foreground"),"aria-label":"目标类型",children:[i.jsx("option",{value:"",children:"请选择目标类型"}),v3.map(U=>i.jsx("option",{value:U.value,children:U.label},U.value))]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"目标"}),a===""?i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"请先选择目标类型"}):F!==null?i.jsxs("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[i.jsx("span",{children:F===ot?"无法连接服务,请确认 ai-editor 服务已启动":"实体列表加载失败"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>O(U=>U+1),children:"重试"})]}):C===null?i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"加载中…"}):C.length===0?i.jsxs("p",{className:"py-1 text-xs text-muted-foreground",children:["暂无",Mv(P)]}):i.jsxs("select",{value:d,onChange:U=>p(U.target.value),className:Ee(ba,d===""&&"text-muted-foreground"),"aria-label":"目标实体",children:[i.jsxs("option",{value:"",children:["请选择",Mv(P)]}),C.map(U=>i.jsx("option",{value:U.id,children:U.name},U.id))]})]})]}),i.jsxs("div",{className:"grid gap-3 sm:grid-cols-[1fr_auto_1fr]",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"字段"}),i.jsxs("select",{value:g,onChange:U=>D(U.target.value),className:Ee(ba,g===""&&"text-muted-foreground"),"aria-label":"变更字段",children:[i.jsx("option",{value:"",children:"请选择字段"}),K.map(U=>i.jsx("option",{value:U.key,children:U.label},U.key))]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"操作"}),i.jsx("select",{value:m,onChange:U=>y(U.target.value),className:Ee(ba,"min-w-20"),"aria-label":"操作",children:W.options.map(U=>i.jsx("option",{value:U,children:O3[U]},U))})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:m==="set"||m==="update"?"新值":m==="add"?"追加值":"移除值"}),i.jsx("input",{autoComplete:"off",value:x,onChange:U=>S(U.target.value),placeholder:m==="remove"?"按值匹配删除":"",className:ba})]})]}),m==="update"&&i.jsx("p",{className:"text-xs text-muted-foreground",children:fe!==null?i.jsxs(i.Fragment,{children:["目标数据获取失败,无法自动取旧值(",fe==="ENTITY_NOT_FOUND"?"目标已不存在":"请稍后重试",")——可将操作改为「设为」"]}):i.jsxs(i.Fragment,{children:["旧值:",as(te),"(自动取自目标当前数据,无需手填)"]})}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:N,onChange:U=>j(U.target.value),rows:2,maxLength:500,placeholder:"本节点触发了什么变化,如:张三获得断剑认可",className:Ee(ba,"resize-none")})]}),E!==null&&i.jsx("p",{className:"text-sm text-destructive",children:E}),i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:o,disabled:w,children:"取消"}),i.jsx(me,{size:"sm",type:"button",onClick:()=>{z()},disabled:w,children:w?"提交中…":"创建变更"})]})]})}function Mv(n){return Gp(n)}function $p({items:n,className:r}){return i.jsx("nav",{"aria-label":"面包屑",className:Ee("inline-flex items-center gap-1",r),children:n.map((o,a)=>{const c=a===n.length-1;return i.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.href?i.jsx("button",{type:"button",onClick:()=>an(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 k3={inner:"内心冲突",personal:"人际冲突",extra_personal:"社会冲突"};function _3(n){switch(n){case"scene":return[{key:"goal",label:"场景目标",control:"textarea",maxLength:1e3},{key:"conflict_levels",label:"冲突层次",control:"checkbox-group",options:Xv,optionsLabels:k3},{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 A3(n,r){return Xv.includes(r)?n.includes(r)?n.filter(o=>o!==r):[...n,r]:n}function M3(n){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(n,0),r}function D3(n){return typeof n=="string"&&n!==""?n:""}const Mm="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 z3({nodeId:n}){const r=Le(I=>I.outline),o=Le(I=>I.outlineLoading),a=Le(I=>I.config),c=Le(I=>I.configLoading),d=Le(I=>I.loadOutline),p=Le(I=>I.updateConfig),[g,b]=h.useState(!1),[m,y]=h.useState(""),[x,S]=h.useState(""),[N,j]=h.useState(null),[w,_]=h.useState(!1),[E,T]=h.useState(null),[C,k]=h.useState(!1),[F,A]=h.useState(!1),[L,O]=h.useState(0),[X,ne]=h.useState(!1),[fe,ee]=h.useState(0);h.useEffect(()=>{r===null&&!o&&!g&&(b(!0),d())},[r,o,g,d]),dr(()=>{d(),O(I=>I+1),ee(I=>I+1)});const K=r===null?null:Br(r.children,n),te=r!==null&&K===null,W=K?_3(K.type):[],D=M3(r?.children??[]),z=a?.currentPosition===n;h.useEffect(()=>{K!==null&&(y(K.title),S(K.summary??""),j(JSON.parse(JSON.stringify(K.data??{}))))},[K]);async function P(){if(K===null||w)return;const I=m.trim();if(I===""){T("标题不能为空");return}const H={};uS(K.title,m)&&(H.title=I),dS(K.summary,x)&&(H.summary=x.trim());const q=Fp(K.data??{},N??{});if(q!==null&&(H.data=q),Object.keys(H).length===0){Oe.getState().showToast("没有变更");return}_(!0),T(null);try{await b0(K.id,H),Oe.getState().showToast("已保存"),await d()}catch(J){if(J instanceof De&&J.code==="OUTLINE_NODE_NOT_FOUND"){await d();return}T(J instanceof De?J.message:"保存失败,请重试")}finally{_(!1)}}function U(I,H){j(q=>q&&{...q,[I]:H})}async function V(){if(!(K===null||C||z)){k(!0);try{await p({current_position:K.id}),Oe.getState().showToast("已设为当前位置")}catch{Oe.getState().showToast("设置失败:该节点可能已删除,无法设为当前位置","error")}finally{k(!1)}}}if(te)return i.jsx("section",{children:i.jsx(is,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>an("/outline"),children:"返回大纲"})]}),children:"该节点不存在或已被删除"})});const M=a===null&&!c,B=[{label:"大纲",href:"/outline"}];if(K!==null){const I=Hp(r?.children??[],n)??[];for(const H of I.slice(0,-1)){const q=Br(r?.children??[],H);q&&B.push({label:q.title,href:`/outline/${H}`})}B.push({label:K.title})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx($p,{items:B}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:K?.title??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",disabled:K===null||z||C,title:z?"当前节点已是创作进度位置":"标记为创作进度位置(InfoBar 展示 + 定位跳转基准)",onClick:()=>{V()},children:z?"当前位置":"设为当前位置"}),i.jsx(me,{type:"button",onClick:()=>{P()},disabled:K===null||w,children:w?"保存中…":"保存"})]})]}),K&&i.jsxs("div",{className:"mb-4 flex items-center gap-2 text-xs text-muted-foreground",children:[i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs",children:fs[K.type]}),i.jsxs("span",{children:["更新于 ",ms(K.updatedAt)]}),z&&i.jsx("span",{className:"shrink-0 rounded bg-accent px-1.5 py-0.5 text-xs text-accent-foreground",children:"当前位置"})]}),M?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,H)=>i.jsx("div",{className:"h-5 animate-pulse rounded bg-muted",style:{width:`${92-H%3*24}%`,marginLeft:H%3*20}},H))}):r===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):K===null||N===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(Ws,{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(Nt,{value:m,onChange:I=>y(I.target.value),maxLength:200,placeholder:`${fs[K.type]}标题`,className:"h-8 text-sm"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"摘要"}),i.jsx("textarea",{value:x,onChange:I=>S(I.target.value),maxLength:200,rows:3,placeholder:"一句话概括本节点内容(可选)",className:Mm})]})]})}),i.jsxs(Ws,{title:`结构化信息(${fs[K.type]})`,children:[i.jsx("div",{className:"flex flex-col gap-3",children:W.map(I=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:I.label}),i.jsx(L3,{field:I,value:N?.[I.key],sceneOptions:D,onChange:H=>U(I.key,H)})]},I.key))}),E&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:E})]}),i.jsxs(Ws,{title:"变更记录",action:i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:()=>ne(I=>!I),children:X?"收起":"+ 新建变更"}),children:[X&&i.jsx(R3,{nodeId:n,onCreated:()=>{ne(!1),ee(I=>I+1)},onClose:()=>ne(!1)}),i.jsx(y3,{nodeId:n,reloadKey:fe})]}),i.jsx(Ws,{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(Ws,{title:"相关实体",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"本节点作为源的关系(1 跳)"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>A(!0),children:"+ 新增关联"})]}),i.jsx(pS,{scope:{type:"outline_node",id:n},reloadKey:L,onOpenCreate:()=>A(!0)})]})})]}),F&&K!==null&&i.jsx(qp,{source:{type:"outline_node",id:K.id,name:K.title},onCreated:()=>O(I=>I+1),onClose:()=>A(!1)})]})}function L3({field:n,value:r,sceneOptions:o,onChange:a}){switch(n.control){case"textarea":return i.jsx("textarea",{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:n.maxLength,rows:3,className:Mm});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:(n.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(A3(c,d)),className:"size-4 accent-primary"}),n.optionsLabels?.[d]??d]},d))})}case"scene-select":{const c=D3(r),d=c!==""&&!o.some(p=>p.id===c);return i.jsxs("select",{value:c,onChange:p=>a(p.target.value),className:Ee(Mm,c===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"(未设置)"}),d&&i.jsxs("option",{value:c,children:[c,"(已删除)"]}),o.map(p=>i.jsxs("option",{value:p.id,children:[" ".repeat(p.depth),p.label]},p.id))]})}default:return i.jsx(Nt,{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:n.maxLength,className:"h-8 text-sm"})}}const xS=h.createContext(void 0);function ni(n){const r=h.useContext(xS);if(r===void 0&&!n)throw new Error(jn(47));return r}function I3(){return{...kp(),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 B3={...Ap,disabled:Ve(n=>n.disabled),instantType:Ve(n=>n.instantType),openMethod:Ve(n=>n.openMethod),openChangeReason:Ve(n=>n.openChangeReason),modal:Ve(n=>n.modal),focusManagerModal:Ve(n=>n.focusManagerModal),stickIfOpen:Ve(n=>n.stickIfOpen),titleElementId:Ve(n=>n.titleElementId),descriptionElementId:Ve(n=>n.descriptionElementId),openOnHover:Ve(n=>n.openOnHover),closeDelay:Ve(n=>n.closeDelay),hasViewport:Ve(n=>n.hasViewport)};class Xp extends hu{constructor(r,o,a=!1){const c={...I3(),...r},d=new ti;c.open&&r?.mounted===void 0&&(c.mounted=!0),c.floatingRootContext=z1(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 ps,triggerElements:d},B3)}setOpen=(r,o)=>{const a=o.reason===mn,c=o.reason===yo&&o.event.detail===0,d=!r&&(o.reason===au||o.reason==null),p=_1(o),g=this.select("activeTriggerId");if(!r&&o.reason===L0&&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 m={open:r,openChangeReason:o.reason};wp(m,r,o.trigger,p()),this.update(m)};a?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(o1,()=>{this.set("stickIfOpen",!1)}),ar.flushSync(b)):b(),c||d?this.set("instantType",c?"click":"dismiss"):o.reason===vo?this.set("instantType","focus"):this.set("instantType",void 0)};static useStore(r,o){const{store:a,internalStore:c}=k1(r,(d,p)=>new Xp(o,d,p));return h.useEffect(()=>c?.disposeEffect(),[c]),a}disposeEffect=()=>this.context.stickIfOpenTimeout.disposeEffect()}function Dv({props:n}){const{children:r,open:o,defaultOpen:a=!1,onOpenChange:c,onOpenChangeComplete:d,modal:p=!1,handle:g,triggerId:b,defaultTriggerId:m=null}=n,y=Xp.useStore(g?.store,{modal:p,open:a,openProp:o,activeTriggerId:m,triggerIdProp:b});A1(y,o,a,m),y.useControlledProp("openProp",o),y.useControlledProp("triggerIdProp",b);const x=y.useState("open"),S=y.useState("mounted"),N=y.useState("payload"),j=ur()!=null;y.useContextCallback("onOpenChange",c),y.useContextCallback("onOpenChangeComplete",d),D1(y,x),Cp(y);const{forceUnmount:w}=Op(x,y,()=>{y.update({stickIfOpen:!0,openChangeReason:null})});y.useSyncedValues({modal:p,nested:j}),h.useEffect(()=>{x||y.context.stickIfOpenTimeout.clear()},[y,x]);const _=h.useCallback(()=>{y.setOpen(!1,bt(ip))},[y]);h.useImperativeHandle(n.actionsRef,()=>({unmount:w,close:_}),[w,_]);const E=x||S,T=h.useMemo(()=>({store:y}),[y]);return i.jsxs(xS.Provider,{value:T,children:[E&&i.jsx(H3,{store:y,modal:p}),typeof r=="function"?r({payload:N}):r]})}function U3(n){return ni(!0)?i.jsx(Dv,{props:n}):i.jsx(p1,{children:i.jsx(Dv,{props:n})})}function H3({store:n,modal:r}){const o=n.useState("floatingRootContext"),a=jp(o,{outsidePressEvent:{mouse:r==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),c=a.reference??Ut,d=a.trigger??Ut,p=h.useMemo(()=>tr(xu,a.floating),[a.floating]);return Rp(n,{activeTriggerProps:c,inactiveTriggerProps:d,popupProps:p}),null}const Y3=300,P3=h.forwardRef(function(r,o){const{render:a,className:c,style:d,disabled:p=!1,nativeButton:g=!0,handle:b,payload:m,openOnHover:y=!1,delay:x=Y3,closeDelay:S=0,id:N,...j}=r,w=ni(!0),_=b?.store??w?.store;if(!_)throw new Error(jn(74));const E=Co(N),T=_.useState("isTriggerActive",E),C=_.useState("floatingRootContext"),k=_.useState("isOpenedByTrigger",E),F=_.useState("triggerPopupId",E),A=h.useRef(null),{registerTrigger:L,isMountedByThisTrigger:O}=M1(E,A,_,{payload:m,disabled:p,openOnHover:y,closeDelay:S}),X=_.useState("openChangeReason"),ne=_.useState("stickIfOpen"),fe=_.useState("openMethod"),ee=_.useState("focusManagerModal"),K=H1(C,{enabled:!p&&C!=null&&y&&(fe!=="touch"||X!==yo),mouseOnly:!0,move:!1,handleClose:Y1(),restMs:x,delay:{close:S},triggerElementRef:A,isActiveTrigger:T,isClosing:()=>_.select("transitionStatus")==="ending"}),te=h1(C,{enabled:C!=null,stickIfOpen:ne}),W=J1(()=>_.select("open"),q=>{_.set("openMethod",q)}),D=_.useState("triggerProps",O),{getButtonProps:z,buttonRef:P}=Jl({disabled:p,native:g}),U={open(q){return q&&X===yo?bm.open(q):$w.open(q)}},{preFocusGuardRef:V,handlePreFocusGuardFocus:M,handleFocusTargetFocus:B}=eS(_,A),H=pn("button",r,{state:{disabled:p,open:k},ref:[P,o,L,A],props:[te.reference,K,D,W,{[a1]:"",id:E,"aria-haspopup":"dialog","aria-expanded":k,"aria-controls":F},j,z],stateAttributesMapping:U});return O&&!ee?i.jsxs(h.Fragment,{children:[i.jsx(Yr,{ref:V,onFocus:M}),i.jsx(h.Fragment,{children:H},E),i.jsx(Yr,{ref:_.context.triggerFocusTargetRef,onFocus:B})]}):i.jsx(h.Fragment,{children:H},E)}),bS=h.createContext(void 0);function V3(){const n=h.useContext(bS);if(n===void 0)throw new Error(jn(45));return n}const F3=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=ni();return d.useState("mounted")||a?i.jsx(bS.Provider,{value:a,children:i.jsx(yp,{ref:o,...c})}):null}),yS=h.createContext(void 0);function q3(){const n=h.useContext(yS);if(!n)throw new Error(jn(46));return n}const G3=h.forwardRef(function(r,o){const{render:a,className:c,style:d,anchor:p,positionMethod:g="absolute",side:b="bottom",align:m="center",sideOffset:y=0,alignOffset:x=0,collisionBoundary:S="clipping-ancestors",collisionPadding:N=5,arrowPadding:j=5,sticky:w=!1,disableAnchorTracking:_=!1,collisionAvoidance:E=l1,...T}=r,{store:C}=ni(),k=V3(),F=Sp(),A=C.useState("floatingRootContext"),L=C.useState("mounted"),O=C.useState("open"),X=C.useState("openChangeReason"),ne=C.useState("activeTriggerElement"),fe=C.useState("modal"),ee=C.useState("openMethod"),K=C.useState("positionerElement"),te=C.useState("instantType"),W=C.useState("transitionStatus"),D=C.useState("hasViewport"),z=h.useRef(null),P=fp(K,!1,!1),U=$1({anchor:p,floatingRootContext:A,positionMethod:g,mounted:L,side:b,sideOffset:y,align:m,alignOffset:x,arrowPadding:j,collisionBoundary:S,collisionPadding:N,sticky:w,disableAnchorTracking:_,keepMounted:k,nodeId:F,collisionAvoidance:E,adaptiveOrigin:D?q1:void 0}),V=A.useState("domReferenceElement");Xe(()=>{const H=V,q=z.current;if(H&&(z.current=H),q&&H&&H!==q){C.set("instantType",void 0);const J=new AbortController;return P(()=>{C.set("instantType","trigger-change")},J.signal),()=>{J.abort()}}},[V,P,C]),Q1(O&&fe===!0&&X!==mn,ee==="touch",K,ne);const M=h.useCallback(H=>{C.set("positionerElement",H)},[C]),B={open:O,side:U.side,align:U.align,anchorHidden:U.anchorHidden,instant:te},I=X1(r,B,{styles:U.positionerStyles,transitionStatus:W,props:T,refs:[o,M],hidden:!L,inert:!O});return i.jsxs(yS.Provider,{value:U,children:[L&&fe===!0&&X!==mn&&i.jsx(Ip,{ref:C.context.internalBackdropRef,inert:Lp(!O),cutout:ne}),i.jsx(m1,{id:F,children:I})]})}),$3=h.createContext(void 0);function X3(){const[n,r]=h.useState(0),o=We(()=>(r(c=>c+1),()=>{r(c=>Math.max(0,c-1))}));return{context:h.useMemo(()=>({register:o}),[o]),hasClosePart:n>0}}function K3(n){const{value:r,children:o}=n;return i.jsx($3.Provider,{value:r,children:o})}const Q3={...Wl,...ru},Z3=h.forwardRef(function(r,o){const{render:a,className:c,style:d,initialFocus:p,finalFocus:g,...b}=r,{store:m}=ni(),y=q3(),x=P1()!=null,{context:S,hasClosePart:N}=X3(),j=m.useState("open"),w=m.useState("openMethod"),_=m.useState("instantType"),E=m.useState("transitionStatus"),T=m.useState("popupProps"),C=m.useState("titleElementId"),k=m.useState("descriptionElementId"),F=m.useState("modal"),A=m.useState("mounted"),L=m.useState("openChangeReason"),O=m.useState("activeTriggerElement"),X=m.useState("floatingRootContext"),ne=X.useState("floatingId"),fe=m.useState("disabled"),ee=m.useState("openOnHover"),K=m.useState("closeDelay"),te=b.id??ne;cu({open:j,ref:m.context.popupRef,onComplete(){j&&m.context.onOpenChangeComplete?.(!0)}}),U1(X,{enabled:ee&&!fe,closeDelay:K});const W=p===void 0?R1(m.context.popupRef):p,D=F!==!1&&N;m.useSyncedValue("focusManagerModal",D);const z=h.useCallback(V=>{m.set("popupElement",V)},[m]),P={open:j,side:y.side,align:y.align,instant:_,transitionStatus:E},U=pn("div",r,{state:P,ref:[o,m.context.popupRef,z],props:[T,{id:te,role:"dialog",...xu,"aria-labelledby":C,"aria-describedby":k,onKeyDown(V){x&&Dp.has(V.key)&&V.stopPropagation()}},zp(E),b],stateAttributesMapping:Q3});return i.jsx(Np,{context:X,openInteractionType:w,modal:D,disabled:!A||L===mn,initialFocus:W,returnFocus:g,restoreFocus:"popup",previousFocusableElement:Bt(O)?O:void 0,nextFocusableElement:m.context.triggerFocusTargetRef,beforeContentFocusGuardRef:m.context.beforeContentFocusGuardRef,children:i.jsx(K3,{value:S,children:U})})});function Kp({...n}){return i.jsx(U3,{"data-slot":"popover",...n})}function Qp({...n}){return i.jsx(P3,{"data-slot":"popover-trigger",...n})}function Zp({align:n="start",alignOffset:r=0,side:o="bottom",sideOffset:a=8,className:c,...d}){return i.jsx(F3,{children:i.jsx(G3,{className:"isolate z-50 outline-none",align:n,alignOffset:r,side:o,sideOffset:a,children:i.jsx(Z3,{"data-slot":"popover-content",className:Ee("z-50 min-w-64 origin-(--transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",c),...d})})})}const J3=100;function vS({value:n,valueName:r,excludeIds:o,onChange:a,placeholder:c="上级设定(选填)"}){const[d,p]=h.useState(!1),[g,b]=h.useState(null),[m,y]=h.useState(""),[x,S]=h.useState(!1),[N,j]=h.useState(!1);async function w(){S(!0),j(!1);try{const E=await Nn("setting",{q:m.trim()||void 0,limit:J3,sort:"name"});b(o&&o.length>0?E.items.filter(T=>!o.includes(T.id)):E.items)}catch{b(null),j(!0)}finally{S(!1)}}h.useEffect(()=>{d&&w()},[d]),h.useEffect(()=>{if(!d)return;const E=setTimeout(()=>{w()},300);return()=>clearTimeout(E)},[m,d]);const _=n?r??g?.find(E=>E.id===n)?.name??n:"";return i.jsxs(Kp,{open:d,onOpenChange:p,children:[i.jsx(Qp,{render:i.jsxs(me,{variant:"outline",type:"button",className:Ee("h-8 px-2 text-xs font-normal",!n&&"text-muted-foreground"),title:n?`上级设定:${_}`:c,children:[n?`上级:${_}`:c,i.jsx("span",{"aria-hidden":"true",className:"ml-1 text-muted-foreground",children:"▾"})]})}),i.jsxs(Zp,{className:"flex w-72 flex-col gap-2 p-2",children:[i.jsx(Nt,{value:m,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:"加载中…"}):N?i.jsxs("div",{className:"flex items-center justify-between gap-2 px-2 py-3",children:[i.jsx("span",{className:"text-xs text-destructive",children:"列表加载失败"}),i.jsx(me,{variant:"outline",type:"button",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>{w()},children:"重试"})]}):g!==null&&g.length===0?i.jsx("p",{className:"px-2 py-3 text-center text-xs text-muted-foreground",children:m?"没有匹配的设定":"还没有其他设定"}):g?.map(E=>{const T=typeof E.summary?.category=="string"?E.summary.category:"";return i.jsxs("button",{type:"button",onClick:()=>{a(E.id),p(!1)},className:Ee("flex min-w-0 items-baseline gap-2 rounded-md px-2 py-1.5 text-left text-sm text-foreground hover:bg-muted hover:text-foreground",E.id===n&&"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 W3(n,r){const o=new Map;for(const b of n)o.set(b.id,b);const a=new Map,c=new Map;for(const b of r){a.set(b.childId,b.parentId);const m=c.get(b.parentId)??[];m.push(b.childId),c.set(b.parentId,m)}function d(b){const m=o.get(b);if(m===void 0)return null;const y={id:m.id,name:m.name,...typeof m.category=="string"&&m.category!==""?{category:m.category}:{},children:[]},x=c.get(b)??[];for(const S of x){const N=d(S);N!==null&&y.children.push(N)}return y}const p=[];let g=!1;for(const b of n){const m=a.get(b.id);m===void 0?p.push(d(b.id)):o.has(m)||(g=!0,p.push(d(b.id)))}return{roots:p,hasOrphanEdges:g}}function eA(n){const r=[];function o(a){if(a.children.length>0){r.push(a.id);for(const c of a.children)o(c)}}for(const a of n)o(a);return r}const Mc=200;function SS({node:n,depth:r,collapsedIds:o,onToggle:a}){const c=n.children.length>0,d=!o.has(n.id);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?d?"折叠":"展开":void 0,className:Ee("shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",!c&&"invisible"),onClick:()=>a(n.id),disabled:!c,children:i.jsx("svg",{viewBox:"0 0 16 16",className:Ee("size-3.5 transition-transform",!d&&"-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:()=>an(`/entities/setting/${n.id}`),title:`打开《${n.name}》`,className:"min-w-0 truncate rounded-md px-1 py-0.5 text-sm text-foreground hover:bg-muted hover:text-foreground",children:n.name}),n.category&&i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:n.category}),c&&i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground/70",children:[n.children.length," 个子设定"]})]}),c&&d&&i.jsx("ul",{children:n.children.map(p=>i.jsx(SS,{node:p,depth:r+1,collapsedIds:o,onToggle:a},p.id))})]})}function tA({reloadKey:n}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[d,p]=h.useState(!1),[g,b]=h.useState(!1),[m,y]=h.useState(!1),[x,S]=h.useState(0),[N,j]=h.useState(new Set);function w(C){j(k=>{const F=new Set(k);return F.has(C)?F.delete(C):F.add(C),F})}function _(){r!==null&&j(new Set(eA(r)))}function E(){j(new Set)}const T=r!==null&&r.length>0;return h.useEffect(()=>{let C=!1;return b(!0),y(!1),o(null),(async()=>{try{const[k,F]=await Promise.all([Nn("setting",{limit:Mc,sort:"name"}),Ta({source_type:"setting",target_type:"setting",relation_type:"belongs_to",depth:1})]);if(C)return;const A=F.relations.map(O=>({childId:O.sourceId,parentId:O.targetId})),L=W3(k.items,A);o(L.roots),p(L.hasOrphanEdges),c(k.total>Mc)}catch{C||y(!0),o(null)}finally{C||b(!1)}})(),()=>{C=!0}},[n,x]),m?i.jsxs("div",{className:"mt-3 flex items-center justify-center gap-3 rounded-md border border-border px-3 py-6 text-sm text-muted-foreground",children:["设定树加载失败",i.jsx(me,{variant:"outline",type:"button",size:"sm",onClick:()=>S(C=>C+1),children:"重试"})]}):g&&r===null?i.jsx("div",{className:"mt-3 flex flex-col gap-1",children:Array.from({length:6},(C,k)=>i.jsx("div",{className:Ee(Lt,"h-7"),style:{marginLeft:`${k%3*16}px`}},k))}):r!==null&&r.length===0?i.jsx(is,{className:"mt-3",action:i.jsx(me,{type:"button",onClick:()=>an("/entities/setting"),children:"去「设定」tab 新建"}),children:"还没有设定,先新建一个吧"}):i.jsxs("div",{className:"mt-3",children:[i.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",size:"sm",disabled:!T,onClick:E,children:"全部展开"}),i.jsx(me,{variant:"outline",type:"button",size:"sm",disabled:!T,onClick:_,children:"全部折叠"})]}),i.jsx("ul",{children:r?.map(C=>i.jsx(SS,{node:C,depth:0,collapsedIds:N,onToggle:w},C.id))}),(a||d)&&i.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:[a?`设定数量超过 ${Mc},仅展示前 ${Mc} 个(可按名称搜索定位);`:"",d?"部分设定的上级未在展示范围内,已作为独立节点展示。":""]})]})}function Jc({id:n,options:r}){return r.length===0?null:i.jsx("datalist",{id:n,children:r.map(o=>i.jsx("option",{value:o},o))})}function rm(n){const r=new Set,o=[];for(const a of n)typeof a=="string"&&a!==""&&!r.has(a)&&(r.add(a),o.push(a));return o}function nA(n,r){const o=r.trim().toLowerCase();return o===""?[...n]:n.filter(a=>a.label.toLowerCase().includes(o))}function zv({value:n,options:r,onChange:o,placeholder:a,ariaLabel:c,fallbackLabel:d}){const[p,g]=h.useState(!1),[b,m]=h.useState(""),x=r.find(w=>w.value===n)?.label??(n!==""?d??n:"");function S(w){g(w),w&&m("")}const N=nA(r,b);function j(w){if(w.key==="Enter"){if(N.length===0)return;o(N[0].value),g(!1)}else w.key==="Escape"&&g(!1)}return i.jsxs(Kp,{open:p,onOpenChange:S,children:[i.jsx(Qp,{render:i.jsxs("button",{type:"button","aria-label":c,className:Ee("flex items-center 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",x===""&&"text-muted-foreground"),children:[i.jsx("span",{className:"min-w-0 truncate",children:x===""?a:x}),i.jsx("span",{"aria-hidden":"true",className:"ml-1 shrink-0 text-muted-foreground",children:"▾"})]})}),i.jsxs(Zp,{className:"flex w-64 flex-col gap-2 p-2",children:[i.jsx(Nt,{value:b,onChange:w=>m(w.target.value),onKeyDown:j,placeholder:"搜索…","aria-label":`${c}搜索`,className:"h-8 text-sm",autoFocus:!0}),i.jsxs("div",{className:"flex max-h-56 flex-col gap-0.5 overflow-y-auto",children:[i.jsx("button",{type:"button",onClick:()=>{o(""),g(!1)},className:Ee("flex min-w-0 items-center rounded-md px-2 py-1.5 text-left text-sm text-foreground hover:bg-muted hover:text-foreground",n===""&&"bg-muted/70"),children:a}),N.length===0?i.jsx("p",{className:"px-2 py-3 text-center text-xs text-muted-foreground",children:"无匹配选项"}):N.map(w=>i.jsx("button",{type:"button",onClick:()=>{o(w.value),g(!1)},className:Ee("flex min-w-0 items-center rounded-md px-2 py-1.5 text-left text-sm text-foreground hover:bg-muted hover:text-foreground",w.value===n&&"bg-muted/70"),children:i.jsx("span",{className:"min-w-0 truncate",children:w.label})},w.value))]})]})]})}const ya={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},Lv=[{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 om({type:n}){const r=n==="relations",o=n==="setting-tree",a=ja.includes(n)?n:"character",[c,d]=h.useState(null),[p,g]=h.useState(0),[b,m]=h.useState(!1),[y,x]=h.useState(null),[S,N]=h.useState(""),[j,w]=h.useState(""),[_,E]=h.useState(0),[T,C]=h.useState("updated_at"),[k,F]=h.useState("desc"),[A,L]=h.useState(""),[O,X]=h.useState([]),[ne,fe]=h.useState(""),[ee,K]=h.useState([]),[te,W]=h.useState(0);dr(()=>W(ue=>ue+1));const[D,z]=h.useState(!1),[P,U]=h.useState(""),[V,M]=h.useState(""),[B,I]=h.useState(null),[H,q]=h.useState(!1),[J,he]=h.useState(null),re=d3[a],ce=Cv[a],Ie=u3(p,jl),_e=Math.floor(_/jl)+1,we=ee.find(ue=>ue.id===ne)?.name,Be=rm(c?.map(ue=>ue.name)??[]),ge=ce.key===""?[]:ce.input==="tags"?rm((c??[]).flatMap(ue=>Array.isArray(ue.summary[ce.key])?ue.summary[ce.key]:[])):rm(c?.map(ue=>String(ue.summary[ce.key]??""))??[]);h.useEffect(()=>{N(""),w(""),E(0),C("updated_at"),F("desc"),L(""),fe(""),K([]),d(null),x(null),z(!1),he(null)},[n]),h.useEffect(()=>{const ue=setTimeout(()=>{w(S.trim()),E(0)},300);return()=>clearTimeout(ue)},[S]),h.useEffect(()=>{if(r||o)return;let ue=!1;return m(!0),x(null),Nn(a,{q:j||void 0,offset:_,limit:jl,sort:T,order:k,tag:A||void 0,parent_id:ne||void 0}).then(ke=>{ue||(d(ke.items),g(ke.total))}).catch(ke=>{ue||(d(null),x(ke instanceof De?ke.code:ot))}).finally(()=>{ue||m(!1)}),()=>{ue=!0}},[a,j,_,T,k,te,r,o,A,ne]),h.useEffect(()=>{if(a!=="setting"||r||o){X([]),L(""),K([]),fe("");return}let ue=!1;return Nn("setting",{limit:200,sort:"name"}).then(ke=>{if(ue)return;const Ae=new Set;for(const Q of ke.items)if(Array.isArray(Q.summary.tags))for(const Y of Q.summary.tags)typeof Y=="string"&&Y!==""&&Ae.add(Y);X(Array.from(Ae).sort()),K(ke.items.map(Q=>({id:Q.id,name:Q.name})))}).catch(()=>{}),()=>{ue=!0}},[a,r,o,te]);function ie(ue){const ke=Lv.find(Ae=>Ae.value===ue);ke&&(C(ke.sort),F(ke.order),E(0))}function He(){U(""),M(""),he(null),I(null),z(!0)}function Re(){z(!1),I(null)}async function ze(ue){ue.preventDefault();const ke=P.trim();if(!ke){I("请输入名称");return}q(!0),I(null);try{const Ae=Cv[a],Q={};Ae.key!==""&&V.trim()&&(Ae.input==="tags"?Q[Ae.key]=V.split(/[,,]/).map(G=>G.trim()).filter(G=>G!==""):Q[Ae.key]=V.trim());const Y=await Yc(a,{name:ke,data:Q});if(Oe.getState().showToast(`已创建${ya[a]}《${ke}》`),a==="setting"&&J)try{await Hr({source_type:"setting",source_id:Y.id,target_type:"setting",target_id:J,relation_type:"belongs_to"})}catch{Oe.getState().showToast("已创建,但上级设定关联失败,可进详情页重新设置","error")}z(!1),W(G=>G+1)}catch(Ae){I(Ae instanceof De?Ae.message:"创建失败,请重试")}finally{q(!1)}}function ve(){N(""),w(""),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:[ja.map(ue=>i.jsx("button",{type:"button",onClick:()=>an(`/entities/${ue}`),className:Ee("rounded-md border border-border px-3 py-1.5 text-sm",!r&&!o&&a===ue?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:ya[ue]},ue)),i.jsx("button",{type:"button",onClick:()=>an("/entities/relations"),className:Ee("rounded-md border border-border px-3 py-1.5 text-sm",r?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:"关联"}),i.jsx("button",{type:"button",onClick:()=>an("/entities/setting-tree"),className:Ee("rounded-md border border-border px-3 py-1.5 text-sm",o?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:"设定树"})]}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[!r&&!o&&i.jsx(Nt,{value:S,onChange:ue=>N(ue.target.value),placeholder:`搜索${ya[a]}名称…`,className:"w-52"}),!o&&i.jsx(me,{type:"button",onClick:r?()=>z(!0):He,children:r?"+ 建立关联":"+ 新建"})]})]}),r?i.jsx(pS,{reloadKey:te,onOpenCreate:()=>z(!0)}):o?i.jsx(tA,{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}:${k}`,onChange:ue=>ie(ue.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:Lv.map(ue=>i.jsx("option",{value:ue.value,children:ue.label},ue.value))})]}),a==="setting"&&i.jsxs("span",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["上级设定:",i.jsx(zv,{value:ne,options:ee.map(ue=>({value:ue.id,label:ue.name})),fallbackLabel:"(已删除或不可见)",onChange:ue=>{fe(ue),E(0)},placeholder:"全部",ariaLabel:"上级设定筛选"})]}),a==="setting"&&i.jsxs("span",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["标签:",i.jsx(zv,{value:A,options:O.map(ue=>({value:ue,label:ue})),onChange:ue=>{L(ue),E(0)},placeholder:"全部",ariaLabel:"标签筛选"})]}),i.jsxs("span",{className:"ml-auto text-sm text-muted-foreground/70",children:["共 ",p," 个"]})]}),D&&i.jsxs("form",{id:"create-entity-row",onSubmit:ze,className:"mb-3 flex flex-wrap items-center gap-2 rounded-md border border-border bg-card px-3 py-2",children:[i.jsx(Nt,{value:P,onChange:ue=>U(ue.target.value),onKeyDown:ue=>{ue.key==="Escape"&&Re()},placeholder:a==="character"?"名称(如:张三)":"名称",maxLength:100,disabled:H,autoFocus:!0,"aria-label":"名称",list:`entity-create-name-${a}`,className:"w-48"}),i.jsx(Jc,{id:`entity-create-name-${a}`,options:Be}),ce.key!==""&&(ce.input==="select"?i.jsxs("select",{value:V,onChange:ue=>M(ue.target.value),disabled:H,"aria-label":ce.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:[ce.label,"(选填)"]}),ce.options?.map(ue=>i.jsx("option",{value:ue,children:_c(a,ce.key,ue)},ue))]}):i.jsx(Nt,{value:V,onChange:ue=>M(ue.target.value),placeholder:ce.input==="tags"?`${ce.label}(逗号分隔,如:势力,宗门)`:`${ce.label}(选填)`,disabled:H,"aria-label":ce.label,list:`entity-create-first-${a}`,className:ce.input==="tags"?"w-56":"w-40"})),i.jsx(Jc,{id:`entity-create-first-${a}`,options:ge}),a==="setting"&&i.jsx(vS,{value:J,onChange:he}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",size:"sm",onClick:Re,disabled:H,children:"取消"}),i.jsx(me,{type:"submit",size:"sm",disabled:H,children:H?"创建中…":"创建"})]}),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===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"列表加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>W(ue=>ue+1),children:"重试"})]}),b&&c===null&&y===null&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:Array.from({length:6},(ue,ke)=>i.jsxs("div",{className:"flex items-center gap-3 border-b border-border/50 px-3 py-3 last:border-0",children:[i.jsx("div",{className:Ee(Lt,"h-4 w-1/4")}),i.jsx("div",{className:Ee(Lt,"h-4 w-1/6")}),re.key2&&i.jsx("div",{className:Ee(Lt,"h-4 w-1/6")}),re.key3&&i.jsx("div",{className:Ee(Lt,"h-4 w-1/6")}),i.jsx("div",{className:Ee(Lt,"ml-auto h-4 w-16")})]},ke))}),!b&&c!==null&&c.length===0&&i.jsx(is,{className:"mt-3",action:j?i.jsx(me,{variant:"outline",type:"button",onClick:ve,children:"清空搜索"}):ne?i.jsx(me,{variant:"outline",type:"button",onClick:()=>{fe(""),E(0)},children:"清除上级筛选"}):i.jsxs(me,{type:"button",onClick:He,children:["+ 新建",ya[a]]}),children:j?`没有匹配「${j}」的${ya[a]}`:ne?`《${we??"该上级"}》下暂无设定(含其所有层级的设定)`:`还没有${ya[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:re.label1}),re.key2&&i.jsx("th",{className:"px-3 py-2 font-normal",children:re.label2}),re.key3&&i.jsx("th",{className:"px-3 py-2 font-normal",children:re.label3}),i.jsx("th",{className:"px-3 py-2 text-right font-normal",children:"更新时间"})]})}),i.jsx("tbody",{children:c.map(ue=>i.jsxs("tr",{className:"cursor-pointer border-b border-border/50 transition-colors last:border-0 hover:bg-muted",onClick:()=>an(`/entities/${a}/${ue.id}`),title:`打开《${ue.name}》`,children:[i.jsx("td",{className:"max-w-64 truncate px-3 py-2 font-medium text-foreground",children:ue.name}),i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",children:_c(a,re.key1,ue.summary[re.key1])}),re.key2&&(re.key2==="parent"?i.jsx("td",{className:"max-w-32 truncate px-3 py-2",children:ue.parentId?i.jsx("button",{type:"button",title:`打开上级设定《${wv(ue)}》`,onClick:ke=>{ke.stopPropagation(),an(`/entities/setting/${ue.parentId}`)},className:"rounded-md border border-border px-1.5 py-0.5 text-xs text-foreground hover:bg-muted hover:text-foreground",children:wv(ue)}):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:_c(a,re.key2,ue.summary[re.key2])})),re.key3&&i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",title:typeof ue.summary[re.key3]=="string"?ue.summary[re.key3]:void 0,children:_c(a,re.key3,ue.summary[re.key3])}),i.jsx("td",{className:"px-3 py-2 text-right text-xs whitespace-nowrap text-muted-foreground/70",children:ms(ue.updatedAt)})]},ue.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:_e<=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((_e-2)*jl),children:"‹ 上一页"}),i.jsxs("span",{className:"text-muted-foreground",children:["第 ",_e," / ",Ie," 页"]}),i.jsx("button",{type:"button",disabled:_e>=Ie||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(_e*jl),children:"下一页 ›"})]})]}),r&&D&&i.jsx(qp,{source:null,onCreated:()=>W(ue=>ue+1),onClose:()=>z(!1)})]})}function sA({type:n,id:r,currentData:o,deltaCount:a}){const c=Le(T=>T.outline),d=Le(T=>T.config),p=Le(T=>T.loadOutline),[g,b]=h.useState(()=>{const T=Le.getState().config?.currentPosition??"",C=Le.getState().outline?.children??[];return T!==""&&rr(C).some(k=>k.id===T)?T:""}),[m,y]=h.useState(!1),[x,S]=h.useState(null),[N,j]=h.useState(null);h.useEffect(()=>{b(T=>{if(T!=="")return T;const C=d?.currentPosition??"";return C!==""&&rr(c?.children??[]).some(k=>k.id===C)?C:""})},[d?.currentPosition,c]);const w=rr(c?.children??[]),_=new Map(w.map(T=>[T.id,T.label]));async function E(){if(!(!g||m)){y(!0),j(null);try{const T=await U2({target_type:n,target_id:r,at_node_id:g});S(T)}catch(T){S(null),T instanceof De&&T.code==="OUTLINE_NODE_NOT_FOUND"?j("该节点已不存在,请重新选择计算节点"):j(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(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{p()},children:"加载大纲"})]}):i.jsxs("select",{value:g,onChange:T=>b(T.target.value),"aria-label":"计算节点",className:Ee("min-w-56 rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",g===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"请选择大纲节点"}),w.map(T=>i.jsxs("option",{value:T.id,children:[" ".repeat(T.depth),T.label]},T.id))]})]}),i.jsx(me,{variant:"outline",size:"sm",type:"button",disabled:!g||m,onClick:()=>{E()},children:m?"计算中…":"计算"})]}),d?.currentPosition==null&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"未设置当前位置,请手动选择计算节点"}),N!==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:N}),m&&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"})]}),!m&&x!==null&&i.jsx(rA,{result:x,currentData:o,nodeTitles:_})]})]})}function rA({result:n,currentData:r,nodeTitles:o}){const a=b3(r,n.state),c=o.get(n.atNodeId)??n.atNodeId;return i.jsxs("div",{className:"mt-3 space-y-3",children:[n.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(qm,{className:"size-3.5 shrink-0"}),"发现 ",n.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:n.conflicts.map((d,p)=>i.jsxs("li",{className:"text-xs text-destructive",children:[d.field,":记录应为 ",as(d.expected),",实际为"," ",as(d.actual)]},p))})]}),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?"(无)":as(d.from)," →"," ",d.to===void 0?"(已移除)":as(d.to)]})]},d.field))})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-1.5 text-xs font-medium text-muted-foreground",children:["应用的变更记录(",n.appliedDeltas.length,")"]}),n.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:n.appliedDeltas.map((d,p)=>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,":记录应为 ",as(g.expected),",实际"," ",as(g.actual),"(已跳过)"]},g.index))}),i.jsx("div",{className:"mt-1.5",children:i.jsx(hS,{changes:d.changes,skipped:d.skipped?.map(g=>g.index)})})]},p))})]})]})}function oA(n,r){return r<0||r>=n.length?null:r<n.length-1?{append:!1,focusIndex:r+1}:n[r].trim()!==""?{append:!0,focusIndex:n.length}:null}function aA(n,r,o){if(r===o)return[...n];if(r<0||r>=n.length||o<0||o>=n.length)return[...n];const a=[...n],[c]=a.splice(r,1);return a.splice(o,0,c),a}const lA={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"};function Tl(n,r){const o=n[r];return o==null?"":String(o)}function iA({values:n,onChange:r,placeholder:o,suggestions:a,quickTags:c}){const d=h.useRef([]),[p,g]=h.useState(null),[b,m]=h.useState(null);return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.map((y,x)=>i.jsxs("div",{className:Ee("flex items-center gap-1.5 rounded-md px-0.5 py-0.5 transition-colors",p===x&&"opacity-40",b===x&&p!==null&&p!==x&&"bg-muted/60 ring-1 ring-ring"),onDragOver:S=>{p!==null&&(S.preventDefault(),S.dataTransfer.dropEffect="move",b!==x&&m(x))},onDrop:S=>{p!==null&&(S.preventDefault(),p!==x&&r(aA(n,p,x)),g(null),m(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),m(null)},children:i.jsx(Zv,{className:"size-4"})}),i.jsx(Nt,{value:y,onChange:S=>{const N=[...n];N[x]=S.target.value,r(N)},ref:S=>{d.current[x]=S},onKeyDown:S=>{if(S.key!=="Enter")return;S.preventDefault();const N=oA(n,x);N&&(N.append&&r([...n,""]),requestAnimationFrame(()=>d.current[N.focusIndex]?.focus()))},placeholder:o,list:a&&a.length>0?"entity-tags-suggestions":void 0,className:"h-8 flex-1 text-sm"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>r(n.filter((S,N)=>N!==x)),children:"删除"})]},x)),i.jsx(me,{variant:"outline",type:"button",className:"h-8 self-start px-2 text-xs",onClick:()=>r([...n,""]),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=>!n.includes(y)).map(y=>i.jsx("button",{type:"button",onClick:()=>r([...n,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(Jc,{id:"entity-tags-suggestions",options:a})]})}function cA({value:n,onChange:r}){const[o,a]=h.useState(()=>Object.entries(n??{}).map(([d,p])=>({key:d,value:String(p??"")})));h.useEffect(()=>{a(Object.entries(n??{}).map(([d,p])=>({key:d,value:String(p??"")})))},[n]);function c(d){a(d);const p={};for(const g of d)g.key.trim()&&(p[g.key.trim()]=g.value);r(p)}return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[o.map((d,p)=>i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(Nt,{value:d.key,onChange:g=>c(o.map((b,m)=>m===p?{...b,key:g.target.value}:b)),placeholder:"键",className:"h-8 w-28 text-sm"}),i.jsx(Nt,{value:d.value,onChange:g=>c(o.map((b,m)=>m===p?{...b,value:g.target.value}:b)),placeholder:"值",className:"h-8 flex-1 text-sm"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>c(o.filter((g,b)=>b!==p)),children:"删除"})]},p)),i.jsx(me,{variant:"outline",type:"button",className:"h-8 self-start px-2 text-xs",onClick:()=>c([...o,{key:"",value:""}]),children:"+ 添加字段"})]})}function uA({type:n,id:r}){const o=n,[a,c]=h.useState(null),[d,p]=h.useState(!1),[g,b]=h.useState(!1),[m,y]=h.useState(null),[x,S]=h.useState(null),[N,j]=h.useState(!1),[w,_]=h.useState(null),[E,T]=h.useState(!1),[C,k]=h.useState(null),[F,A]=h.useState(!1),[L,O]=h.useState(!1),[X,ne]=h.useState(null),[fe,ee]=h.useState([]);h.useEffect(()=>{if(o!=="setting"){ee([]);return}let B=!1;return Nn("setting",{limit:200}).then(I=>{if(B)return;const H=new Set;for(const q of I.items)if(Array.isArray(q.summary.tags))for(const J of q.summary.tags)typeof J=="string"&&J!==""&&H.add(J);ee(Array.from(H).sort())}).catch(()=>{}),()=>{B=!0}},[o]);const K=Vp(o);async function te(){p(!0),y(null),b(!1);try{const B=await po(o,r);c(B),S(JSON.parse(JSON.stringify(B.data)))}catch(B){c(null),S(null),B instanceof De&&B.code==="ENTITY_NOT_FOUND"?b(!0):y(B instanceof De?B.code:ot)}finally{p(!1)}}h.useEffect(()=>{te()},[o,r]),dr(()=>{te()});async function W(){if(!a||!x||N)return;const B=Fp(a.data,x);if(!B){Oe.getState().showToast("没有变更");return}j(!0),_(null);try{await bo(o,r,{data:B}),Oe.getState().showToast("已保存"),await te()}catch(I){if(I instanceof De&&I.code==="ENTITY_NOT_FOUND"){b(!0);return}_(I instanceof De?I.message:"保存失败,请重试")}finally{j(!1)}}function D(B,I){S(H=>H&&{...H,[B]:I})}async function z(){if(a)try{const B=await eu(o,r),I=[];B.cascaded.relations>0&&I.push(`${B.cascaded.relations} 条关联`),B.cascaded.deltas>0&&I.push(`${B.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${I.length>0?`(含 ${I.join("、")})`:""}`),an(`/entities/${o}`)}catch(B){Oe.getState().showToast(B instanceof De?B.message:"删除失败,请重试","error")}}async function P(){if(C)try{await Dl(C.id),Oe.getState().showToast("已删除关系"),k(null),await te()}catch(B){throw B}}async function U(B){if(!a||L)return;const I=tm(a.relations,r).parent;if(B!==I?.parentId){O(!0),ne(null);try{await Hr({source_type:"setting",source_id:r,target_type:"setting",target_id:B,relation_type:"belongs_to"}),I&&await Dl(I.relationId),Oe.getState().showToast(I?"已修改上级设定":"已设置上级设定"),await te()}catch(H){ne(H instanceof De?H.message:"修改上级失败,请重试")}finally{O(!1)}}}async function V(){if(!a||L)return;const B=tm(a.relations,r).parent;if(B){O(!0),ne(null);try{await Dl(B.relationId),Oe.getState().showToast("已清除上级设定"),await te()}catch(I){ne(I instanceof De?I.message:"清除上级失败,请重试")}finally{O(!1)}}}function M(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(is,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>an(`/entities/${o}`),children:"返回列表"})]}),children:"该实体不存在或已被删除"})}):i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx($p,{items:[{label:"实体",href:"/entities/character"},{label:lA[o],href:`/entities/${o}`},{label:a?.name??"…"}]}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:a?.name??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>{W()},disabled:!a||N,children:N?"保存中…":"保存"}),i.jsx(me,{variant:"outline",type:"button",disabled:!a,className:"text-destructive hover:bg-destructive/10",onClick:()=>{z()},children:"移入回收站"})]})]}),a&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",ms(a.createdAt)," · 更新于 ",ms(a.updatedAt)," ·"," ",i.jsxs("button",{type:"button",onClick:()=>A(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&&F&&i.jsx(sA,{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:Ee(Lt,"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:Ee(Lt,"h-9")},I))})]}),!d&&!a&&m!==null&&i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:[m===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"详情加载失败,请重试。",i.jsx(me,{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:[K.map(B=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:B.label}),i.jsx(dA,{field:B,value:x[B.key],onChange:I=>D(B.key,I),tagPool:o==="setting"?fe: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(cA,{value:x.custom_fields,onChange:B=>D("custom_fields",B)})]})]}),w&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:w})]}),i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"关联"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>T(!0),children:"+ 新增关联"})]}),o==="setting"&&(()=>{const B=tm(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(vS,{value:B.parent?.parentId??null,valueName:B.parent?.parentName,excludeIds:[r],onChange:I=>{I&&U(I)},placeholder:"设置上级"}),B.parent&&i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs text-destructive hover:bg-destructive/10",disabled:L,onClick:()=>{V()},children:"清除"})]})]}),X&&i.jsx("p",{className:"mb-2 text-sm text-destructive",children:X}),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:()=>an(`/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:()=>an(`/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 H=I.sourceId===r,q=M(I,"source"),J=M(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:q}),i.jsxs("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[go(I.relationType)," ",H?"→":"←"]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-foreground",children:J}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>k(I),children:"删除"})]},I.id)})})})()]})]}),E&&i.jsx(qp,{source:{type:o,id:r,name:a?.name??""},onCreated:te,onClose:()=>T(!1)}),C&&i.jsx(Ra,{title:"删除关系",description:`删除关系「${M(C,"source")} ${go(C.relationType)} ${M(C,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:P,onClose:()=>k(null)})]})}function dA({field:n,value:r,onChange:o,tagPool:a}){switch(n.control){case"textarea":return i.jsx("textarea",{value:Tl({[n.key]:r},n.key),onChange:c=>o(c.target.value),rows:3,className:Ee(Gn,"w-full")});case"number":return i.jsx(Nt,{type:"number",value:Tl({[n.key]:r},n.key),onChange:c=>o(c.target.value===""?void 0:Number(c.target.value)),className:"h-8 text-sm"});case"tags":return i.jsx(iA,{values:Array.isArray(r)?r:[],onChange:o,placeholder:"输入后回车添加下一项",suggestions:n.key==="tags"?a:void 0,quickTags:n.key==="tags"?a:void 0});case"select":return i.jsx("select",{value:Tl({[n.key]:r},n.key),onChange:c=>o(c.target.value),className:Ee(Gn,"w-full"),children:n.options?.map(c=>i.jsx("option",{value:c,children:n.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(fA,{value:Tl({[n.key]:r},n.key),onChange:o});default:return i.jsx(Nt,{value:Tl({[n.key]:r},n.key),onChange:c=>o(c.target.value),className:"h-8 text-sm"})}}function fA({value:n,onChange:r}){const o=Le(c=>c.outline),a=rr(o?.children??[]);return i.jsxs("select",{value:n,onChange:c=>r(c.target.value===""?null:c.target.value),className:Ee(Ee(Gn,"w-full"),n===""&&"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 mA(n){return n==="resolved"?"resolved":n==="abandoned"?"abandoned":"active"}function pA(n){const r={active:[],resolved:[],abandoned:[]};for(const o of n)r[mA(o.summary.status)].push(o);return r}function Ur(n,r){return n.filter(o=>o.relationType===r)}function ES(n,r){return Ur(n,"depends_on").filter(o=>o.sourceId===r).map(o=>o.targetName??o.targetId)}function hA(n,r){return Ur(n,"depends_on").filter(o=>o.targetId===r).map(o=>o.sourceName??o.sourceId)}function Iv(n,r){return hA(n,r).length}function gA(n,r){return Ur(n,"involves").map(o=>o.sourceId===r?o.targetName??o.targetId:o.sourceName??o.sourceId)}const xA=3;function bA(n){const r=n.maxDepth??xA,o=[],a=new Set([n.startHookId]),c=[{hookId:n.startHookId,depth:0}];for(;c.length>0;){const{hookId:d,depth:p}=c.shift();if(o.push({hookId:d,name:n.names.get(d)??d,depth:p}),!(p>=r))for(const g of n.depsOf.get(d)??[])g.relationType!=="depends_on"||g.sourceId!==d||a.has(g.targetId)||(a.add(g.targetId),c.push({hookId:g.targetId,depth:p+1}))}return o}function NS(n,r){if(!n)return!1;const o=[...n.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 yA(n){if(!n)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 n.children)o(a);return r}function vA(n,r){const o=n?.currentPosition;return o!=null&&o!==""&&NS(r,o)?o:yA(r)}const jS={advance:"progressing",resolve:"resolved",abandon:"abandoned"},SA={advance:"advances",resolve:"resolves"};function Bv(n){const r=n.status;return typeof r=="string"&&r!==""?r:"planted"}function TS(n,r){return{field:"status",op:"update",from:n,to:r}}function EA(n,r,o){return{source_type:"outline_node",source_id:o,target_type:"hook",target_id:r,relation_type:SA[n]}}function NA(n,r){return{source_type:"outline_node",source_id:r,target_type:"hook",target_id:n,relation_type:"plants"}}function wS(n){return{status:n}}async function jA(n){const r=jS[n.kind];await Jm({node_id:n.nodeId,target_type:"hook",target_id:n.hookId,changes:[TS(n.fromStatus,r)],description:n.description});try{await Hr(EA(n.kind,n.hookId,n.nodeId))}catch(o){if(!(o instanceof De&&o.code==="RELATION_EXISTS"))throw o}await bo("hook",n.hookId,{data:wS(r)})}async function TA(n){await Jm({node_id:n.nodeId,target_type:"hook",target_id:n.hookId,changes:[TS(n.fromStatus,"abandoned")],description:n.description}),await bo("hook",n.hookId,{data:wS("abandoned")})}const am={advance:"推进",resolve:"回收",abandon:"废弃"};function wA(n){return n==="resolved"||n==="abandoned"}function wl(n,r){const o=n[r];return o==null?"":String(o)}function CA(){const[n,r]=h.useState(null),[o,a]=h.useState(!1),[c,d]=h.useState(null),[p,g]=h.useState(0);dr(()=>g(oe=>oe+1));const[b,m]=h.useState([]),[y,x]=h.useState(!1),[S,N]=h.useState(null),[j,w]=h.useState(!1),[_,E]=h.useState(null),[T,C]=h.useState(null),[k,F]=h.useState("advance"),[A,L]=h.useState(""),[O,X]=h.useState(""),[ne,fe]=h.useState(null),[ee,K]=h.useState(!1),[te,W]=h.useState(null),[D,z]=h.useState(null),[P,U]=h.useState(null),[V,M]=h.useState(!1),[B,I]=h.useState(!1),[H,q]=h.useState(""),[J,he]=h.useState({}),[re,ce]=h.useState(""),[Ie,_e]=h.useState(null),[we,Be]=h.useState(!1),[ge,ie]=h.useState({}),He=Le(oe=>oe.config),Re=Le(oe=>oe.outline),ze=rr(Re?.children??[]),ve=n===null?null:pA(n);h.useEffect(()=>{let oe=!1;return a(!0),d(null),x(!1),ie({}),Nn("hook",{}).then(Ce=>{oe||r(Ce.items)}).catch(Ce=>{oe||(r(null),d(Ce instanceof De?Ce.code:ot))}),Ta({source_type:"hook",relation_type:"depends_on",depth:1}).then(Ce=>{oe||m(Ce.relations)}).catch(()=>{oe||x(!0)}).finally(()=>{oe||a(!1)}),()=>{oe=!0}},[p]),h.useEffect(()=>{Le.getState().outline===null&&Le.getState().config!==null&&Le.getState().loadOutline()},[]);async function ue(oe){N(null),w(!0),E(null);try{N(await po("hook",oe.id))}catch(Ce){E(Ce instanceof De?Ce.message:"详情加载失败,请重试")}finally{w(!1)}}async function ke(oe,Ce){C(null),fe(null),X("");try{const Ue=await po("hook",Ce.id),Qe=Le.getState().config?.currentPosition,ht=Qe!=null&&Qe!==""&&NS(Re,Qe)?Qe:"";L(ht),F(oe),C(Ue)}catch{Oe.getState().showToast("无法读取伏笔状态,请重试","error")}}async function Ae(){const oe=T;if(!oe||ee)return;const Ce=k;K(!0),fe(null);try{if(Ce==="abandon"){const Ue=vA(He,Re);if(Ue===null){fe("大纲为空,无法记录废弃变更");return}await TA({hookId:oe.id,fromStatus:Bv(oe.data),nodeId:Ue,description:O.trim()})}else{if(A===""){fe("请选择大纲节点");return}await jA({kind:Ce,hookId:oe.id,fromStatus:Bv(oe.data),nodeId:A,description:O.trim()})}Oe.getState().showToast(`已${am[Ce]}`),C(null),g(Ue=>Ue+1)}catch(Ue){fe(Ue instanceof De?Ue.message:"操作失败,请重试")}finally{K(!1)}}async function Q(oe){W(null),U(null);try{const Ce=await po("hook",oe.id);W(Ce),z(JSON.parse(JSON.stringify(Ce.data)))}catch{Oe.getState().showToast("无法读取伏笔数据,请重试","error")}}async function Y(){if(!te||!D||V)return;const oe=Fp(te.data,D);if(!oe){Oe.getState().showToast("没有变更"),W(null);return}M(!0),U(null);try{await bo("hook",te.id,{data:oe}),Oe.getState().showToast("已保存"),W(null),g(Ce=>Ce+1)}catch(Ce){U(Ce instanceof De?Ce.message:"保存失败,请重试")}finally{M(!1)}}async function G(oe){oe.preventDefault();const Ce=H.trim();if(!Ce){_e("请输入名称");return}Be(!0),_e(null);try{const Ue=await Yc("hook",{name:Ce,data:J});if(re!=="")try{await Hr(NA(Ue.id,re))}catch(Qe){Oe.getState().showToast(`已创建伏笔《${Ce}》,但埋点关联失败:${Qe instanceof De?Qe.message:"未知错误"}`,"error"),I(!1),g(ht=>ht+1);return}Oe.getState().showToast(`已创建伏笔《${Ce}》`),I(!1),q(""),he({}),ce(""),g(Qe=>Qe+1)}catch(Ue){_e(Ue instanceof De?Ue.message:"创建失败,请重试")}finally{Be(!1)}}async function je(oe){try{const Ce=await eu("hook",oe.id),Ue=[];Ce.cascaded.relations>0&&Ue.push(`${Ce.cascaded.relations} 条关联`),Ce.cascaded.deltas>0&&Ue.push(`${Ce.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${Ue.length>0?`(含 ${Ue.join("、")})`:""}`),g(Qe=>Qe+1)}catch(Ce){Oe.getState().showToast(Ce instanceof De?Ce.message:"删除失败,请重试","error")}}async function xe(oe){if(ge[oe.id]){ie(Ce=>{const Ue={...Ce};return delete Ue[oe.id],Ue});return}ie(Ce=>({...Ce,[oe.id]:{status:"loading",nodes:[]}}));try{const Ce=new Map,Ue=new Map,Qe=[{id:oe.id,depth:0}],ht=new Set;for(;Qe.length>0;){const{id:ut,depth:It}=Qe.shift();if(ht.has(ut))continue;ht.add(ut);const jt=await po("hook",ut);Ue.set(ut,jt.name);const Ht=Ur(jt.relations,"depends_on").filter(Te=>Te.sourceId===ut);if(Ce.set(ut,Ht),!(It>=2))for(const Te of Ht)Ue.has(Te.targetId)||Ue.set(Te.targetId,Te.targetName??Te.targetId),Qe.push({id:Te.targetId,depth:It+1})}const Mt=bA({startHookId:oe.id,depsOf:Ce,names:Ue});ie(ut=>({...ut,[oe.id]:{status:"ready",nodes:Mt}}))}catch{ie(Ce=>({...Ce,[oe.id]:{status:"error",nodes:[]}}))}}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"伏笔池"}),i.jsx(me,{type:"button",className:"ml-auto",onClick:()=>I(!0),children:"+ 新建伏笔"})]}),c!==null&&i.jsxs("div",{className:Ee(Wc,"mb-3 flex items-center gap-2"),children:[c===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"伏笔池加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>g(oe=>oe+1),children:"重试"})]}),o&&ve===null&&c===null&&i.jsx("div",{className:"space-y-4",children:Array.from({length:3},(oe,Ce)=>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:Ce===0?3:1},(Ue,Qe)=>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"})]},Qe))]},Ce))}),!o&&ve!==null&&n?.length===0&&i.jsx(is,{action:i.jsx(me,{type:"button",onClick:()=>I(!0),children:"+ 新建伏笔"}),children:"还没有伏笔。好伏笔要趁早埋下——先新建一个,或在聊天里让 AI 帮你规划。"}),ve!==null&&n&&n.length>0&&i.jsxs("div",{className:"space-y-4",children:[i.jsx(lm,{title:"活跃",icon:i.jsx("span",{className:"size-2 shrink-0 rounded-full bg-primary"}),hooks:ve.active,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:ue,onLifecycle:ke,onEdit:Q,onDelete:oe=>{je(oe)}}),i.jsx(lm,{title:"已回收",icon:i.jsx(Pm,{className:"size-3.5 shrink-0 text-primary"}),hooks:ve.resolved,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:ue,onLifecycle:ke,onEdit:Q,onDelete:oe=>{je(oe)}}),i.jsx(lm,{title:"已废弃",icon:i.jsx(Ej,{className:"size-3.5 shrink-0 text-muted-foreground"}),hooks:ve.abandoned,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:ue,onLifecycle:ke,onEdit:Q,onDelete:oe=>{je(oe)}})]}),i.jsx(Ts,{open:B,onOpenChange:oe=>!oe&&I(!1),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Rs,{children:"新建伏笔"})}),i.jsxs("form",{id:"create-hook-form",onSubmit:G,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(Nt,{value:H,onChange:oe=>q(oe.target.value),placeholder:"如:身世之谜",maxLength:100})]}),i.jsx(Uv,{fields:RA,data:J,onChange:he,nodeOptions:ze}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"埋点节点(选填,可空)"}),i.jsx(Dm,{value:re,onChange:ce,nodeOptions:ze})]}),Ie&&i.jsx("p",{className:"text-sm text-destructive",children:Ie})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>I(!1),disabled:we,children:"取消"}),i.jsx(me,{type:"submit",form:"create-hook-form",disabled:we,children:"创建"})]})]})}),i.jsx(Ts,{open:S!==null||j,onOpenChange:oe=>!oe&&N(null),children:i.jsxs(ws,{className:"sm:max-w-lg",children:[i.jsx(Cs,{children:i.jsx(Rs,{children:"伏笔详情"})}),j&&i.jsx("p",{className:"py-4 text-sm text-muted-foreground",children:"加载中…"}),_&&i.jsx("p",{className:"py-4 text-sm text-destructive",children:_}),S&&i.jsx(OA,{detail:S}),i.jsx(Os,{children:i.jsx(me,{variant:"outline",type:"button",onClick:()=>N(null),children:"关闭"})})]})}),T&&i.jsx(Ts,{open:!0,onOpenChange:oe=>!oe&&!ee&&C(null),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsxs(Rs,{children:[am[k],"伏笔《",T.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[k!=="abandon"&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"大纲节点(默认当前位置)"}),i.jsx(Dm,{value:A,onChange:L,nodeOptions:ze,placeholder:"请选择节点"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:O,onChange:oe=>X(oe.target.value),rows:2,placeholder:k==="abandon"?"说明废弃原因":"说明伏笔如何被推进/回收",className:Ee(Gn,"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 → ",jS[k],k==="advance"&&" + advances 关系",k==="resolve"&&" + resolves 关系"," + 同步 status"]}),k==="resolve"&&y&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:"依赖关系加载失败,无法确认依赖者"}),k==="resolve"&&!y&&Iv(b,T.id)>0&&i.jsxs("p",{className:"mt-2 text-sm text-destructive",children:["有 ",Iv(b,T.id)," 个伏笔依赖此伏笔"]})]}),ne&&i.jsx("p",{className:"text-sm text-destructive",children:ne})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>C(null),disabled:ee,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Ae()},disabled:ee,children:ee?"提交中…":`确认${am[k]}`})]})]})}),te&&D&&i.jsx(Ts,{open:!0,onOpenChange:oe=>!oe&&!V&&W(null),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsxs(Rs,{children:["编辑伏笔《",te.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsx(Uv,{fields:Vp("hook"),data:D,onChange:oe=>z(Ce=>Ce&&{...Ce,...oe}),nodeOptions:ze}),P&&i.jsx("p",{className:"text-sm text-destructive",children:P})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>W(null),disabled:V,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Y()},disabled:V,children:V?"保存中…":"保存"})]})]})})]})}function lm({title:n,icon:r,hooks:o,depEdges:a,depEdgesFailed:c,chains:d,onToggleChain:p,onDetail:g,onLifecycle:b,onEdit:m,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:n}),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=wA(x.summary.status),N=c?[]:ES(a,x.id),j=d[x.id],w=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}),w&&i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:w}),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-0.5",children:[i.jsx(me,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",title:"详情","aria-label":`${x.name} 详情`,onClick:()=>g(x),children:i.jsx(Vm,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"推进","aria-label":`${x.name} 推进`,onClick:()=>b("advance",x),children:i.jsx(dj,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"回收","aria-label":`${x.name} 回收`,onClick:()=>b("resolve",x),children:i.jsx(Qv,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"废弃","aria-label":`${x.name} 废弃`,onClick:()=>b("abandon",x),children:i.jsx(ir,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",title:"编辑","aria-label":`${x.name} 编辑`,onClick:()=>m(x),children:i.jsx(Ql,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`${x.name} 移入回收站`,onClick:()=>y(x),children:i.jsx(Zl,{className:"size-3.5"})})]})]}),N.length>0&&i.jsxs("button",{type:"button",onClick:()=>p(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:["依赖: ",N.join("、")]}),j?.status==="loading"&&i.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"依赖链展开中…"}),j?.status==="error"&&i.jsx("p",{className:"mt-0.5 text-xs text-destructive",children:"依赖链加载失败"}),j?.status==="ready"&&j.nodes.length>1&&i.jsx("ul",{className:"mt-1 space-y-0.5 border-l border-border pl-2",children:j.nodes.slice(1).map(_=>i.jsxs("li",{className:"text-xs text-muted-foreground",children:[" ".repeat(_.depth-1),_.name]},`${_.depth}-${_.hookId}`))})]},x.id)})})]})}function OA({detail:n}){const r=n.id,o=typeof n.data.status=="string"?n.data.status:"",a=typeof n.data.category=="string"?n.data.category:"",c=Ur(n.relations,"plants"),d=Ur(n.relations,"advances"),p=Ur(n.relations,"resolves"),g=ES(n.relations,r),b=Ur(n.relations,"depends_on").filter(x=>x.targetId===r).map(x=>x.sourceName??x.sourceId),m=gA(n.relations,r),y=typeof n.data.expected_resolve_node_id=="string"?n.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:n.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:Yp[o]??o})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["创建于 ",ms(n.createdAt)," · 更新于 ",ms(n.updatedAt)]}),i.jsx(mo,{title:"埋点节点(plants)",items:c.map(x=>x.sourceName??x.sourceId)}),i.jsx(mo,{title:"推进节点(advances)",items:d.map(x=>x.sourceName??x.sourceId)}),i.jsx(mo,{title:"回收节点(resolves)",items:p.map(x=>x.sourceName??x.sourceId)}),i.jsx(mo,{title:"预计回收节点",items:y?[y]:[]}),i.jsx(mo,{title:"依赖(depends_on)",items:g}),i.jsx(mo,{title:"被依赖(其他伏笔依赖本伏笔)",items:b}),i.jsx(mo,{title:"涉及(involves)",items:m})]})}function mo({title:n,items:r}){return i.jsxs("div",{children:[i.jsx("p",{className:"mb-0.5 text-xs font-medium text-muted-foreground",children:n}),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 RA=[{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:Pp},{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 Uv({fields:n,data:r,onChange:o,nodeOptions:a}){return i.jsx(i.Fragment,{children:n.map(c=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:c.label}),i.jsx(kA,{field:c,value:r[c.key],nodeOptions:a,onValue:d=>o({...r,[c.key]:d})})]},c.key))})}function kA({field:n,value:r,nodeOptions:o,onValue:a}){switch(n.control){case"textarea":return i.jsx("textarea",{value:wl({[n.key]:r},n.key),onChange:c=>a(c.target.value),rows:2,className:Ee(Gn,"w-full")});case"number":return i.jsx(Nt,{type:"number",value:wl({[n.key]:r},n.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:wl({[n.key]:r},n.key),onChange:c=>a(c.target.value),className:Ee(Gn,"w-full"),children:[i.jsx("option",{value:"",children:"未设置"}),n.options?.map(c=>i.jsx("option",{value:c,children:n.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(Dm,{value:wl({[n.key]:r},n.key),onChange:a,nodeOptions:o});default:return i.jsxs(i.Fragment,{children:[i.jsx(Nt,{value:wl({[n.key]:r},n.key),onChange:c=>a(c.target.value),placeholder:n.key==="category"?`如:${Wb.join(" / ")}`:void 0,list:n.key==="category"?"hook-category-suggestions":void 0,className:"h-8 text-sm"}),n.key==="category"&&i.jsx(Jc,{id:"hook-category-suggestions",options:Wb})]})}}function Dm({value:n,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:n,onChange:c=>r(c.target.value),className:Ee(Ee(Gn,"w-full"),n===""&&"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 zm(n,r,o){const a=o===void 0?n:n.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 Hv(n,r,o){const a=n.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 p=[];for(const g of r){const b=d.get(g.id),m=b===void 0?void 0:c.get(b);m===void 0?p.push(g):m.events.push(g)}return{groups:a,ungrouped:p}}function _A(n,r,o,a,c){const d=[...n.flatMap(b=>b.events.map(m=>m.id)),...r.map(b=>b.id)];let p;if(o===-1)p=a==="before"?r[0]:r[r.length-1];else{const b=n[o];if(b!==void 0){if(a==="before"){if(p=b.events[0],p===void 0)for(let m=o+1;m<n.length;m++){const y=n[m].events[0];if(y!==void 0){p=y;break}}}else if(p=b.events[b.events.length-1],p===void 0)for(let m=o-1;m>=0;m--){const y=n[m].events[n[m].events.length-1];if(y!==void 0){p=y;break}}}}if(p!==void 0)return zm(d,{kind:a,id:p.id},c);const g=d.find(b=>b!==c);return g===void 0?0:zm(d,{kind:"before",id:g},c)}function Jp(n){const r=n.summary.tags;return Array.isArray(r)?r.filter(o=>typeof o=="string"):[]}function AA(n){const r=n.summary.description;return typeof r=="string"?r:""}function Lm(n,r,o=5){const a=n.split(/[,,、\n]/),c=a[a.length-1].trim();if(c==="")return[];const d=new Set(a.slice(0,-1).map(m=>m.trim()).filter(m=>m!=="")),p=c.toLowerCase(),g=[],b=new Set;for(const m of r){if(g.length>=o)break;d.has(m)||b.has(m)||m.toLowerCase().includes(p)&&(b.add(m),g.push(m))}return g}function Im(n,r){const o=n.split(/[,,、\n]/);return o[o.length-1]=r,o.join(",")+","}function Uc(n){const r=new Set,o=[];for(const a of n)for(const c of Jp(a))c!==""&&!r.has(c)&&(r.add(c),o.push(c));return o}function MA(n,r){return r===null||r===""?n:n.filter(o=>Jp(o).includes(r))}function CS(n){const r=[],o=new Set;for(const a of n.split(/[,,、\n]/)){const c=a.trim();c!==""&&!o.has(c)&&(o.add(c),r.push(c))}return r}function OS(n){return Array.isArray(n)?n.filter(r=>typeof r=="string").join(","):""}function DA(n){const r=n.data;return{name:n.name,description:typeof r.description=="string"?r.description:"",tagsInput:OS(r.tags)}}function RS(n,r){const o={};r.name.trim()!==n.name&&(o.name=r.name.trim());const a={};(r.description.trim()!==""||n.data.description!==void 0)&&(a.description=r.description.trim());const c=CS(r.tagsInput);(c.length>0||n.data.tags!==void 0)&&(a.tags=c);const d={};for(const p of["description","tags"])JSON.stringify(a[p])!==JSON.stringify(n.data[p])&&(d[p]=a[p]);return Object.keys(d).length>0&&(o.data=d),o.name===void 0&&o.data===void 0?null:o}const kS="occurs_in",_S="occurs_at";function zA(n,r){return n.filter(o=>o.relationType===kS&&o.sourceId===r)}function LA(n,r){return{source_type:"event",source_id:n,target_type:"outline_node",target_id:r,relation_type:kS}}function im(n,r){const o=n.find(a=>a.relationType===_S&&a.sourceType==="timepoint"&&a.targetId===r);return o===void 0?null:o.sourceId}function IA(n,r){return{source_type:"timepoint",source_id:n,target_type:"event",target_id:r,relation_type:_S}}function BA({ev:n,occursCount:r,hasOccursData:o,dragging:a,busy:c,showInsertBefore:d,showInsertAfter:p,eventDrag:g,onDetail:b,onEdit:m,onDelete:y}){const x=Jp(n),S=AA(n),N=r(n.id),[j,w]=h.useState(!1),_=h.useRef(null),[E,T]=h.useState(!1);return h.useLayoutEffect(()=>{const C=_.current;if(C===null)return;const k=()=>{j||T(C.scrollHeight>C.clientHeight+1)};return k(),window.addEventListener("resize",k),()=>window.removeEventListener("resize",k)},[S,j]),i.jsxs("div",{draggable:!c,onDragStart:C=>g.onDragStart(C,n),onDragEnd:g.onDragEnd,onDragOver:C=>g.onDragOver(C,n),onDrop:C=>g.onDrop(C,n),title:"拖拽调整事件顺序/挂载",className:Ee("relative flex items-start",a&&"opacity-50"),children:[d&&i.jsx("div",{className:"absolute inset-x-0 -top-px h-0.5 bg-primary"}),p&&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:"min-w-0 truncate font-medium text-foreground",title:n.name,children:n.name}),x.map(C=>i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:C},C)),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:[N," 节点"]}),i.jsx(me,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"详情","aria-label":`${n.name} 详情`,onClick:()=>b(n),children:i.jsx(Vm,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"编辑","aria-label":`${n.name} 编辑`,onClick:()=>m(n),children:i.jsx(Ql,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`${n.name} 移入回收站`,onClick:()=>y(n),children:i.jsx(Zl,{className:"size-3.5"})})]})]}),S.trim()!==""&&i.jsxs("div",{className:"mt-1.5",children:[i.jsx("p",{ref:_,className:Ee("text-sm leading-relaxed text-muted-foreground",!j&&"line-clamp-2"),children:S}),(j||E)&&i.jsx("button",{type:"button",draggable:!1,onClick:()=>w(C=>!C),className:"mt-1 rounded-md border border-border px-1.5 py-0.5 text-xs text-primary hover:bg-muted","aria-expanded":j,children:j?"收起":"展开"})]})]})]})}function UA({timepoint:n,groupId:r,events:o,collapsed:a,dragSource:c,busy:d,occursCount:p,hasOccursData:g,showInsertBefore:b,showInsertAfter:m,onToggleCollapse:y,onRename:x,onDeleteTimepoint:S,onAddEventAt:N,onDragStart:j,onDragEnd:w,onDragOver:_,onDrop:E,eventDrag:T,eventInsertLines:C,onDetail:k,onEdit:F,onDelete:A}){const[L,O]=h.useState(!1),[X,ne]=h.useState(""),fe=n===null,ee=fe?"未挂载":n.name,K=c!==null&&c.kind==="timepoint"&&c.id===r;function te(){n!==null&&(ne(n.name),O(!0))}async function W(){if(n===null)return;const D=X.trim();O(!1),!(D===""||D===n.name)&&await x(n.id,D)}return i.jsxs("div",{className:"relative flex flex-col gap-2",children:[b&&i.jsx("div",{className:"absolute inset-x-0 -top-px h-0.5 bg-primary"}),m&&i.jsx("div",{className:"absolute inset-x-0 -bottom-px h-0.5 bg-primary"}),i.jsxs("div",{draggable:!fe&&!d&&!L,onDragStart:j,onDragEnd:w,onDragOver:_,onDrop:E,title:fe?void 0:"拖拽调整时间点顺序(组内事件不动)",className:Ee("flex items-start",!fe&&K&&"opacity-50"),children:[i.jsx("div",{className:"w-[22px] shrink-0",children:i.jsx("span",{"aria-hidden":"true",className:Ee("relative z-10 mx-auto mt-[6px] block size-4 rounded-full border-2 bg-background",fe?"border-dashed border-border":"border-primary")})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 py-1",children:[i.jsx(me,{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(Hm,{className:Ee("size-4 transition-transform duration-200",!a&&"rotate-90")})}),L?i.jsx("input",{autoComplete:"off",autoFocus:!0,value:X,onChange:D=>ne(D.target.value),onKeyDown:D=>{D.key==="Enter"?W():D.key==="Escape"&&O(!1)},onBlur:()=>O(!1),maxLength:100,"aria-label":"时间点名称",className:"w-40 rounded-md border border-border bg-background px-2 py-0.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50"}):i.jsx("span",{className:Ee("min-w-0 truncate text-sm font-medium",fe?"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," 个事件"]}),n!==null&&!L&&i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"重命名","aria-label":`重命名「${n.name}」`,onClick:te,children:i.jsx(Ql,{className:"size-3.5"})}),n!==null&&!L&&i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"在此时间点新建事件","aria-label":"在此时间点新建事件",onClick:()=>N(r),children:i.jsx(Fm,{className:"size-3.5"})}),n!==null&&!L&&i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`移入回收站「${n.name}」`,onClick:()=>S(n),children:i.jsx(Zl,{className:"size-3.5"})})]})]})]}),!a&&i.jsx("div",{className:"flex flex-col gap-2",children:o.map(D=>{const z=C(D.id);return i.jsx(BA,{ev:D,occursCount:p,hasOccursData:g,dragging:c!==null&&c.kind==="event"&&c.id===D.id,busy:d,showInsertBefore:z.before,showInsertAfter:z.after,eventDrag:T,onDetail:k,onEdit:F,onDelete:A},D.id)})})]})}function HA({timepoints:n,events:r,allEvents:o,occursAtEdges:a,occursCount:c,hasOccursData:d,onMoveTimepoint:p,onMoveEvent:g,onMoveEventTo:b,onRenameTimepoint:m,onDeleteTimepoint:y,onAddEventAt:x,onDetail:S,onEdit:N,onDelete:j}){const w=h.useMemo(()=>Hv(n,r,a),[n,r,a]),_=h.useMemo(()=>Hv(n,o,a),[n,o,a]),E=h.useMemo(()=>[...w.groups.map(H=>({timepoint:H.timepoint,groupId:H.timepoint.id,events:H.events})),...w.ungrouped.length>0?[{timepoint:null,groupId:"",events:w.ungrouped}]:[]],[w]),T=h.useMemo(()=>{const H=new Map;for(const q of w.groups)for(const J of q.events)H.set(J.id,q.timepoint.id);for(const q of w.ungrouped)H.set(q.id,"");return H},[w]),C=h.useMemo(()=>n.map(H=>H.id),[n]),[k,F]=h.useState(new Set),[A,L]=h.useState(null),[O,X]=h.useState(null),[ne,fe]=h.useState(!1);function ee(H){const q=H.currentTarget.getBoundingClientRect();return H.clientY<q.top+q.height/2?"before":"after"}function K(H){return H===""?-1:_.groups.findIndex(q=>q.timepoint.id===H)}function te(H,q,J){H.preventDefault(),H.dataTransfer.dropEffect="move";const he=ee(H);X(re=>re!==null&&re.kind==="event"&&re.at===J.at&&re.side===he&&re.groupId===q&&re.anchorId===J.anchorId?re:{kind:"event",at:J.at,side:he,groupId:q,anchorId:J.anchorId})}function W(H,q){q.timepoint!==null&&(H.dataTransfer.setData("text/plain",q.timepoint.id),H.dataTransfer.effectAllowed="move",L({kind:"timepoint",id:q.timepoint.id}),X(null))}function D(H,q){H.dataTransfer.setData("text/plain",q.id),H.dataTransfer.effectAllowed="move",L({kind:"event",id:q.id}),X(null)}function z(){L(null),X(null)}function P(H,q){const J=A;if(J===null||J.kind==="timepoint"&&q.timepoint===null)return;H.preventDefault(),H.dataTransfer.dropEffect="move";const he=ee(H);if(J.kind==="timepoint"){X(ce=>ce!==null&&ce.kind==="timepoint"&&ce.side===he&&ce.groupId===q.groupId?ce:{kind:"timepoint",side:he,groupId:q.groupId});return}const re=q.events.length===0?null:he==="before"?q.events[0].id:q.events[q.events.length-1].id;te(H,q.groupId,{at:"group",anchorId:re})}function U(H,q,J){const he=A;if(he!==null&&!(he.kind==="timepoint"&&J.timepoint===null)){if(H.preventDefault(),H.dataTransfer.dropEffect="move",he.kind==="timepoint"){const re=ee(H);X(ce=>ce!==null&&ce.kind==="timepoint"&&ce.side===re&&ce.groupId===J.groupId?ce:{kind:"timepoint",side:re,groupId:J.groupId});return}te(H,J.groupId,{at:"row",anchorId:q.id})}}async function V(H,q,J){const he=A;if(he===null||he.kind!=="event"||ne)return;if(H.preventDefault(),J===he.id){z();return}const re=ee(H),ce=_A(_.groups,_.ungrouped,K(q.groupId),re,he.id),Ie=T.get(he.id)??"";fe(!0);try{q.groupId===Ie?await g(he.id,ce):await b(he.id,q.groupId===""?null:q.groupId,ce)}finally{fe(!1),z()}}function M(H,q){const J=A;if(J===null||ne)return;if(H.preventDefault(),J.kind==="timepoint"){if(q.timepoint===null)return;if(q.groupId===J.id){z();return}const ce=ee(H),Ie=zm(C,{kind:ce,id:q.groupId},J.id);fe(!0),p(J.id,Ie).finally(()=>{fe(!1),z()});return}const he=ee(H),re=q.events.length===0?null:he==="before"?q.events[0].id:q.events[q.events.length-1].id;V(H,q,re)}function B(H,q,J){const he=A;if(he!==null&&he.kind==="timepoint"){M(H,J);return}V(H,J,q.id)}function I(H){F(q=>{const J=new Set(q);return J.has(H)?J.delete(H):J.add(H),J})}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(H=>{const q=O!==null&&(O.kind==="timepoint"&&O.groupId===H.groupId||O.kind==="event"&&O.at==="group"&&O.groupId===H.groupId),J=q&&O!==null&&O.side==="before",he=q&&O!==null&&O.side==="after",re=O!==null&&O.kind==="event"&&O.at==="row"&&O.side==="before",ce=O!==null&&O.kind==="event"&&O.at==="row"&&O.side==="after",Ie={onDragStart:D,onDragEnd:z,onDragOver:(_e,we)=>U(_e,we,H),onDrop:(_e,we)=>B(_e,we,H)};return i.jsx(UA,{timepoint:H.timepoint,groupId:H.groupId,events:H.events,collapsed:k.has(H.groupId),dragSource:A,busy:ne,occursCount:c,hasOccursData:d,showInsertBefore:J,showInsertAfter:he,onToggleCollapse:()=>I(H.groupId),onRename:m,onDeleteTimepoint:y,onAddEventAt:x,onDragStart:_e=>W(_e,H),onDragEnd:z,onDragOver:_e=>P(_e,H),onDrop:_e=>M(_e,H),eventDrag:Ie,eventInsertLines:_e=>({before:re&&O!==null&&O.kind==="event"&&O.anchorId===_e,after:ce&&O!==null&&O.kind==="event"&&O.anchorId===_e}),onDetail:S,onEdit:N,onDelete:j},H.groupId===""?"__ungrouped__":H.groupId)})]})}function Bm({suggestions:n,visible:r,onPick:o}){return!r||n.length===0?null:i.jsx("div",{className:"mt-1 overflow-hidden rounded-md border border-border bg-card",children:n.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 va={name:"",description:"",tagsInput:""};function YA(){const[n,r]=h.useState(null),[o,a]=h.useState(null),[c,d]=h.useState(!1),[p,g]=h.useState(null),[b,m]=h.useState(0);dr(()=>m(Te=>Te+1));const[y,x]=h.useState([]),[S,N]=h.useState(!1),[j,w]=h.useState([]),[_,E]=h.useState(!1),[T,C]=h.useState(null),[k,F]=h.useState([]),[A,L]=h.useState(!1),[O,X]=h.useState(va),[ne,fe]=h.useState(null),[ee,K]=h.useState(""),[te,W]=h.useState(null),[D,z]=h.useState(!1),[P,U]=h.useState(!1),[V,M]=h.useState(""),[B,I]=h.useState(null),[H,q]=h.useState(!1),[J,he]=h.useState(null),[re,ce]=h.useState(null),[Ie,_e]=h.useState(null),[we,Be]=h.useState(!1),ge=Le(Te=>Te.config),ie=Le(Te=>Te.outline),He=rr(ie?.children??[]),Re=pt(Te=>Te.sendMessage);h.useEffect(()=>{let Te=!1;return d(!0),g(null),N(!1),E(!1),Promise.allSettled([Nn("timepoint",{}).then(ye=>{Te||r(ye.items)}).catch(ye=>{Te||(r(null),g(ye instanceof De?ye.code:ot))}),Nn("event",{}).then(ye=>{Te||(a(ye.items),F(Uc(ye.items)),ye.items.length>=ye.limit&&Nn("event",{limit:200}).then(qe=>{Te||F(Uc(qe.items))}).catch(()=>{}))}).catch(ye=>{Te||(a(null),g(ye instanceof De?ye.code:ot))}),Ta({source_type:"timepoint",relation_type:"occurs_at",depth:1}).then(ye=>{Te||x(ye.relations)}).catch(()=>{Te||N(!0)}),Ta({source_type:"event",relation_type:"occurs_in",depth:1}).then(ye=>{Te||w(ye.relations)}).catch(()=>{Te||E(!0)})]).finally(()=>{Te||d(!1)}),()=>{Te=!0}},[b]),h.useEffect(()=>{Le.getState().outline===null&&Le.getState().config!==null&&Le.getState().loadOutline()},[]);async function ze(Te){Te.preventDefault();const ye=V.trim();if(!ye){I("请输入名称");return}q(!0),I(null);try{await Yc("timepoint",{name:ye}),Oe.getState().showToast(`已创建时间点《${ye}》`),U(!1),M(""),m(qe=>qe+1)}catch(qe){I(qe instanceof De?qe.message:"创建失败,请重试")}finally{q(!1)}}async function ve(Te){Te.preventDefault();const ye=O.name.trim();if(!ye){W("请输入名称");return}z(!0),W(null);try{const qe={};O.description.trim()!==""&&(qe.description=O.description.trim());const Tt=CS(O.tagsInput);Tt.length>0&&(qe.tags=Tt);const qt=await Yc("event",{name:ye,data:qe});if(ne!==null)try{await Hr(IA(ne,qt.id))}catch(Ot){Oe.getState().showToast(`已创建事件《${ye}》,但挂载到时间点失败:${Ot instanceof De?Ot.message:"未知错误"}`,"error"),L(!1),X(va),fe(null),K(""),m(Ge=>Ge+1);return}if(ee!=="")try{await Hr({source_type:"event",source_id:qt.id,target_type:"outline_node",target_id:ee,relation_type:"occurs_in"})}catch(Ot){Oe.getState().showToast(`已创建事件《${ye}》,但节点关联失败:${Ot instanceof De?Ot.message:"未知错误"}`,"error"),L(!1),X(va),fe(null),K(""),m(Ge=>Ge+1);return}Oe.getState().showToast(`已创建事件《${ye}》`),L(!1),X(va),fe(null),K(""),m(Ot=>Ot+1)}catch(qe){W(qe instanceof De?qe.message:"创建失败,请重试")}finally{z(!1)}}function ue(Te){const ye=Te.summary;he(Te),_e(null),ce({name:Te.name,description:typeof ye.description=="string"?ye.description:"",tagsInput:OS(ye.tags)})}async function ke(){const Te=J,ye=re;if(!(!Te||!ye||we)){Be(!0),_e(null);try{const qe=RS({name:Te.name,data:Te.summary},ye);if(qe===null){Oe.getState().showToast("没有变更"),he(null);return}await bo("event",Te.id,qe),Oe.getState().showToast("已保存"),he(null),m(Tt=>Tt+1)}catch(qe){_e(qe instanceof De?qe.message:"保存失败,请重试")}finally{Be(!1)}}}async function Ae(Te){try{const ye=await eu(Te.kind,Te.entity.id),qe=[];ye.cascaded.relations>0&&qe.push(`${ye.cascaded.relations} 条关联`),ye.cascaded.deltas>0&&qe.push(`${ye.cascaded.deltas} 条变更记录`),Oe.getState().showToast(`已移入回收站,可随时还原${qe.length>0?`(含 ${qe.join("、")})`:""}`),m(Tt=>Tt+1)}catch(ye){Oe.getState().showToast(ye instanceof De?ye.message:"删除失败,请重试","error")}}async function Q(Te,ye){try{await I2(Te,{order:ye}),Oe.getState().showToast("已调整时间点顺序")}catch(qe){Oe.getState().showToast(qe instanceof De?`排序失败:${qe.message}`:"排序失败,请重试","error")}finally{m(qe=>qe+1)}}async function Y(Te,ye){try{await L2(Te,{order:ye}),Oe.getState().showToast("已调整事件顺序")}catch(qe){Oe.getState().showToast(qe instanceof De?`排序失败:${qe.message}`:"排序失败,请重试","error")}finally{m(qe=>qe+1)}}async function G(Te,ye,qe){try{await y0(Te,{timepoint_id:ye,order:qe}),Oe.getState().showToast(ye===null?"已移至未挂载区":"已调整事件挂载与顺序")}catch(Tt){Oe.getState().showToast(Tt instanceof De?`操作失败:${Tt.message}`:"操作失败,请重试","error")}finally{m(Tt=>Tt+1)}}async function je(Te,ye){try{await bo("timepoint",Te,{name:ye}),Oe.getState().showToast("已重命名"),m(qe=>qe+1)}catch(qe){Oe.getState().showToast(qe instanceof De?`重命名失败:${qe.message}`:"重命名失败,请重试","error")}}function xe(Te){X(va),K(""),W(null),fe(Te),L(!0)}function oe(){X(va),K(""),W(null),fe(null),L(!0)}function Ce(){ge!==null&&Re("请按时间标签的语义先后顺序对时间轴时间点排序,并使用 propose_reorder_timepoints 工具生成排序提案。")}const Ue=o===null?[]:Uc(o),Qe=o===null?null:MA(o,T),ht=Te=>_?0:j.filter(ye=>ye.sourceId===Te).length,Mt=!_,ut=Lm(O.tagsInput,k),It=re===null?[]:Lm(re.tagsInput,k);function jt(Te){X(ye=>({...ye,tagsInput:Im(ye.tagsInput,Te)}))}function Ht(Te){ce(ye=>ye&&{...ye,tagsInput:Im(ye.tagsInput,Te)})}return i.jsxs("section",{className:"flex h-full min-h-0 flex-col",children:[i.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"时间轴"}),i.jsx("span",{className:Ee("ml-auto",!ge&&"cursor-not-allowed"),title:ge?void 0:"请先打开项目",children:i.jsxs(me,{type:"button",variant:"outline",size:"sm",disabled:!ge,onClick:Ce,"aria-label":"AI 排序",children:[i.jsx(Dj,{className:"size-3.5"}),"AI 排序"]})}),i.jsx(me,{type:"button",variant:"outline",onClick:oe,children:"+ 新建事件"}),i.jsx(me,{type:"button",onClick:()=>U(!0),children:"+ 新建时间点"})]}),o!==null&&o.length>0&&i.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-1.5",children:[i.jsx("button",{type:"button",onClick:()=>C(null),className:Ee("rounded-full border px-2.5 py-0.5 text-xs transition-colors",T===null?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:"全部"}),Ue.map(Te=>i.jsx("button",{type:"button",onClick:()=>C(ye=>ye===Te?null:Te),className:Ee("rounded-full border px-2.5 py-0.5 text-xs transition-colors",T===Te?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:Te},Te))]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[p!==null&&i.jsxs("div",{className:Ee(Wc,"mb-3 flex items-center gap-2"),children:[p===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"时间轴加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>m(Te=>Te+1),children:"重试"})]}),c&&(n===null||o===null)&&p===null&&i.jsx("div",{className:"space-y-2",children:Array.from({length:4},(Te,ye)=>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"})]},ye))}),!c&&n!==null&&o!==null&&n.length===0&&o.length===0&&i.jsx(is,{action:i.jsx(me,{type:"button",onClick:()=>U(!0),children:"+ 新建时间点"}),children:"还没有时间点。先定义一个时间标签点(如「第二天黄昏」),再在其中挂载事件。"}),n!==null&&o!==null&&Qe!==null&&!(T!==null&&Qe.length===0)&&i.jsx(HA,{timepoints:n,events:Qe,allEvents:o,occursAtEdges:S?[]:y,occursCount:ht,hasOccursData:Mt,onMoveTimepoint:Q,onMoveEvent:Y,onMoveEventTo:G,onRenameTimepoint:je,onAddEventAt:xe,onDetail:Te=>an(`/timeline/${Te.id}`),onEdit:ue,onDelete:Te=>{Ae({kind:"event",entity:Te})},onDeleteTimepoint:Te=>{Ae({kind:"timepoint",entity:Te})}}),!c&&o!==null&&o.length>0&&Qe!==null&&Qe.length===0&&i.jsxs(is,{padding:"sm",children:["没有匹配「",T,"」的事件"]})]}),i.jsx(Ts,{open:P,onOpenChange:Te=>!Te&&U(!1),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Rs,{children:"新建时间点"})}),i.jsxs("form",{id:"create-timepoint-form",onSubmit:ze,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(Nt,{value:V,onChange:Te=>M(Te.target.value),placeholder:"如:第二天黄昏",maxLength:100,autoFocus:!0})]}),B&&i.jsx("p",{className:"text-sm text-destructive",children:B})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>U(!1),disabled:H,children:"取消"}),i.jsx(me,{type:"submit",form:"create-timepoint-form",disabled:H,children:"创建"})]})]})}),i.jsx(Ts,{open:A,onOpenChange:Te=>!Te&&L(!1),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsx(Rs,{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(Nt,{value:O.name,onChange:Te=>X(ye=>({...ye,name:Te.target.value})),placeholder:"如:主角踏入宗门",maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:O.description,onChange:Te=>X(ye=>({...ye,description:Te.target.value})),rows:2,placeholder:"事件发生了什么",className:Ee(Gn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Nt,{value:O.tagsInput,onChange:Te=>X(ye=>({...ye,tagsInput:Te.target.value})),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Bm,{suggestions:ut,visible:O.tagsInput.trim()!=="",onPick:jt})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"关联大纲节点(选填,可空)"}),i.jsx(PA,{value:ee,onChange:K,nodeOptions:He})]}),te&&i.jsx("p",{className:"text-sm text-destructive",children:te})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>L(!1),disabled:D,children:"取消"}),i.jsx(me,{type:"submit",form:"create-event-form",disabled:D,children:"创建"})]})]})}),J&&re&&i.jsx(Ts,{open:!0,onOpenChange:Te=>!Te&&!we&&he(null),children:i.jsxs(ws,{className:"sm:max-w-md",children:[i.jsx(Cs,{children:i.jsxs(Rs,{children:["编辑事件《",J.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(Nt,{value:re.name,onChange:Te=>ce(ye=>ye&&{...ye,name:Te.target.value}),maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:re.description,onChange:Te=>ce(ye=>ye&&{...ye,description:Te.target.value}),rows:2,className:Ee(Gn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Nt,{value:re.tagsInput,onChange:Te=>ce(ye=>ye&&{...ye,tagsInput:Te.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Bm,{suggestions:It,visible:re.tagsInput.trim()!=="",onPick:Ht})]}),Ie&&i.jsx("p",{className:"text-sm text-destructive",children:Ie})]}),i.jsxs(Os,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>he(null),disabled:we,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{ke()},disabled:we,children:we?"保存中…":"保存"})]})]})})]})}function PA({value:n,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:n,onChange:c=>r(c.target.value),className:Ee(Ee(Gn,"w-full"),n===""&&"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 VA({id:n}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[d,p]=h.useState(!1),[g,b]=h.useState(null),[m,y]=h.useState(null),[x,S]=h.useState(!1),[N,j]=h.useState(null),[w,_]=h.useState(!1),[E,T]=h.useState(""),[C,k]=h.useState(null),[F,A]=h.useState(!1),[L,O]=h.useState(null),[X,ne]=h.useState([]),[fe,ee]=h.useState(null),[K,te]=h.useState(null),[W,D]=h.useState(!1),[z,P]=h.useState(!1),[U,V]=h.useState(null);async function M(){try{const ge=await Nn("event",{limit:200});ne(Uc(ge.items))}catch{}}async function B(){D(!1);try{const[ge,ie]=await Promise.all([Nn("timepoint",{}),Nn("event",{limit:200})]);ee(ge.items),te(ie.items)}catch{ee(null),te(null),D(!0)}}h.useEffect(()=>{M(),B()},[]);const I=Le(ge=>ge.outline),H=rr(I?.children??[]);async function q(){c(!0),b(null),p(!1);try{const ge=await po("event",n);o(ge),y(DA(ge))}catch(ge){o(null),y(null),ge instanceof De&&ge.code==="ENTITY_NOT_FOUND"?p(!0):b(ge instanceof De?ge.code:ot)}finally{c(!1)}}h.useEffect(()=>{q()},[n]),dr(()=>{q(),M(),B()}),h.useEffect(()=>{Le.getState().outline===null&&Le.getState().config!==null&&Le.getState().loadOutline()},[]);async function J(){if(!r||!m||x)return;const ge=RS({name:r.name,data:r.data},m);if(ge===null){Oe.getState().showToast("没有变更");return}S(!0),j(null);try{await bo("event",n,ge),Oe.getState().showToast("已保存"),await q()}catch(ie){if(ie instanceof De&&ie.code==="ENTITY_NOT_FOUND"){p(!0);return}j(ie instanceof De?ie.message:"保存失败,请重试")}finally{S(!1)}}async function he(ge){if(!r||z||!fe||!K)return;const ie=im(r.relations,n);if(ge===(ie??""))return;const He=K.findIndex(ze=>ze.id===n),Re=He===-1?K.length:He;P(!0),V(null);try{await y0(n,{timepoint_id:ge===""?null:ge,order:Re}),Oe.getState().showToast(ge===""?"已移出挂载":"已更新挂载时间点"),await q()}catch(ze){if(ze instanceof De&&ze.code==="ENTITY_NOT_FOUND"){p(!0);return}V(ze instanceof De?ze.message:"挂载保存失败,请重试")}finally{P(!1)}}async function re(){if(!(E===""||F)){A(!0),k(null);try{await Hr(LA(n,E)),Oe.getState().showToast("已关联大纲节点"),_(!1),await q()}catch(ge){if(ge instanceof De&&ge.code==="RELATION_EXISTS"){k("这条关系已经存在");return}k(ge instanceof De?ge.message:"关联失败,请重试")}finally{A(!1)}}}async function ce(){if(L)try{await Dl(L.id),Oe.getState().showToast("已取消关联"),O(null),await q()}catch(ge){throw ge}}async function Ie(){if(r)try{const ge=await eu("event",n),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("、")})`:""}`),an("/timeline")}catch(ge){Oe.getState().showToast(ge instanceof De?ge.message:"删除失败,请重试","error")}}if(d)return i.jsx("section",{children:i.jsx(is,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>an("/timeline"),children:"返回列表"})]}),children:"该事件不存在或已被删除"})});const _e=r===null?[]:zA(r.relations,n),we=m===null?[]:Lm(m.tagsInput,X);function Be(ge){y(ie=>ie&&{...ie,tagsInput:Im(ie.tagsInput,ge)})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx($p,{items:[{label:"时间轴",href:"/timeline"},{label:r?.name??"…"}]}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:r?.name??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>{J()},disabled:!r||x,children:x?"保存中…":"保存"}),i.jsx(me,{variant:"outline",type:"button",disabled:!r,className:"text-destructive hover:bg-destructive/10",onClick:()=>{Ie()},children:"移入回收站"})]})]}),r&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",ms(r.createdAt)," · 更新于 ",ms(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===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"详情加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{q()},children:"重试"})]}),r&&m&&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(Nt,{value:m.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:m.description,onChange:ge=>y(ie=>ie&&{...ie,description:ge.target.value}),rows:3,placeholder:"事件发生了什么",className:Ee(Gn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"挂载时间点"}),fe===null?W?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["挂载数据加载失败",i.jsx(me,{variant:"outline",size:"sm",type:"button",className:"h-6 px-2 text-xs",onClick:()=>{B()},children:"重试"})]}):i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"}):i.jsxs("select",{value:im(r.relations,n)??"",onChange:ge=>{he(ge.target.value)},disabled:z,className:Ee(Ee(Gn,"w-full"),im(r.relations,n)===null&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"未挂载"}),fe.map(ge=>i.jsx("option",{value:ge.id,children:ge.name},ge.id))]}),z&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"保存中…"}),U&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:U})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Nt,{value:m.tagsInput,onChange:ge=>y(ie=>ie&&{...ie,tagsInput:ge.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Bm,{suggestions:we,visible:m.tagsInput.trim()!=="",onPick:Be})]}),N&&i.jsx("p",{className:"text-sm text-destructive",children:N})]})]}),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(Kp,{open:w,onOpenChange:ge=>{ge?(T(""),k(null),_(!0)):F||_(!1)},children:[i.jsx(Qp,{render:i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",children:"+ 关联场景/章节"})}),i.jsxs(Zp,{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(FA,{value:E,onChange:T,nodeOptions:H,placeholder:"请选择节点"})]}),C&&i.jsx("p",{className:"text-sm text-destructive",children:C}),i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(me,{variant:"outline",type:"button",size:"sm",onClick:()=>_(!1),disabled:F,children:"取消"}),i.jsx(me,{type:"button",size:"sm",onClick:()=>{re()},disabled:F||E==="",children:F?"关联中…":"关联"})]})]})]})]}),_e.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:_e.map(ge=>i.jsxs("li",{className:"flex items-center gap-2 py-2 text-sm",children:[i.jsx("button",{type:"button",onClick:()=>an(`/outline/${ge.targetId}`),title:"跳转大纲定位",className:"min-w-0 flex-1 truncate rounded-md border border-border px-1.5 py-0.5 text-left text-foreground hover:bg-muted hover:text-foreground",children:ge.targetName??ge.targetId}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>O(ge),children:"取消关联"})]},ge.id))})]})]}),L&&i.jsx(Ra,{title:"取消关联",description:`取消《${L.targetName??L.targetId}》与事件的关联?物理删除不可恢复,可重新建立。`,confirmLabel:"取消关联",danger:!0,onConfirm:ce,onClose:()=>O(null)})]})}function FA({value:n,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:n,onChange:c=>r(c.target.value),className:Ee(Ee(Gn,"w-full"),n===""&&"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 qA(n,r){const o=[];return n>0&&o.push(`${n} 条关系`),r>0&&o.push(`${r} 条变更记录`),o.length>0?`已还原,连带恢复 ${o.join("、")}`:"已还原"}function GA(n){return n>0?`已还原(含 ${n} 个子节点)`:"已还原"}function $A(n){return/软删祖先\s+([^\s,,]+)/.exec(n)?.[1]??null}const Yv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},XA={volume:"卷",chapter:"章",scene:"场"};function Pv({label:n}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:n})}function KA(){const[n,r]=h.useState(null),[o,a]=h.useState(!1),[c,d]=h.useState(null),[p,g]=h.useState(0);dr(()=>g(k=>k+1));const[b,m]=h.useState(null),[y,x]=h.useState(null);h.useEffect(()=>{let k=!1;return a(!0),d(null),A2().then(F=>{k||r(F)}).catch(F=>{k||d(F instanceof De?F.code:ot)}).finally(()=>{k||a(!1)}),()=>{k=!0}},[p]);async function S(){g(k=>k+1)}function N(k){return k instanceof De&&(k.code==="ENTITY_NOT_FOUND"||k.code==="OUTLINE_NODE_NOT_FOUND")}function j(k){Oe.getState().showError(k instanceof De?k.code:ot,k instanceof De?k.message:"操作失败,请重试")}async function w(k){try{const F=await M2(k.type,k.id);Oe.getState().showToast(qA(F.restoredRelations,F.restoredDeltas)),await S()}catch(F){if(N(F)){Oe.getState().showToast("该对象已不存在","error"),await S();return}j(F)}}async function _(k){x(null);try{const F=await hy(k.id);Oe.getState().showToast(GA(F.restoredChildren)),await S(),Le.getState().loadOutline()}catch(F){if(F instanceof De&&F.code==="OUTLINE_ANCESTOR_DELETED"){const A=$A(F.message);if(A===null){Oe.getState().showError("OUTLINE_ANCESTOR_DELETED","上级节点也在回收站,请先还原上级");return}x({node:k,ancestorId:A,ancestorName:n?.nodes.find(L=>L.id===A)?.title??A});return}if(N(F)){Oe.getState().showToast("该对象已不存在","error"),await S();return}j(F)}}async function E(){const k=y;if(k)try{await hy(k.ancestorId),Le.getState().loadOutline(),await _(k.node)}catch(F){if(N(F)){Oe.getState().showToast("该对象已不存在","error"),x(null),await S();return}j(F)}}async function T(){if(b)try{b.kind==="entity"?await D2(b.item.type,b.item.id):(await z2(b.item.id),Le.getState().loadOutline()),Oe.getState().showToast("已彻底删除"),await S()}catch(k){if(N(k)){Oe.getState().showToast("该对象已不存在","error"),await S();return}throw k}}const C=n!==null&&n.entities.length===0&&n.nodes.length===0;return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"回收站"}),i.jsx(me,{variant:"outline",type:"button",className:"ml-auto",onClick:()=>{S()},disabled:o,children:"刷新"})]}),i.jsx("p",{className:"mb-4 text-xs text-muted-foreground",children:"软删对象会保留一段时间,可在此还原,或彻底删除(不可恢复)。"}),c!==null&&i.jsxs("div",{className:Ee(Wc,"mb-3"),children:[c===ot?"无法连接服务,请确认 ai-editor 服务已启动。":"回收站加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{S()},children:"重试"})]}),o&&n===null&&c===null&&i.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:[0,1].map(k=>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},(F,A)=>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"})]},A))]},k))}),!o&&C&&i.jsx(is,{children:"回收站是空的"}),n!==null&&!C&&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:["实体 (",n.entities.length,")"]}),n.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:n.entities.map(k=>i.jsxs("li",{className:"flex items-center gap-2 px-3 py-2",children:[i.jsx(Pv,{label:Yv[k.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:k.name,children:k.name}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:xo(k.deletedAt)}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{w(k)},children:"还原"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>m({kind:"entity",item:k}),children:"彻底删除"})]})]},k.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:["大纲节点 (",n.nodes.length,")"]}),n.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:n.nodes.map(k=>i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Pv,{label:XA[k.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:k.title,children:k.title}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:xo(k.deletedAt)}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{_(k)},children:"还原"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>m({kind:"node",item:k}),children:"彻底删除"})]})]}),y?.node.id===k.id&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm",children:[i.jsxs("span",{className:"text-destructive",children:["上级节点《",y.ancestorName,"》也在回收站,请先还原上级"]}),i.jsxs(me,{variant:"outline",size:"xs",type:"button",className:"border-destructive/40 text-destructive hover:bg-destructive/10",onClick:()=>{E()},children:["还原上级《",y.ancestorName,"》"]})]})]},k.id))})]})]}),b&&i.jsx(Ra,{title:"彻底删除",description:b.kind==="entity"?`将彻底删除《${b.item.name}》(${Yv[b.item.type]})及其关联关系、变更记录,不可恢复。`:`将彻底删除《${b.item.title}》及整棵子树、关联关系、变更记录,不可恢复。`,confirmLabel:"确认彻底删除",danger:!0,onConfirm:T,onClose:()=>m(null)})]})}function cm(n,r=new Date){const o=new Date(n);if(Number.isNaN(o.getTime()))return n;const a=p=>String(p).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 Vv(n){return!Number.isFinite(n)||n<0?"0 B":n<1024?`${n} B`:n<1024*1024?`${Math.round(n/1024)} KB`:`${(n/(1024*1024)).toFixed(1)} MB`}const Fv=[{value:null,label:"关闭"},...tj.map(n=>({value:n,label:`每 ${n} 分钟`}))],qv={auto:"自动",manual:"手动"};let Cl=0;function QA(){const n=Oe(z=>z.showToast),r=Oe(z=>z.showError),o=Oe(z=>z.notifyDataChanged),a=Le(z=>z.config),c=Le(z=>z.configLoading),d=Le(z=>z.updateConfig),p=Le(z=>z.loadConfig),g=Le(z=>z.loadOutline),[b,m]=h.useState(!1),[y,x]=h.useState(null),[S,N]=h.useState(!1),[j,w]=h.useState(null),[_,E]=h.useState(!1),[T,C]=h.useState(null),[k,F]=h.useState(""),[A,L]=h.useState(null),O=h.useRef(A);O.current=A;async function X(){if(Le.getState().config===null)return;const z=++Cl;N(!0),w(null);try{const P=await $2();if(z!==Cl)return;x(P.backups)}catch(P){if(z!==Cl)return;const U=P instanceof De?P.code:ot;w(U)}finally{z===Cl&&N(!1)}}const ne=a?.id??null,fe=h.useRef(null);h.useEffect(()=>{if(ne===null){Cl++,x(null),w(null),C(null),L(null),fe.current=null;return}fe.current!==ne&&(fe.current=ne,X())},[ne]);async function ee(z){if(a===null)return;const P=z==="null"?null:Number(z);if(P!==a.backupFrequencyMinutes){m(!0);try{await d({backup_frequency_minutes:P}),n(P===null?"已关闭自动备份":`自动备份频率已设为每 ${P} 分钟`)}catch(U){U instanceof De&&U.code===ot?r("CLIENT_NETWORK_ERROR","无法连接服务,频率未保存"):n("频率保存失败,请重试","error")}finally{m(!1)}}}async function K(){if(!(a===null||_)){E(!0);try{const z=k.trim();await X2(z.length>0?z:void 0),F(""),n(z.length>0?`已备份「${z}」`:"已备份"),await X()}catch(z){n(z instanceof De&&z.code!==ot?z.message:"无法连接服务,备份失败","error")}finally{E(!1)}}}async function te(){if(T===null)return;const z=await K2(T.fileName);n(`已恢复备份,覆盖前状态已自动快照(${z.snapshot.fileName})`),await Promise.all([p(),g()]),o(),pt.getState().clearSessions(),pt.getState().loadSessions(),X()}async function W(){if(A===null||A.saving)return;const z=y?.find(U=>U.fileName===A.fileName)?.name??"",P=A.value.trim();if(P===z){L(null);return}L({...A,saving:!0,error:null});try{await Q2(A.fileName,A.value),L(null),n(P.length>0?`已重命名「${P}」`:"已清除备份名称"),await X()}catch(U){const V=U instanceof De&&U.code!==ot?U.message:"无法连接服务,重命名失败";if(O.current===null){n(V,"error");return}L(M=>M===null?M:{...M,saving:!1,error:V})}}const D=a===null?"":Fv.some(z=>String(z.value)===String(a.backupFrequencyMinutes))?String(a.backupFrequencyMinutes):"null";return i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"自动备份"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground",children:"跟随书籍:备份与频率均为本项目独立;服务运行期间按频率自动备份,有变更才生成新备份;每项目保留最近 20 份"}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("select",{value:D,onChange:z=>{ee(z.target.value)},disabled:a===null||b,"aria-label":"自动备份频率",className:"rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",children:Fv.map(z=>i.jsx("option",{value:String(z.value),children:z.label},String(z.value)))}),i.jsx("input",{autoComplete:"off",value:k,onChange:z=>F(z.target.value),maxLength:ey,placeholder:"备份名称(可选)","aria-label":"备份名称(可选)",disabled:a===null,className:"w-36 rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground/60 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs(me,{onClick:()=>{K()},disabled:a===null||_,type:"button",children:[_?i.jsx(Bl,{className:"size-4 animate-spin"}):null,"立即备份"]})]}),a===null&&!c&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground/70",children:"打开项目后可用"}),a!==null&&i.jsxs("div",{className:"mt-3",children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"历史备份"}),i.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:S&&y===null?i.jsxs("div",{className:"space-y-1 p-2",children:[i.jsx("div",{className:Ee(Lt,"h-7 rounded-md")}),i.jsx("div",{className:Ee(Lt,"h-7 rounded-md")})]}):j!==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:j===ot?"无法连接服务":"备份列表加载失败"}),i.jsx(me,{variant:"outline",size:"xs",onClick:()=>{X()},children:"重试"})]}):y!==null&&y.length===0?i.jsx("p",{className:"px-2 py-3 text-xs text-muted-foreground/70",children:"暂无备份,自动备份将在数据变更后按频率生成"}):y!==null?i.jsx("ul",{className:"divide-y divide-border",children:y.map(z=>{const P=A!==null&&A.fileName===z.fileName;return i.jsxs("li",{className:"px-2 py-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"min-w-0 flex-1 text-sm",title:z.fileName,children:[i.jsx("span",{className:"text-muted-foreground",children:cm(z.createdAt)}),i.jsx("span",{className:z.kind==="manual"?"ml-1.5 rounded border border-primary/40 px-1 text-[10px] leading-4 text-primary":"ml-1.5 rounded border border-border px-1 text-[10px] leading-4 text-muted-foreground",children:qv[z.kind]}),!P&&z.name!==void 0?i.jsx("span",{className:"ml-1.5 font-medium text-foreground",children:z.name}):null]}),P?null:i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Vv(z.size)}),P?i.jsxs(i.Fragment,{children:[i.jsx("input",{autoComplete:"off",value:A.value,onChange:U=>L(V=>V===null?V:{...V,value:U.target.value,error:null}),onKeyDown:U=>{U.key==="Enter"?W():U.key==="Escape"&&L(null)},onBlur:()=>{O.current?.saving||L(null)},maxLength:ey,disabled:A.saving,autoFocus:!0,"aria-label":"备份新名称",className:"w-36 shrink-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none placeholder:text-muted-foreground/60 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>{W()},disabled:A.saving,onMouseDown:U=>U.preventDefault(),"aria-label":"确认重命名",title:"确认(Enter)",children:A.saving?i.jsx(Bl,{className:"size-3 animate-spin"}):i.jsx(Qv,{className:"size-3"})}),i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>L(null),disabled:A.saving,onMouseDown:U=>U.preventDefault(),"aria-label":"取消重命名",title:"取消(Esc)",children:i.jsx(ir,{className:"size-3"})})]}):i.jsxs(i.Fragment,{children:[i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>L({fileName:z.fileName,value:z.name??"",saving:!1,error:null}),"aria-label":`重命名备份 ${cm(z.createdAt)}`,title:"重命名",children:i.jsx(Ql,{className:"size-3"})}),i.jsx(me,{variant:"outline",size:"xs",onClick:()=>C(z),children:"加载"})]})]}),P&&A.error!==null?i.jsx("p",{className:"mt-1 text-xs text-destructive",children:A.error}):null]},z.fileName)})}):null})]}),T!==null&&i.jsx(Ra,{title:"加载备份",description:`${cm(T.createdAt)} · ${qv[T.kind]}${T.name!==void 0?` · ${T.name}`:""} · ${Vv(T.size)}。将覆盖当前项目数据;覆盖前会自动备份当前状态(可回退)`,confirmLabel:"确认加载",danger:!0,onConfirm:te,onClose:()=>C(null)})]})}function Ol(n){return n instanceof De?n.code:ot}function ZA(){const n=Oe(U=>U.showToast),r=Oe(U=>U.showError),o=Oe(U=>U.notifyDataChanged),a=Le(U=>U.config),c=Le(U=>U.configLoading),d=Le(U=>U.updateConfig),[p,g]=h.useState(!0),[b,m]=h.useState(""),[y,x]=h.useState(!1),[S,N]=h.useState(void 0),[j,w]=h.useState(""),[_,E]=h.useState(!1),[T,C]=h.useState(null),[k,F]=h.useState(null),[A,L]=h.useState(""),[O,X]=h.useState(null),[ne,fe]=h.useState(!1),[ee,K]=h.useState(null);async function te(){try{const U=await J2();m(U.model),x(U.apiKeySet),N(U.apiKeyMasked)}catch(U){r(Ol(U),"读取 LLM 配置失败")}finally{g(!1)}}h.useEffect(()=>{te()},[]),h.useEffect(()=>{const U=Le.getState();U.config===null&&!U.configLoading&&U.loadConfig()},[]),h.useEffect(()=>{if(a===null){X(null);return}a.id!==O&&(L(a.prompt),X(a.id))},[a,O]);async function W(){K(null),fe(!0);try{const U=A.trim();await d({prompt:U}),L(U),n("提示词已保存,仅影响新请求"),o()}catch(U){Ol(U)===ot?r("CLIENT_NETWORK_ERROR","无法连接服务,提示词未保存"):K("保存失败,请重试")}finally{fe(!1)}}async function D(){if(!b.trim()){C("模型名不能为空");return}C(null),E(!0);try{await If({model:b.trim()}),n("已保存,仅影响新请求"),m(b.trim())}catch(U){Ol(U)===ot?r("CLIENT_NETWORK_ERROR","无法连接服务,模型配置未保存"):C("保存失败,请重试")}finally{E(!1)}}async function z(){if(!j.trim()){F("请输入新 key");return}F(null),E(!0);try{await If({api_key:j.trim()}),w(""),n("Key 已保存,仅影响新请求"),await te()}catch(U){Ol(U)===ot?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未保存"):F("保存失败,请重试")}finally{E(!1)}}async function P(){F(null),E(!0);try{await If({api_key:""}),w(""),n("Key 已清除"),await te()}catch(U){Ol(U)===ot?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未清除"):F("清除失败,请重试")}finally{E(!1)}}return i.jsxs("section",{className:"max-w-lg",children:[i.jsx("h1",{className:"mb-4 text-xl font-semibold",children:"设置"}),p?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(Nt,{value:b,onChange:U=>m(U.target.value),placeholder:"deepseek-v4-flash"}),i.jsx(me,{onClick:()=>{D()},disabled:_,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(Nt,{value:j,onChange:U=>w(U.target.value),placeholder:"输入新 key(覆盖旧 key)"}),i.jsx(me,{onClick:()=>{z()},disabled:_,type:"button",children:"保存 Key"}),i.jsx(me,{variant:"outline",onClick:()=>{P()},disabled:_,type:"button",children:"清除 Key"})]}),k&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:k})]}),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:A,onChange:U=>L(U.target.value),rows:6,disabled:a===null||a.id!==O,placeholder:"输入项目级规则/行业要求…",className:"w-full resize-y rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs("div",{className:"mt-2 flex items-center gap-3",children:[i.jsx(me,{onClick:()=>{W()},disabled:ne||a===null||a.id!==O,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(QA,{})]})]})}function JA(n){const[r,o,a]=n.segments;switch(r){case void 0:return i.jsx(xv,{});case"outline":return o!==void 0?i.jsx(z3,{nodeId:o},o):i.jsx(c3,{});case"entities":{if(o==="relations")return i.jsx(om,{type:"relations"});if(o==="setting-tree")return i.jsx(om,{type:"setting-tree"});const c=o!==void 0&&ja.includes(o)?o:"character";return a!==void 0?i.jsx(uA,{type:c,id:a},`${c}:${a}`):i.jsx(om,{type:c})}case"hooks":return i.jsx(CA,{});case"timeline":return o!==void 0?i.jsx(VA,{id:o},o):i.jsx(YA,{});case"trash":return i.jsx(KA,{});case"settings":return i.jsx(ZA,{});default:return i.jsx(xv,{})}}function WA(){const n=sj();return i.jsx(J_,{route:n,children:JA(n)})}const AS=document.getElementById("root");if(!AS)throw new Error("#root 元素缺失(index.html)");ej.createRoot(AS).render(i.jsx(h.StrictMode,{children:i.jsx(W_,{children:i.jsx(WA,{})})}));