import{a as e,n as t,r as n,t as r}from"./react-dom-stZKkA6x.js";import{$n as i,Ar as a,Bt as o,Cr as s,Dr as c,En as l,Er as u,Et as d,Hn as f,Ln as p,Mr as m,Mt as h,Nn as g,Pn as _,Qt as v,Rn as y,Sn as b,Tt as x,Un as S,Ut as C,Wn as ee,Xn as w,Xt as T,_n as E,an as te,bn as ne,cn as re,ct as D,dn as ie,fn as ae,gn as O,hn as k,ir as A,it as j,jn as oe,jr as M,kn as se,kt as N,mn as P,nn as ce,nr as le,on as ue,or as de,pn as fe,qn as pe,rn as me,sn as he,st as ge,t as _e,tn as ve,tr as ye,ut as be,vn as xe,vr as Se,wn as Ce,xn as we}from"./jsx-runtime-dm82oUI8.js";var Te=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,te());else{var t=n(l);t!==null&&D(x,t.startTime-e)}}var S=!1,C=-1,ee=5,w=-1;function T(){return g?!0:!(e.unstable_now()-wt&&T());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&D(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?te():S=!1}}}var te;if(typeof y==`function`)te=function(){y(E)};else if(typeof MessageChannel<`u`){var ne=new MessageChannel,re=ne.port2;ne.port1.onmessage=E,te=function(){re.postMessage(null)}}else te=function(){_(E,0)};function D(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,D(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,te()))),r},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Ee=n(((e,t)=>{t.exports=Te()})),De=n((e=>{var n=Ee(),i=t(),a=r();function o(e){var t=`https://react.dev/errors/`+e;if(1M||(e.current=oe[M],oe[M]=null,M--)}function P(e,t){M++,oe[M]=e.current,e.current=t}var ce=se(null),le=se(null),ue=se(null),de=se(null);function fe(e,t){switch(P(ue,t),P(le,e),P(ce,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}N(ce),P(ce,e)}function pe(){N(ce),N(le),N(ue)}function me(e){e.memoizedState!==null&&P(de,e);var t=ce.current,n=Hd(t,e.type);t!==n&&(P(le,e),P(ce,n))}function he(e){le.current===e&&(N(ce),N(le)),de.current===e&&(N(de),Qf._currentValue=j)}var ge,_e;function ve(e){if(ge===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ge=t&&t[1]||``,_e=-1)`:-1i||c[r]!==l[i]){var u=` `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ye=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ve(n):``}function xe(e,t){switch(e.tag){case 26:case 27:case 5:return ve(e.type);case 16:return ve(`Lazy`);case 13:return e.child!==t&&t!==null?ve(`Suspense Fallback`):ve(`Suspense`);case 19:return ve(`SuspenseList`);case 0:case 15:return be(e.type,!1);case 11:return be(e.type.render,!1);case 1:return be(e.type,!0);case 31:return ve(`Activity`);default:return``}}function Se(e){try{var t=``,n=null;do t+=xe(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` `+e.stack}}var Ce=Object.prototype.hasOwnProperty,we=n.unstable_scheduleCallback,Te=n.unstable_cancelCallback,De=n.unstable_shouldYield,Oe=n.unstable_requestPaint,F=n.unstable_now,ke=n.unstable_getCurrentPriorityLevel,I=n.unstable_ImmediatePriority,Ae=n.unstable_UserBlockingPriority,je=n.unstable_NormalPriority,Me=n.unstable_LowPriority,Ne=n.unstable_IdlePriority,Pe=n.log,Fe=n.unstable_setDisableYieldValue,Ie=null,Le=null;function Re(e){if(typeof Pe==`function`&&Fe(e),Le&&typeof Le.setStrictMode==`function`)try{Le.setStrictMode(Ie,e)}catch{}}var ze=Math.clz32?Math.clz32:He,Be=Math.log,Ve=Math.LN2;function He(e){return e>>>=0,e===0?32:31-(Be(e)/Ve|0)|0}var Ue=256,We=262144,Ge=4194304;function Ke(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 qe(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ke(n))):i=Ke(o):i=Ke(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ke(n))):i=Ke(o)):i=Ke(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Je(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ye(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 Xe(){var e=Ge;return Ge<<=1,!(Ge&62914560)&&(Ge=4194304),e}function Ze(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Qe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function $e(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),fn=!1;if(dn)try{var pn={};Object.defineProperty(pn,"passive",{get:function(){fn=!0}}),window.addEventListener(`test`,pn,pn),window.removeEventListener(`test`,pn,pn)}catch{fn=!1}var mn=null,hn=null,gn=null;function _n(){if(gn)return gn;var e,t=hn,n=t.length,r,i=`value`in mn?mn.value:mn.textContent,a=i.length;for(e=0;e=Yn),Qn=` `,$n=!1;function er(e,t){switch(e){case`keyup`:return qn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function tr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var nr=!1;function rr(e,t){switch(e){case`compositionend`:return tr(t);case`keypress`:return t.which===32?($n=!0,Qn):null;case`textInput`:return e=t.data,e===Qn&&$n?null:e;default:return null}}function ir(e,t){if(nr)return e===`compositionend`||!Jn&&er(e,t)?(e=_n(),gn=hn=mn=null,nr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Er(n)}}function Or(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Or(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function kr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Rt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Rt(e.document)}return t}function Ar(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 jr=dn&&`documentMode`in document&&11>=document.documentMode,Mr=null,Nr=null,Pr=null,Fr=!1;function Ir(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Fr||Mr==null||Mr!==Rt(r)||(r=Mr,`selectionStart`in r&&Ar(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Pr&&Tr(Pr,r)||(Pr=r,r=Ed(Nr,`onSelect`),0>=o,i-=o,Di=1<<32-ze(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),z&&ki(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=a(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),z&&ki(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=a(v,s,g),d===null?u=v:d.sibling=v,d=v);return z&&ki(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=a(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),z&&ki(i,g),u}function b(e,r,a,c){if(typeof a==`object`&&a&&a.type===v&&a.key===null&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case g:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===E&&Oa(l)===r.type){n(e,r.sibling),c=i(r,a.props),Fa(c,a),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}a.type===v?(c=mi(a.props.children,e.mode,c,a.key),c.return=e,e=c):(c=pi(a.type,a.key,a.props,null,e.mode,c),Fa(c,a),c.return=e,e=c)}return s(e);case _:a:{for(l=a.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=_i(a,e.mode,c),c.return=e,e=c}return s(e);case E:return a=Oa(a),b(e,r,a,c)}if(O(a))return h(e,r,a,c);if(D(a)){if(l=D(a),typeof l!=`function`)throw Error(o(150));return a=l.call(a),y(e,r,a,c)}if(typeof a.then==`function`)return b(e,r,Pa(a),c);if(a.$$typeof===S)return b(e,r,na(e,a),c);Ia(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=hi(a,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Na=0;var i=b(e,t,n,r);return Ma=null,i}catch(t){if(t===Sa||t===wa)throw t;var a=li(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ra=La(!0),za=La(!1),Ba=!1;function Va(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ha(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 Ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Wa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,G&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=oi(e),L(e,null,n),t}return ri(e,r,t,n),oi(e)}function Ga(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,tt(e,n)}}function Ka(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var qa=!1;function Ja(){if(qa){var e=pa;if(e!==null)throw e}}function Ya(e,t,n,r){qa=!1;var i=e.updateQueue;Ba=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===fa&&(qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Ba=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Xa(e,t){if(typeof e!=`function`)throw Error(o(191,e));e.call(t)}function Za(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=k.T,s={};k.T=s,Fs(e,!1,t,n);try{var c=i(),l=k.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ps(e,t,ga(c,r),pu(e)):Ps(e,t,r,pu(e))}catch(n){Ps(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{A.p=a,o!==null&&s.types!==null&&(o.types=s.types),k.T=o}}function ws(){}function Ts(e,t,n,r){if(e.tag!==5)throw Error(o(476));var i=Es(e).queue;Cs(e,i,t,j,n===null?ws:function(){return Ds(e),n(r)})}function Es(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:j,baseState:j,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:j},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ds(e){var t=Es(e);t.next===null&&(t=e.alternate.memoizedState),Ps(e,t.next.queue,{},pu())}function Os(){return ta(Qf)}function ks(){return jo().memoizedState}function As(){return jo().memoizedState}function js(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Ua(n);var r=Wa(t,e,n);r!==null&&(hu(r,t,n),Ga(r,t,n)),t={cache:ca()},e.payload=t;return}t=t.return}}function Ms(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Is(e)?Ls(t,n):(n=ii(e,t,n,r),n!==null&&(hu(n,e,r),Rs(n,t,r)))}function Ns(e,t,n){Ps(e,t,n,pu())}function Ps(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Is(e))Ls(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,wr(s,o))return ri(e,t,i,0),K===null&&ni(),!1}catch{}if(n=ii(e,t,i,r),n!==null)return hu(n,e,r),Rs(n,t,r),!0}return!1}function Fs(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Is(e)){if(t)throw Error(o(479))}else t=ii(e,n,r,2),t!==null&&hu(t,e,2)}function Is(e){var t=e.alternate;return e===B||t!==null&&t===B}function Ls(e,t){go=ho=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,tt(e,n)}}var zs={readContext:ta,use:Po,useCallback:H,useContext:H,useEffect:H,useImperativeHandle:H,useLayoutEffect:H,useInsertionEffect:H,useMemo:H,useReducer:H,useRef:H,useState:H,useDebugValue:H,useDeferredValue:H,useTransition:H,useSyncExternalStore:H,useId:H,useHostTransitionStatus:H,useFormState:H,useActionState:H,useOptimistic:H,useMemoCache:H,useCacheRefresh:H};zs.useEffectEvent=H;var Bs={readContext:ta,use:Po,useCallback:function(e,t){return Ao().memoizedState=[e,t===void 0?null:t],e},useContext:ta,useEffect:us,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),cs(4194308,4,gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return cs(4194308,4,e,t)},useInsertionEffect:function(e,t){cs(4,2,e,t)},useMemo:function(e,t){var n=Ao();t=t===void 0?null:t;var r=e();if(_o){Re(!0);try{e()}finally{Re(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Ao();if(n!==void 0){var i=n(t);if(_o){Re(!0);try{n(t)}finally{Re(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ms.bind(null,B,e),[r.memoizedState,e]},useRef:function(e){var t=Ao();return e={current:e},t.memoizedState=e},useState:function(e){e=Ko(e);var t=e.queue,n=Ns.bind(null,B,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:vs,useDeferredValue:function(e,t){return xs(Ao(),e,t)},useTransition:function(){var e=Ko(!1);return e=Cs.bind(null,B,e.queue,!0,!1),Ao().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=B,i=Ao();if(z){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),K===null)throw Error(o(349));J&127||Vo(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,us(Uo.bind(null,r,a,e),[e]),r.flags|=2048,os(9,{destroy:void 0},Ho.bind(null,r,a,n,t),null),n},useId:function(){var e=Ao(),t=K.identifierPrefix;if(z){var n=Oi,r=Di;n=(r&~(1<<32-ze(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=vo++,0<\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}a[ct]=t,a[lt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)a.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=a;a:switch(Pd(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Pc(t)}}return U(t),Fc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(o(166));if(e=ue.current,Vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Pi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[ct]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ri(t,!0)}else e=Bd(e).createTextNode(r),e[ct]=t,t.stateNode=e}return U(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Vi(t),n!==null){if(e===null){if(!r)throw Error(o(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(o(557));e[ct]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),e=!1}else n=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(lo(t),t):(lo(t),null);if(t.flags&128)throw Error(o(558))}return U(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(o(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(o(317));i[ct]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),i=!1}else i=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(lo(t),t):(lo(t),null)}return lo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Lc(t,t.updateQueue),U(t),null);case 4:return pe(),e===null&&Sd(t.stateNode.containerInfo),U(t),null;case 10:return Yi(t.type),U(t),null;case 19:if(N(uo),r=t.memoizedState,r===null)return U(t),null;if(i=(t.flags&128)!=0,a=r.rendering,a===null)if(i)Rc(r,!1);else{if(X!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=fo(e),a!==null){for(t.flags|=128,Rc(r,!1),e=a.updateQueue,t.updateQueue=e,Lc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)fi(n,e),n=n.sibling;return P(uo,uo.current&1|2),z&&ki(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&F()>tu&&(t.flags|=128,i=!0,Rc(r,!1),t.lanes=4194304)}else{if(!i)if(e=fo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Lc(t,e),Rc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!a.alternate&&!z)return U(t),null}else 2*F()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,i=!0,Rc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}return r.tail===null?(U(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=F(),e.sibling=null,n=uo.current,P(uo,i?n&1|2:n&1),z&&ki(t,r.treeForkCount),e);case 22:case 23:return lo(t),no(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(U(t),t.subtreeFlags&6&&(t.flags|=8192)):U(t),n=t.updateQueue,n!==null&&Lc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&N(va),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Yi(sa),U(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Bc(e,t){switch(Mi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(sa),pe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return he(t),null;case 31:if(t.memoizedState!==null){if(lo(t),t.alternate===null)throw Error(o(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return N(uo),null;case 4:return pe(),null;case 10:return Yi(t.type),null;case 22:case 23:return lo(t),no(),e!==null&&N(va),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Yi(sa),null;case 25:return null;default:return null}}function Vc(e,t){switch(Mi(t),t.tag){case 3:Yi(sa),pe();break;case 26:case 27:case 5:he(t);break;case 4:pe();break;case 31:t.memoizedState!==null&&lo(t);break;case 13:lo(t);break;case 19:N(uo);break;case 10:Yi(t.type);break;case 22:case 23:lo(t),no(),e!==null&&N(va);break;case 24:Yi(sa)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Za(t,n)}catch(t){Z(e,e.return,t)}}}function Gc(e,t,n){n.props=qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[lt]=t}catch(t){Z(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=tn));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[ct]=e,t[lt]=n}catch(t){Z(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Rd=sp,e=kr(e),Ar(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==a||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===a&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,a=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(a,r,n),a[ct]=e,xt(a),r=a;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Dr(s,h),v=Dr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,k.T=null,n=lu,lu=null;var a=au,s=su;if(iu=0,ou=au=null,su=0,G&6)throw Error(o(331));var c=G;if(G|=4,Fl(a.current),Dl(a,a.current,s,n),G=c,id(0,!1),Le&&typeof Le.onPostCommitFiberRoot==`function`)try{Le.onPostCommitFiberRoot(Ie,a)}catch{}return!0}finally{A.p=i,k.T=r,Vu(e,t)}}function Wu(e,t,n){t=yi(n,t),t=$s(e.stateNode,t,2),e=Wa(e,t,2),e!==null&&(Qe(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=yi(n,e),n=ec(2),r=Wa(t,n,2),r!==null&&(tc(n,r,t,e),Qe(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new zl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Ul=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,K===e&&(J&n)===n&&(X===4||X===3&&(J&62914560)===J&&300>F()-$l?!(G&2)&&Su(e,0):ql|=n,Yl===J&&(Yl=0)),rd(e)}function qu(e,t){t===0&&(t=Xe()),e=ai(e,t),e!==null&&(Qe(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return we(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-ze(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=J,a=qe(r,r===K?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Je(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=F(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}iu!==0&&iu!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Bt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),xt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Bt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Bt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Bt(n.imageSizes)+`"]`)):i+=`[href="`+Bt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),xt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Bt(r)+`"][href="`+Bt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),xt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=bt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);xt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=bt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=m({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),xt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=bt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),xt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=ue.current)?gf(i):null;if(!i)throw Error(o(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=bt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var a=bt(i).hoistableStyles,s=a.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,s),(a=i.querySelector(jf(e)))&&!a._p&&(s.instance=a,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),a||Nf(i,e,n,s.state))),t&&r===null)throw Error(o(528,``));return s}if(t&&r!==null)throw Error(o(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=bt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(o(444,e))}}function Af(e){return`href="`+Bt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),xt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Bt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Bt(n.href)+`"]`);if(r)return t.instance=r,xt(r),r;var i=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),xt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var a=e.querySelector(jf(i));if(a)return t.state.loading|=4,t.instance=a,xt(a),a;r=Mf(n),(i=mf.get(i))&&Rf(r,i),a=(e.ownerDocument||e).createElement(`link`),xt(a);var s=a;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(a,`link`,r),t.state.loading|=4,Lf(a,n.precedence,e),t.instance=a;case`script`:return a=Pf(n.src),(i=e.querySelector(Ff(a)))?(t.instance=i,xt(i),i):(r=n,(i=mf.get(a))&&(r=m({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),xt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(o(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,xt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),xt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=De()})),F=e(t()),ke=e(r()),I=e(m()),Ae={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z`}}]},name:`check-circle`,theme:`filled`},je=F.forwardRef(function(e,t){return F.createElement(P,M({},e,{ref:t,icon:Ae}))}),Me={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z`}}]},name:`exclamation-circle`,theme:`filled`},Ne=F.forwardRef(function(e,t){return F.createElement(P,M({},e,{ref:t,icon:Me}))}),Pe={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z`}}]},name:`info-circle`,theme:`filled`},Fe=F.forwardRef(function(e,t){return F.createElement(P,M({},e,{ref:t,icon:Pe}))}),Ie=F.forwardRef(function(e,t){var n=e.prefixCls,r=e.style,i=e.className,o=e.duration,s=o===void 0?4.5:o,l=e.showProgress,u=e.pauseOnHover,d=u===void 0?!0:u,f=e.eventKey,p=e.content,m=e.closable,h=e.closeIcon,g=h===void 0?`x`:h,_=e.props,v=e.onClick,y=e.onNoticeClose,b=e.times,x=e.hovering,S=A(F.useState(!1),2),C=S[0],ee=S[1],w=A(F.useState(0),2),T=w[0],E=w[1],te=A(F.useState(0),2),ne=te[0],re=te[1],D=x||C,ae=s>0&&l,O=function(){y(f)},k=function(e){(e.key===`Enter`||e.code===`Enter`||e.keyCode===he.ENTER)&&O()};F.useEffect(function(){if(!D&&s>0){var e=Date.now()-ne,t=setTimeout(function(){O()},s*1e3-ne);return function(){d&&clearTimeout(t),re(Date.now()-e)}}},[s,D,b]),F.useEffect(function(){if(!D&&ae&&(d||ne===0)){var e=performance.now(),t;return(function n(){cancelAnimationFrame(t),t=requestAnimationFrame(function(t){var r=t+ne-e,i=Math.min(r/(s*1e3),1);E(i*100),i<1&&n()})})(),function(){d&&cancelAnimationFrame(t)}}},[s,ne,D,ae,b]);var j=F.useMemo(function(){return a(m)===`object`&&m!==null?m:m?{closeIcon:g}:{}},[m,g]),oe=ie(j,!0),se=100-(!T||T<0?0:T>100?100:T),N=`${n}-notice`;return F.createElement(`div`,M({},_,{ref:t,className:(0,I.default)(N,i,c({},`${N}-closable`,m)),style:r,onMouseEnter:function(e){var t;ee(!0),_==null||(t=_.onMouseEnter)==null||t.call(_,e)},onMouseLeave:function(e){var t;ee(!1),_==null||(t=_.onMouseLeave)==null||t.call(_,e)},onClick:v}),F.createElement(`div`,{className:`${N}-content`},p),m&&F.createElement(`a`,M({tabIndex:0,className:`${N}-close`,onKeyDown:k,"aria-label":`Close`},oe,{onClick:function(e){e.preventDefault(),e.stopPropagation(),O()}}),j.closeIcon),ae&&F.createElement(`progress`,{className:`${N}-progress`,max:`100`,value:se},se+`%`))}),Le=F.createContext({}),Re=function(e){var t=e.children,n=e.classNames;return F.createElement(Le.Provider,{value:{classNames:n}},t)},ze=8,Be=3,Ve=16,He=function(e){var t={offset:ze,threshold:Be,gap:Ve};return e&&a(e)===`object`&&(t.offset=e.offset??ze,t.threshold=e.threshold??Be,t.gap=e.gap??Ve),[!!e,t]},Ue=[`className`,`style`,`classNames`,`styles`],We=function(e){var t=e.configList,n=e.placement,r=e.prefixCls,i=e.className,a=e.style,o=e.motion,s=e.onAllNoticeRemoved,l=e.onNoticeClose,d=e.stack,f=(0,F.useContext)(Le).classNames,p=(0,F.useRef)({}),m=A((0,F.useState)(null),2),h=m[0],g=m[1],_=A((0,F.useState)([]),2),v=_[0],y=_[1],b=t.map(function(e){return{config:e,key:String(e.key)}}),x=A(He(d),2),S=x[0],C=x[1],ee=C.offset,w=C.threshold,T=C.gap,E=S&&(v.length>0||b.length<=w),te=typeof o==`function`?o(n):o;return(0,F.useEffect)(function(){S&&v.length>1&&y(function(e){return e.filter(function(e){return b.some(function(t){return e===t.key})})})},[v,b,S]),(0,F.useEffect)(function(){S&&p.current[b[b.length-1]?.key]&&g(p.current[b[b.length-1]?.key])},[b,S]),F.createElement(xe,M({key:n,className:(0,I.default)(r,`${r}-${n}`,f?.list,i,c(c({},`${r}-stack`,!!S),`${r}-stack-expanded`,E)),style:a,keys:b,motionAppear:!0},te,{onAllRemoved:function(){s(n)}}),function(e,t){var i=e.config,a=e.className,o=e.style,s=e.index,c=i,d=c.key,m=c.times,g=String(d),_=i,x=_.className,C=_.style,w=_.classNames,te=_.styles,ne=ye(_,Ue),re=b.findIndex(function(e){return e.key===g}),D={};if(S){var ie=b.length-1-(re>-1?re:s-1),ae=n===`top`||n===`bottom`?`-50%`:`0`;if(ie>0){var O;D.height=E?p.current[g]?.offsetHeight:h?.offsetHeight;for(var k=0,A=0;A-1?p.current[g]=e:delete p.current[g]},prefixCls:r,classNames:w,styles:te,className:(0,I.default)(x,f?.notice),style:C,times:m,key:d,eventKey:d,onNoticeClose:l,hovering:S&&v.length>0})))})},Ge=F.forwardRef(function(e,t){var n=e.prefixCls,r=n===void 0?`rc-notification`:n,i=e.container,a=e.motion,o=e.maxCount,s=e.className,c=e.style,l=e.onAllRemoved,d=e.stack,f=e.renderNotifications,p=A(F.useState([]),2),m=p[0],h=p[1],g=function(e){var t,n=m.find(function(t){return t.key===e});n==null||(t=n.onClose)==null||t.call(n),h(function(t){return t.filter(function(t){return t.key!==e})})};F.useImperativeHandle(t,function(){return{open:function(e){h(function(t){var n=de(t),r=n.findIndex(function(t){return t.key===e.key}),i=u({},e);return r>=0?(i.times=(t[r]?.times||0)+1,n[r]=i):(i.times=0,n.push(i)),o>0&&n.length>o&&(n=n.slice(-o)),n})},close:function(e){g(e)},destroy:function(){h([])}}});var _=A(F.useState({}),2),v=_[0],y=_[1];F.useEffect(function(){var e={};m.forEach(function(t){var n=t.placement,r=n===void 0?`topRight`:n;r&&(e[r]=e[r]||[],e[r].push(t))}),Object.keys(v).forEach(function(t){e[t]=e[t]||[]}),y(e)},[m]);var b=function(e){y(function(t){var n=u({},t);return(n[e]||[]).length||delete n[e],n})},x=F.useRef(!1);if(F.useEffect(function(){Object.keys(v).length>0?x.current=!0:x.current&&=(l?.(),!1)},[v]),!i)return null;var S=Object.keys(v);return(0,ke.createPortal)(F.createElement(F.Fragment,null,S.map(function(e){var t=v[e],n=F.createElement(We,{key:e,configList:t,placement:e,prefixCls:r,className:s?.(e),style:c?.(e),motion:a,onNoticeClose:g,onAllNoticeRemoved:b,stack:d});return f?f(n,{prefixCls:r,key:e}):n})),i)}),Ke=[`getContainer`,`motion`,`prefixCls`,`maxCount`,`className`,`style`,`onAllRemoved`,`stack`,`renderNotifications`],qe=function(){return document.body},Je=0;function Ye(){var e={};return[...arguments].forEach(function(t){t&&Object.keys(t).forEach(function(n){var r=t[n];r!==void 0&&(e[n]=r)})}),e}function Xe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.getContainer,n=t===void 0?qe:t,r=e.motion,i=e.prefixCls,a=e.maxCount,o=e.className,s=e.style,c=e.onAllRemoved,l=e.stack,u=e.renderNotifications,d=ye(e,Ke),f=A(F.useState(),2),p=f[0],m=f[1],h=F.useRef(),g=F.createElement(Ge,{container:p,ref:h,prefixCls:i,motion:r,maxCount:a,className:o,style:s,onAllRemoved:c,stack:l,renderNotifications:u}),v=A(F.useState([]),2),y=v[0],b=v[1],x=_(function(e){var t=Ye(d,e);(t.key===null||t.key===void 0)&&(t.key=`rc-notification-${Je}`,Je+=1),b(function(e){return[].concat(de(e),[{type:`open`,config:t}])})}),S=F.useMemo(function(){return{open:x,close:function(e){b(function(t){return[].concat(de(t),[{type:`close`,key:e}])})},destroy:function(){b(function(e){return[].concat(de(e),[{type:`destroy`}])})}}},[]);return F.useEffect(function(){m(n())}),F.useEffect(function(){if(h.current&&y.length){y.forEach(function(e){switch(e.type){case`open`:h.current.open(e.config);break;case`close`:h.current.close(e.key);break;case`destroy`:h.current.destroy();break}});var e,t;b(function(n){return(e!==n||!t)&&(e=n,t=n.filter(function(e){return!y.includes(e)})),t})}},[y]),[S,g]}function Ze(e){if(!e)return;let{closable:t,closeIcon:n}=e;return{closable:t,closeIcon:n}}function Qe(e){let{closable:t,closeIcon:n}=e||{};return F.useMemo(()=>{if(!t&&(t===!1||n===!1||n===null))return!1;if(t===void 0&&n===void 0)return null;let e={closeIcon:typeof n!=`boolean`&&n!==null?n:void 0};return t&&typeof t==`object`&&(e=Object.assign(Object.assign({},e),t)),e},[t,n])}var $e={},et=(e,t,n=$e)=>{let r=Qe(e),i=Qe(t),[a]=f(`global`,ee.global),o=typeof r==`boolean`?!1:!!r?.disabled,s=F.useMemo(()=>Object.assign({closeIcon:F.createElement(ae,null)},n),[n]),c=F.useMemo(()=>r===!1?!1:r?te(s,i,r):i===!1?!1:i?te(s,i):s.closable?s:!1,[r,i,s]);return F.useMemo(()=>{if(c===!1)return[!1,null,o,{}];let{closeIconRender:e}=s,{closeIcon:t}=c,n=t,r=ie(c,!0);return n!=null&&(e&&(n=e(t)),n=F.isValidElement(n)?F.cloneElement(n,Object.assign(Object.assign(Object.assign({},n.props),{"aria-label":n.props?.[`aria-label`]??a.close}),r)):F.createElement(`span`,Object.assign({"aria-label":a.close},r),n)),[!0,n,o,r]},[o,a.close,c,s])},tt=()=>{let[e,t]=F.useState([]);return[e,F.useCallback(e=>(t(t=>[].concat(de(t),[e])),()=>{t(t=>t.filter(t=>t!==e))}),[])]},nt=e=>{let{componentCls:t,iconCls:n,boxShadow:r,colorText:i,colorSuccess:a,colorError:o,colorWarning:s,colorInfo:c,fontSizeLG:u,motionEaseInOutCirc:d,motionDurationSlow:f,marginXS:p,paddingXS:m,borderRadiusLG:h,zIndexPopup:g,contentPadding:_,contentBg:v}=e,y=`${t}-notice`,b=new w(`MessageMoveIn`,{"0%":{padding:0,transform:`translateY(-100%)`,opacity:0},"100%":{padding:m,transform:`translateY(0)`,opacity:1}}),x=new w(`MessageMoveOut`,{"0%":{maxHeight:e.height,padding:m,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),S={padding:m,textAlign:`center`,[`${t}-custom-content`]:{display:`flex`,alignItems:`center`},[`${t}-custom-content > ${n}`]:{marginInlineEnd:p,fontSize:u},[`${y}-content`]:{display:`inline-block`,padding:_,background:v,borderRadius:h,boxShadow:r,pointerEvents:`all`},[`${t}-success > ${n}`]:{color:a},[`${t}-error > ${n}`]:{color:o},[`${t}-warning > ${n}`]:{color:s},[`${t}-info > ${n}, ${t}-loading > ${n}`]:{color:c}};return[{[t]:Object.assign(Object.assign({},l(e)),{color:i,position:`fixed`,top:p,width:`100%`,pointerEvents:`none`,zIndex:g,[`${t}-move-up`]:{animationFillMode:`forwards`},[` ${t}-move-up-appear, ${t}-move-up-enter `]:{animationName:b,animationDuration:f,animationPlayState:`paused`,animationTimingFunction:d},[` ${t}-move-up-appear${t}-move-up-appear-active, ${t}-move-up-enter${t}-move-up-enter-active `]:{animationPlayState:`running`},[`${t}-move-up-leave`]:{animationName:x,animationDuration:f,animationPlayState:`paused`,animationTimingFunction:d},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:`running`},"&-rtl":{direction:`rtl`,span:{direction:`rtl`}}})},{[t]:{[`${y}-wrapper`]:Object.assign({},S)}},{[`${t}-notice-pure-panel`]:Object.assign(Object.assign({},S),{padding:0,textAlign:`start`})}]},rt=ne(`Message`,e=>nt(oe(e,{height:150})),e=>({zIndexPopup:e.zIndexPopupBase+ve+10,contentBg:e.colorBgElevated,contentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`})),it={info:F.createElement(Fe,null),success:F.createElement(je,null),error:F.createElement(fe,null),warning:F.createElement(Ne,null),loading:F.createElement(ue,null)},at=({prefixCls:e,type:t,icon:n,children:r})=>F.createElement(`div`,{className:(0,I.default)(`${e}-custom-content`,`${e}-${t}`)},n||it[t],F.createElement(`span`,null,r));function ot(e,t){return{motionName:t??`${e}-move-up`}}function st(e){let t,n=new Promise(n=>{t=e(()=>{n(!0)})}),r=()=>{t?.()};return r.then=(e,t)=>n.then(e,t),r.promise=n,r}var ct=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let n=re(t),[r,i,a]=rt(t,n);return r(F.createElement(Re,{classNames:{list:(0,I.default)(i,a,n)}},e))},ft=(e,{prefixCls:t,key:n})=>F.createElement(dt,{prefixCls:t,key:n},e),pt=F.forwardRef((e,t)=>{let{top:n,prefixCls:r,getContainer:i,maxCount:a,duration:o=ut,rtl:s,transitionName:c,onAllRemoved:l}=e,{getPrefixCls:u,getPopupContainer:d,message:f,direction:p}=F.useContext(y),m=r||u(`message`),[h,g]=Xe({prefixCls:m,style:()=>({left:`50%`,transform:`translateX(-50%)`,top:n??lt}),className:()=>(0,I.default)({[`${m}-rtl`]:s??p===`rtl`}),motion:()=>ot(m,c),closable:!1,closeIcon:F.createElement(`span`,{className:`${m}-close-x`},F.createElement(ae,{className:`${m}-close-icon`})),duration:o,getContainer:()=>i?.()||d?.()||document.body,maxCount:a,onAllRemoved:l,renderNotifications:ft});return F.useImperativeHandle(t,()=>Object.assign(Object.assign({},h),{prefixCls:m,message:f})),g}),mt=0;function ht(e){let t=F.useRef(null);return pe(`Message`),[F.useMemo(()=>{let e=e=>{var n;(n=t.current)==null||n.close(e)},n=n=>{if(!t.current){let e=()=>{};return e.then=()=>{},e}let{open:r,prefixCls:i,message:a}=t.current,o=`${i}-notice`,{content:s,icon:c,type:l,key:u,className:d,style:f,onClose:p}=n,m=ct(n,[`content`,`icon`,`type`,`key`,`className`,`style`,`onClose`]),h=u;return h??=(mt+=1,`antd-message-${mt}`),st(t=>(r(Object.assign(Object.assign({},m),{key:h,content:F.createElement(at,{prefixCls:i,type:l,icon:c},s),placement:`top`,className:(0,I.default)(l&&`${o}-${l}`,d,a?.className),style:Object.assign(Object.assign({},a?.style),f),onClose:()=>{p?.(),t()}})),()=>{e(h)}))},r={open:n,destroy:n=>{var r;n===void 0?(r=t.current)==null||r.destroy():e(n)}};return[`info`,`success`,`warning`,`error`,`loading`].forEach(e=>{r[e]=(t,r,i)=>{let a;a=t&&typeof t==`object`&&`content`in t?t:{content:t};let o,s;typeof r==`function`?s=r:(o=r,s=i);let c=Object.assign(Object.assign({onClose:s,duration:o},a),{type:e});return n(c)}}),r},[]),F.createElement(pt,Object.assign({key:`message-holder`},e,{ref:t}))]}function gt(e){return ht(e)}var _t=new w(`antFadeIn`,{"0%":{opacity:0},"100%":{opacity:1}}),vt=new w(`antFadeOut`,{"0%":{opacity:1},"100%":{opacity:0}}),yt=(e,t=!1)=>{let{antCls:n}=e,r=`${n}-fade`,i=t?`&`:``;return[o(r,_t,vt,e.motionDurationMid,t),{[` ${i}${r}-enter, ${i}${r}-appear `]:{opacity:0,animationTimingFunction:`linear`},[`${i}${r}-leave`]:{animationTimingFunction:`linear`}}]},bt=e=>typeof e?.then==`function`,xt=e=>{let{type:t,children:n,prefixCls:r,buttonProps:i,close:a,autoFocus:o,emitEvent:s,isSilent:c,quitOnNullishReturnValue:l,actionFn:u}=e,d=F.useRef(!1),f=F.useRef(null),[p,m]=g(!1),h=(...e)=>{a?.apply(void 0,e)};F.useEffect(()=>{let e=null;return o&&(e=setTimeout(()=>{var e;(e=f.current)==null||e.focus({preventScroll:!0})})),()=>{e&&clearTimeout(e)}},[o]);let _=e=>{bt(e)&&(m(!0),e.then((...e)=>{m(!1,!0),h.apply(void 0,e),d.current=!1},e=>{if(m(!1,!0),d.current=!1,!c?.())return Promise.reject(e)}))};return F.createElement(N,Object.assign({},C(t),{onClick:e=>{if(d.current)return;if(d.current=!0,!u){h();return}let t;if(s){if(t=u(e),l&&!bt(t)){d.current=!1,h(e);return}}else if(u.length)t=u(a),d.current=!1;else if(t=u(),!bt(t)){h();return}_(t)},loading:p,prefixCls:r},i,{ref:f}),n)},St=F.createContext({}),{Provider:Ct}=St,wt=()=>{let{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:n,isSilent:r,mergedOkCancel:i,rootPrefixCls:a,close:o,onCancel:s,onConfirm:c}=(0,F.useContext)(St);return i?F.createElement(xt,{isSilent:r,actionFn:s,close:(...e)=>{o?.apply(void 0,e),c?.(!1)},autoFocus:e===`cancel`,buttonProps:t,prefixCls:`${a}-btn`},n):null},Tt=()=>{let{autoFocusButton:e,close:t,isSilent:n,okButtonProps:r,rootPrefixCls:i,okTextLocale:a,okType:o,onConfirm:s,onOk:c}=(0,F.useContext)(St);return F.createElement(xt,{isSilent:n,type:o||`primary`,actionFn:c,close:(...e)=>{t?.apply(void 0,e),s?.(!0)},autoFocus:e===`ok`,buttonProps:r,prefixCls:`${i}-btn`},a)},Et=F.createContext({});function Dt(e,t,n){var r=t;return!r&&n&&(r=`${e}-${n}`),r}function Ot(e,t){var n=e[`page${t?`Y`:`X`}Offset`],r=`scroll${t?`Top`:`Left`}`;if(typeof n!=`number`){var i=e.document;n=i.documentElement[r],typeof n!=`number`&&(n=i.body[r])}return n}function kt(e){var t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,i=r.defaultView||r.parentWindow;return n.left+=Ot(i),n.top+=Ot(i,!0),n}var At=F.memo(function(e){return e.children},function(e,t){return!t.shouldUpdate}),jt={width:0,height:0,overflow:`hidden`,outline:`none`},Mt={outline:`none`},Nt=F.forwardRef(function(e,t){var n=e.prefixCls,r=e.className,i=e.style,o=e.title,c=e.ariaId,l=e.footer,d=e.closable,f=e.closeIcon,p=e.onClose,m=e.children,h=e.bodyStyle,g=e.bodyProps,_=e.modalRender,v=e.onMouseDown,y=e.onMouseUp,b=e.holderRef,x=e.visible,S=e.forceRender,C=e.width,ee=e.height,w=e.classNames,T=e.styles,E=F.useContext(Et).panel,te=s(b,E),ne=(0,F.useRef)(),re=(0,F.useRef)();F.useImperativeHandle(t,function(){return{focus:function(){var e;(e=ne.current)==null||e.focus({preventScroll:!0})},changeActive:function(e){var t=document.activeElement;e&&t===re.current?ne.current.focus({preventScroll:!0}):!e&&t===ne.current&&re.current.focus({preventScroll:!0})}}});var D={};C!==void 0&&(D.width=C),ee!==void 0&&(D.height=ee);var ae=l?F.createElement(`div`,{className:(0,I.default)(`${n}-footer`,w?.footer),style:u({},T?.footer)},l):null,O=o?F.createElement(`div`,{className:(0,I.default)(`${n}-header`,w?.header),style:u({},T?.header)},F.createElement(`div`,{className:`${n}-title`,id:c},o)):null,k=(0,F.useMemo)(function(){return a(d)===`object`&&d!==null?d:d?{closeIcon:f??F.createElement(`span`,{className:`${n}-close-x`})}:{}},[d,f,n]),A=ie(k,!0),j=a(d)===`object`&&d.disabled,oe=d?F.createElement(`button`,M({type:`button`,onClick:p,"aria-label":`Close`},A,{className:`${n}-close`,disabled:j}),k.closeIcon):null,se=F.createElement(`div`,{className:(0,I.default)(`${n}-content`,w?.content),style:T?.content},oe,O,F.createElement(`div`,M({className:(0,I.default)(`${n}-body`,w?.body),style:u(u({},h),T?.body)},g),m),ae);return F.createElement(`div`,{key:`dialog-element`,role:`dialog`,"aria-labelledby":o?c:null,"aria-modal":`true`,ref:te,style:u(u({},i),D),className:(0,I.default)(n,r),onMouseDown:v,onMouseUp:y},F.createElement(`div`,{ref:ne,tabIndex:0,style:Mt},F.createElement(At,{shouldUpdate:x||S},_?_(se):se)),F.createElement(`div`,{tabIndex:0,ref:re,style:jt}))}),Pt=F.forwardRef(function(e,t){var n=e.prefixCls,r=e.title,i=e.style,a=e.className,o=e.visible,s=e.forceRender,c=e.destroyOnClose,l=e.motionName,d=e.ariaId,f=e.onVisibleChanged,p=e.mousePosition,m=(0,F.useRef)(),h=A(F.useState(),2),g=h[0],_=h[1],v={};g&&(v.transformOrigin=g);function y(){var e=kt(m.current);_(p&&(p.x||p.y)?`${p.x-e.left}px ${p.y-e.top}px`:``)}return F.createElement(E,{visible:o,onVisibleChanged:f,onAppearPrepare:y,onEnterPrepare:y,forceRender:s,motionName:l,removeOnLeave:c,ref:m},function(o,s){var c=o.className,l=o.style;return F.createElement(Nt,M({},e,{ref:t,title:r,ariaId:d,prefixCls:n,holderRef:s,style:u(u(u({},l),i),v),className:(0,I.default)(a,c)}))})});Pt.displayName=`Content`;var Ft=function(e){var t=e.prefixCls,n=e.style,r=e.visible,i=e.maskProps,a=e.motionName,o=e.className;return F.createElement(E,{key:`mask`,visible:r,motionName:a,leavedClassName:`${t}-mask-hidden`},function(e,r){var a=e.className,s=e.style;return F.createElement(`div`,M({ref:r,style:u(u({},s),n),className:(0,I.default)(`${t}-mask`,a,o)},i))})},It=function(e){var t=e.prefixCls,n=t===void 0?`rc-dialog`:t,r=e.zIndex,i=e.visible,a=i===void 0?!1:i,o=e.keyboard,s=o===void 0?!0:o,c=e.focusTriggerAfterClose,l=c===void 0?!0:c,d=e.wrapStyle,f=e.wrapClassName,p=e.wrapProps,m=e.onClose,h=e.afterOpenChange,g=e.afterClose,_=e.transitionName,v=e.animation,y=e.closable,b=y===void 0?!0:y,S=e.mask,C=S===void 0?!0:S,ee=e.maskTransitionName,w=e.maskAnimation,T=e.maskClosable,E=T===void 0?!0:T,te=e.maskStyle,ne=e.maskProps,re=e.rootClassName,D=e.classNames,ae=e.styles,O=(0,F.useRef)(),k=(0,F.useRef)(),j=(0,F.useRef)(),oe=A(F.useState(a),2),se=oe[0],N=oe[1],P=x();function ce(){le(k.current,document.activeElement)||(O.current=document.activeElement)}function ue(){if(!le(k.current,document.activeElement)){var e;(e=j.current)==null||e.focus()}}function de(e){if(e)ue();else{if(N(!1),C&&O.current&&l){try{O.current.focus({preventScroll:!0})}catch{}O.current=null}se&&g?.()}h?.(e)}function fe(e){m?.(e)}var pe=(0,F.useRef)(!1),me=(0,F.useRef)(),ge=function(){clearTimeout(me.current),pe.current=!0},_e=function(){me.current=setTimeout(function(){pe.current=!1})},ve=null;E&&(ve=function(e){pe.current?pe.current=!1:k.current===e.target&&fe(e)});function ye(e){if(s&&e.keyCode===he.ESC){e.stopPropagation(),fe(e);return}a&&e.keyCode===he.TAB&&j.current.changeActive(!e.shiftKey)}(0,F.useEffect)(function(){a&&(N(!0),ce())},[a]),(0,F.useEffect)(function(){return function(){clearTimeout(me.current)}},[]);var be=u(u(u({zIndex:r},d),ae?.wrapper),{},{display:se?null:`none`});return F.createElement(`div`,M({className:(0,I.default)(`${n}-root`,re)},ie(e,{data:!0})),F.createElement(Ft,{prefixCls:n,visible:C&&a,motionName:Dt(n,ee,w),style:u(u({zIndex:r},te),ae?.mask),maskProps:ne,className:D?.mask}),F.createElement(`div`,M({tabIndex:-1,onKeyDown:ye,className:(0,I.default)(`${n}-wrap`,f,D?.wrapper),ref:k,onClick:ve,style:be},p),F.createElement(Pt,M({},e,{onMouseDown:ge,onMouseUp:_e,ref:j,closable:b,ariaId:P,prefixCls:n,visible:a&&se,onClose:fe,onVisibleChanged:de,motionName:Dt(n,_,v)}))))},Lt=function(e){var t=e.visible,n=e.getContainer,r=e.forceRender,i=e.destroyOnClose,a=i===void 0?!1:i,o=e.afterClose,s=e.panelRef,c=A(F.useState(t),2),l=c[0],u=c[1],f=F.useMemo(function(){return{panel:s}},[s]);return F.useEffect(function(){t&&u(!0)},[t]),!r&&a&&!l?null:F.createElement(Et.Provider,{value:f},F.createElement(d,{open:t||r||l,autoDestroy:!1,getContainer:n,autoLock:t||l},F.createElement(It,M({},e,{destroyOnClose:a,afterClose:function(){o?.(),u(!1)}}))))};Lt.displayName=`Dialog`;var Rt=Lt;function zt(){}var Bt=F.createContext({add:zt,remove:zt});function Vt(e){let t=F.useContext(Bt),n=F.useRef(null);return _(r=>{if(r){let i=e?r.querySelector(e):r;i&&(t.add(i),n.current=i)}else t.remove(n.current)})}var Ht=()=>{let{cancelButtonProps:e,cancelTextLocale:t,onCancel:n}=(0,F.useContext)(St);return F.createElement(N,Object.assign({onClick:n},e),t)},Ut=()=>{let{confirmLoading:e,okButtonProps:t,okType:n,okTextLocale:r,onOk:i}=(0,F.useContext)(St);return F.createElement(N,Object.assign({},C(n),{loading:e,onClick:i},t),r)};function Wt(e,t){return F.createElement(`span`,{className:`${e}-close-x`},t||F.createElement(ae,{className:`${e}-close-icon`}))}var Gt=e=>{let{okText:t,okType:n=`primary`,cancelText:r,confirmLoading:i,onOk:a,onCancel:o,okButtonProps:s,cancelButtonProps:c,footer:l}=e,[u]=f(`Modal`,S()),d=t||u?.okText,m=r||u?.cancelText,h=F.useMemo(()=>({confirmLoading:i,okButtonProps:s,cancelButtonProps:c,okTextLocale:d,cancelTextLocale:m,okType:n,onOk:a,onCancel:o}),[i,s,c,d,m,n,a,o]),g;return typeof l==`function`||l===void 0?(g=F.createElement(F.Fragment,null,F.createElement(Ht,null),F.createElement(Ut,null)),typeof l==`function`&&(g=l(g,{OkBtn:Ut,CancelBtn:Ht})),g=F.createElement(Ct,{value:h},g)):g=l,F.createElement(p,{disabled:!1},g)};function Kt(e){return{position:e,inset:0}}var qt=e=>{let{componentCls:t,antCls:n}=e;return[{[`${t}-root`]:{[`${t}${n}-zoom-enter, ${t}${n}-zoom-appear`]:{transform:`none`,opacity:0,animationDuration:e.motionDurationSlow,userSelect:`none`},[`${t}${n}-zoom-leave ${t}-content`]:{pointerEvents:`none`},[`${t}-mask`]:Object.assign(Object.assign({},Kt(`fixed`)),{zIndex:e.zIndexPopupBase,height:`100%`,backgroundColor:e.colorBgMask,pointerEvents:`none`,[`${t}-hidden`]:{display:`none`}}),[`${t}-wrap`]:Object.assign(Object.assign({},Kt(`fixed`)),{zIndex:e.zIndexPopupBase,overflow:`auto`,outline:0,WebkitOverflowScrolling:`touch`})}},{[`${t}-root`]:yt(e)}]},Jt=e=>{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:`rtl`},[`${t}-centered`]:{textAlign:`center`,"&::before":{display:`inline-block`,width:0,height:`100%`,verticalAlign:`middle`,content:`""`},[t]:{top:0,display:`inline-block`,paddingBottom:0,textAlign:`start`,verticalAlign:`middle`}},[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{maxWidth:`calc(100vw - 16px)`,margin:`${i(e.marginXS)} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:Object.assign(Object.assign({},l(e)),{pointerEvents:`none`,position:`relative`,top:100,width:`auto`,maxWidth:`calc(100vw - ${i(e.calc(e.margin).mul(2).equal())})`,margin:`0 auto`,paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.titleColor,fontWeight:e.fontWeightStrong,fontSize:e.titleFontSize,lineHeight:e.titleLineHeight,wordWrap:`break-word`},[`${t}-content`]:{position:`relative`,backgroundColor:e.contentBg,backgroundClip:`padding-box`,border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadow,pointerEvents:`auto`,padding:e.contentPadding},[`${t}-close`]:Object.assign({position:`absolute`,top:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),insetInlineEnd:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),zIndex:e.calc(e.zIndexPopupBase).add(10).equal(),padding:0,color:e.modalCloseIconColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:`none`,background:`transparent`,borderRadius:e.borderRadiusSM,width:e.modalCloseBtnSize,height:e.modalCloseBtnSize,border:0,outline:0,cursor:`pointer`,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:`flex`,fontSize:e.fontSizeLG,fontStyle:`normal`,lineHeight:i(e.modalCloseBtnSize),justifyContent:`center`,textTransform:`none`,textRendering:`auto`},"&:disabled":{pointerEvents:`none`},"&:hover":{color:e.modalCloseIconHoverColor,backgroundColor:e.colorBgTextHover,textDecoration:`none`},"&:active":{backgroundColor:e.colorBgTextActive}},Ce(e)),[`${t}-header`]:{color:e.colorText,background:e.headerBg,borderRadius:`${i(e.borderRadiusLG)} ${i(e.borderRadiusLG)} 0 0`,marginBottom:e.headerMarginBottom,padding:e.headerPadding,borderBottom:e.headerBorderBottom},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:`break-word`,padding:e.bodyPadding,[`${t}-body-skeleton`]:{width:`100%`,height:`100%`,display:`flex`,justifyContent:`center`,alignItems:`center`,margin:`${i(e.margin)} auto`}},[`${t}-footer`]:{textAlign:`end`,background:e.footerBg,marginTop:e.footerMarginTop,padding:e.footerPadding,borderTop:e.footerBorderTop,borderRadius:e.footerBorderRadius,[`> ${e.antCls}-btn + ${e.antCls}-btn`]:{marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:`hidden`}})},{[`${t}-pure-panel`]:{top:`auto`,padding:0,display:`flex`,flexDirection:`column`,[`${t}-content, ${t}-body, ${t}-confirm-body-wrapper`]:{display:`flex`,flexDirection:`column`,flex:`auto`},[`${t}-confirm-body`]:{marginBottom:`auto`}}}]},Yt=e=>{let{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:`rtl`,[`${t}-confirm-body`]:{direction:`rtl`}}}}},Xt=e=>{let{componentCls:t}=e,n=j(e),r=Object.assign({},n);delete r.xs;let a=`--${t.replace(`.`,``)}-`,o=Object.keys(r).map(e=>({[`@media (min-width: ${i(r[e])})`]:{width:`var(${a}${e}-width)`}}));return{[`${t}-root`]:{[t]:[].concat(de(Object.keys(n).map((e,t)=>{let r=Object.keys(n)[t-1];return r?{[`${a}${e}-width`]:`var(${a}${r}-width)`}:null})),[{width:`var(${a}xs-width)`}],de(o))}}},Zt=e=>{let t=e.padding,n=e.fontSizeHeading5,r=e.lineHeightHeading5;return oe(e,{modalHeaderHeight:e.calc(e.calc(r).mul(n).equal()).add(e.calc(t).mul(2).equal()).equal(),modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterBorderWidth:e.lineWidth,modalCloseIconColor:e.colorIcon,modalCloseIconHoverColor:e.colorIconHover,modalCloseBtnSize:e.controlHeight,modalConfirmIconSize:e.fontHeight,modalTitleHeight:e.calc(e.titleFontSize).mul(e.titleLineHeight).equal()})},Qt=e=>({footerBg:`transparent`,headerBg:e.colorBgElevated,titleLineHeight:e.lineHeightHeading5,titleFontSize:e.fontSizeHeading5,contentBg:e.colorBgElevated,titleColor:e.colorTextHeading,contentPadding:e.wireframe?0:`${i(e.paddingMD)} ${i(e.paddingContentHorizontalLG)}`,headerPadding:e.wireframe?`${i(e.padding)} ${i(e.paddingLG)}`:0,headerBorderBottom:e.wireframe?`${i(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:`none`,headerMarginBottom:e.wireframe?0:e.marginXS,bodyPadding:e.wireframe?e.paddingLG:0,footerPadding:e.wireframe?`${i(e.paddingXS)} ${i(e.padding)}`:0,footerBorderTop:e.wireframe?`${i(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:`none`,footerBorderRadius:e.wireframe?`0 0 ${i(e.borderRadiusLG)} ${i(e.borderRadiusLG)}`:0,footerMarginTop:e.wireframe?0:e.marginSM,confirmBodyPadding:e.wireframe?`${i(e.padding*2)} ${i(e.padding*2)} ${i(e.paddingLG)}`:0,confirmIconMarginInlineEnd:e.wireframe?e.margin:e.marginSM,confirmBtnsMarginTop:e.wireframe?e.marginLG:e.marginSM}),$t=ne(`Modal`,e=>{let t=Zt(e);return[Jt(t),Yt(t),qt(t),h(t,`zoom`),Xt(t)]},Qt,{unitless:{titleLineHeight:!0}}),en=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{tn={x:e.pageX,y:e.pageY},setTimeout(()=>{tn=null},100)},!0);var nn=e=>{let{prefixCls:t,className:n,rootClassName:r,open:i,wrapClassName:a,centered:o,getContainer:s,focusTriggerAfterClose:c=!0,style:l,visible:u,width:d=520,footer:f,classNames:p,styles:m,children:h,loading:g,confirmLoading:_,zIndex:v,mousePosition:b,onOk:x,onCancel:S,destroyOnHidden:C,destroyOnClose:ee,panelRef:w=null,modalRender:E}=e,te=en(e,[`prefixCls`,`className`,`rootClassName`,`open`,`wrapClassName`,`centered`,`getContainer`,`focusTriggerAfterClose`,`style`,`visible`,`width`,`footer`,`classNames`,`styles`,`children`,`loading`,`confirmLoading`,`zIndex`,`mousePosition`,`onOk`,`onCancel`,`destroyOnHidden`,`destroyOnClose`,`panelRef`,`modalRender`]),{getPopupContainer:ne,getPrefixCls:D,direction:ie,modal:O}=F.useContext(y),k=e=>{_||S?.(e)},A=e=>{x?.(e)},j=D(`modal`,t),oe=D(),M=re(j),[se,N,P]=$t(j,M),le=(0,I.default)(a,{[`${j}-centered`]:o??O?.centered,[`${j}-wrap-rtl`]:ie===`rtl`}),ue=f!==null&&!g?F.createElement(Gt,Object.assign({},e,{onOk:A,onCancel:k})):null,[de,fe,pe,he]=et(Ze(e),Ze(O),{closable:!0,closeIcon:F.createElement(ae,{className:`${j}-close-icon`}),closeIconRender:e=>Wt(j,e)}),_e=E?e=>F.createElement(`div`,{className:`${j}-render`},E(e)):void 0,ve=Se(w,Vt(`.${j}-${E?`render`:`content`}`)),[ye,xe]=ce(`Modal`,v),[Ce,we]=F.useMemo(()=>d&&typeof d==`object`?[void 0,d]:[d,void 0],[d]),Te=F.useMemo(()=>{let e={};return we&&Object.keys(we).forEach(t=>{let n=we[t];n!==void 0&&(e[`--${j}-${t}-width`]=typeof n==`number`?`${n}px`:n)}),e},[j,we]);return se(F.createElement(be,{form:!0,space:!0},F.createElement(me.Provider,{value:xe},F.createElement(Rt,Object.assign({width:Ce},te,{zIndex:ye,getContainer:s===void 0?ne:s,prefixCls:j,rootClassName:(0,I.default)(N,r,P,M),footer:ue,visible:i??u,mousePosition:b??tn,onClose:k,closable:de&&Object.assign({disabled:pe,closeIcon:fe},he),closeIcon:fe,focusTriggerAfterClose:c,transitionName:T(oe,`zoom`,e.transitionName),maskTransitionName:T(oe,`fade`,e.maskTransitionName),className:(0,I.default)(N,n,O?.className),style:Object.assign(Object.assign(Object.assign({},O?.style),l),Te),classNames:Object.assign(Object.assign(Object.assign({},O?.classNames),p),{wrapper:(0,I.default)(le,p?.wrapper)}),styles:Object.assign(Object.assign({},O?.styles),m),panelRef:ve,destroyOnClose:C??ee,modalRender:_e}),g?F.createElement(ge,{active:!0,title:!1,paragraph:{rows:4},className:`${j}-body-skeleton`}):h))))},rn=e=>{let{componentCls:t,titleFontSize:n,titleLineHeight:r,modalConfirmIconSize:a,fontSize:o,lineHeight:s,modalTitleHeight:c,fontHeight:l,confirmBodyPadding:u}=e,d=`${t}-confirm`;return{[d]:{"&-rtl":{direction:`rtl`},[`${e.antCls}-modal-header`]:{display:`none`},[`${d}-body-wrapper`]:Object.assign({},b()),[`&${t} ${t}-body`]:{padding:u},[`${d}-body`]:{display:`flex`,flexWrap:`nowrap`,alignItems:`start`,[`> ${e.iconCls}`]:{flex:`none`,fontSize:a,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(l).sub(a).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(c).sub(a).equal()).div(2).equal()}},[`${d}-paragraph`]:{display:`flex`,flexDirection:`column`,flex:`auto`,rowGap:e.marginXS,maxWidth:`calc(100% - ${i(e.marginSM)})`},[`${e.iconCls} + ${d}-paragraph`]:{maxWidth:`calc(100% - ${i(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${d}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:n,lineHeight:r},[`${d}-content`]:{color:e.colorText,fontSize:o,lineHeight:s},[`${d}-btns`]:{textAlign:`end`,marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${d}-error ${d}-body > ${e.iconCls}`]:{color:e.colorError},[`${d}-warning ${d}-body > ${e.iconCls}, ${d}-confirm ${d}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${d}-info ${d}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${d}-success ${d}-body > ${e.iconCls}`]:{color:e.colorSuccess}}},an=we([`Modal`,`confirm`],e=>rn(Zt(e)),Qt,{order:-1e3}),on=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{prefixCls:t,icon:n,okText:r,cancelText:i,confirmPrefixCls:a,type:o,okCancel:s,footer:c,locale:l}=e,u=on(e,[`prefixCls`,`icon`,`okText`,`cancelText`,`confirmPrefixCls`,`type`,`okCancel`,`footer`,`locale`]),d=n;if(!n&&n!==null)switch(o){case`info`:d=F.createElement(Fe,null);break;case`success`:d=F.createElement(je,null);break;case`error`:d=F.createElement(fe,null);break;default:d=F.createElement(Ne,null)}let p=s??o===`confirm`,m=e.autoFocusButton===null?!1:e.autoFocusButton||`ok`,[h]=f(`Modal`),g=l||h,_=r||(p?g?.okText:g?.justOkText),v=i||g?.cancelText,y=F.useMemo(()=>Object.assign({autoFocusButton:m,cancelTextLocale:v,okTextLocale:_,mergedOkCancel:p},u),[m,v,_,p,u]),b=F.createElement(F.Fragment,null,F.createElement(wt,null),F.createElement(Tt,null)),x=e.title!==void 0&&e.title!==null,S=`${a}-body`;return F.createElement(`div`,{className:`${a}-body-wrapper`},F.createElement(`div`,{className:(0,I.default)(S,{[`${S}-has-title`]:x})},d,F.createElement(`div`,{className:`${a}-paragraph`},x&&F.createElement(`span`,{className:`${a}-title`},e.title),F.createElement(`div`,{className:`${a}-content`},e.content))),c===void 0||typeof c==`function`?F.createElement(Ct,{value:y},F.createElement(`div`,{className:`${a}-btns`},typeof c==`function`?c(b,{OkBtn:Tt,CancelBtn:wt}):b)):c,F.createElement(an,{prefixCls:t}))},cn=e=>{let{close:t,zIndex:n,maskStyle:r,direction:i,prefixCls:a,wrapClassName:o,rootPrefixCls:s,bodyStyle:c,closable:l=!1,onConfirm:u,styles:d,title:f}=e,p=`${a}-confirm`,m=e.width||416,h=e.style||{},g=e.mask===void 0?!0:e.mask,_=e.maskClosable===void 0?!1:e.maskClosable,v=(0,I.default)(p,`${p}-${e.type}`,{[`${p}-rtl`]:i===`rtl`},e.className),[,y]=se(),b=F.useMemo(()=>n===void 0?y.zIndexPopupBase+ve:n,[n,y]);return F.createElement(nn,Object.assign({},e,{className:v,wrapClassName:(0,I.default)({[`${p}-centered`]:!!e.centered},o),onCancel:()=>{t?.({triggerCancel:!0}),u?.(!1)},title:f,footer:null,transitionName:T(s||``,`zoom`,e.transitionName),maskTransitionName:T(s||``,`fade`,e.maskTransitionName),mask:g,maskClosable:_,style:h,styles:Object.assign({body:c,mask:r},d),width:m,zIndex:b,closable:l}),F.createElement(sn,Object.assign({},e,{confirmPrefixCls:p})))},ln=e=>{let{rootPrefixCls:t,iconPrefixCls:n,direction:r,theme:i}=e;return F.createElement(k,{prefixCls:t,iconPrefixCls:n,direction:r,theme:i},F.createElement(cn,Object.assign({},e)))},un=[],dn=``;function fn(){return dn}var pn=e=>{let{prefixCls:t,getContainer:n,direction:r}=e,i=S(),a=(0,F.useContext)(y),o=fn()||a.getPrefixCls(),s=t||`${o}-modal`,c=n;return c===!1&&(c=void 0),F.createElement(ln,Object.assign({},e,{rootPrefixCls:o,prefixCls:s,iconPrefixCls:a.iconPrefixCls,theme:a.theme,direction:r??a.direction,locale:a.locale?.Modal??i,getContainer:c}))};function mn(e){let t=O(),n=document.createDocumentFragment(),r=Object.assign(Object.assign({},e),{close:c,open:!0}),i,a;function o(...t){var n;if(t.some(e=>e?.triggerCancel)){var r;(n=e.onCancel)==null||(r=n).call.apply(r,[e,()=>{}].concat(de(t.slice(1))))}for(let e=0;e{clearTimeout(i),i=setTimeout(()=>{let r=t.getPrefixCls(void 0,fn()),i=t.getIconPrefixCls(),o=t.getTheme(),s=F.createElement(pn,Object.assign({},e));a=v()(F.createElement(k,{prefixCls:r,iconPrefixCls:i,theme:o},typeof t.holderRender==`function`?t.holderRender(s):s),n)})};function c(...t){r=Object.assign(Object.assign({},r),{open:!1,afterClose:()=>{typeof e.afterClose==`function`&&e.afterClose(),o.apply(this,t)}}),r.visible&&delete r.visible,s(r)}function l(e){r=typeof e==`function`?e(r):Object.assign(Object.assign({},r),e),s(r)}return s(r),un.push(c),{destroy:c,update:l}}function hn(e){return Object.assign(Object.assign({},e),{type:`warning`})}function gn(e){return Object.assign(Object.assign({},e),{type:`info`})}function _n(e){return Object.assign(Object.assign({},e),{type:`success`})}function vn(e){return Object.assign(Object.assign({},e),{type:`error`})}function yn(e){return Object.assign(Object.assign({},e),{type:`confirm`})}function bn({rootPrefixCls:e}){dn=e}var xn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{var{afterClose:n,config:r}=e,i=xn(e,[`afterClose`,`config`]);let[a,o]=F.useState(!0),[s,c]=F.useState(r),{direction:l,getPrefixCls:u}=F.useContext(y),d=u(`modal`),p=u(),m=()=>{var e;n(),(e=s.afterClose)==null||e.call(s)},h=(...e)=>{var t;if(o(!1),e.some(e=>e?.triggerCancel)){var n;(t=s.onCancel)==null||(n=t).call.apply(n,[s,()=>{}].concat(de(e.slice(1))))}};F.useImperativeHandle(t,()=>({destroy:h,update:e=>{c(t=>{let n=typeof e==`function`?e(t):e;return Object.assign(Object.assign({},t),n)})}}));let g=s.okCancel??s.type===`confirm`,[_]=f(`Modal`,ee.Modal);return F.createElement(ln,Object.assign({prefixCls:d,rootPrefixCls:p},s,{close:h,open:a,afterClose:m,okText:s.okText||(g?_?.okText:_?.justOkText),direction:s.direction||l,cancelText:s.cancelText||_?.cancelText},i))}),Cn=0,wn=F.memo(F.forwardRef((e,t)=>{let[n,r]=tt();return F.useImperativeHandle(t,()=>({patchElement:r}),[r]),F.createElement(F.Fragment,null,n)}));function Tn(){let e=F.useRef(null),[t,n]=F.useState([]);F.useEffect(()=>{t.length&&(de(t).forEach(e=>{e()}),n([]))},[t]);let r=F.useCallback(t=>function(r){Cn+=1;let i=F.createRef(),a,o=new Promise(e=>{a=e}),s=!1,c,l=F.createElement(Sn,{key:`modal-${Cn}`,config:t(r),ref:i,afterClose:()=>{c?.()},isSilent:()=>s,onConfirm:e=>{a(e)}});return c=e.current?.patchElement(l),c&&un.push(c),{destroy:()=>{function e(){var e;(e=i.current)==null||e.destroy()}i.current?e():n(t=>[].concat(de(t),[e]))},update:e=>{function t(){var t;(t=i.current)==null||t.update(e)}i.current?t():n(e=>[].concat(de(e),[t]))},then:e=>(s=!0,o.then(e))}},[]);return[F.useMemo(()=>({info:r(gn),success:r(_n),error:r(vn),warning:r(hn),confirm:r(yn)}),[r]),F.createElement(wn,{key:`modal-holder`,ref:e})]}var En=e=>{let{componentCls:t,notificationMarginEdge:n,animationMaxHeight:r}=e,i=`${t}-notice`,a=new w(`antNotificationFadeIn`,{"0%":{transform:`translate3d(100%, 0, 0)`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,opacity:1}}),o=new w(`antNotificationTopFadeIn`,{"0%":{top:-r,opacity:0},"100%":{top:0,opacity:1}}),s=new w(`antNotificationBottomFadeIn`,{"0%":{bottom:e.calc(r).mul(-1).equal(),opacity:0},"100%":{bottom:0,opacity:1}}),c=new w(`antNotificationLeftFadeIn`,{"0%":{transform:`translate3d(-100%, 0, 0)`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,opacity:1}});return{[t]:{[`&${t}-top, &${t}-bottom`]:{marginInline:0,[i]:{marginInline:`auto auto`}},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:o}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:s}},[`&${t}-topRight, &${t}-bottomRight`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:a}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginRight:{value:0,_skip_check_:!0},marginLeft:{value:n,_skip_check_:!0},[i]:{marginInlineEnd:`auto`,marginInlineStart:0},[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:c}}}}},Dn=[`top`,`topLeft`,`topRight`,`bottom`,`bottomLeft`,`bottomRight`],On={topLeft:`left`,topRight:`right`,bottomLeft:`left`,bottomRight:`right`,top:`left`,bottom:`left`},kn=(e,t)=>{let{componentCls:n}=e;return{[`${n}-${t}`]:{[`&${n}-stack > ${n}-notice-wrapper`]:{[t.startsWith(`top`)?`top`:`bottom`]:0,[On[t]]:{value:0,_skip_check_:!0}}}}},An=e=>{let t={};for(let n=1;n ${e.componentCls}-notice`]:{opacity:0,transition:`opacity ${e.motionDurationMid}`}};return Object.assign({[`&:not(:nth-last-child(-n+${e.notificationStackLayer}))`]:{opacity:0,overflow:`hidden`,color:`transparent`,pointerEvents:`none`}},t)},jn=e=>{let t={};for(let n=1;n{let{componentCls:t}=e;return Object.assign({[`${t}-stack`]:{[`& > ${t}-notice-wrapper`]:Object.assign({transition:`transform ${e.motionDurationSlow}, backdrop-filter 0s`,willChange:`transform, opacity`,position:`absolute`},An(e))},[`${t}-stack:not(${t}-stack-expanded)`]:{[`& > ${t}-notice-wrapper`]:Object.assign({},jn(e))},[`${t}-stack${t}-stack-expanded`]:{[`& > ${t}-notice-wrapper`]:{"&:not(:nth-last-child(-n + 1))":{opacity:1,overflow:`unset`,color:`inherit`,pointerEvents:`auto`,[`& > ${e.componentCls}-notice`]:{opacity:1}},"&:after":{content:`""`,position:`absolute`,height:e.margin,width:`100%`,insetInline:0,bottom:e.calc(e.margin).mul(-1).equal(),background:`transparent`,pointerEvents:`auto`}}}},Dn.map(t=>kn(e,t)).reduce((e,t)=>Object.assign(Object.assign({},e),t),{}))},Nn=e=>{let{iconCls:t,componentCls:n,boxShadow:r,fontSizeLG:a,notificationMarginBottom:o,borderRadiusLG:s,colorSuccess:c,colorInfo:l,colorWarning:u,colorError:d,colorTextHeading:f,notificationBg:p,notificationPadding:m,notificationMarginEdge:h,notificationProgressBg:g,notificationProgressHeight:_,fontSize:v,lineHeight:y,width:b,notificationIconSize:x,colorText:S,colorSuccessBg:C,colorErrorBg:ee,colorInfoBg:w,colorWarningBg:T}=e,E=`${n}-notice`;return{position:`relative`,marginBottom:o,marginInlineStart:`auto`,background:p,borderRadius:s,boxShadow:r,[E]:{padding:m,width:b,maxWidth:`calc(100vw - ${i(e.calc(h).mul(2).equal())})`,lineHeight:y,wordWrap:`break-word`,borderRadius:s,overflow:`hidden`,"&-success":C?{background:C}:{},"&-error":ee?{background:ee}:{},"&-info":w?{background:w}:{},"&-warning":T?{background:T}:{}},[`${E}-message`]:{color:f,fontSize:a,lineHeight:e.lineHeightLG},[`${E}-description`]:{fontSize:v,color:S,marginTop:e.marginXS},[`${E}-closable ${E}-message`]:{paddingInlineEnd:e.paddingLG},[`${E}-with-icon ${E}-message`]:{marginInlineStart:e.calc(e.marginSM).add(x).equal(),fontSize:a},[`${E}-with-icon ${E}-description`]:{marginInlineStart:e.calc(e.marginSM).add(x).equal(),fontSize:v},[`${E}-icon`]:{position:`absolute`,fontSize:x,lineHeight:1,[`&-success${t}`]:{color:c},[`&-info${t}`]:{color:l},[`&-warning${t}`]:{color:u},[`&-error${t}`]:{color:d}},[`${E}-close`]:Object.assign({position:`absolute`,top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:`none`,width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`none`,border:`none`,"&:hover":{color:e.colorIconHover,backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}},Ce(e)),[`${E}-progress`]:{position:`absolute`,display:`block`,appearance:`none`,inlineSize:`calc(100% - ${i(s)} * 2)`,left:{_skip_check_:!0,value:s},right:{_skip_check_:!0,value:s},bottom:0,blockSize:_,border:0,"&, &::-webkit-progress-bar":{borderRadius:s,backgroundColor:`rgba(0, 0, 0, 0.04)`},"&::-moz-progress-bar":{background:g},"&::-webkit-progress-value":{borderRadius:s,background:g}},[`${E}-actions`]:{float:`right`,marginTop:e.marginSM}}},Pn=e=>{let{componentCls:t,notificationMarginBottom:n,notificationMarginEdge:r,motionDurationMid:i,motionEaseInOut:a}=e,o=`${t}-notice`,s=new w(`antNotificationFadeOut`,{"0%":{maxHeight:e.animationMaxHeight,marginBottom:n},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[t]:Object.assign(Object.assign({},l(e)),{position:`fixed`,zIndex:e.zIndexPopup,marginRight:{value:r,_skip_check_:!0},[`${t}-hook-holder`]:{position:`relative`},[`${t}-fade-appear-prepare`]:{opacity:`0 !important`},[`${t}-fade-enter, ${t}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:a,animationFillMode:`both`,opacity:0,animationPlayState:`paused`},[`${t}-fade-leave`]:{animationTimingFunction:a,animationFillMode:`both`,animationDuration:i,animationPlayState:`paused`},[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationPlayState:`running`},[`${t}-fade-leave${t}-fade-leave-active`]:{animationName:s,animationPlayState:`running`},"&-rtl":{direction:`rtl`,[`${o}-actions`]:{float:`left`}}})},{[t]:{[`${o}-wrapper`]:Nn(e)}}]},Fn=e=>({zIndexPopup:e.zIndexPopupBase+ve+50,width:384,colorSuccessBg:void 0,colorErrorBg:void 0,colorInfoBg:void 0,colorWarningBg:void 0}),In=e=>{let t=e.paddingMD,n=e.paddingLG;return oe(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:n,notificationIconSize:e.calc(e.fontSizeLG).mul(e.lineHeightLG).equal(),notificationCloseButtonSize:e.calc(e.controlHeightLG).mul(.55).equal(),notificationMarginBottom:e.margin,notificationPadding:`${i(e.paddingMD)} ${i(e.paddingContentHorizontalLG)}`,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationStackLayer:3,notificationProgressHeight:2,notificationProgressBg:`linear-gradient(90deg, ${e.colorPrimaryBorderHover}, ${e.colorPrimary})`})},Ln=ne(`Notification`,e=>{let t=In(e);return[Pn(t),En(t),Mn(t)]},Fn);function Rn(e,t){return t===null||t===!1?null:t||F.createElement(ae,{className:`${e}-close-icon`})}var zn={success:je,info:Fe,error:fe,warning:Ne},Bn=e=>{let{prefixCls:t,icon:n,type:r,message:i,description:a,actions:o,role:s=`alert`}=e,c=null;return n?c=F.createElement(`span`,{className:`${t}-icon`},n):r&&(c=F.createElement(zn[r]||null,{className:(0,I.default)(`${t}-icon`,`${t}-icon-${r}`)})),F.createElement(`div`,{className:(0,I.default)({[`${t}-with-icon`]:c}),role:s},c,F.createElement(`div`,{className:`${t}-message`},i),a&&F.createElement(`div`,{className:`${t}-description`},a),o&&F.createElement(`div`,{className:`${t}-actions`},o))};function Vn(e,t,n){let r;switch(e){case`top`:r={left:`50%`,transform:`translateX(-50%)`,right:`auto`,top:t,bottom:`auto`};break;case`topLeft`:r={left:0,top:t,bottom:`auto`};break;case`topRight`:r={right:0,top:t,bottom:`auto`};break;case`bottom`:r={left:`50%`,transform:`translateX(-50%)`,right:`auto`,top:`auto`,bottom:n};break;case`bottomLeft`:r={left:0,top:`auto`,bottom:n};break;default:r={right:0,top:`auto`,bottom:n};break}return r}function Hn(e){return{motionName:`${e}-fade`}}function Un(e,t,n){return e===void 0?t?.closeIcon===void 0?n?.closeIcon:t.closeIcon:e}var Wn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let n=re(t),[r,i,a]=Ln(t,n);return r(F.createElement(Re,{classNames:{list:(0,I.default)(i,a,n)}},e))},Yn=(e,{prefixCls:t,key:n})=>F.createElement(Jn,{prefixCls:t,key:n},e),Xn=F.forwardRef((e,t)=>{let{top:n,bottom:r,prefixCls:i,getContainer:a,maxCount:o,rtl:s,onAllRemoved:c,stack:l,duration:u,pauseOnHover:d=!0,showProgress:f}=e,{getPrefixCls:p,getPopupContainer:m,notification:h,direction:g}=(0,F.useContext)(y),[,_]=se(),v=i||p(`notification`),[b,x]=Xe({prefixCls:v,style:e=>Vn(e,n??Gn,r??Gn),className:()=>(0,I.default)({[`${v}-rtl`]:s??g===`rtl`}),motion:()=>Hn(v),closable:!0,closeIcon:Rn(v),duration:u??Kn,getContainer:()=>a?.()||m?.()||document.body,maxCount:o,pauseOnHover:d,showProgress:f,onAllRemoved:c,renderNotifications:Yn,stack:l===!1?!1:{threshold:typeof l==`object`?l?.threshold:void 0,offset:8,gap:_.margin}});return F.useImperativeHandle(t,()=>Object.assign(Object.assign({},b),{prefixCls:v,notification:h})),x});function Zn(e){let t=F.useRef(null);return pe(`Notification`),[F.useMemo(()=>{let n=n=>{if(!t.current)return;let{open:r,prefixCls:i,notification:a}=t.current,o=`${i}-notice`,{message:s,description:c,icon:l,type:u,btn:d,actions:f,className:p,style:m,role:h=`alert`,closeIcon:g,closable:_}=n,v=Wn(n,[`message`,`description`,`icon`,`type`,`btn`,`actions`,`className`,`style`,`role`,`closeIcon`,`closable`]),y=f??d,b=Rn(o,Un(g,e,a));return r(Object.assign(Object.assign({placement:e?.placement??qn},v),{content:F.createElement(Bn,{prefixCls:o,icon:l,type:u,message:s,description:c,actions:y,role:h}),className:(0,I.default)(u&&`${o}-${u}`,p,a?.className),style:Object.assign(Object.assign({},a?.style),m),closeIcon:b,closable:_??!!b}))},r={open:n,destroy:e=>{var n,r;e===void 0?(r=t.current)==null||r.destroy():(n=t.current)==null||n.close(e)}};return[`success`,`info`,`warning`,`error`].forEach(e=>{r[e]=t=>n(Object.assign(Object.assign({},t),{type:e}))}),r},[]),F.createElement(Xn,Object.assign({key:`notification-holder`},e,{ref:t}))]}function Qn(e){return Zn(e)}var $n=F.createContext({}),er=F.createContext({message:{},notification:{},modal:{}}),tr=ne(`App`,e=>{let{componentCls:t,colorText:n,fontSize:r,lineHeight:i,fontFamily:a}=e;return{[t]:{color:n,fontSize:r,lineHeight:i,fontFamily:a,[`&${t}-rtl`]:{direction:`rtl`}}}},()=>({})),nr=e=>{let{prefixCls:t,children:n,className:r,rootClassName:i,message:a,notification:o,style:s,component:c=`div`}=e,{direction:l,getPrefixCls:u}=(0,F.useContext)(y),d=u(`app`,t),[f,p,m]=tr(d),h=(0,I.default)(p,d,r,i,m,{[`${d}-rtl`]:l===`rtl`}),g=(0,F.useContext)($n),_=F.useMemo(()=>({message:Object.assign(Object.assign({},g.message),a),notification:Object.assign(Object.assign({},g.notification),o)}),[a,o,g.message,g.notification]),[v,b]=gt(_.message),[x,S]=Qn(_.notification),[C,ee]=Tn(),w=F.useMemo(()=>({message:v,notification:x,modal:C}),[v,x,C]);pe(`App`)(!(m&&c===!1),`usage`,"When using cssVar, ensure `component` is assigned a valid React component string.");let T=c===!1?F.Fragment:c,E={className:h,style:s};return f(F.createElement(er.Provider,{value:w},F.createElement($n.Provider,{value:_},F.createElement(T,Object.assign({},c===!1?void 0:E),ee,b,S,n))))},rr=()=>F.useContext(er),ir=nr;ir.useApp=rr;var ar=(0,F.createContext)({});function or(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;te.tagName===`STYLE`)}function vr(e,t={}){if(!fr())return null;let{csp:n,prepend:r,priority:i=0}=t,a=gr(r),o=a===`prependQueue`,s=document.createElement(`style`);s.setAttribute(cr,a),o&&i&&s.setAttribute(lr,`${i}`),n?.nonce&&(s.nonce=n.nonce),s.innerHTML=e;let c=hr(t),{firstChild:l}=c;if(r){if(o){let e=(t.styles||_r(c)).filter(e=>{if(![`prepend`,`prependQueue`].includes(e.getAttribute(cr)))return!1;let t=Number(e.getAttribute(lr)||0);return i>=t});if(e.length)return c.insertBefore(s,e[e.length-1].nextSibling),s}c.insertBefore(s,l)}else c.appendChild(s);return s}function yr(e,t={}){let{styles:n}=t;return n||=_r(hr(t)),n.find(n=>n.getAttribute(mr(t))===e)}function br(e,t){let n=dr.get(e);if(!n||!pr(document,n)){let n=vr(``,t);if(!n)return;let{parentNode:r}=n;dr.set(e,r),e.removeChild(n)}}function xr(e,t,n={}){if(!fr())return null;let r=hr(n),i=_r(r),a={...n,styles:i};br(r,a);let o=yr(t,a);if(o)return a.csp?.nonce&&o.nonce!==a.csp.nonce&&(o.nonce=a.csp.nonce),o.innerHTML!==e&&(o.innerHTML=e),o;let s=vr(e,a);return s?.setAttribute(mr(a),t),s}function Sr(e){return e?.getRootNode?.()}function Cr(e){let t=Sr(e);return typeof ShadowRoot<`u`&&t instanceof ShadowRoot?t:null}var wr={};function Tr(e,t){e||wr[t]||(wr[t]=!0)}function Er(e){return e.replace(/-(.)/g,(e,t)=>t.toUpperCase())}function Dr(e,t){Tr(e,`[@ant-design/icons] ${t}`)}function Or(e){return typeof e==`object`&&typeof e.name==`string`&&typeof e.theme==`string`&&(typeof e.icon==`object`||typeof e.icon==`function`)}function kr(e={}){return Object.keys(e).reduce((t,n)=>{let r=e[n];switch(n){case`class`:t.className=r,delete t.class;break;default:delete t[n],t[Er(n)]=r}return t},{})}function Ar(e,t,n){return n?F.createElement(e.tag,{key:t,...kr(e.attrs),...n},(e.children||[]).map((n,r)=>Ar(n,`${t}-${e.tag}-${r}`))):F.createElement(e.tag,{key:t,...kr(e.attrs)},(e.children||[]).map((n,r)=>Ar(n,`${t}-${e.tag}-${r}`)))}var jr=` .anticon { display: inline-flex; align-items: center; color: inherit; font-style: normal; line-height: 0; text-align: center; text-transform: none; vertical-align: -0.125em; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .anticon > * { line-height: 1; } .anticon svg { display: inline-block; vertical-align: inherit; } .anticon::before { display: none; } .anticon .anticon-icon { display: block; } .anticon[tabindex] { cursor: pointer; } .anticon-spin { -webkit-animation: loadingCircle 1s infinite linear; animation: loadingCircle 1s infinite linear; } @-webkit-keyframes loadingCircle { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes loadingCircle { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } `,Mr=e=>{let{csp:t,prefixCls:n,layer:r,zeroRuntime:i}=(0,F.useContext)(ar),a=jr;n&&(a=a.replace(/anticon/g,n)),r&&(a=`@layer ${r} {\n${a}\n}`),(0,F.useEffect)(()=>{if(i)return;let n=e.current,o=Cr(n);xr(a,`@ant-design-icons`,{prepend:!r,csp:t,attachTo:o})},[])},Nr=e=>{let{icon:t,className:n,onClick:r,style:i,primaryColor:a,secondaryColor:o,...s}=e,c=F.useRef(null);if(Mr(c),Dr(Or(t),`icon should be icon definiton, but got ${t}`),!Or(t))return null;let l=t;return Ar(l.icon,`svg-${l.name}`,{className:n,onClick:r,style:i,"data-icon":l.name,width:`1em`,height:`1em`,fill:`currentColor`,"aria-hidden":`true`,...s,ref:c})};Nr.displayName=`IconReact`;function Pr(){return Pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{className:n,icon:r,spin:i,rotate:a,tabIndex:o,onClick:s,twoToneColor:c,...l}=e,{prefixCls:u=`anticon`,rootClassName:d}=F.useContext(ar),f=sr(d,u,{[`${u}-${r.name}`]:!!r.name,[`${u}-spin`]:!!i||r.name===`loading`},n),p=o;p===void 0&&s&&(p=-1);let m=a?{msTransform:`rotate(${a}deg)`,transform:`rotate(${a}deg)`}:void 0;return F.createElement(`span`,Pr({role:`img`,"aria-label":r.name},l,{ref:t,tabIndex:p,onClick:s,className:f}),F.createElement(Nr,{icon:r,style:m}))}),Ir=e(n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z`}}]},name:`api`,theme:`outlined`}}))());function Lr(){return Lr=Object.assign?Object.assign.bind():function(e){for(var t=1;tF.createElement(Fr,Lr({},e,{ref:t,icon:Ir.default}))),zr=e(n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z`}}]},name:`mail`,theme:`outlined`}}))());function Br(){return Br=Object.assign?Object.assign.bind():function(e){for(var t=1;tF.createElement(Fr,Br({},e,{ref:t,icon:zr.default}))),Hr=e(n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z`}}]},name:`safety-certificate`,theme:`outlined`}}))());function Ur(){return Ur=Object.assign?Object.assign.bind():function(e){for(var t=1;tF.createElement(Fr,Ur({},e,{ref:t,icon:Hr.default}))),Gr=e(n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z`}}]},name:`user`,theme:`outlined`}}))());function Kr(){return Kr=Object.assign?Object.assign.bind():function(e){for(var t=1;tF.createElement(Fr,Kr({},e,{ref:t,icon:Gr.default}))),Jr=`zh-CN`,Yr=[`zh-CN`,`en-US`],Xr={"zh-CN":{"common.account":`账号`,"common.addDomain":`添加域名`,"common.actions":`操作`,"common.cancel":`取消`,"common.confirm":`确认`,"common.copy":`复制`,"common.copied":`已复制`,"common.delete":`删除`,"common.details":`详情`,"common.edit":`修改`,"common.error":`操作失败`,"common.loadingConfig":`加载运行配置中`,"common.logout":`退出登录`,"common.manual":`手动`,"common.next":`下一步`,"common.notConfigured":`未配置`,"common.notFound":`暂无`,"common.previous":`上一步`,"common.refresh":`刷新`,"common.save":`保存`,"common.status":`状态`,"common.user":`用户`,"common.unsetSendingIp":`未设置发信 IP`,"shell.skipToMain":`跳至主要内容`,"shell.mainNavigation":`主导航`,"shell.openNavigation":`打开主导航`,"shell.closeNavigation":`关闭主导航`,"shell.accountMenu":`账户菜单`,"shell.envReady":`运行环境正常`,"shell.envNeedsSetup":`运行配置待完善`,"shell.loadingFailed":`控制台加载失败`,"shell.retry":`重试`,"shell.backToLogin":`返回登录`,"shell.forbiddenTitle":`无权访问`,"shell.forbiddenDescription":`该页面仅对系统管理员开放。`,"shell.notFoundTitle":`页面不存在`,"shell.notFoundDescription":`链接可能已失效,或页面地址输入有误。`,"shell.backOverview":`返回概览`,"shell.loadingConsole":`正在加载控制台`,"shell.loadingPage":`正在加载页面`,"auth.email":`邮箱`,"auth.emailPlaceholder":`name@example.com`,"auth.backToLogin":`返回登录`,"auth.forgotPassword":`忘记密码?`,"auth.forgotPasswordButton":`发送重置邮件`,"auth.forgotPasswordTitle":`找回密码`,"auth.login":`登录`,"auth.loginEyebrow":`Sign in`,"auth.loginTitle":`登录控制台`,"auth.newPassword":`新密码`,"auth.password":`密码`,"auth.register":`注册`,"auth.registerButton":`注册并进入`,"auth.registerEyebrow":`Register`,"auth.registerTitle":`创建账号`,"auth.resendVerification":`重发验证邮件`,"auth.resendVerificationButton":`发送验证邮件`,"auth.resendVerificationTitle":`重发验证邮件`,"auth.resetPasswordButton":`重置密码`,"auth.resetPasswordTitle":`重置密码`,"auth.resetTokenMissing":`重置链接缺少 token,请重新发起密码重置。`,"auth.submitLogin":`登录`,"auth.username":`用户名`,"auth.usernameOrEmail":`用户名或邮箱`,"auth.valueDns":`DNS 自动化`,"auth.valueIsolation":`多用户隔离`,"auth.valueObservability":`发送可观测`,"auth.subtitle":`发信域名、DNS、SMTP 与 API 密钥的统一控制台`,"auth.requestFailed":`请求失败。`,"dashboard.title":`统计概览`,"dashboard.verifiedDomains":`已验证域名`,"dashboard.todaySent":`今日发送量`,"dashboard.successRate":`成功率`,"dashboard.bounceRate":`退信率`,"dashboard.complaintRate":`投诉率`,"dashboard.lastSentAt":`最近一次发送`,"dashboard.dnsIssues":`DNS 异常数量`,"dashboard.smtpStatus":`SMTP 状态`,"dashboard.smtpReady":`可用`,"dashboard.smtpNotConfigured":`未配置`,"dashboard.trend":`发送趋势`,"dashboard.statusDistribution":`状态分布`,"dashboard.domainRanking":`域名发送排行`,"dashboard.domainHealth":`域名健康`,"dashboard.hourlyHeatmap":`小时发送分布`,"dashboard.deliveryFunnel":`投递漏斗`,"dashboard.failureReasons":`失败原因排行`,"dashboard.recentFailures":`最近失败原因`,"dashboard.recentLogs":`最近发送记录`,"dashboard.noTrend":`暂无发送趋势数据`,"dashboard.noDomains":`暂无域名`,"dashboard.noFailures":`暂无失败记录`,"dashboard.defaultPasswordWarning":`当前仍在使用默认管理密码,请修改 .env 后重启服务。`,"dashboard.acceptedMail":`已接收邮件`,"dashboard.failedMail":`失败邮件`,"dashboard.dnsActionHint":`优先处理 DNS 异常域名,避免影响新域名投递。`,"dashboard.statusQueued":`已接收`,"dashboard.statusFailed":`失败`,"dashboard.statusUnknown":`未知`,"dashboard.stageSubmitted":`已提交`,"dashboard.stageAccepted":`已入队`,"dashboard.stageDelivered":`已送达`,"dashboard.stagePending":`等待投递`,"dashboard.stageFailed":`投递失败`,"dashboard.opens":`打开`,"dashboard.clicks":`点击`,"dashboard.openRate":`打开率`,"dashboard.clickRate":`点击率`,"dashboard.clickToOpenRate":`点击打开率`,"dashboard.unique":`独立`,"dashboard.total":`总计`,"dashboard.trackedDelivered":`已追踪送达`,"dashboard.measuredActivity":`互动次数`,"dashboard.proxyOpens":`代理打开`,"dashboard.scannerEvents":`扫描器事件`,"dashboard.engagementTrend":`打开与点击趋势`,"dashboard.topLinks":`链接点击排行`,"dashboard.link":`链接`,"dashboard.uniqueClicks":`独立点击`,"dashboard.totalClicks":`总点击`,"dashboard.lastClicked":`最近点击`,"dashboard.noEngagement":`暂无互动数据`,"domains.title":`发信域名`,"domains.domain":`域名`,"domains.senderHost":`发信主机`,"domains.sendingIp":`发信 IP`,"domains.dnsApi":`DNS API`,"domains.smtp":`SMTP`,"domains.lastSent":`最近发送`,"domains.overallStatus":`整体状态`,"domains.actions":`操作`,"domains.searchPlaceholder":`搜索域名或发信主机`,"domains.statusPlaceholder":`整体状态`,"domains.healthy":`健康`,"domains.pending":`等待生效`,"domains.needsAction":`需要处理`,"domains.waitingDns":`等待 DNS 生效`,"domains.sendable":`可发送`,"domains.waitingVerify":`待验证`,"domains.oneClickDns":`一键 DNS`,"domains.check":`检查`,"domains.test":`测试`,"domains.deleteConfirm":`确认删除该域名?`,"domainDetail.back":`返回域名列表`,"domainDetail.overview":`域名概览`,"domainDetail.danger":`危险操作`,"domainDetail.deleteHint":`删除域名会移除该域名配置,但不会删除 DNS 服务商中的记录。`,"domainDetail.editTitle":`修改域名配置`,"domainDetail.lastCheck":`最后检查`,"domainDetail.notChecked":`尚未检查`,"domainDetail.noDnsResult":`尚未生成 DNS 检查结果`,"domainDetail.currentDnsResult":`当前 DNS 检测结果`,"domainDetail.recheckAll":`重新检查全部`,"domainDetail.copyAll":`复制全部配置`,"domainDetail.noPublicDns":`暂无公共 DNS 查询数据`,"domainDetail.notFoundRecord":`未发现`,"domainDetail.needAttention":`需要关注`,"domainDetail.noSmtpPassword":`请在 SMTP 页面重新设置后复制`,"domainDetail.noApiToken":`尚未创建`,"domainDetail.apiExample":`发送 API 示例`,"domainDetail.placeholder":`配置将在后续版本接入`,"dnsRecord.hostname":`主机名`,"dnsRecord.targetValue":`目标值`,"dnsRecord.currentValue":`当前值`,"dnsRecord.emptyCurrent":`未查询到记录`,"dnsRecord.ptrHint":`PTR 通常需要在服务器商、云厂商或 IP 提供商处配置,DNS API 一般无法直接写入。`,"dnsRecord.recheck":`重新检测`,"dnsRecord.copyLabel":`复制`,"dnsRecord.rootTxt":`根域 TXT`,"dnsRecord.verificationTxt":`验证 TXT`,"dnsRecord.dkimTxt":`DKIM TXT`,"dnsRecord.dmarcTxt":`DMARC TXT`,"dnsRecord.senderA":`发信主机 A`,"dnsRecord.ptr":`发信 IP PTR`,"domainHealth.sendingDomain":`Sending domain`,"domainHealth.dnsProgress":`DNS 检查进度`,"domainHealth.passed":`通过`,"domainHealth.dnsIssues":`DNS 异常`,"domainHealth.dnsApi":`DNS API`,"domainHealth.oneClickDns":`一键配置 DNS`,"domainHealth.checkNow":`立即检查`,"domainHealth.sendTest":`发送测试邮件`,"domainHealth.edit":`修改配置`,"addDomain.title":`添加发信域名`,"addDomain.stepDomain":`域名信息`,"addDomain.stepDns":`DNS 配置方式`,"addDomain.stepPolicy":`DKIM / SPF / DMARC`,"addDomain.stepConfirm":`确认并创建`,"addDomain.create":`确认创建`,"addDomain.domainExtra":`填写根域名,不需要 http、路径或邮箱地址。`,"addDomain.domainRequired":`请输入发信域名`,"addDomain.senderHostRequired":`请输入发信主机`,"addDomain.sendingIpRequired":`请输入发信 IP`,"addDomain.dnsExtra":`未选择时仍可创建域名,稍后手动配置 DNS 或绑定凭据。`,"addDomain.manualDns":`手动配置 DNS`,"addDomain.dnsHint":`选择 DNS API 后,域名详情页可以使用“一键配置 DNS”写入验证、DKIM、SPF、DMARC 和发信主机 A 记录。`,"addDomain.selectorRequired":`请输入 DKIM selector`,"addDomain.spfExtra":`兼容第三方 SPF include`,"addDomain.generatedTitle":`创建后会生成以下配置`,"addDomain.recordVerification":`域名验证 TXT`,"addDomain.recordDkim":`DKIM TXT`,"addDomain.recordSpf":`SPF TXT`,"addDomain.recordDmarc":`DMARC TXT`,"addDomain.recordSenderA":`发信主机 A 记录`,"addDomain.recordPtr":`PTR 反向解析检查提示`,"addDomain.immediateCheck":`创建后立即检查 DNS`,"logs.title":`发送记录`,"logs.time":`时间`,"logs.recipient":`收件人`,"logs.domain":`发件域名`,"logs.errorReason":`错误原因`,"logs.viewDetail":`查看详情`,"logs.domainPlaceholder":`发信域名`,"logs.statusPlaceholder":`状态`,"logs.recipientPlaceholder":`搜索收件人`,"logs.detailTitle":`发送详情`,"logs.deliveryLog":`完整投递日志`,"logs.copyDeliveryLog":`复制投递日志`,"logs.noDeliveryLog":`暂无结构化投递日志,可能是历史发送记录。`,"logs.sender":`发件人`,"logs.subject":`主题`,"logs.messageId":`Message ID`,"logs.finalResponse":`最终响应`,"logs.messageBytes":`邮件字节数`,"logs.queueId":`Postfix 队列 ID`,"logs.deliveredAt":`最终投递时间`,"logs.trackingTimeline":`投递时间线`,"logs.noTrackingTimeline":`暂无可用的投递时间线。`,"logs.trackingTimelineTruncated":`时间线仅显示最近 500 条互动事件,汇总统计仍包含全部事件。`,"logs.trackingLinksTruncated":`链接明细仅显示点击量最高的 200 条,汇总统计仍包含全部链接。`,"logs.deliveryAttempts":`投递尝试`,"logs.noDeliveryAttempts":`暂无最终投递回执,可能仍在队列中或属于历史记录。`,"logs.webhookDeliveries":`Webhook 回调`,"logs.noWebhookDeliveries":`暂无关联 Webhook 回调。`,"logs.detailLoadFailed":`发送详情加载失败。`,"logs.detailNotFound":`未找到该发送记录。`,"logs.stageSubmitted":`已提交`,"logs.stageAccepted":`已入队`,"logs.stageDelivered":`已送达`,"logs.stagePending":`等待投递`,"logs.stageFailed":`投递失败`,"logs.stageOpened":`已打开`,"logs.stageClicked":`已点击`,"logs.stageWebhook":`Webhook 回调`,"logs.engagement":`互动追踪`,"logs.opens":`打开`,"logs.clicks":`点击`,"logs.trackingDisabled":`这封邮件发送时未启用打开/点击追踪。`,"logs.trackingDisabledShort":`未启用`,"inbox.title":`收件箱`,"inbox.subtitle":`管理本地收信邮箱,查看通过 MailHub SMTP 接收的邮件。`,"inbox.createMailbox":`新增收信邮箱`,"inbox.inboundDisabled":`当前运行配置已关闭入站收信。请设置 INBOUND_ENABLED=true 后重启服务。`,"inbox.clientHelpTitle":`客户端配置帮助`,"inbox.clientHelpIntro":`创建邮箱后,点击“客户端配置”可复制第三方客户端所需的收信/发信参数。`,"inbox.clientHelpImap":`推荐优先使用 IMAP;它会和 MailHub 收件箱保持同步。`,"inbox.clientHelpPop3":`POP3 适合把邮件下载到本地;客户端删除邮件后,MailHub 中对应邮件会在退出时移除。`,"inbox.clientHelpAuth":`用户名使用完整邮箱地址,密码使用创建或重置邮箱时设置的密码。`,"inbox.clientHelpSecurity":`优先使用 SSL/TLS 端口 993/995/465,或在 143/110/587 上启用 STARTTLS/STLS。`,"inbox.clientHelpPorts":`服务器防火墙和云安全组需放行 IMAP 143/993、POP3 110/995、SMTP 587/465。`,"inbox.mailboxes":`收信邮箱`,"inbox.domainRoutes":`域名收信路由`,"inbox.mailboxUnit":`邮箱`,"inbox.catchAllAddress":`收取未知邮件的邮箱`,"inbox.catchAllDisabled":`未启用`,"inbox.catchAllTitle":`收取未知邮件`,"inbox.catchAllExtra":`留空表示拒收未知地址;填写邮箱地址表示投递/转发;填写 /dev/null 表示接收后丢弃。`,"inbox.mailboxAddress":`邮箱地址`,"inbox.password":`密码`,"inbox.passwordRequired":`请输入邮箱密码`,"inbox.passwordMin":`邮箱密码至少需要 8 位`,"inbox.generatePassword":`生成`,"inbox.quotaMb":`配额`,"inbox.unlimited":`无限制`,"inbox.aliases":`别名`,"inbox.aliasesExtra":`每行一个本地部分,例如 sales 会接收 sales@当前域名。`,"inbox.forwardTo":`转发到`,"inbox.forwardToExtra":`每行一个或多个邮箱地址,也可用逗号、空格分隔。`,"inbox.keepForwarded":`保留已转发的邮件`,"inbox.forwardOnly":`仅转发`,"inbox.clientConfig":`客户端配置`,"inbox.mailboxWebhooks":`邮件到达 Webhook`,"inbox.clientConfigHelpSummary":`推荐优先配置 IMAP 收信;POP3 仅在需要下载到本地时使用。密码只在创建或重置时显示。`,"inbox.configUsername":`用户名`,"inbox.configPassword":`密码`,"inbox.passwordNotShown":`仅创建或重置时显示`,"inbox.incomingConfig":`IMAP 配置`,"inbox.pop3Config":`POP3 配置`,"inbox.outgoingConfig":`发信配置`,"inbox.configProtocol":`协议`,"inbox.configHost":`主机`,"inbox.configPort":`端口`,"inbox.configSecurity":`安全`,"inbox.configAuthMethod":`认证方式`,"inbox.unread":`未读`,"inbox.messageCount":`邮件数`,"inbox.lastMessageAt":`最近收信`,"inbox.noDomain":`请先添加域名,再创建该域名下的收信邮箱。`,"inbox.noMailboxDomain":`请先添加自己的域名,或让域名拥有者共享可创建邮箱的域名。`,"inbox.ownDomain":`我的域名`,"inbox.sharedDomain":`共享域名`,"inbox.messages":`入站邮件`,"inbox.mailboxFilter":`收信邮箱`,"inbox.searchPlaceholder":`搜索发件人、主题或正文预览`,"inbox.receivedAt":`收信时间`,"inbox.subject":`主题`,"inbox.noSubject":`(无主题)`,"inbox.sender":`发件人`,"inbox.mailbox":`收信邮箱`,"inbox.read":`已读`,"inbox.preview":`预览`,"inbox.localPart":`邮箱前缀`,"inbox.localPartRequired":`请输入邮箱前缀`,"inbox.localPartInvalid":`邮箱前缀不能包含 @ 或空格`,"inbox.domainRequired":`请选择域名`,"inbox.displayName":`显示名称`,"inbox.messageDetail":`邮件详情`,"inbox.copyRaw":`复制原文`,"inbox.recipients":`收件人`,"inbox.textBody":`文本正文`,"inbox.htmlBody":`HTML 预览`,"inbox.htmlSource":`HTML 源码`,"inbox.rawMessage":`原始 MIME`,"inbox.noTextBody":`暂无文本正文`,"inbox.noHtmlBody":`暂无 HTML 正文`,"inbox.noRawMessage":`暂无原始 MIME`,"inbox.messageNotFound":`邮件不存在或已被删除。`,"inbox.detailLoadFailed":`邮件详情加载失败。`,"inbox.noReceivingAccess":`当前账号没有可收取邮件的邮箱权限。`,"inbox.ownerManaged":`由邮箱所有者管理`,"inbox.deleteMailbox":`删除邮箱`,"inbox.deleteMailboxTitle":`迁移邮件并删除邮箱`,"inbox.deleteMailboxAction":`迁移邮件并删除`,"inbox.deleteMailboxWarning":`系统会先将源邮箱中的全部邮件迁移到目标邮箱,再停用并移除源邮箱账号。`,"inbox.deleteMailboxEmptyWarning":`此邮箱中没有邮件,可以直接停用并移除邮箱账号。`,"inbox.deleteMailboxEmptyAction":`删除邮箱`,"inbox.deleteMailboxSource":`待删除邮箱`,"inbox.deleteMailboxMessages":`待迁移邮件`,"inbox.deleteMailboxTarget":`目标邮箱`,"inbox.deleteMailboxTargetPlaceholder":`选择接收这些邮件的邮箱`,"inbox.deleteMailboxTargetRequired":`请选择目标邮箱`,"inbox.deleteMailboxNoTarget":`没有其他可管理的邮箱。请先创建一个目标邮箱,再删除当前邮箱。`,"inbox.deleteMailboxConfirmAddress":`输入完整邮箱地址确认`,"inbox.deleteMailboxConfirmAddressExtra":`为避免误删,请输入上方待删除邮箱的完整地址。`,"inbox.deleteMailboxConfirmAddressMismatch":`输入的邮箱地址与待删除邮箱不一致。`,"account.title":`账号与邮箱权限`,"account.subtitle":`查看账号信息,以及自己拥有或由管理员分配的邮箱权限。`,"account.summary":`账号信息`,"account.role":`角色`,"account.mailboxAccess":`我的邮箱权限`,"account.accessSource":`权限来源`,"account.permissions":`权限`,"account.owned":`拥有`,"account.assigned":`管理员分配`,"account.ownedMailbox":`我拥有的邮箱`,"account.adminAssigned":`管理员分配`,"account.adminAccess":`管理员查看`,"account.openInbox":`打开收件箱`,"account.manageMailbox":`管理邮箱`,"account.noMailboxes":`当前账号还没有拥有或被分配的邮箱。`,"mailboxPermission.view":`查看配置`,"mailboxPermission.receive":`收取邮件`,"mailboxPermission.send":`发送邮件`,"mailboxPermission.none":`无权限`,"logs.trackingScope":`统计范围`,"logs.messageLevel":`消息级(多收件人)`,"logs.recipientLevel":`单收件人`,"logs.firstOpened":`首次打开`,"logs.lastOpened":`最近打开`,"logs.firstClicked":`首次点击`,"logs.lastClicked":`最近点击`,"logs.proxyOpens":`代理打开`,"logs.scannerEvents":`扫描器事件`,"logs.statusQueued":`队列中`,"logs.statusSent":`已送达`,"logs.statusDeferred":`暂时失败`,"logs.statusBounced":`已退信`,"logs.statusFailed":`失败`,"smtp.connectionTitle":`SMTP 连接信息`,"smtp.loginCredentialsTitle":`SMTP 凭据`,"smtp.username":`用户名`,"smtp.password":`密码`,"smtp.usernameRequired":`请输入 SMTP Username`,"smtp.passwordRequired":`请输入 SMTP Password`,"smtp.passwordSet":`已设置`,"smtp.passwordEmpty":`未设置`,"smtp.passwordUnavailable":`请重新设置后复制`,"smtp.create":`新增凭据`,"smtp.createTitle":`新增 SMTP 凭据`,"smtp.editTitle":`编辑 SMTP 凭据`,"smtp.deleteConfirm":`确认删除该 SMTP 登录凭据?`,"smtp.passwordExtra":`留空保存时会保留原密码;出于安全原因,已保存密码不会再次显示。`,"smtp.regenerate":`重新生成密码`,"smtp.resetToCopy":`请重新设置后复制`,"smtpRelay.title":`发送中继`,"smtpRelay.create":`新增出口`,"smtpRelay.createTitle":`新增发送中继`,"smtpRelay.editTitle":`编辑发送中继`,"smtpRelay.name":`名称`,"smtpRelay.nameRequired":`请输入出口名称`,"smtpRelay.server":`服务器`,"smtpRelay.hostRequired":`请输入 SMTP Host`,"smtpRelay.portRequired":`请输入 SMTP Port`,"smtpRelay.username":`用户名`,"smtpRelay.password":`密码`,"smtpRelay.passwordSet":`已设置`,"smtpRelay.passwordEmpty":`未设置`,"smtpRelay.passwordExtra":`留空保存时会保留原密码;出于安全原因,已保存密码不会再次显示。`,"smtpRelay.generatePassword":`生成密码`,"smtpRelay.heloExtra":`留空时使用系统默认 HELO。`,"smtpRelay.default":`默认`,"smtpRelay.domainDefault":`默认发信 SMTP 出口`,"smtpRelay.domainDefaultExtra":`未选择时按请求指定、用户默认出口、系统全局 SMTP 的顺序选择。`,"smtpRelay.useResolutionOrder":`按默认选择顺序`,"smtpRelay.deleteConfirm":`确认删除该 SMTP 出口?绑定到该出口的域名会改为按默认顺序选择。`,"dnsApi.title":`DNS 集成凭据`,"dnsApi.createTitle":`新增 DNS 集成凭据`,"dnsApi.editTitle":`编辑`,"dnsApi.zone":`Zone / 根域名`,"dnsApi.zoneRequired":`请输入 Zone 或根域名`,"dnsApi.zoneExtra":`填写该账号下任一可管理 Zone 用于连接测试;一键配置时会按当前发信域名自动匹配 Zone。`,"dnsApi.cloudflareZoneExtra":`Cloudflare 可填写任一可访问 Zone 用于测试;一键配置时会按当前发信域名自动匹配 Zone。`,"dnsApi.tokenExtra":`需要 Zone DNS Edit 权限。`,"dnsApi.keepSecret":`留空表示保留原密钥。`,"dnsApi.save":`保存修改`,"dnsApi.create":`新增凭据`,"dnsApi.secretHint":`密钥只在服务端加密保存,不会在列表中回显。`,"dnsApi.deleteConfirm":`确认删除该 DNS 集成凭据?删除后将无法再通过此 Provider 管理对应 Zone。`,"settings.checkItem":`检查项`,"settings.deliveryChecks":`发信环境检查`,"settings.noPermission":`当前账号没有系统设置权限。`,"settings.save":`保存设置`,"settings.engagementTracking":`默认启用打开与点击追踪`,"settings.registrationPolicy":`注册与账号`,"settings.registrationRequiresApproval":`邮箱验证后需要管理员审核`,"settings.registrationRequiresApprovalHint":`关闭时,用户验证邮箱后立即启用;开启时,账号进入待审核状态,需管理员批准后才能登录。`,"settings.approvalRequired":`需要审核`,"settings.approvalNotRequired":`自动启用`,"admin.title":`管理中心`,"admin.users":`用户`,"admin.mailboxAccess":`邮箱授权`,"admin.resources":`资源`,"admin.migration":`合并迁移`,"admin.systemEmail":`系统邮件`,"admin.auditLogs":`审计日志`,"adminMailboxAccess.title":`邮箱权限管理`,"adminMailboxAccess.drawerTitle":`配置邮箱权限`,"adminMailboxAccess.search":`搜索邮箱、所有者或邮箱地址`,"adminMailboxAccess.owner":`邮箱所有者`,"adminMailboxAccess.ownerPermissions":`所有者权限`,"adminMailboxAccess.assignedUsers":`已分配用户`,"adminMailboxAccess.configure":`配置权限`,"adminMailboxAccess.permissions":`邮箱权限`,"adminMailboxAccess.permissionHint":`收取邮件或发送邮件会自动包含查看配置权限;邮箱所有者始终拥有完整权限且不能移除。`,"adminMailboxAccess.permissionRequired":`每个用户至少选择一项权限,或移除该授权行。`,"adminMailboxAccess.user":`授权用户`,"adminMailboxAccess.addUser":`添加授权用户`,"adminMailboxAccess.remove":`移除授权用户`,"adminMailboxAccess.noAssignments":`该邮箱尚未分配给其他用户。`,"adminMailboxAccess.noSearchResult":`没有符合搜索条件的邮箱。`,"adminMailboxAccess.empty":`暂无可配置的邮箱。`,"adminMailboxAccess.notFound":`邮箱不存在、已删除或无权访问。`,"adminMailboxAccess.duplicateUser":`同一用户不能重复分配。`,"adminMailboxAccess.disabledUser":`已禁用`,"adminMailboxAccess.saved":`邮箱权限已保存`,"adminMailboxAccess.selectVisible":`选择全部筛选结果`,"adminMailboxAccess.selectMailbox":`选择邮箱`,"adminMailboxAccess.selectedVisible":`当前筛选中`,"adminMailboxAccess.clearSelection":`清空选择`,"adminMailboxAccess.bulkConfigure":`批量授权`,"adminMailboxAccess.bulkTitle":`批量配置邮箱权限`,"adminMailboxAccess.bulkHint":`仅处理所选邮箱与用户组合;其他用户已有授权不受影响,邮箱所有者组合会自动跳过。`,"adminMailboxAccess.bulkUpsertHint":`会将所选邮箱与用户组合的现有权限替换为下方权限;其他用户授权不受影响,邮箱所有者组合会自动跳过。`,"adminMailboxAccess.selectedMailboxes":`已选择邮箱`,"adminMailboxAccess.selectedMailboxPreview":`所选邮箱预览`,"adminMailboxAccess.bulkOperation":`批量操作`,"adminMailboxAccess.bulkUpsert":`设置或替换权限`,"adminMailboxAccess.bulkRemove":`移除授权`,"adminMailboxAccess.bulkUsers":`授权用户`,"adminMailboxAccess.bulkUsersPlaceholder":`选择一个或多个用户`,"adminMailboxAccess.bulkSaveAction":`应用权限`,"adminMailboxAccess.bulkRemoveAction":`移除授权`,"adminMailboxAccess.bulkRemoveWarning":`将从所有已选邮箱移除这些用户的授权,其他用户的权限不受影响。`,"adminMailboxAccess.bulkRemoveDisabledHint":`移除授权时可选择已禁用用户;已禁用用户不会出现在新增授权操作中。`,"adminMailboxAccess.bulkRemoveConfirmTitle":`确认批量移除授权`,"adminMailboxAccess.bulkRemoveConfirmWarning":`确认后将移除这些邮箱与用户组合中现有的授权。该操作不会删除邮箱或邮件。`,"adminMailboxAccess.bulkOwnerSkipPreview":`预计跳过邮箱所有者组合`,"adminMailboxAccess.bulkMailboxLimit":`单次最多选择邮箱数:`,"adminMailboxAccess.bulkUserLimit":`单次最多选择用户数:`,"adminMailboxAccess.bulkPairLimit":`单次最多处理邮箱与用户组合数:`,"adminMailboxAccess.bulkMailboxUnit":`个邮箱`,"adminMailboxAccess.bulkUserUnit":`个用户`,"adminMailboxAccess.bulkPairUnit":`个组合`,"adminMailboxAccess.bulkSaved":`批量邮箱权限已更新`,"adminMailboxAccess.bulkRemoved":`批量邮箱授权已移除`,"adminMailboxAccess.bulkChanged":`已更改`,"adminMailboxAccess.bulkUnchanged":`未变化`,"adminMailboxAccess.bulkSkippedOwner":`跳过所有者`,"metrics.accepted":`已接收`,"metrics.failed":`失败`,"metrics.recipients":`收件人`,"metrics.total":`总量`,"status.success":`已通过`,"status.pending":`等待生效`,"status.error":`配置错误`,"status.idle":`未配置`,"tokens.createTitle":`创建 API 密钥`,"tokens.subtitle":`按最小权限原则创建、更新或撤销用于发信和邮箱自动化的访问令牌。`,"tokens.name":`名称`,"tokens.namePlaceholder":`Production API`,"tokens.nameRequired":`请输入密钥名称`,"tokens.create":`创建密钥`,"tokens.edit":`编辑密钥`,"tokens.editTitle":`编辑 API 密钥`,"tokens.listTitle":`API 密钥`,"tokens.prefix":`Token 前缀`,"tokens.scopes":`权限范围`,"tokens.scopesRequired":`请至少选择一项权限`,"tokens.scopesExtra":`发信使用 send;邮箱资源读取/创建使用 mailboxes:read、mailboxes:write;读取邮件内容使用 messages:read。`,"tokens.mailboxAccess":`邮箱访问范围`,"tokens.mailboxAccessOwner":`账号拥有的邮箱`,"tokens.mailboxAccessSelected":`指定邮箱`,"tokens.mailboxAccessAll":`全系统邮箱(管理员)`,"tokens.mailboxAccessExtra":`Token 包含 send、mailboxes:read 或 messages:read 时生效。指定邮箱可包含管理员分配的邮箱;实际查看、读取邮件和发信能力仍与账号当前邮箱权限取交集。`,"tokens.mailboxIds":`授权邮箱`,"tokens.mailboxIdsRequired":`请至少选择一个邮箱`,"tokens.mailboxIdsPlaceholder":`选择该 Token 可访问的邮箱`,"tokens.status":`状态`,"tokens.statusActive":`生效中`,"tokens.statusExpired":`已过期`,"tokens.statusRevoked":`已撤销`,"tokens.expiresAt":`到期时间`,"tokens.expiresAtExtra":`留空表示长期有效;使用本地时间。`,"tokens.fullToken":`完整 Token`,"tokens.copyFull":`复制完整 Token`,"tokens.copyPrefix":`复制前缀`,"tokens.createdTitle":`API 密钥已创建`,"tokens.createdWarning":`完整 Token 已加密保存,之后仍可在列表或详情中复制。请仅存放在可信的服务端环境。`,"tokens.createdSuccess":`API 密钥已创建`,"tokens.rotatedTitle":`API 密钥已重新生成`,"tokens.rotatedSuccess":`API 密钥已重新生成,旧值已立即失效`,"tokens.rotatedWarning":`旧 Token 已立即失效。请尽快更新所有调用方,新的完整 Token 之后仍可在列表或详情中复制。`,"tokens.deletedSuccess":`API 密钥已删除`,"tokens.updatedSuccess":`API 密钥已更新`,"tokens.revokedSuccess":`API 密钥已撤销`,"tokens.secretAvailable":`完整 Token 已加密保存,可随时复制。`,"tokens.secretUnavailable":`该历史 Token 不可恢复,只能通过前缀识别。重新生成后旧值会立即失效。`,"tokens.recoverable":`可复制`,"tokens.unrecoverable":`不可恢复`,"tokens.rotate":`重新生成`,"tokens.rotateConfirm":`重新生成 API 密钥?`,"tokens.rotateConfirmDescription":`旧 Token 会立即失效,所有仍使用旧值的调用都会失败。此操作无法撤销。`,"tokens.lastUsed":`最近使用`,"tokens.neverUsed":`未使用`,"tokens.createdAt":`创建时间`,"tokens.actions":`操作`,"tokens.deleteConfirm":`确认删除该 API 密钥?`,"tokens.revoke":`撤销密钥`,"tokens.revokeConfirm":`撤销后该 API 密钥将立即失效,确认继续?`,"tokens.copyCreated":`复制完整 Token`,"tokens.prefixOnlyHelp":`新 API 密钥会加密保存并支持完整复制;旧版历史 Token 可能仅保留前缀,需要重新生成后才能恢复完整复制能力。`,"tokens.docsTitle":`API 使用文档`,"tokens.endpoint":`API Endpoint`,"tokens.mailboxEndpoint":`邮箱 API Endpoint`,"tokens.authHeader":`认证方式`,"tokens.authHeaderValue":`Authorization: Bearer `,"tokens.contentType":`Content-Type`,"tokens.requestFields":`请求字段`,"tokens.fieldFrom":`from:可使用账号可发信域名下的地址,或管理员分配且具发送权限、并已被“指定邮箱”范围选中的邮箱/别名;发件域名仍须通过验证。`,"tokens.fieldTo":`to:收件人地址,支持单个邮箱或邮箱数组。`,"tokens.fieldSubject":`subject:邮件主题。`,"tokens.fieldText":`text:纯文本正文。`,"tokens.fieldHtml":`html:HTML 正文,可选。`,"tokens.curlExample":`curl 示例`,"tokens.nodeExample":`Node / Fetch 示例`,"tokens.requestExample":`请求 Body 示例`,"tokens.responseExample":`成功响应示例`,"tokens.sendApi":`发信 API`,"tokens.mailboxApi":`创建邮箱 API`,"tokens.mailboxApiHint":`长期邮箱使用 mode=permanent;临时邮箱使用 mode=temporary 并提供 expiresInMinutes。临时邮箱可省略 address,服务端会按 domain 自动生成地址和密码。`,"tokens.permanentMailbox":`创建长期邮箱`,"tokens.temporaryMailbox":`创建临时邮箱`,"tokens.mailboxResponse":`创建结果与客户端配置`,"tokens.messagesApi":`收信 API`,"tokens.messagesApiHint":`需要 messages:read 权限,并受 Token 的邮箱访问范围及账号收信权限共同限制。列表支持分页与邮箱、文件夹、已读状态、关键词筛选。`,"tokens.messagesList":`查询邮件列表`,"tokens.messageDetail":`读取邮件详情`,"tokens.mailboxFolders":`查询邮箱文件夹`,"tokens.messagesFilters":`筛选参数:page/pageSize 控制分页;mailboxId 限定邮箱;folder 限定文件夹;read 使用 true/false;q 搜索发件人、收件人、主题、Message ID 与摘要。`,"tokens.messagesAccess":`范围说明:账号范围只覆盖 Token 所有者的邮箱;指定邮箱仅覆盖所选 ID;全系统邮箱只允许管理员显式选择。邮件读取和发信均与账号当前权限取交集。`,"tokens.securityTips":`安全建议`,"tokens.securityTipStore":`只在服务端环境保存 Token,不要放进浏览器前端代码或公开仓库。`,"tokens.securityTipRotate":`不同环境使用不同 Token,泄露后立即重新生成并更新所有调用方。`,"tokens.securityTipScopes":`只授予实际需要的权限;给自动化邮箱创建任务时无需授予 send。`,"tokens.securityTipDomain":`From 必须属于账号可发信域名,或使用已分配且具发送权限的邮箱/别名;发件域名应先完成 DNS 验证。`,"tokens.noTokenHint":`创建 API 密钥后可在列表和详情中复制完整 Token,并按最小权限限制邮箱访问范围。`,"webhooks.title":`Webhooks`,"webhooks.subtitle":`在投递状态变为已送达、退信或失败时,向你的 HTTPS 端点推送通知。`,"webhooks.create":`新建 Webhook`,"webhooks.createTitle":`新建 Webhook`,"webhooks.editTitle":`编辑 Webhook`,"webhooks.name":`名称`,"webhooks.namePlaceholder":`Production deliveries`,"webhooks.nameRequired":`请输入 Webhook 名称`,"webhooks.url":`回调 URL`,"webhooks.urlPlaceholder":`https://example.com/webhooks/mailhub`,"webhooks.urlRequired":`请输入回调 URL`,"webhooks.urlHint":`生产环境请使用 HTTPS。签名校验使用 X-MailHub-Signature 请求头。`,"webhooks.events":`订阅事件`,"webhooks.eventsRequired":`请至少选择一个事件`,"webhooks.eventSent":`已送达`,"webhooks.eventBounced":`已退信`,"webhooks.eventFailed":`失败`,"webhooks.eventOpened":`已打开`,"webhooks.eventClicked":`已点击`,"webhooks.eventReceived":`邮件到达`,"webhooks.enabled":`启用`,"webhooks.disabled":`已停用`,"webhooks.scope":`作用域`,"webhooks.scopeAccount":`账号级`,"webhooks.scopeDomain":`域名级`,"webhooks.scopeMailbox":`收信邮箱`,"webhooks.domain":`域名`,"webhooks.domainAccount":`整个账号`,"webhooks.domainOverrideHelp":`若某域名对某一事件存在任何已启用的端点,则该事件不会再投递到账号级端点。`,"webhooks.mailboxReceiptHelp":`仅在邮件成功保存到该邮箱后投递 email.received;仅转发而未保留的邮件不会触发。`,"webhooks.secret":`签名密钥`,"webhooks.secretPrefix":`密钥前缀`,"webhooks.secretCreatedTitle":`Webhook 密钥已创建`,"webhooks.secretRotatedTitle":`Webhook 密钥已轮换`,"webhooks.secretCreatedWarning":`完整密钥只会显示这一次。关闭后无法再次查看,请立即复制并保存到安全位置。`,"webhooks.copySecret":`复制完整密钥`,"webhooks.rotateSecret":`轮换密钥`,"webhooks.rotateConfirm":`确认轮换该 Webhook 的签名密钥?旧密钥将立即失效。`,"webhooks.test":`发送测试`,"webhooks.testQueued":`测试投递已入队`,"webhooks.deleteConfirm":`确认删除该 Webhook?相关投递记录也会一并删除。`,"webhooks.empty":`暂无 Webhook。创建后即可接收投递状态回调。`,"webhooks.listTitle":`端点列表`,"webhooks.loadFailed":`Webhook 端点加载失败`,"webhooks.recentDeliveriesUnavailable":`最近投递状态暂不可用`,"webhooks.resourcesUnavailable":`域名或邮箱选项暂不可用`,"webhooks.actions":`操作`,"webhooks.deliveriesTitle":`投递记录`,"webhooks.deliveriesEmpty":`暂无投递记录`,"webhooks.deliveriesFilterWebhook":`按 Webhook 筛选`,"webhooks.deliveriesFilterStatus":`按状态筛选`,"webhooks.deliveriesFilterEvent":`按事件筛选`,"webhooks.allWebhooks":`全部 Webhook`,"webhooks.allStatuses":`全部状态`,"webhooks.allEvents":`全部事件`,"webhooks.statusPending":`待投递`,"webhooks.statusProcessing":`投递中`,"webhooks.statusSuccess":`成功`,"webhooks.statusDead":`已放弃`,"webhooks.attemptCount":`尝试次数`,"webhooks.responseStatus":`HTTP 状态`,"webhooks.error":`错误`,"webhooks.replay":`重放`,"webhooks.replaySuccess":`投递已重新入队`,"webhooks.lastAttemptAt":`最近尝试`,"webhooks.nextAttemptAt":`下次尝试`,"webhooks.createdAt":`创建时间`,"webhooks.viewDeliveries":`查看投递`,"webhooks.docsTitle":`回调说明`,"webhooks.docsSignature":`使用 HMAC-SHA256 校验请求体;签名放在 X-MailHub-Signature。`,"webhooks.docsEvents":`事件类型:sent、bounced、failed、opened、clicked;收信邮箱可额外订阅 received。`,"testMail.title":`发送测试邮件`,"testMail.fromRequired":`请输入发件人`,"testMail.toRequired":`请输入收件人`,"actions.domainCreated":`域名已创建`,"actions.dnsCheckCompleted":`DNS 检查已完成`,"actions.dnsCheckRefreshed":`DNS 检查已刷新`,"actions.dnsApplyCompleted":`DNS 写入请求已完成`,"actions.dnsApplyPartial":`DNS 写入部分失败`,"actions.domainSaved":`域名配置已保存`,"actions.domainDeleted":`域名已删除`,"actions.testMailQueued":`已提交到发信队列`,"actions.dnsApiCreated":`DNS API 已新增`,"actions.dnsApiUpdated":`DNS API 已更新`,"actions.dnsApiDeleted":`DNS API 已删除`,"actions.dnsApiTestCompleted":`连接测试完成`,"actions.smtpCreated":`SMTP 登录凭据已新增`,"actions.smtpUpdated":`SMTP 登录凭据已更新`,"actions.smtpDeleted":`SMTP 登录凭据已删除`,"actions.smtpRelayCreated":`SMTP 出口已新增`,"actions.smtpRelayUpdated":`SMTP 出口已更新`,"actions.smtpRelayDeleted":`SMTP 出口已删除`,"actions.inboundMailboxCreated":`收信邮箱已新增`,"actions.settingsSaved":`系统设置已保存`,"actions.webhookCreated":`Webhook 已创建`,"actions.webhookUpdated":`Webhook 已更新`,"actions.webhookDeleted":`Webhook 已删除`,"actions.webhookSecretRotated":`Webhook 密钥已轮换`,"actions.webhookTestQueued":`Webhook 测试已入队`,"actions.webhookDeliveryReplayed":`Webhook 投递已重放`,"nav.dashboard":`仪表盘`,"nav.overview":`概览`,"nav.activity":`发送活动`,"nav.domains":`发信域名`,"nav.dnsApi":`DNS 集成`,"nav.smtp":`SMTP 与中继`,"nav.inbox":`收件箱`,"nav.tokens":`API 密钥`,"nav.logs":`发送记录`,"nav.webhooks":`Webhooks`,"nav.smtpIntegration":`SMTP 与中继`,"nav.apiKeys":`API 密钥`,"nav.dnsIntegration":`DNS 集成`,"nav.adminCenter":`管理中心`,"nav.admin":`管理中心`,"nav.settings":`系统设置`,"nav.group.overview":`概览`,"nav.group.delivery":`投递`,"nav.group.operations":`运行中心`,"nav.group.integrations":`接入与集成`,"nav.group.system":`系统`},"en-US":{"common.account":`Account`,"common.addDomain":`Add Domain`,"common.actions":`Actions`,"common.cancel":`Cancel`,"common.confirm":`Confirm`,"common.copy":`Copy`,"common.copied":`Copied`,"common.delete":`Delete`,"common.details":`Details`,"common.edit":`Edit`,"common.error":`Operation failed`,"common.loadingConfig":`Loading runtime config`,"common.logout":`Log out`,"common.manual":`Manual`,"common.next":`Next`,"common.notConfigured":`Not configured`,"common.notFound":`None`,"common.previous":`Previous`,"common.refresh":`Refresh`,"common.save":`Save`,"common.status":`Status`,"common.user":`User`,"common.unsetSendingIp":`Sending IP not set`,"shell.skipToMain":`Skip to main content`,"shell.mainNavigation":`Main navigation`,"shell.openNavigation":`Open main navigation`,"shell.closeNavigation":`Close main navigation`,"shell.accountMenu":`Account menu`,"shell.envReady":`Environment healthy`,"shell.envNeedsSetup":`Environment needs setup`,"shell.loadingFailed":`Console failed to load`,"shell.retry":`Retry`,"shell.backToLogin":`Back to login`,"shell.forbiddenTitle":`Access denied`,"shell.forbiddenDescription":`This page is available to system administrators only.`,"shell.notFoundTitle":`Page not found`,"shell.notFoundDescription":`The link may be stale or the address may be incorrect.`,"shell.backOverview":`Back to overview`,"shell.loadingConsole":`Loading console`,"shell.loadingPage":`Loading page`,"auth.email":`Email`,"auth.emailPlaceholder":`name@example.com`,"auth.backToLogin":`Back to sign in`,"auth.forgotPassword":`Forgot password?`,"auth.forgotPasswordButton":`Send reset email`,"auth.forgotPasswordTitle":`Recover password`,"auth.login":`Sign in`,"auth.loginEyebrow":`Sign in`,"auth.loginTitle":`Sign in to console`,"auth.newPassword":`New password`,"auth.password":`Password`,"auth.register":`Register`,"auth.registerButton":`Create account`,"auth.registerEyebrow":`Register`,"auth.registerTitle":`Create account`,"auth.resendVerification":`Resend verification email`,"auth.resendVerificationButton":`Send verification email`,"auth.resendVerificationTitle":`Resend verification email`,"auth.resetPasswordButton":`Reset password`,"auth.resetPasswordTitle":`Reset password`,"auth.resetTokenMissing":`The reset link is missing a token. Please request a new password reset.`,"auth.submitLogin":`Sign in`,"auth.username":`Username`,"auth.usernameOrEmail":`Username or email`,"auth.valueDns":`DNS automation`,"auth.valueIsolation":`User isolation`,"auth.valueObservability":`Delivery visibility`,"auth.subtitle":`One console for sending domains, DNS, SMTP, and API keys`,"auth.requestFailed":`Request failed.`,"dashboard.title":`Analytics`,"dashboard.verifiedDomains":`Verified domains`,"dashboard.todaySent":`Sent today`,"dashboard.successRate":`Success rate`,"dashboard.bounceRate":`Bounce rate`,"dashboard.complaintRate":`Complaint rate`,"dashboard.lastSentAt":`Last sent`,"dashboard.dnsIssues":`DNS issues`,"dashboard.smtpStatus":`SMTP status`,"dashboard.smtpReady":`Ready`,"dashboard.smtpNotConfigured":`Not configured`,"dashboard.trend":`Sending trend`,"dashboard.statusDistribution":`Status distribution`,"dashboard.domainRanking":`Domain ranking`,"dashboard.domainHealth":`Domain health`,"dashboard.hourlyHeatmap":`Hourly distribution`,"dashboard.deliveryFunnel":`Delivery funnel`,"dashboard.failureReasons":`Top failure reasons`,"dashboard.recentFailures":`Recent failures`,"dashboard.recentLogs":`Recent sending logs`,"dashboard.noTrend":`No trend data yet`,"dashboard.noDomains":`No domains yet`,"dashboard.noFailures":`No failures yet`,"dashboard.defaultPasswordWarning":`The default admin password is still in use. Update .env and restart the service.`,"dashboard.acceptedMail":`Accepted mail`,"dashboard.failedMail":`Failed mail`,"dashboard.dnsActionHint":`Handle domains with DNS issues first to protect delivery for new senders.`,"dashboard.statusQueued":`Accepted`,"dashboard.statusFailed":`Failed`,"dashboard.statusUnknown":`Unknown`,"dashboard.stageSubmitted":`Submitted`,"dashboard.stageAccepted":`Accepted`,"dashboard.stageDelivered":`Delivered`,"dashboard.stagePending":`Pending`,"dashboard.stageFailed":`Failed`,"dashboard.opens":`Opens`,"dashboard.clicks":`Clicks`,"dashboard.openRate":`Open rate`,"dashboard.clickRate":`Click rate`,"dashboard.clickToOpenRate":`Click-to-open rate`,"dashboard.unique":`unique`,"dashboard.total":`total`,"dashboard.trackedDelivered":`Tracked delivered`,"dashboard.measuredActivity":`Measured activity`,"dashboard.proxyOpens":`Proxy opens`,"dashboard.scannerEvents":`Scanner events`,"dashboard.engagementTrend":`Open and click trend`,"dashboard.topLinks":`Top links`,"dashboard.link":`Link`,"dashboard.uniqueClicks":`Unique clicks`,"dashboard.totalClicks":`Total clicks`,"dashboard.lastClicked":`Last clicked`,"dashboard.noEngagement":`No engagement data yet`,"domains.title":`Sending domains`,"domains.domain":`Domain`,"domains.senderHost":`Sending host`,"domains.sendingIp":`Sending IP`,"domains.dnsApi":`DNS API`,"domains.smtp":`SMTP`,"domains.lastSent":`Last sent`,"domains.overallStatus":`Overall status`,"domains.actions":`Actions`,"domains.searchPlaceholder":`Search domain or sending host`,"domains.statusPlaceholder":`Overall status`,"domains.healthy":`Healthy`,"domains.pending":`Pending`,"domains.needsAction":`Needs action`,"domains.waitingDns":`Waiting for DNS`,"domains.sendable":`Sendable`,"domains.waitingVerify":`Waiting verification`,"domains.oneClickDns":`One-click DNS`,"domains.check":`Check`,"domains.test":`Test`,"domains.deleteConfirm":`Delete this domain?`,"domainDetail.back":`Back to domains`,"domainDetail.overview":`Domain overview`,"domainDetail.danger":`Danger zone`,"domainDetail.deleteHint":`Deleting the domain removes MailHub configuration, but does not delete records at your DNS provider.`,"domainDetail.editTitle":`Edit domain settings`,"domainDetail.lastCheck":`Last check`,"domainDetail.notChecked":`Not checked`,"domainDetail.noDnsResult":`No DNS check result yet`,"domainDetail.currentDnsResult":`Current DNS results`,"domainDetail.recheckAll":`Recheck all`,"domainDetail.copyAll":`Copy all records`,"domainDetail.noPublicDns":`No public DNS query data`,"domainDetail.notFoundRecord":`Not found`,"domainDetail.needAttention":`Needs attention`,"domainDetail.noSmtpPassword":`Reset it on the SMTP page before copying`,"domainDetail.noApiToken":`No token yet`,"domainDetail.apiExample":`Sending API example`,"domainDetail.placeholder":`configuration will be connected in a later version`,"dnsRecord.hostname":`Hostname`,"dnsRecord.targetValue":`Target value`,"dnsRecord.currentValue":`Current value`,"dnsRecord.emptyCurrent":`No record found`,"dnsRecord.ptrHint":`PTR is usually configured at your server, cloud, or IP provider. DNS APIs usually cannot write it directly.`,"dnsRecord.recheck":`Recheck`,"dnsRecord.copyLabel":`Copy`,"dnsRecord.rootTxt":`Root TXT`,"dnsRecord.verificationTxt":`Verification TXT`,"dnsRecord.dkimTxt":`DKIM TXT`,"dnsRecord.dmarcTxt":`DMARC TXT`,"dnsRecord.senderA":`Sending host A`,"dnsRecord.ptr":`Sending IP PTR`,"domainHealth.sendingDomain":`Sending domain`,"domainHealth.dnsProgress":`DNS check progress`,"domainHealth.passed":`passed`,"domainHealth.dnsIssues":`DNS issues`,"domainHealth.dnsApi":`DNS API`,"domainHealth.oneClickDns":`Configure DNS`,"domainHealth.checkNow":`Check now`,"domainHealth.sendTest":`Send test email`,"domainHealth.edit":`Edit settings`,"addDomain.title":`Add sending domain`,"addDomain.stepDomain":`Domain`,"addDomain.stepDns":`DNS method`,"addDomain.stepPolicy":`DKIM / SPF / DMARC`,"addDomain.stepConfirm":`Confirm`,"addDomain.create":`Create domain`,"addDomain.domainExtra":`Use the root domain without http, paths, or email addresses.`,"addDomain.domainRequired":`Enter the sending domain`,"addDomain.senderHostRequired":`Enter the sending host`,"addDomain.sendingIpRequired":`Enter the sending IP`,"addDomain.dnsExtra":`You can create the domain without a credential and configure DNS manually later.`,"addDomain.manualDns":`Manual DNS`,"addDomain.dnsHint":`With a DNS API credential, the detail page can write verification, DKIM, SPF, DMARC, and sending host A records.`,"addDomain.selectorRequired":`Enter the DKIM selector`,"addDomain.spfExtra":`Third-party SPF includes`,"addDomain.generatedTitle":`MailHub will generate`,"addDomain.recordVerification":`Domain verification TXT`,"addDomain.recordDkim":`DKIM TXT`,"addDomain.recordSpf":`SPF TXT`,"addDomain.recordDmarc":`DMARC TXT`,"addDomain.recordSenderA":`Sending host A record`,"addDomain.recordPtr":`PTR reverse DNS check hint`,"addDomain.immediateCheck":`Check DNS immediately after creation`,"logs.title":`Sending logs`,"logs.time":`Time`,"logs.recipient":`Recipient`,"logs.domain":`Sending domain`,"logs.errorReason":`Error reason`,"logs.viewDetail":`View detail`,"logs.domainPlaceholder":`Sending domain`,"logs.statusPlaceholder":`Status`,"logs.recipientPlaceholder":`Search recipient`,"logs.detailTitle":`Sending detail`,"logs.deliveryLog":`Full delivery log`,"logs.copyDeliveryLog":`Copy delivery log`,"logs.noDeliveryLog":`No structured delivery log. This may be a historical event.`,"logs.sender":`Sender`,"logs.subject":`Subject`,"logs.messageId":`Message ID`,"logs.finalResponse":`Final response`,"logs.messageBytes":`Message bytes`,"logs.queueId":`Postfix Queue ID`,"logs.deliveredAt":`Delivered at`,"logs.trackingTimeline":`Delivery timeline`,"logs.noTrackingTimeline":`No delivery timeline is available.`,"logs.trackingTimelineTruncated":`Only the latest 500 engagement events are shown; summary metrics include all events.`,"logs.trackingLinksTruncated":`Only the top 200 links by clicks are shown; summary metrics include all links.`,"logs.deliveryAttempts":`Delivery attempts`,"logs.noDeliveryAttempts":`No final delivery receipt yet. The message may still be queued or historical.`,"logs.webhookDeliveries":`Webhook callbacks`,"logs.noWebhookDeliveries":`No related webhook callbacks.`,"logs.detailLoadFailed":`Failed to load sending detail.`,"logs.detailNotFound":`Sending record not found.`,"logs.stageSubmitted":`Submitted`,"logs.stageAccepted":`Accepted`,"logs.stageDelivered":`Delivered`,"logs.stagePending":`Pending`,"logs.stageFailed":`Failed`,"logs.stageOpened":`Opened`,"logs.stageClicked":`Clicked`,"logs.stageWebhook":`Webhook callback`,"logs.engagement":`Engagement tracking`,"logs.opens":`Opens`,"logs.clicks":`Clicks`,"logs.trackingDisabled":`Open and click tracking was not enabled when this email was sent.`,"logs.trackingDisabledShort":`Off`,"logs.trackingScope":`Tracking scope`,"logs.messageLevel":`Message-level (multiple recipients)`,"logs.recipientLevel":`Single recipient`,"logs.firstOpened":`First opened`,"logs.lastOpened":`Last opened`,"logs.firstClicked":`First clicked`,"logs.lastClicked":`Last clicked`,"logs.proxyOpens":`Proxy opens`,"logs.scannerEvents":`Scanner events`,"logs.statusQueued":`Queued`,"logs.statusSent":`Sent`,"logs.statusDeferred":`Deferred`,"logs.statusBounced":`Bounced`,"logs.statusFailed":`Failed`,"inbox.title":`Inbox`,"inbox.subtitle":`Manage local receiving mailboxes and read mail accepted by MailHub SMTP.`,"inbox.createMailbox":`New mailbox`,"inbox.inboundDisabled":`Inbound receiving is disabled. Set INBOUND_ENABLED=true and restart the service.`,"inbox.clientHelpTitle":`Client setup help`,"inbox.clientHelpIntro":`After creating a mailbox, open Client configuration to copy the receiving and sending settings for third-party mail apps.`,"inbox.clientHelpImap":`Use IMAP first when possible; it stays synchronized with the MailHub inbox.`,"inbox.clientHelpPop3":`Use POP3 when you want to download mail locally; messages deleted by the client are removed from MailHub on quit.`,"inbox.clientHelpAuth":`Use the full email address as the username and the password set when the mailbox was created or reset.`,"inbox.clientHelpSecurity":`Prefer SSL/TLS ports 993/995/465, or enable STARTTLS/STLS on 143/110/587.`,"inbox.clientHelpPorts":`Allow IMAP 143/993, POP3 110/995, and SMTP 587/465 in the server firewall and cloud security group.`,"inbox.mailboxes":`Mailboxes`,"inbox.domainRoutes":`Domain receiving routes`,"inbox.mailboxUnit":`mailboxes`,"inbox.catchAllAddress":`Catch-all mailbox`,"inbox.catchAllDisabled":`Disabled`,"inbox.catchAllTitle":`Catch-all mailbox`,"inbox.catchAllExtra":`Leave empty to reject unknown recipients. Use an email address to deliver/forward, or /dev/null to accept and discard.`,"inbox.mailboxAddress":`Mailbox address`,"inbox.password":`Password`,"inbox.passwordRequired":`Enter the mailbox password`,"inbox.passwordMin":`Mailbox password must be at least 8 characters`,"inbox.generatePassword":`Generate`,"inbox.quotaMb":`Quota`,"inbox.unlimited":`Unlimited`,"inbox.aliases":`Aliases`,"inbox.aliasesExtra":`One local part per line. For example, sales accepts sales@this domain.`,"inbox.forwardTo":`Forward to`,"inbox.forwardToExtra":`One or more email addresses, separated by line breaks, commas, or spaces.`,"inbox.keepForwarded":`Keep forwarded mail`,"inbox.forwardOnly":`Forward only`,"inbox.clientConfig":`Client configuration`,"inbox.mailboxWebhooks":`Mail arrival webhook`,"inbox.clientConfigHelpSummary":`Configure IMAP first for receiving mail. Use POP3 only when you need local download behavior. Passwords are shown only on create or reset.`,"inbox.configUsername":`Username`,"inbox.configPassword":`Password`,"inbox.passwordNotShown":`Shown only on create or reset`,"inbox.incomingConfig":`IMAP configuration`,"inbox.pop3Config":`POP3 configuration`,"inbox.outgoingConfig":`Outgoing configuration`,"inbox.configProtocol":`Protocol`,"inbox.configHost":`Host`,"inbox.configPort":`Port`,"inbox.configSecurity":`Security`,"inbox.configAuthMethod":`Auth method`,"inbox.unread":`Unread`,"inbox.messageCount":`Messages`,"inbox.lastMessageAt":`Last received`,"inbox.noDomain":`Add a domain before creating receiving mailboxes for it.`,"inbox.noMailboxDomain":`Add your own domain, or ask a domain owner to share a domain for mailbox creation.`,"inbox.ownDomain":`My domain`,"inbox.sharedDomain":`Shared domain`,"inbox.messages":`Inbound messages`,"inbox.mailboxFilter":`Mailbox`,"inbox.searchPlaceholder":`Search sender, subject, or preview`,"inbox.receivedAt":`Received at`,"inbox.subject":`Subject`,"inbox.noSubject":`(no subject)`,"inbox.sender":`Sender`,"inbox.mailbox":`Mailbox`,"inbox.read":`Read`,"inbox.preview":`Preview`,"inbox.localPart":`Local part`,"inbox.localPartRequired":`Enter the local part`,"inbox.localPartInvalid":`The local part cannot contain @ or spaces`,"inbox.domainRequired":`Select a domain`,"inbox.displayName":`Display name`,"inbox.messageDetail":`Message detail`,"inbox.copyRaw":`Copy raw`,"inbox.recipients":`Recipients`,"inbox.textBody":`Text body`,"inbox.htmlBody":`HTML preview`,"inbox.htmlSource":`HTML source`,"inbox.rawMessage":`Raw MIME`,"inbox.noTextBody":`No text body`,"inbox.noHtmlBody":`No HTML body`,"inbox.noRawMessage":`No raw MIME`,"inbox.messageNotFound":`Message not found or deleted.`,"inbox.detailLoadFailed":`Failed to load message detail.`,"inbox.noReceivingAccess":`This account does not have permission to receive mail for any mailbox.`,"inbox.ownerManaged":`Managed by the mailbox owner`,"inbox.deleteMailbox":`Delete mailbox`,"inbox.deleteMailboxTitle":`Migrate mail and delete mailbox`,"inbox.deleteMailboxAction":`Migrate mail and delete`,"inbox.deleteMailboxWarning":`MailHub first migrates every message in the source mailbox to the target mailbox, then disables and removes the source mailbox account.`,"inbox.deleteMailboxEmptyWarning":`This mailbox has no messages, so its account can be disabled and removed directly.`,"inbox.deleteMailboxEmptyAction":`Delete mailbox`,"inbox.deleteMailboxSource":`Mailbox to delete`,"inbox.deleteMailboxMessages":`Messages to migrate`,"inbox.deleteMailboxTarget":`Target mailbox`,"inbox.deleteMailboxTargetPlaceholder":`Select the mailbox that will receive these messages`,"inbox.deleteMailboxTargetRequired":`Select a target mailbox`,"inbox.deleteMailboxNoTarget":`There is no other mailbox you can manage. Create a target mailbox before deleting this one.`,"inbox.deleteMailboxConfirmAddress":`Enter the full mailbox address to confirm`,"inbox.deleteMailboxConfirmAddressExtra":`To prevent accidental deletion, enter the full source mailbox address shown above.`,"inbox.deleteMailboxConfirmAddressMismatch":`The entered address does not match the mailbox being deleted.`,"account.title":`Account & mailbox access`,"account.subtitle":`Review your account and mailboxes you own or an administrator assigned.`,"account.summary":`Account information`,"account.role":`Role`,"account.mailboxAccess":`My mailbox access`,"account.accessSource":`Access source`,"account.permissions":`Permissions`,"account.owned":`Owned`,"account.assigned":`Assigned`,"account.ownedMailbox":`Owned mailbox`,"account.adminAssigned":`Admin assigned`,"account.adminAccess":`Administrator access`,"account.openInbox":`Open inbox`,"account.manageMailbox":`Manage mailbox`,"account.noMailboxes":`This account does not own or have access to any mailboxes yet.`,"mailboxPermission.view":`View configuration`,"mailboxPermission.receive":`Receive mail`,"mailboxPermission.send":`Send mail`,"mailboxPermission.none":`No access`,"smtp.connectionTitle":`SMTP connection`,"smtp.loginCredentialsTitle":`SMTP credentials`,"smtp.username":`Username`,"smtp.password":`Password`,"smtp.usernameRequired":`Enter SMTP username`,"smtp.passwordRequired":`Enter SMTP password`,"smtp.passwordSet":`Set`,"smtp.passwordEmpty":`Empty`,"smtp.passwordUnavailable":`Reset before copying`,"smtp.create":`New credential`,"smtp.createTitle":`New SMTP credential`,"smtp.editTitle":`Edit SMTP credential`,"smtp.deleteConfirm":`Delete this SMTP login credential?`,"smtp.passwordExtra":`Leave empty to keep the current password. Saved passwords are never shown again.`,"smtp.regenerate":`Regenerate password`,"smtp.resetToCopy":`Reset before copying`,"smtpRelay.title":`Sending relays`,"smtpRelay.create":`New relay`,"smtpRelay.createTitle":`New outbound SMTP relay`,"smtpRelay.editTitle":`Edit outbound SMTP relay`,"smtpRelay.name":`Name`,"smtpRelay.nameRequired":`Enter the relay name`,"smtpRelay.server":`Server`,"smtpRelay.hostRequired":`Enter SMTP Host`,"smtpRelay.portRequired":`Enter SMTP Port`,"smtpRelay.username":`Username`,"smtpRelay.password":`Password`,"smtpRelay.passwordSet":`Set`,"smtpRelay.passwordEmpty":`Empty`,"smtpRelay.passwordExtra":`Leave empty to keep the current password. Saved passwords are never shown again.`,"smtpRelay.generatePassword":`Generate password`,"smtpRelay.heloExtra":`Leave empty to use the system default HELO.`,"smtpRelay.default":`Default`,"smtpRelay.domainDefault":`Default outbound SMTP relay`,"smtpRelay.domainDefaultExtra":`When empty, MailHub uses request relay, user default relay, then system SMTP.`,"smtpRelay.useResolutionOrder":`Use default selection order`,"smtpRelay.deleteConfirm":`Delete this SMTP relay? Bound domains will fall back to the default selection order.`,"dnsApi.title":`DNS integration credentials`,"dnsApi.createTitle":`New DNS integration credential`,"dnsApi.editTitle":`Edit`,"dnsApi.zone":`Zone / root domain`,"dnsApi.zoneRequired":`Enter the Zone or root domain`,"dnsApi.zoneExtra":`Use any manageable Zone under this account for connection testing. One-click DNS matches the current sending domain automatically.`,"dnsApi.cloudflareZoneExtra":`For Cloudflare, use any accessible Zone for testing. One-click DNS matches the current sending domain automatically.`,"dnsApi.tokenExtra":`Requires Zone DNS Edit permission.`,"dnsApi.keepSecret":`Leave empty to keep the existing secret.`,"dnsApi.save":`Save changes`,"dnsApi.create":`Create credential`,"dnsApi.secretHint":`Secrets are encrypted server-side and never shown in the list.`,"dnsApi.deleteConfirm":`Delete this DNS integration credential? This provider will no longer be available for managing the associated zone.`,"settings.checkItem":`Check`,"settings.deliveryChecks":`Sending Environment Checks`,"settings.noPermission":`This account cannot access system settings.`,"settings.save":`Save settings`,"settings.engagementTracking":`Enable open and click tracking by default`,"settings.registrationPolicy":`Registration and accounts`,"settings.registrationRequiresApproval":`Require administrator approval after email verification`,"settings.registrationRequiresApprovalHint":`When off, verifying an email activates the account immediately. When on, the account remains pending until an administrator approves it.`,"settings.approvalRequired":`Review required`,"settings.approvalNotRequired":`Auto-activate`,"admin.title":`Admin center`,"admin.users":`Users`,"admin.mailboxAccess":`Mailbox access`,"admin.resources":`Resources`,"admin.migration":`Merge`,"admin.systemEmail":`System Email`,"admin.auditLogs":`Audit Logs`,"adminMailboxAccess.title":`Mailbox access management`,"adminMailboxAccess.drawerTitle":`Configure mailbox access`,"adminMailboxAccess.search":`Search mailbox, owner, or email address`,"adminMailboxAccess.owner":`Mailbox owner`,"adminMailboxAccess.ownerPermissions":`Owner permissions`,"adminMailboxAccess.assignedUsers":`Assigned users`,"adminMailboxAccess.configure":`Configure access`,"adminMailboxAccess.permissions":`Mailbox permissions`,"adminMailboxAccess.permissionHint":`Receive or send automatically includes view access. The mailbox owner always has full access and cannot be removed.`,"adminMailboxAccess.permissionRequired":`Select at least one permission for each user, or remove that grant row.`,"adminMailboxAccess.user":`Authorized user`,"adminMailboxAccess.addUser":`Add authorized user`,"adminMailboxAccess.remove":`Remove authorized user`,"adminMailboxAccess.noAssignments":`This mailbox has not been assigned to another user.`,"adminMailboxAccess.noSearchResult":`No mailboxes match this search.`,"adminMailboxAccess.empty":`There are no mailboxes to configure.`,"adminMailboxAccess.notFound":`The mailbox does not exist, was deleted, or is not accessible.`,"adminMailboxAccess.duplicateUser":`A user cannot be assigned more than once.`,"adminMailboxAccess.disabledUser":`Disabled`,"adminMailboxAccess.saved":`Mailbox access saved`,"adminMailboxAccess.selectVisible":`Select all filtered results`,"adminMailboxAccess.selectMailbox":`Select mailbox`,"adminMailboxAccess.selectedVisible":`In current results`,"adminMailboxAccess.clearSelection":`Clear selection`,"adminMailboxAccess.bulkConfigure":`Bulk access`,"adminMailboxAccess.bulkTitle":`Configure mailbox access in bulk`,"adminMailboxAccess.bulkHint":`Only the selected mailbox and user combinations are processed. Other users' grants remain unchanged, and mailbox-owner combinations are skipped.`,"adminMailboxAccess.bulkUpsertHint":`Existing access for the selected mailbox and user combinations will be replaced with the permissions below. Other users' grants remain unchanged, and mailbox-owner combinations are skipped.`,"adminMailboxAccess.selectedMailboxes":`Selected mailboxes`,"adminMailboxAccess.selectedMailboxPreview":`Selected mailbox preview`,"adminMailboxAccess.bulkOperation":`Bulk operation`,"adminMailboxAccess.bulkUpsert":`Set or replace access`,"adminMailboxAccess.bulkRemove":`Remove access`,"adminMailboxAccess.bulkUsers":`Authorized users`,"adminMailboxAccess.bulkUsersPlaceholder":`Select one or more users`,"adminMailboxAccess.bulkSaveAction":`Apply access`,"adminMailboxAccess.bulkRemoveAction":`Remove access`,"adminMailboxAccess.bulkRemoveWarning":`These users will be removed from every selected mailbox. Other users are not affected.`,"adminMailboxAccess.bulkRemoveDisabledHint":`Disabled users can be selected when removing access, but never when granting access.`,"adminMailboxAccess.bulkRemoveConfirmTitle":`Confirm bulk access removal`,"adminMailboxAccess.bulkRemoveConfirmWarning":`This removes existing grants from the selected mailbox and user combinations. It does not delete mailboxes or messages.`,"adminMailboxAccess.bulkOwnerSkipPreview":`Expected mailbox-owner combinations skipped`,"adminMailboxAccess.bulkMailboxLimit":`Maximum mailboxes per operation:`,"adminMailboxAccess.bulkUserLimit":`Maximum users per operation:`,"adminMailboxAccess.bulkPairLimit":`Maximum mailbox and user combinations per operation:`,"adminMailboxAccess.bulkMailboxUnit":`mailboxes`,"adminMailboxAccess.bulkUserUnit":`users`,"adminMailboxAccess.bulkPairUnit":`combinations`,"adminMailboxAccess.bulkSaved":`Bulk mailbox access updated`,"adminMailboxAccess.bulkRemoved":`Bulk mailbox access removed`,"adminMailboxAccess.bulkChanged":`Changed`,"adminMailboxAccess.bulkUnchanged":`Unchanged`,"adminMailboxAccess.bulkSkippedOwner":`Owners skipped`,"metrics.accepted":`Accepted`,"metrics.failed":`Failed`,"metrics.recipients":`Recipients`,"metrics.total":`Total`,"status.success":`Passed`,"status.pending":`Pending`,"status.error":`Misconfigured`,"status.idle":`Not configured`,"tokens.createTitle":`Create API key`,"tokens.subtitle":`Create, update, and revoke scoped tokens for sending and mailbox automation.`,"tokens.name":`Name`,"tokens.namePlaceholder":`Production API`,"tokens.nameRequired":`Enter a key name`,"tokens.create":`Create key`,"tokens.edit":`Edit key`,"tokens.editTitle":`Edit API key`,"tokens.listTitle":`API keys`,"tokens.prefix":`Token Prefix`,"tokens.scopes":`Scopes`,"tokens.scopesRequired":`Select at least one scope`,"tokens.scopesExtra":`Use send for delivery, mailboxes:read/mailboxes:write for mailbox resources, and messages:read for inbound message content.`,"tokens.mailboxAccess":`Mailbox access`,"tokens.mailboxAccessOwner":`All mailboxes owned by this account`,"tokens.mailboxAccessSelected":`Selected mailboxes`,"tokens.mailboxAccessAll":`All system mailboxes (admin)`,"tokens.mailboxAccessExtra":`Applies when the token includes send, mailboxes:read, or messages:read. Selected access may include assigned mailboxes; listing, message reads, and sending are still intersected with the account's current mailbox permissions.`,"tokens.mailboxIds":`Authorized mailboxes`,"tokens.mailboxIdsRequired":`Select at least one mailbox`,"tokens.mailboxIdsPlaceholder":`Select mailboxes this token can access`,"tokens.status":`Status`,"tokens.statusActive":`Active`,"tokens.statusExpired":`Expired`,"tokens.statusRevoked":`Revoked`,"tokens.expiresAt":`Expires at`,"tokens.expiresAtExtra":`Leave empty for no expiry. Uses local time.`,"tokens.fullToken":`Full Token`,"tokens.copyFull":`Copy full token`,"tokens.copyPrefix":`Copy prefix`,"tokens.createdTitle":`API key created`,"tokens.createdWarning":`The full token is stored encrypted and remains copyable from the list or detail view. Keep it only in a trusted server environment.`,"tokens.createdSuccess":`API key created`,"tokens.rotatedTitle":`API key regenerated`,"tokens.rotatedSuccess":`API key regenerated. The previous value stopped working immediately.`,"tokens.rotatedWarning":`The previous token stopped working immediately. Update every caller soon; the new full token remains copyable from the list or detail view.`,"tokens.deletedSuccess":`API key deleted`,"tokens.updatedSuccess":`API key updated`,"tokens.revokedSuccess":`API key revoked`,"tokens.secretAvailable":`The full token is stored encrypted and can be copied at any time.`,"tokens.secretUnavailable":`This legacy token cannot be recovered and is identifiable only by its prefix. Regenerating it immediately invalidates the old value.`,"tokens.recoverable":`Copyable`,"tokens.unrecoverable":`Not recoverable`,"tokens.rotate":`Regenerate`,"tokens.rotateConfirm":`Regenerate API key?`,"tokens.rotateConfirmDescription":`The previous token will stop working immediately. Every caller still using it will fail. This cannot be undone.`,"tokens.lastUsed":`Last used`,"tokens.neverUsed":`Never used`,"tokens.createdAt":`Created at`,"tokens.actions":`Actions`,"tokens.deleteConfirm":`Delete this API key?`,"tokens.revoke":`Revoke key`,"tokens.revokeConfirm":`This API key will stop working immediately. Continue?`,"tokens.copyCreated":`Copy full token`,"tokens.prefixOnlyHelp":`New tokens are stored encrypted and remain fully copyable. Legacy tokens may retain only a prefix and must be regenerated to become recoverable.`,"tokens.docsTitle":`API guide`,"tokens.endpoint":`API Endpoint`,"tokens.mailboxEndpoint":`Mailbox API Endpoint`,"tokens.authHeader":`Authentication`,"tokens.authHeaderValue":`Authorization: Bearer `,"tokens.contentType":`Content-Type`,"tokens.requestFields":`Request fields`,"tokens.fieldFrom":`from: an address on a domain this account can send from, or an assigned mailbox/alias with send permission that is included in the token's selected-mailbox scope. The sender domain must still be verified.`,"tokens.fieldTo":`to: recipient address. Single email or an array of emails.`,"tokens.fieldSubject":`subject: email subject.`,"tokens.fieldText":`text: plain text body.`,"tokens.fieldHtml":`html: optional HTML body.`,"tokens.curlExample":`curl example`,"tokens.nodeExample":`Node / Fetch example`,"tokens.requestExample":`Request body example`,"tokens.responseExample":`Success response example`,"tokens.sendApi":`Send API`,"tokens.mailboxApi":`Create mailbox API`,"tokens.mailboxApiHint":`Use mode=permanent for a persistent mailbox. Use mode=temporary with expiresInMinutes for a temporary mailbox. When address is omitted, the server generates an address and password from domain.`,"tokens.permanentMailbox":`Create a persistent mailbox`,"tokens.temporaryMailbox":`Create a temporary mailbox`,"tokens.mailboxResponse":`Creation result and client configuration`,"tokens.messagesApi":`Inbound message API`,"tokens.messagesApiHint":`Requires messages:read and is limited by both the token mailbox-access setting and the account's receive permission. Lists support pagination plus mailbox, folder, read-state, and keyword filters.`,"tokens.messagesList":`List inbound messages`,"tokens.messageDetail":`Read message detail`,"tokens.mailboxFolders":`List mailbox folders`,"tokens.messagesFilters":`Filters: page/pageSize control pagination; mailboxId limits one mailbox; folder limits one folder; read accepts true/false; q searches sender, recipients, subject, Message ID, and preview.`,"tokens.messagesAccess":`Access: account scope covers only mailboxes owned by the token owner; selected scope covers chosen IDs; all-system scope must be explicitly selected by an administrator. Message reads and sending are intersected with the account's current permissions.`,"tokens.securityTips":`Security tips`,"tokens.securityTipStore":`Store tokens only on the server side. Do not put them in browser code or public repositories.`,"tokens.securityTipRotate":`Use separate tokens per environment. Regenerate immediately after a leak and update every caller.`,"tokens.securityTipScopes":`Grant only the scopes your integration needs. Mailbox automation does not need send.`,"tokens.securityTipDomain":`From must use a domain this account can send from, or an assigned mailbox/alias with send permission. Verify the sender domain before production use.`,"tokens.noTokenHint":`Create a token, copy its full secret from the list or detail view, and limit mailbox access to the minimum required scope.`,"webhooks.title":`Webhooks`,"webhooks.subtitle":`Push delivery updates to your HTTPS endpoint when mail is sent, bounced, or failed.`,"webhooks.create":`Create webhook`,"webhooks.createTitle":`Create webhook`,"webhooks.editTitle":`Edit webhook`,"webhooks.name":`Name`,"webhooks.namePlaceholder":`Production deliveries`,"webhooks.nameRequired":`Enter a webhook name`,"webhooks.url":`Callback URL`,"webhooks.urlPlaceholder":`https://example.com/webhooks/mailhub`,"webhooks.urlRequired":`Enter a callback URL`,"webhooks.urlHint":`Use HTTPS in production. Verify requests with the X-MailHub-Signature header.`,"webhooks.events":`Events`,"webhooks.eventsRequired":`Select at least one event`,"webhooks.eventSent":`Sent`,"webhooks.eventBounced":`Bounced`,"webhooks.eventFailed":`Failed`,"webhooks.eventOpened":`Opened`,"webhooks.eventClicked":`Clicked`,"webhooks.eventReceived":`Received`,"webhooks.enabled":`Enabled`,"webhooks.disabled":`Disabled`,"webhooks.scope":`Scope`,"webhooks.scopeAccount":`Account`,"webhooks.scopeDomain":`Domain`,"webhooks.scopeMailbox":`Mailbox`,"webhooks.domain":`Domain`,"webhooks.domainAccount":`Entire account`,"webhooks.domainOverrideHelp":`If this domain has any enabled endpoint for an event, account-level endpoints for that event are skipped.`,"webhooks.mailboxReceiptHelp":`email.received is delivered only after mail is stored in this mailbox. Forward-only mail does not trigger it.`,"webhooks.secret":`Signing secret`,"webhooks.secretPrefix":`Secret prefix`,"webhooks.secretCreatedTitle":`Webhook secret created`,"webhooks.secretRotatedTitle":`Webhook secret rotated`,"webhooks.secretCreatedWarning":`The full secret is shown only once. Copy it now and store it somewhere secure.`,"webhooks.copySecret":`Copy full secret`,"webhooks.rotateSecret":`Rotate secret`,"webhooks.rotateConfirm":`Rotate this webhook signing secret? The previous secret stops working immediately.`,"webhooks.test":`Send test`,"webhooks.testQueued":`Test delivery queued`,"webhooks.deleteConfirm":`Delete this webhook? Related delivery records will also be removed.`,"webhooks.empty":`No webhooks yet. Create one to receive delivery status callbacks.`,"webhooks.listTitle":`Endpoints`,"webhooks.loadFailed":`Unable to load webhook endpoints`,"webhooks.recentDeliveriesUnavailable":`Recent delivery status is temporarily unavailable`,"webhooks.resourcesUnavailable":`Domain or mailbox options are temporarily unavailable`,"webhooks.actions":`Actions`,"webhooks.deliveriesTitle":`Deliveries`,"webhooks.deliveriesEmpty":`No deliveries yet`,"webhooks.deliveriesFilterWebhook":`Filter by webhook`,"webhooks.deliveriesFilterStatus":`Filter by status`,"webhooks.deliveriesFilterEvent":`Filter by event`,"webhooks.allWebhooks":`All webhooks`,"webhooks.allStatuses":`All statuses`,"webhooks.allEvents":`All events`,"webhooks.statusPending":`Pending`,"webhooks.statusProcessing":`Processing`,"webhooks.statusSuccess":`Success`,"webhooks.statusDead":`Dead`,"webhooks.attemptCount":`Attempts`,"webhooks.responseStatus":`HTTP status`,"webhooks.error":`Error`,"webhooks.replay":`Replay`,"webhooks.replaySuccess":`Delivery re-queued`,"webhooks.lastAttemptAt":`Last attempt`,"webhooks.nextAttemptAt":`Next attempt`,"webhooks.createdAt":`Created at`,"webhooks.viewDeliveries":`View deliveries`,"webhooks.docsTitle":`Callback notes`,"webhooks.docsSignature":`Verify the body with HMAC-SHA256; the signature is in X-MailHub-Signature.`,"webhooks.docsEvents":`Event types: sent, bounced, failed, opened, and clicked. Mailboxes can additionally subscribe to received.`,"testMail.title":`Send test email`,"testMail.fromRequired":`Enter the sender`,"testMail.toRequired":`Enter the recipient`,"actions.domainCreated":`Domain created`,"actions.dnsCheckCompleted":`DNS check completed`,"actions.dnsCheckRefreshed":`DNS check refreshed`,"actions.dnsApplyCompleted":`DNS write request completed`,"actions.dnsApplyPartial":`DNS write partially failed`,"actions.domainSaved":`Domain settings saved`,"actions.domainDeleted":`Domain deleted`,"actions.testMailQueued":`Submitted to sending queue`,"actions.dnsApiCreated":`DNS API created`,"actions.dnsApiUpdated":`DNS API updated`,"actions.dnsApiDeleted":`DNS API deleted`,"actions.dnsApiTestCompleted":`Connection test completed`,"actions.smtpCreated":`SMTP login credential created`,"actions.smtpUpdated":`SMTP login credential updated`,"actions.smtpDeleted":`SMTP login credential deleted`,"actions.smtpRelayCreated":`SMTP relay created`,"actions.smtpRelayUpdated":`SMTP relay updated`,"actions.smtpRelayDeleted":`SMTP relay deleted`,"actions.inboundMailboxCreated":`Inbound mailbox created`,"actions.settingsSaved":`System settings saved`,"actions.webhookCreated":`Webhook created`,"actions.webhookUpdated":`Webhook updated`,"actions.webhookDeleted":`Webhook deleted`,"actions.webhookSecretRotated":`Webhook secret rotated`,"actions.webhookTestQueued":`Webhook test queued`,"actions.webhookDeliveryReplayed":`Webhook delivery replayed`,"nav.dashboard":`Dashboard`,"nav.overview":`Overview`,"nav.activity":`Sending activity`,"nav.domains":`Domains`,"nav.dnsApi":`DNS integrations`,"nav.smtp":`SMTP & relays`,"nav.inbox":`Inbox`,"nav.tokens":`API keys`,"nav.logs":`Sending Logs`,"nav.webhooks":`Webhooks`,"nav.smtpIntegration":`SMTP & relays`,"nav.apiKeys":`API keys`,"nav.dnsIntegration":`DNS integrations`,"nav.adminCenter":`Admin center`,"nav.admin":`Admin center`,"nav.settings":`Settings`,"nav.group.overview":`Overview`,"nav.group.delivery":`Delivery`,"nav.group.operations":`Operations`,"nav.group.integrations":`Integrations`,"nav.group.system":`System`}};function Zr(e=Jr){let t=String(e||``).trim();if(Yr.includes(t))return t;let n=t.toLowerCase();return n.startsWith(`zh`)?`zh-CN`:n.startsWith(`en`)?`en-US`:Jr}function Qr(e=Jr){let t=Zr(e);return e=>Xr[t]?.[e]||Xr[`zh-CN`]?.[e]||e}function $r(e){return{"zh-CN":`简体中文`,"en-US":`English`}[Zr(e)]||String(e||`zh-CN`)}var ei=_e(),ti=`mailhub.locale`,ni=(0,F.createContext)(null);function ri({children:e}){let[t,n]=(0,F.useState)(()=>ai());(0,F.useEffect)(()=>{document.documentElement.lang=t,window.localStorage.setItem(ti,t)},[t]);let r=(0,F.useMemo)(()=>({locale:t,locales:Yr.map(e=>({value:e,label:$r(e)})),setLocale:e=>n(Zr(e)),t:Qr(t)}),[t]);return(0,ei.jsx)(ni.Provider,{value:r,children:e})}function ii(){let e=(0,F.useContext)(ni);if(!e)throw Error(`useI18n must be used inside I18nProvider`);return e}function ai(){return typeof window>`u`?Jr:Zr(new URLSearchParams(window.location.search).get(`lang`)||window.localStorage.getItem(ti)||`zh-CN`)}async function L(e,t={}){let n=new Headers(t.headers);t.data!==void 0&&!n.has(`Content-Type`)&&n.set(`Content-Type`,`application/json`);let r=await oi(e,{method:t.method||`GET`,headers:n,body:t.data===void 0?t.body:JSON.stringify(t.data)}),i=r.text,a=i?JSON.parse(i):{};if(r.status<200||r.status>=300)throw Error(a.error||a.message||si(r.status));return a}function oi(e,t){return typeof globalThis.fetch==`function`?globalThis.fetch(e,{method:t.method,headers:t.headers,body:t.body}).then(async e=>({status:e.status,text:await e.text()})):new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(t.method,e,!0),t.headers.forEach((e,t)=>i.setRequestHeader(t,e)),i.onload=()=>n({status:i.status,text:i.responseText||``}),i.onerror=()=>r(Error(ci())),i.send(t.body||null)})}function si(e){return li().startsWith(`en`)?`Request failed: ${e}`:`请求失败:${e}`}function ci(){return li().startsWith(`en`)?`Network request failed`:`网络请求失败`}function li(){return document.documentElement.lang||window.localStorage.getItem(`mailhub.locale`)||`zh-CN`}var ui={me:()=>L(`/api/me`),config:()=>L(`/api/config`),domains:()=>L(`/api/domains`),events:(e={})=>{let t=fi(e);return L(`/api/events${t?`?${t}`:``}`)},event:e=>L(`/api/events/${e}`),inboundMailboxes:(e=!1)=>L(`/api/inbound-mailboxes${typeof e==`boolean`?e?`?all=true`:``:`?scope=${encodeURIComponent(e)}`}`),inboundMailboxDomains:()=>L(`/api/inbound-mailbox-domains`),createInboundMailbox:e=>L(`/api/inbound-mailboxes`,{method:`POST`,data:e}),updateInboundMailbox:(e,t)=>L(`/api/inbound-mailboxes/${e}`,{method:`PATCH`,data:t}),deleteInboundMailbox:async(e,t)=>{let n=await L(`/api/inbound-mailboxes/${e}`,{method:`DELETE`,data:t});return`result`in n?n.result:n},inboundMessages:(e={})=>{let t=fi(typeof e==`number`?{mailboxId:e}:e||{});return L(`/api/inbound-messages${t?`?${t}`:``}`)},inboundFolders:e=>L(`/api/inbound-mailboxes/${e}/folders`),createWebmailLogin:e=>L(`/api/inbound-mailboxes/${e}/webmail-login`,{method:`POST`}),inboundMessage:e=>L(`/api/inbound-messages/${e}`),markInboundMessageRead:(e,t=!0)=>L(`/api/inbound-messages/${e}`,{method:`PATCH`,data:{read:t}}),analytics:(e=7)=>L(`/api/analytics?days=${e}`),smtpCredential:()=>L(`/api/smtp-credential`),saveSmtpCredential:e=>L(`/api/smtp-credential`,{method:`PUT`,data:e}),smtpCredentials:()=>L(`/api/smtp-credentials`),smtpCredentialDetail:e=>L(`/api/smtp-credentials/${e}`),saveSmtpLoginCredential:(e,t)=>L(t?`/api/smtp-credentials/${t}`:`/api/smtp-credentials`,{method:t?`PATCH`:`POST`,data:e}),deleteSmtpCredential:e=>L(`/api/smtp-credentials/${e}`,{method:`DELETE`}),smtpRelays:()=>L(`/api/smtp-relays`),smtpRelay:e=>L(`/api/smtp-relays/${e}`),saveSmtpRelay:(e,t)=>L(t?`/api/smtp-relays/${t}`:`/api/smtp-relays`,{method:t?`PATCH`:`POST`,data:e}),deleteSmtpRelay:e=>L(`/api/smtp-relays/${e}`,{method:`DELETE`}),dnsCredentials:()=>L(`/api/dns-credentials`),saveDnsCredential:(e,t)=>L(t?`/api/dns-credentials/${t}`:`/api/dns-credentials`,{method:t?`PATCH`:`POST`,data:e}),testDnsCredential:e=>L(`/api/dns-credentials/${e}/test`,{method:`POST`}),deleteDnsCredential:e=>L(`/api/dns-credentials/${e}`,{method:`DELETE`}),apiTokens:()=>L(`/api/api-tokens`),createApiToken:e=>L(`/api/api-tokens`,{method:`POST`,data:e}),updateApiToken:(e,t)=>L(`/api/api-tokens/${e}`,{method:`PATCH`,data:t}),rotateApiToken:e=>L(`/api/api-tokens/${e}/rotate`,{method:`POST`}),deleteApiToken:e=>L(`/api/api-tokens/${e}`,{method:`DELETE`}),createDomain:e=>L(`/api/domains`,{method:`POST`,data:e}),patchDomain:(e,t)=>L(`/api/domains/${e}`,{method:`PATCH`,data:t}),checkDomain:e=>L(`/api/domains/${e}/check`,{method:`POST`}),applyDns:e=>L(`/api/domains/${e}/apply-dns`,{method:`POST`}),rotateDkim:(e,t)=>L(`/api/domains/${e}/rotate-dkim`,{method:`POST`,data:{selector:t}}),sendTest:(e,t)=>L(`/api/domains/${e}/test-send`,{method:`POST`,data:t}),deleteDomain:e=>L(`/api/domains/${e}`,{method:`DELETE`}),adminSettings:()=>L(`/api/admin/settings`),saveAdminSettings:e=>L(`/api/admin/settings`,{method:`PATCH`,data:e}),adminUsers:()=>L(`/api/admin/users`),adminMailboxAccess:async()=>{let e=await L(`/api/admin/mailbox-access`);return{mailboxes:e.mailboxes||e.entries||[]}},saveAdminMailboxAccess:(e,t)=>L(`/api/admin/inbound-mailboxes/${e}/access`,{method:`PUT`,data:{grants:t}}),bulkUpdateAdminMailboxAccess:e=>L(`/api/admin/inbound-mailboxes/access/bulk`,{method:`POST`,data:e}),updateAdminUser:(e,t)=>L(`/api/admin/users/${e}`,{method:`PATCH`,data:t}),approveAdminUser:e=>L(`/api/admin/users/${e}/approve`,{method:`POST`}),resendAdminVerification:e=>L(`/api/admin/users/${e}/resend-verification`,{method:`POST`}),sendAdminPasswordReset:e=>L(`/api/admin/users/${e}/password-reset`,{method:`POST`}),setAdminTemporaryPassword:(e,t)=>L(`/api/admin/users/${e}/temporary-password`,{method:`POST`,data:{password:t}}),adminResources:()=>L(`/api/admin/resources`),transferAdminDomain:(e,t)=>L(`/api/admin/resources/domains/${e}/transfer`,{method:`POST`,data:t}),transferAdminDnsCredential:(e,t)=>L(`/api/admin/resources/dns-credentials/${e}/transfer`,{method:`POST`,data:t}),transferAdminApiTokens:e=>L(`/api/admin/resources/api-tokens/transfer`,{method:`POST`,data:e}),previewUserMerge:e=>L(`/api/admin/migrations/user-merge/preview`,{method:`POST`,data:e}),executeUserMerge:e=>L(`/api/admin/migrations/user-merge/execute`,{method:`POST`,data:e}),adminSystemEmail:()=>L(`/api/admin/system-email`),saveAdminSystemEmail:e=>L(`/api/admin/system-email`,{method:`PATCH`,data:e}),testAdminSystemEmail:e=>L(`/api/admin/system-email/test`,{method:`POST`,data:e?{to:e}:{}}),adminAuditLogs:(e=``)=>L(`/api/admin/audit-logs${e?`?${e}`:``}`),resendVerification:e=>L(`/api/auth/resend-verification`,{method:`POST`,data:{email:e}}),forgotPassword:e=>L(`/api/auth/forgot-password`,{method:`POST`,data:{email:e}}),resetPassword:(e,t)=>L(`/api/auth/reset-password`,{method:`POST`,data:{token:e,password:t}}),logout:()=>L(`/api/logout`,{method:`POST`}),webhooks:(e,t)=>{let n=new URLSearchParams;e===null?n.set(`domainId`,`null`):e!==void 0&&n.set(`domainId`,String(e)),t!==void 0&&n.set(`mailboxId`,String(t));let r=n.toString();return L(`/api/webhooks${r?`?${r}`:``}`)},createWebhook:e=>L(`/api/webhooks`,{method:`POST`,data:e}),updateWebhook:(e,t)=>L(`/api/webhooks/${e}`,{method:`PATCH`,data:t}),deleteWebhook:e=>L(`/api/webhooks/${e}`,{method:`DELETE`}),rotateWebhookSecret:e=>L(`/api/webhooks/${e}/rotate-secret`,{method:`POST`}),testWebhook:e=>L(`/api/webhooks/${e}/test`,{method:`POST`}),webhookDeliveries:(e={})=>{let t=new URLSearchParams;e.status&&t.set(`status`,String(e.status)),e.webhookId!=null&&t.set(`webhookId`,String(e.webhookId)),e.eventType&&t.set(`eventType`,String(e.eventType)),e.limit!=null&&t.set(`limit`,String(e.limit));let n=t.toString();return L(`/api/webhook-deliveries${n?`?${n}`:``}`)},replayWebhookDelivery:e=>L(`/api/webhook-deliveries/${e}/replay`,{method:`POST`})};function di(e){let t=document.createElement(`form`);t.hidden=!0,t.method=`POST`,t.action=e.action,t.target=`_self`,t.acceptCharset=`UTF-8`;let n={mailhub_ticket:e.ticket,_task:`mail`,_mbox:`INBOX`};Object.entries(n).forEach(([e,n])=>{let r=document.createElement(`input`);r.type=`hidden`,r.name=e,r.value=n,t.append(r)}),document.body.append(t);try{typeof t.requestSubmit==`function`?t.requestSubmit():t.submit()}finally{t.remove()}}function fi(e){let t=new URLSearchParams;return Object.entries(e).forEach(([e,n])=>{n==null||n===``||t.set(e,String(n))}),t.toString()}var pi={primary:`#4F46E5`,primaryHover:`#4338CA`,primarySoft:`#EEF2FF`,ink:`#0F172A`,textSecondary:`#64748B`,textMuted:`#94A3B8`,canvas:`#F4F6FB`,surface:`#FFFFFF`,border:`#E2E8F0`,success:`#16A34A`,warning:`#D97706`,danger:`#DC2626`,chartPrimary:`#4F46E5`,chartSuccess:`#16A34A`,chartDanger:`#DC2626`,chartWarning:`#D97706`,chartTrack:`#DBEAFE`},mi={token:{colorPrimary:pi.primary,colorSuccess:pi.success,colorWarning:pi.warning,colorError:pi.danger,colorBgLayout:pi.canvas,colorBgContainer:pi.surface,colorBorderSecondary:pi.border,colorText:pi.ink,colorTextSecondary:pi.textSecondary,controlHeight:44,controlHeightLG:48,controlHeightSM:36,borderRadius:10,borderRadiusLG:14,fontFamily:`system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`},components:{Card:{borderRadiusLG:14},Table:{cellPaddingBlock:14,cellPaddingInline:16},Button:{controlHeight:44,borderRadius:10},Menu:{darkItemBg:pi.ink,darkSubMenuItemBg:pi.ink,darkItemSelectedBg:`rgba(79, 70, 229, 0.22)`,darkItemSelectedColor:`#E0E7FF`,darkItemHoverBg:`rgba(255, 255, 255, 0.06)`,itemBorderRadius:10}}};export{Ze as A,nn as C,Vt as D,Wt as E,Oe as F,Fe as M,Ne as N,Nt as O,je as P,sn as S,Gt as T,vn as _,ri as a,hn as b,Wr as c,Fr as d,ir as f,yn as g,bn as h,di as i,et as j,xt as k,Vr as l,mn as m,mi as n,ii as o,Tn as p,ui as r,qr as s,pi as t,Rr as u,gn as v,$t as w,un as x,_n as y};