Files
soul-yongping/soul-admin/dist/assets/index-DQUjJh41.js
Alex-larget c43b6be153 1
2026-03-21 21:01:10 +08:00

915 lines
1.2 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function NE(t,e){for(var n=0;n<e.length;n++){const s=e[n];if(typeof s!="string"&&!Array.isArray(s)){for(const a in s)if(a!=="default"&&!(a in t)){const i=Object.getOwnPropertyDescriptor(s,a);i&&Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:()=>s[a]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();function sj(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Jm={exports:{}},td={},Ym={exports:{}},bt={};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Vv;function wE(){if(Vv)return bt;Vv=1;var t=Symbol.for("react.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),o=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),m=Symbol.iterator;function g(z){return z===null||typeof z!="object"?null:(z=m&&z[m]||z["@@iterator"],typeof z=="function"?z:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},N=Object.assign,w={};function v(z,G,oe){this.props=z,this.context=G,this.refs=w,this.updater=oe||y}v.prototype.isReactComponent={},v.prototype.setState=function(z,G){if(typeof z!="object"&&typeof z!="function"&&z!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,z,G,"setState")},v.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function k(){}k.prototype=v.prototype;function C(z,G,oe){this.props=z,this.context=G,this.refs=w,this.updater=oe||y}var E=C.prototype=new k;E.constructor=C,N(E,v.prototype),E.isPureReactComponent=!0;var I=Array.isArray,L=Object.prototype.hasOwnProperty,W={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function P(z,G,oe){var ye,Ae={},ke=null,ee=null;if(G!=null)for(ye in G.ref!==void 0&&(ee=G.ref),G.key!==void 0&&(ke=""+G.key),G)L.call(G,ye)&&!D.hasOwnProperty(ye)&&(Ae[ye]=G[ye]);var Y=arguments.length-2;if(Y===1)Ae.children=oe;else if(1<Y){for(var he=Array(Y),te=0;te<Y;te++)he[te]=arguments[te+2];Ae.children=he}if(z&&z.defaultProps)for(ye in Y=z.defaultProps,Y)Ae[ye]===void 0&&(Ae[ye]=Y[ye]);return{$$typeof:t,type:z,key:ke,ref:ee,props:Ae,_owner:W.current}}function R(z,G){return{$$typeof:t,type:z.type,key:G,ref:z.ref,props:z.props,_owner:z._owner}}function K(z){return typeof z=="object"&&z!==null&&z.$$typeof===t}function re(z){var G={"=":"=0",":":"=2"};return"$"+z.replace(/[=:]/g,function(oe){return G[oe]})}var ue=/\/+/g;function xe(z,G){return typeof z=="object"&&z!==null&&z.key!=null?re(""+z.key):G.toString(36)}function H(z,G,oe,ye,Ae){var ke=typeof z;(ke==="undefined"||ke==="boolean")&&(z=null);var ee=!1;if(z===null)ee=!0;else switch(ke){case"string":case"number":ee=!0;break;case"object":switch(z.$$typeof){case t:case e:ee=!0}}if(ee)return ee=z,Ae=Ae(ee),z=ye===""?"."+xe(ee,0):ye,I(Ae)?(oe="",z!=null&&(oe=z.replace(ue,"$&/")+"/"),H(Ae,G,oe,"",function(te){return te})):Ae!=null&&(K(Ae)&&(Ae=R(Ae,oe+(!Ae.key||ee&&ee.key===Ae.key?"":(""+Ae.key).replace(ue,"$&/")+"/")+z)),G.push(Ae)),1;if(ee=0,ye=ye===""?".":ye+":",I(z))for(var Y=0;Y<z.length;Y++){ke=z[Y];var he=ye+xe(ke,Y);ee+=H(ke,G,oe,he,Ae)}else if(he=g(z),typeof he=="function")for(z=he.call(z),Y=0;!(ke=z.next()).done;)ke=ke.value,he=ye+xe(ke,Y++),ee+=H(ke,G,oe,he,Ae);else if(ke==="object")throw G=String(z),Error("Objects are not valid as a React child (found: "+(G==="[object Object]"?"object with keys {"+Object.keys(z).join(", ")+"}":G)+"). If you meant to render a collection of children, use an array instead.");return ee}function O(z,G,oe){if(z==null)return z;var ye=[],Ae=0;return H(z,ye,"","",function(ke){return G.call(oe,ke,Ae++)}),ye}function J(z){if(z._status===-1){var G=z._result;G=G(),G.then(function(oe){(z._status===0||z._status===-1)&&(z._status=1,z._result=oe)},function(oe){(z._status===0||z._status===-1)&&(z._status=2,z._result=oe)}),z._status===-1&&(z._status=0,z._result=G)}if(z._status===1)return z._result.default;throw z._result}var $={current:null},M={transition:null},q={ReactCurrentDispatcher:$,ReactCurrentBatchConfig:M,ReactCurrentOwner:W};function B(){throw Error("act(...) is not supported in production builds of React.")}return bt.Children={map:O,forEach:function(z,G,oe){O(z,function(){G.apply(this,arguments)},oe)},count:function(z){var G=0;return O(z,function(){G++}),G},toArray:function(z){return O(z,function(G){return G})||[]},only:function(z){if(!K(z))throw Error("React.Children.only expected to receive a single React element child.");return z}},bt.Component=v,bt.Fragment=n,bt.Profiler=a,bt.PureComponent=C,bt.StrictMode=s,bt.Suspense=u,bt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=q,bt.act=B,bt.cloneElement=function(z,G,oe){if(z==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+z+".");var ye=N({},z.props),Ae=z.key,ke=z.ref,ee=z._owner;if(G!=null){if(G.ref!==void 0&&(ke=G.ref,ee=W.current),G.key!==void 0&&(Ae=""+G.key),z.type&&z.type.defaultProps)var Y=z.type.defaultProps;for(he in G)L.call(G,he)&&!D.hasOwnProperty(he)&&(ye[he]=G[he]===void 0&&Y!==void 0?Y[he]:G[he])}var he=arguments.length-2;if(he===1)ye.children=oe;else if(1<he){Y=Array(he);for(var te=0;te<he;te++)Y[te]=arguments[te+2];ye.children=Y}return{$$typeof:t,type:z.type,key:Ae,ref:ke,props:ye,_owner:ee}},bt.createContext=function(z){return z={$$typeof:o,_currentValue:z,_currentValue2:z,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},z.Provider={$$typeof:i,_context:z},z.Consumer=z},bt.createElement=P,bt.createFactory=function(z){var G=P.bind(null,z);return G.type=z,G},bt.createRef=function(){return{current:null}},bt.forwardRef=function(z){return{$$typeof:c,render:z}},bt.isValidElement=K,bt.lazy=function(z){return{$$typeof:f,_payload:{_status:-1,_result:z},_init:J}},bt.memo=function(z,G){return{$$typeof:h,type:z,compare:G===void 0?null:G}},bt.startTransition=function(z){var G=M.transition;M.transition={};try{z()}finally{M.transition=G}},bt.unstable_act=B,bt.useCallback=function(z,G){return $.current.useCallback(z,G)},bt.useContext=function(z){return $.current.useContext(z)},bt.useDebugValue=function(){},bt.useDeferredValue=function(z){return $.current.useDeferredValue(z)},bt.useEffect=function(z,G){return $.current.useEffect(z,G)},bt.useId=function(){return $.current.useId()},bt.useImperativeHandle=function(z,G,oe){return $.current.useImperativeHandle(z,G,oe)},bt.useInsertionEffect=function(z,G){return $.current.useInsertionEffect(z,G)},bt.useLayoutEffect=function(z,G){return $.current.useLayoutEffect(z,G)},bt.useMemo=function(z,G){return $.current.useMemo(z,G)},bt.useReducer=function(z,G,oe){return $.current.useReducer(z,G,oe)},bt.useRef=function(z){return $.current.useRef(z)},bt.useState=function(z){return $.current.useState(z)},bt.useSyncExternalStore=function(z,G,oe){return $.current.useSyncExternalStore(z,G,oe)},bt.useTransition=function(){return $.current.useTransition()},bt.version="18.3.1",bt}var Hv;function Kd(){return Hv||(Hv=1,Ym.exports=wE()),Ym.exports}/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Wv;function jE(){if(Wv)return td;Wv=1;var t=Kd(),e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function o(c,u,h){var f,m={},g=null,y=null;h!==void 0&&(g=""+h),u.key!==void 0&&(g=""+u.key),u.ref!==void 0&&(y=u.ref);for(f in u)s.call(u,f)&&!i.hasOwnProperty(f)&&(m[f]=u[f]);if(c&&c.defaultProps)for(f in u=c.defaultProps,u)m[f]===void 0&&(m[f]=u[f]);return{$$typeof:e,type:c,key:g,ref:y,props:m,_owner:a.current}}return td.Fragment=n,td.jsx=o,td.jsxs=o,td}var Uv;function kE(){return Uv||(Uv=1,Jm.exports=jE()),Jm.exports}var r=kE(),b=Kd();const Rs=sj(b),Uf=NE({__proto__:null,default:Rs},[b]);var rh={},Qm={exports:{}},Hs={},Xm={exports:{}},Zm={};/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Kv;function SE(){return Kv||(Kv=1,(function(t){function e(M,q){var B=M.length;M.push(q);e:for(;0<B;){var z=B-1>>>1,G=M[z];if(0<a(G,q))M[z]=q,M[B]=G,B=z;else break e}}function n(M){return M.length===0?null:M[0]}function s(M){if(M.length===0)return null;var q=M[0],B=M.pop();if(B!==q){M[0]=B;e:for(var z=0,G=M.length,oe=G>>>1;z<oe;){var ye=2*(z+1)-1,Ae=M[ye],ke=ye+1,ee=M[ke];if(0>a(Ae,B))ke<G&&0>a(ee,Ae)?(M[z]=ee,M[ke]=B,z=ke):(M[z]=Ae,M[ye]=B,z=ye);else if(ke<G&&0>a(ee,B))M[z]=ee,M[ke]=B,z=ke;else break e}}return q}function a(M,q){var B=M.sortIndex-q.sortIndex;return B!==0?B:M.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;t.unstable_now=function(){return i.now()}}else{var o=Date,c=o.now();t.unstable_now=function(){return o.now()-c}}var u=[],h=[],f=1,m=null,g=3,y=!1,N=!1,w=!1,v=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function E(M){for(var q=n(h);q!==null;){if(q.callback===null)s(h);else if(q.startTime<=M)s(h),q.sortIndex=q.expirationTime,e(u,q);else break;q=n(h)}}function I(M){if(w=!1,E(M),!N)if(n(u)!==null)N=!0,J(L);else{var q=n(h);q!==null&&$(I,q.startTime-M)}}function L(M,q){N=!1,w&&(w=!1,k(P),P=-1),y=!0;var B=g;try{for(E(q),m=n(u);m!==null&&(!(m.expirationTime>q)||M&&!re());){var z=m.callback;if(typeof z=="function"){m.callback=null,g=m.priorityLevel;var G=z(m.expirationTime<=q);q=t.unstable_now(),typeof G=="function"?m.callback=G:m===n(u)&&s(u),E(q)}else s(u);m=n(u)}if(m!==null)var oe=!0;else{var ye=n(h);ye!==null&&$(I,ye.startTime-q),oe=!1}return oe}finally{m=null,g=B,y=!1}}var W=!1,D=null,P=-1,R=5,K=-1;function re(){return!(t.unstable_now()-K<R)}function ue(){if(D!==null){var M=t.unstable_now();K=M;var q=!0;try{q=D(!0,M)}finally{q?xe():(W=!1,D=null)}}else W=!1}var xe;if(typeof C=="function")xe=function(){C(ue)};else if(typeof MessageChannel<"u"){var H=new MessageChannel,O=H.port2;H.port1.onmessage=ue,xe=function(){O.postMessage(null)}}else xe=function(){v(ue,0)};function J(M){D=M,W||(W=!0,xe())}function $(M,q){P=v(function(){M(t.unstable_now())},q)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(M){M.callback=null},t.unstable_continueExecution=function(){N||y||(N=!0,J(L))},t.unstable_forceFrameRate=function(M){0>M||125<M?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):R=0<M?Math.floor(1e3/M):5},t.unstable_getCurrentPriorityLevel=function(){return g},t.unstable_getFirstCallbackNode=function(){return n(u)},t.unstable_next=function(M){switch(g){case 1:case 2:case 3:var q=3;break;default:q=g}var B=g;g=q;try{return M()}finally{g=B}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(M,q){switch(M){case 1:case 2:case 3:case 4:case 5:break;default:M=3}var B=g;g=M;try{return q()}finally{g=B}},t.unstable_scheduleCallback=function(M,q,B){var z=t.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?z+B:z):B=z,M){case 1:var G=-1;break;case 2:G=250;break;case 5:G=1073741823;break;case 4:G=1e4;break;default:G=5e3}return G=B+G,M={id:f++,callback:q,priorityLevel:M,startTime:B,expirationTime:G,sortIndex:-1},B>z?(M.sortIndex=B,e(h,M),n(u)===null&&M===n(h)&&(w?(k(P),P=-1):w=!0,$(I,B-z))):(M.sortIndex=G,e(u,M),N||y||(N=!0,J(L))),M},t.unstable_shouldYield=re,t.unstable_wrapCallback=function(M){var q=g;return function(){var B=g;g=q;try{return M.apply(this,arguments)}finally{g=B}}}})(Zm)),Zm}var qv;function CE(){return qv||(qv=1,Xm.exports=SE()),Xm.exports}/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Gv;function EE(){if(Gv)return Hs;Gv=1;var t=Kd(),e=CE();function n(l){for(var d="https://reactjs.org/docs/error-decoder.html?invariant="+l,p=1;p<arguments.length;p++)d+="&args[]="+encodeURIComponent(arguments[p]);return"Minified React error #"+l+"; visit "+d+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var s=new Set,a={};function i(l,d){o(l,d),o(l+"Capture",d)}function o(l,d){for(a[l]=d,l=0;l<d.length;l++)s.add(d[l])}var c=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),u=Object.prototype.hasOwnProperty,h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function g(l){return u.call(m,l)?!0:u.call(f,l)?!1:h.test(l)?m[l]=!0:(f[l]=!0,!1)}function y(l,d,p,x){if(p!==null&&p.type===0)return!1;switch(typeof d){case"function":case"symbol":return!0;case"boolean":return x?!1:p!==null?!p.acceptsBooleans:(l=l.toLowerCase().slice(0,5),l!=="data-"&&l!=="aria-");default:return!1}}function N(l,d,p,x){if(d===null||typeof d>"u"||y(l,d,p,x))return!0;if(x)return!1;if(p!==null)switch(p.type){case 3:return!d;case 4:return d===!1;case 5:return isNaN(d);case 6:return isNaN(d)||1>d}return!1}function w(l,d,p,x,j,S,A){this.acceptsBooleans=d===2||d===3||d===4,this.attributeName=x,this.attributeNamespace=j,this.mustUseProperty=p,this.propertyName=l,this.type=d,this.sanitizeURL=S,this.removeEmptyString=A}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(l){v[l]=new w(l,0,!1,l,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(l){var d=l[0];v[d]=new w(d,1,!1,l[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(l){v[l]=new w(l,2,!1,l.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(l){v[l]=new w(l,2,!1,l,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(l){v[l]=new w(l,3,!1,l.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(l){v[l]=new w(l,3,!0,l,null,!1,!1)}),["capture","download"].forEach(function(l){v[l]=new w(l,4,!1,l,null,!1,!1)}),["cols","rows","size","span"].forEach(function(l){v[l]=new w(l,6,!1,l,null,!1,!1)}),["rowSpan","start"].forEach(function(l){v[l]=new w(l,5,!1,l.toLowerCase(),null,!1,!1)});var k=/[\-:]([a-z])/g;function C(l){return l[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(l){var d=l.replace(k,C);v[d]=new w(d,1,!1,l,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(l){var d=l.replace(k,C);v[d]=new w(d,1,!1,l,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(l){var d=l.replace(k,C);v[d]=new w(d,1,!1,l,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(l){v[l]=new w(l,1,!1,l.toLowerCase(),null,!1,!1)}),v.xlinkHref=new w("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(l){v[l]=new w(l,1,!1,l.toLowerCase(),null,!0,!0)});function E(l,d,p,x){var j=v.hasOwnProperty(d)?v[d]:null;(j!==null?j.type!==0:x||!(2<d.length)||d[0]!=="o"&&d[0]!=="O"||d[1]!=="n"&&d[1]!=="N")&&(N(d,p,j,x)&&(p=null),x||j===null?g(d)&&(p===null?l.removeAttribute(d):l.setAttribute(d,""+p)):j.mustUseProperty?l[j.propertyName]=p===null?j.type===3?!1:"":p:(d=j.attributeName,x=j.attributeNamespace,p===null?l.removeAttribute(d):(j=j.type,p=j===3||j===4&&p===!0?"":""+p,x?l.setAttributeNS(x,d,p):l.setAttribute(d,p))))}var I=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,L=Symbol.for("react.element"),W=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),P=Symbol.for("react.strict_mode"),R=Symbol.for("react.profiler"),K=Symbol.for("react.provider"),re=Symbol.for("react.context"),ue=Symbol.for("react.forward_ref"),xe=Symbol.for("react.suspense"),H=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),$=Symbol.for("react.offscreen"),M=Symbol.iterator;function q(l){return l===null||typeof l!="object"?null:(l=M&&l[M]||l["@@iterator"],typeof l=="function"?l:null)}var B=Object.assign,z;function G(l){if(z===void 0)try{throw Error()}catch(p){var d=p.stack.trim().match(/\n( *(at )?)/);z=d&&d[1]||""}return`
`+z+l}var oe=!1;function ye(l,d){if(!l||oe)return"";oe=!0;var p=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(d)if(d=function(){throw Error()},Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(ge){var x=ge}Reflect.construct(l,[],d)}else{try{d.call()}catch(ge){x=ge}l.call(d.prototype)}else{try{throw Error()}catch(ge){x=ge}l()}}catch(ge){if(ge&&x&&typeof ge.stack=="string"){for(var j=ge.stack.split(`
`),S=x.stack.split(`
`),A=j.length-1,V=S.length-1;1<=A&&0<=V&&j[A]!==S[V];)V--;for(;1<=A&&0<=V;A--,V--)if(j[A]!==S[V]){if(A!==1||V!==1)do if(A--,V--,0>V||j[A]!==S[V]){var Q=`
`+j[A].replace(" at new "," at ");return l.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",l.displayName)),Q}while(1<=A&&0<=V);break}}}finally{oe=!1,Error.prepareStackTrace=p}return(l=l?l.displayName||l.name:"")?G(l):""}function Ae(l){switch(l.tag){case 5:return G(l.type);case 16:return G("Lazy");case 13:return G("Suspense");case 19:return G("SuspenseList");case 0:case 2:case 15:return l=ye(l.type,!1),l;case 11:return l=ye(l.type.render,!1),l;case 1:return l=ye(l.type,!0),l;default:return""}}function ke(l){if(l==null)return null;if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case D:return"Fragment";case W:return"Portal";case R:return"Profiler";case P:return"StrictMode";case xe:return"Suspense";case H:return"SuspenseList"}if(typeof l=="object")switch(l.$$typeof){case re:return(l.displayName||"Context")+".Consumer";case K:return(l._context.displayName||"Context")+".Provider";case ue:var d=l.render;return l=l.displayName,l||(l=d.displayName||d.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case O:return d=l.displayName||null,d!==null?d:ke(l.type)||"Memo";case J:d=l._payload,l=l._init;try{return ke(l(d))}catch{}}return null}function ee(l){var d=l.type;switch(l.tag){case 24:return"Cache";case 9:return(d.displayName||"Context")+".Consumer";case 10:return(d._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return l=d.render,l=l.displayName||l.name||"",d.displayName||(l!==""?"ForwardRef("+l+")":"ForwardRef");case 7:return"Fragment";case 5:return d;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ke(d);case 8:return d===P?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d}return null}function Y(l){switch(typeof l){case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function he(l){var d=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(d==="checkbox"||d==="radio")}function te(l){var d=he(l)?"checked":"value",p=Object.getOwnPropertyDescriptor(l.constructor.prototype,d),x=""+l[d];if(!l.hasOwnProperty(d)&&typeof p<"u"&&typeof p.get=="function"&&typeof p.set=="function"){var j=p.get,S=p.set;return Object.defineProperty(l,d,{configurable:!0,get:function(){return j.call(this)},set:function(A){x=""+A,S.call(this,A)}}),Object.defineProperty(l,d,{enumerable:p.enumerable}),{getValue:function(){return x},setValue:function(A){x=""+A},stopTracking:function(){l._valueTracker=null,delete l[d]}}}}function ce(l){l._valueTracker||(l._valueTracker=te(l))}function pe(l){if(!l)return!1;var d=l._valueTracker;if(!d)return!0;var p=d.getValue(),x="";return l&&(x=he(l)?l.checked?"true":"false":l.value),l=x,l!==p?(d.setValue(l),!0):!1}function Fe(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}function rt(l,d){var p=d.checked;return B({},d,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:p??l._wrapperState.initialChecked})}function vt(l,d){var p=d.defaultValue==null?"":d.defaultValue,x=d.checked!=null?d.checked:d.defaultChecked;p=Y(d.value!=null?d.value:p),l._wrapperState={initialChecked:x,initialValue:p,controlled:d.type==="checkbox"||d.type==="radio"?d.checked!=null:d.value!=null}}function mt(l,d){d=d.checked,d!=null&&E(l,"checked",d,!1)}function Ut(l,d){mt(l,d);var p=Y(d.value),x=d.type;if(p!=null)x==="number"?(p===0&&l.value===""||l.value!=p)&&(l.value=""+p):l.value!==""+p&&(l.value=""+p);else if(x==="submit"||x==="reset"){l.removeAttribute("value");return}d.hasOwnProperty("value")?sn(l,d.type,p):d.hasOwnProperty("defaultValue")&&sn(l,d.type,Y(d.defaultValue)),d.checked==null&&d.defaultChecked!=null&&(l.defaultChecked=!!d.defaultChecked)}function In(l,d,p){if(d.hasOwnProperty("value")||d.hasOwnProperty("defaultValue")){var x=d.type;if(!(x!=="submit"&&x!=="reset"||d.value!==void 0&&d.value!==null))return;d=""+l._wrapperState.initialValue,p||d===l.value||(l.value=d),l.defaultValue=d}p=l.name,p!==""&&(l.name=""),l.defaultChecked=!!l._wrapperState.initialChecked,p!==""&&(l.name=p)}function sn(l,d,p){(d!=="number"||Fe(l.ownerDocument)!==l)&&(p==null?l.defaultValue=""+l._wrapperState.initialValue:l.defaultValue!==""+p&&(l.defaultValue=""+p))}var Tt=Array.isArray;function Mt(l,d,p,x){if(l=l.options,d){d={};for(var j=0;j<p.length;j++)d["$"+p[j]]=!0;for(p=0;p<l.length;p++)j=d.hasOwnProperty("$"+l[p].value),l[p].selected!==j&&(l[p].selected=j),j&&x&&(l[p].defaultSelected=!0)}else{for(p=""+Y(p),d=null,j=0;j<l.length;j++){if(l[j].value===p){l[j].selected=!0,x&&(l[j].defaultSelected=!0);return}d!==null||l[j].disabled||(d=l[j])}d!==null&&(d.selected=!0)}}function Kt(l,d){if(d.dangerouslySetInnerHTML!=null)throw Error(n(91));return B({},d,{value:void 0,defaultValue:void 0,children:""+l._wrapperState.initialValue})}function Ns(l,d){var p=d.value;if(p==null){if(p=d.children,d=d.defaultValue,p!=null){if(d!=null)throw Error(n(92));if(Tt(p)){if(1<p.length)throw Error(n(93));p=p[0]}d=p}d==null&&(d=""),p=d}l._wrapperState={initialValue:Y(p)}}function as(l,d){var p=Y(d.value),x=Y(d.defaultValue);p!=null&&(p=""+p,p!==l.value&&(l.value=p),d.defaultValue==null&&l.defaultValue!==p&&(l.defaultValue=p)),x!=null&&(l.defaultValue=""+x)}function is(l){var d=l.textContent;d===l._wrapperState.initialValue&&d!==""&&d!==null&&(l.value=d)}function Ls(l){switch(l){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ws(l,d){return l==null||l==="http://www.w3.org/1999/xhtml"?Ls(d):l==="http://www.w3.org/2000/svg"&&d==="foreignObject"?"http://www.w3.org/1999/xhtml":l}var rn,qs=(function(l){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(d,p,x,j){MSApp.execUnsafeLocalFunction(function(){return l(d,p,x,j)})}:l})(function(l,d){if(l.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in l)l.innerHTML=d;else{for(rn=rn||document.createElement("div"),rn.innerHTML="<svg>"+d.valueOf().toString()+"</svg>",d=rn.firstChild;l.firstChild;)l.removeChild(l.firstChild);for(;d.firstChild;)l.appendChild(d.firstChild)}});function un(l,d){if(d){var p=l.firstChild;if(p&&p===l.lastChild&&p.nodeType===3){p.nodeValue=d;return}}l.textContent=d}var Un={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},js=["Webkit","ms","Moz","O"];Object.keys(Un).forEach(function(l){js.forEach(function(d){d=d+l.charAt(0).toUpperCase()+l.substring(1),Un[d]=Un[l]})});function Gs(l,d,p){return d==null||typeof d=="boolean"||d===""?"":p||typeof d!="number"||d===0||Un.hasOwnProperty(l)&&Un[l]?(""+d).trim():d+"px"}function hn(l,d){l=l.style;for(var p in d)if(d.hasOwnProperty(p)){var x=p.indexOf("--")===0,j=Gs(p,d[p],x);p==="float"&&(p="cssFloat"),x?l.setProperty(p,j):l[p]=j}}var ks=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function U(l,d){if(d){if(ks[l]&&(d.children!=null||d.dangerouslySetInnerHTML!=null))throw Error(n(137,l));if(d.dangerouslySetInnerHTML!=null){if(d.children!=null)throw Error(n(60));if(typeof d.dangerouslySetInnerHTML!="object"||!("__html"in d.dangerouslySetInnerHTML))throw Error(n(61))}if(d.style!=null&&typeof d.style!="object")throw Error(n(62))}}function _e(l,d){if(l.indexOf("-")===-1)return typeof d.is=="string";switch(l){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var it=null;function $t(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var me=null,fe=null,at=null;function yt(l){if(l=$c(l)){if(typeof me!="function")throw Error(n(280));var d=l.stateNode;d&&(d=bu(d),me(l.stateNode,l.type,d))}}function fn(l){fe?at?at.push(l):at=[l]:fe=l}function Kn(){if(fe){var l=fe,d=at;if(at=fe=null,yt(l),d)for(l=0;l<d.length;l++)yt(d[l])}}function Pn(l,d){return l(d)}function qn(){}var Ss=!1;function Ur(l,d,p){if(Ss)return l(d,p);Ss=!0;try{return Pn(l,d,p)}finally{Ss=!1,(fe!==null||at!==null)&&(qn(),Kn())}}function xa(l,d){var p=l.stateNode;if(p===null)return null;var x=bu(p);if(x===null)return null;p=x[d];e:switch(d){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(x=!x.disabled)||(l=l.type,x=!(l==="button"||l==="input"||l==="select"||l==="textarea")),l=!x;break e;default:l=!1}if(l)return null;if(p&&typeof p!="function")throw Error(n(231,d,typeof p));return p}var Xa=!1;if(c)try{var Nr={};Object.defineProperty(Nr,"passive",{get:function(){Xa=!0}}),window.addEventListener("test",Nr,Nr),window.removeEventListener("test",Nr,Nr)}catch{Xa=!1}function no(l,d,p,x,j,S,A,V,Q){var ge=Array.prototype.slice.call(arguments,3);try{d.apply(p,ge)}catch(Se){this.onError(Se)}}var wr=!1,ya=null,Js=!1,so=null,Nc={onError:function(l){wr=!0,ya=l}};function wc(l,d,p,x,j,S,A,V,Q){wr=!1,ya=null,no.apply(Nc,arguments)}function Ys(l,d,p,x,j,S,A,V,Q){if(wc.apply(this,arguments),wr){if(wr){var ge=ya;wr=!1,ya=null}else throw Error(n(198));Js||(Js=!0,so=ge)}}function jr(l){var d=l,p=l;if(l.alternate)for(;d.return;)d=d.return;else{l=d;do d=l,(d.flags&4098)!==0&&(p=d.return),l=d.return;while(l)}return d.tag===3?p:null}function ba(l){if(l.tag===13){var d=l.memoizedState;if(d===null&&(l=l.alternate,l!==null&&(d=l.memoizedState)),d!==null)return d.dehydrated}return null}function _s(l){if(jr(l)!==l)throw Error(n(188))}function va(l){var d=l.alternate;if(!d){if(d=jr(l),d===null)throw Error(n(188));return d!==l?null:l}for(var p=l,x=d;;){var j=p.return;if(j===null)break;var S=j.alternate;if(S===null){if(x=j.return,x!==null){p=x;continue}break}if(j.child===S.child){for(S=j.child;S;){if(S===p)return _s(j),l;if(S===x)return _s(j),d;S=S.sibling}throw Error(n(188))}if(p.return!==x.return)p=j,x=S;else{for(var A=!1,V=j.child;V;){if(V===p){A=!0,p=j,x=S;break}if(V===x){A=!0,x=j,p=S;break}V=V.sibling}if(!A){for(V=S.child;V;){if(V===p){A=!0,p=S,x=j;break}if(V===x){A=!0,x=S,p=j;break}V=V.sibling}if(!A)throw Error(n(189))}}if(p.alternate!==x)throw Error(n(190))}if(p.tag!==3)throw Error(n(188));return p.stateNode.current===p?l:d}function Kr(l){return l=va(l),l!==null?Ct(l):null}function Ct(l){if(l.tag===5||l.tag===6)return l;for(l=l.child;l!==null;){var d=Ct(l);if(d!==null)return d;l=l.sibling}return null}var ls=e.unstable_scheduleCallback,Za=e.unstable_cancelCallback,il=e.unstable_shouldYield,jc=e.unstable_requestPaint,Bt=e.unstable_now,ol=e.unstable_getCurrentPriorityLevel,Qs=e.unstable_ImmediatePriority,Cs=e.unstable_UserBlockingPriority,Xs=e.unstable_NormalPriority,qr=e.unstable_LowPriority,Gr=e.unstable_IdlePriority,kr=null,cs=null;function kc(l){if(cs&&typeof cs.onCommitFiberRoot=="function")try{cs.onCommitFiberRoot(kr,l,void 0,(l.current.flags&128)===128)}catch{}}var Es=Math.clz32?Math.clz32:cl,Sc=Math.log,ll=Math.LN2;function cl(l){return l>>>=0,l===0?32:31-(Sc(l)/ll|0)|0}var ei=64,Sr=4194304;function Jr(l){switch(l&-l){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: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 l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function Yr(l,d){var p=l.pendingLanes;if(p===0)return 0;var x=0,j=l.suspendedLanes,S=l.pingedLanes,A=p&268435455;if(A!==0){var V=A&~j;V!==0?x=Jr(V):(S&=A,S!==0&&(x=Jr(S)))}else A=p&~j,A!==0?x=Jr(A):S!==0&&(x=Jr(S));if(x===0)return 0;if(d!==0&&d!==x&&(d&j)===0&&(j=x&-x,S=d&-d,j>=S||j===16&&(S&4194240)!==0))return d;if((x&4)!==0&&(x|=p&16),d=l.entangledLanes,d!==0)for(l=l.entanglements,d&=x;0<d;)p=31-Es(d),j=1<<p,x|=l[p],d&=~j;return x}function dl(l,d){switch(l){case 1:case 2:case 4:return d+250;case 8:case 16:case 32:case 64: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 d+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Na(l,d){for(var p=l.suspendedLanes,x=l.pingedLanes,j=l.expirationTimes,S=l.pendingLanes;0<S;){var A=31-Es(S),V=1<<A,Q=j[A];Q===-1?((V&p)===0||(V&x)!==0)&&(j[A]=dl(V,d)):Q<=d&&(l.expiredLanes|=V),S&=~V}}function ti(l){return l=l.pendingLanes&-1073741825,l!==0?l:l&1073741824?1073741824:0}function F(){var l=ei;return ei<<=1,(ei&4194240)===0&&(ei=64),l}function $e(l){for(var d=[],p=0;31>p;p++)d.push(l);return d}function Ke(l,d,p){l.pendingLanes|=d,d!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,d=31-Es(d),l[d]=p}function dt(l,d){var p=l.pendingLanes&~d;l.pendingLanes=d,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=d,l.mutableReadLanes&=d,l.entangledLanes&=d,d=l.entanglements;var x=l.eventTimes;for(l=l.expirationTimes;0<p;){var j=31-Es(p),S=1<<j;d[j]=0,x[j]=-1,l[j]=-1,p&=~S}}function pn(l,d){var p=l.entangledLanes|=d;for(l=l.entanglements;p;){var x=31-Es(p),j=1<<x;j&d|l[x]&d&&(l[x]|=d),p&=~j}}var ht=0;function Nn(l){return l&=-l,1<l?4<l?(l&268435455)!==0?16:536870912:4:1}var Vt,Gn,Cr,Qr,Er,ro=!1,wa=[],Ts=null,wn=null,ds=null,ao=new Map,io=new Map,Xr=[],nu="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function su(l,d){switch(l){case"focusin":case"focusout":Ts=null;break;case"dragenter":case"dragleave":wn=null;break;case"mouseover":case"mouseout":ds=null;break;case"pointerover":case"pointerout":ao.delete(d.pointerId);break;case"gotpointercapture":case"lostpointercapture":io.delete(d.pointerId)}}function ni(l,d,p,x,j,S){return l===null||l.nativeEvent!==S?(l={blockedOn:d,domEventName:p,eventSystemFlags:x,nativeEvent:S,targetContainers:[j]},d!==null&&(d=$c(d),d!==null&&Gn(d)),l):(l.eventSystemFlags|=x,d=l.targetContainers,j!==null&&d.indexOf(j)===-1&&d.push(j),l)}function ja(l,d,p,x,j){switch(d){case"focusin":return Ts=ni(Ts,l,d,p,x,j),!0;case"dragenter":return wn=ni(wn,l,d,p,x,j),!0;case"mouseover":return ds=ni(ds,l,d,p,x,j),!0;case"pointerover":var S=j.pointerId;return ao.set(S,ni(ao.get(S)||null,l,d,p,x,j)),!0;case"gotpointercapture":return S=j.pointerId,io.set(S,ni(io.get(S)||null,l,d,p,x,j)),!0}return!1}function Zr(l){var d=go(l.target);if(d!==null){var p=jr(d);if(p!==null){if(d=p.tag,d===13){if(d=ba(p),d!==null){l.blockedOn=d,Er(l.priority,function(){Cr(p)});return}}else if(d===3&&p.stateNode.current.memoizedState.isDehydrated){l.blockedOn=p.tag===3?p.stateNode.containerInfo:null;return}}}l.blockedOn=null}function oo(l){if(l.blockedOn!==null)return!1;for(var d=l.targetContainers;0<d.length;){var p=Cc(l.domEventName,l.eventSystemFlags,d[0],l.nativeEvent);if(p===null){p=l.nativeEvent;var x=new p.constructor(p.type,p);it=x,p.target.dispatchEvent(x),it=null}else return d=$c(p),d!==null&&Gn(d),l.blockedOn=p,!1;d.shift()}return!0}function ul(l,d,p){oo(l)&&p.delete(d)}function Sp(){ro=!1,Ts!==null&&oo(Ts)&&(Ts=null),wn!==null&&oo(wn)&&(wn=null),ds!==null&&oo(ds)&&(ds=null),ao.forEach(ul),io.forEach(ul)}function ka(l,d){l.blockedOn===d&&(l.blockedOn=null,ro||(ro=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,Sp)))}function Tr(l){function d(j){return ka(j,l)}if(0<wa.length){ka(wa[0],l);for(var p=1;p<wa.length;p++){var x=wa[p];x.blockedOn===l&&(x.blockedOn=null)}}for(Ts!==null&&ka(Ts,l),wn!==null&&ka(wn,l),ds!==null&&ka(ds,l),ao.forEach(d),io.forEach(d),p=0;p<Xr.length;p++)x=Xr[p],x.blockedOn===l&&(x.blockedOn=null);for(;0<Xr.length&&(p=Xr[0],p.blockedOn===null);)Zr(p),p.blockedOn===null&&Xr.shift()}var ea=I.ReactCurrentBatchConfig,hl=!0;function lo(l,d,p,x){var j=ht,S=ea.transition;ea.transition=null;try{ht=1,fl(l,d,p,x)}finally{ht=j,ea.transition=S}}function co(l,d,p,x){var j=ht,S=ea.transition;ea.transition=null;try{ht=4,fl(l,d,p,x)}finally{ht=j,ea.transition=S}}function fl(l,d,p,x){if(hl){var j=Cc(l,d,p,x);if(j===null)Fp(l,d,x,Mr,p),su(l,x);else if(ja(j,l,d,p,x))x.stopPropagation();else if(su(l,x),d&4&&-1<nu.indexOf(l)){for(;j!==null;){var S=$c(j);if(S!==null&&Vt(S),S=Cc(l,d,p,x),S===null&&Fp(l,d,x,Mr,p),S===j)break;j=S}j!==null&&x.stopPropagation()}else Fp(l,d,x,null,p)}}var Mr=null;function Cc(l,d,p,x){if(Mr=null,l=$t(x),l=go(l),l!==null)if(d=jr(l),d===null)l=null;else if(p=d.tag,p===13){if(l=ba(d),l!==null)return l;l=null}else if(p===3){if(d.stateNode.current.memoizedState.isDehydrated)return d.tag===3?d.stateNode.containerInfo:null;l=null}else d!==l&&(l=null);return Mr=l,null}function Ec(l){switch(l){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(ol()){case Qs:return 1;case Cs:return 4;case Xs:case qr:return 16;case Gr:return 536870912;default:return 16}default:return 16}}var Ar=null,pl=null,uo=null;function ru(){if(uo)return uo;var l,d=pl,p=d.length,x,j="value"in Ar?Ar.value:Ar.textContent,S=j.length;for(l=0;l<p&&d[l]===j[l];l++);var A=p-l;for(x=1;x<=A&&d[p-x]===j[S-x];x++);return uo=j.slice(l,1<x?1-x:void 0)}function ho(l){var d=l.keyCode;return"charCode"in l?(l=l.charCode,l===0&&d===13&&(l=13)):l=d,l===10&&(l=13),32<=l||l===13?l:0}function si(){return!0}function au(){return!1}function Ms(l){function d(p,x,j,S,A){this._reactName=p,this._targetInst=j,this.type=x,this.nativeEvent=S,this.target=A,this.currentTarget=null;for(var V in l)l.hasOwnProperty(V)&&(p=l[V],this[V]=p?p(S):S[V]);return this.isDefaultPrevented=(S.defaultPrevented!=null?S.defaultPrevented:S.returnValue===!1)?si:au,this.isPropagationStopped=au,this}return B(d.prototype,{preventDefault:function(){this.defaultPrevented=!0;var p=this.nativeEvent;p&&(p.preventDefault?p.preventDefault():typeof p.returnValue!="unknown"&&(p.returnValue=!1),this.isDefaultPrevented=si)},stopPropagation:function(){var p=this.nativeEvent;p&&(p.stopPropagation?p.stopPropagation():typeof p.cancelBubble!="unknown"&&(p.cancelBubble=!0),this.isPropagationStopped=si)},persist:function(){},isPersistent:si}),d}var ri={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(l){return l.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Tc=Ms(ri),fo=B({},ri,{view:0,detail:0}),Cp=Ms(fo),Mc,Ac,po,ml=B({},fo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:lt,button:0,buttons:0,relatedTarget:function(l){return l.relatedTarget===void 0?l.fromElement===l.srcElement?l.toElement:l.fromElement:l.relatedTarget},movementX:function(l){return"movementX"in l?l.movementX:(l!==po&&(po&&l.type==="mousemove"?(Mc=l.screenX-po.screenX,Ac=l.screenY-po.screenY):Ac=Mc=0,po=l),Mc)},movementY:function(l){return"movementY"in l?l.movementY:Ac}}),iu=Ms(ml),Ep=B({},ml,{dataTransfer:0}),Tp=Ms(Ep),ou=B({},fo,{relatedTarget:0}),mo=Ms(ou),lu=B({},ri,{animationName:0,elapsedTime:0,pseudoElement:0}),cu=Ms(lu),du=B({},ri,{clipboardData:function(l){return"clipboardData"in l?l.clipboardData:window.clipboardData}}),T=Ms(du),_=B({},ri,{data:0}),ie=Ms(_),ve={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Re={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},De={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function tt(l){var d=this.nativeEvent;return d.getModifierState?d.getModifierState(l):(l=De[l])?!!d[l]:!1}function lt(){return tt}var wt=B({},fo,{key:function(l){if(l.key){var d=ve[l.key]||l.key;if(d!=="Unidentified")return d}return l.type==="keypress"?(l=ho(l),l===13?"Enter":String.fromCharCode(l)):l.type==="keydown"||l.type==="keyup"?Re[l.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:lt,charCode:function(l){return l.type==="keypress"?ho(l):0},keyCode:function(l){return l.type==="keydown"||l.type==="keyup"?l.keyCode:0},which:function(l){return l.type==="keypress"?ho(l):l.type==="keydown"||l.type==="keyup"?l.keyCode:0}}),Nt=Ms(wt),As=B({},ml,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Rn=Ms(As),uu=B({},fo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:lt}),u3=Ms(uu),h3=B({},ri,{propertyName:0,elapsedTime:0,pseudoElement:0}),f3=Ms(h3),p3=B({},ml,{deltaX:function(l){return"deltaX"in l?l.deltaX:"wheelDeltaX"in l?-l.wheelDeltaX:0},deltaY:function(l){return"deltaY"in l?l.deltaY:"wheelDeltaY"in l?-l.wheelDeltaY:"wheelDelta"in l?-l.wheelDelta:0},deltaZ:0,deltaMode:0}),m3=Ms(p3),g3=[9,13,27,32],Mp=c&&"CompositionEvent"in window,Ic=null;c&&"documentMode"in document&&(Ic=document.documentMode);var x3=c&&"TextEvent"in window&&!Ic,Oy=c&&(!Mp||Ic&&8<Ic&&11>=Ic),Dy=" ",Ly=!1;function _y(l,d){switch(l){case"keyup":return g3.indexOf(d.keyCode)!==-1;case"keydown":return d.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zy(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var gl=!1;function y3(l,d){switch(l){case"compositionend":return zy(d);case"keypress":return d.which!==32?null:(Ly=!0,Dy);case"textInput":return l=d.data,l===Dy&&Ly?null:l;default:return null}}function b3(l,d){if(gl)return l==="compositionend"||!Mp&&_y(l,d)?(l=ru(),uo=pl=Ar=null,gl=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(d.ctrlKey||d.altKey||d.metaKey)||d.ctrlKey&&d.altKey){if(d.char&&1<d.char.length)return d.char;if(d.which)return String.fromCharCode(d.which)}return null;case"compositionend":return Oy&&d.locale!=="ko"?null:d.data;default:return null}}var v3={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fy(l){var d=l&&l.nodeName&&l.nodeName.toLowerCase();return d==="input"?!!v3[l.type]:d==="textarea"}function $y(l,d,p,x){fn(x),d=gu(d,"onChange"),0<d.length&&(p=new Tc("onChange","change",null,p,x),l.push({event:p,listeners:d}))}var Pc=null,Rc=null;function N3(l){rb(l,0)}function hu(l){var d=Nl(l);if(pe(d))return l}function w3(l,d){if(l==="change")return d}var By=!1;if(c){var Ap;if(c){var Ip="oninput"in document;if(!Ip){var Vy=document.createElement("div");Vy.setAttribute("oninput","return;"),Ip=typeof Vy.oninput=="function"}Ap=Ip}else Ap=!1;By=Ap&&(!document.documentMode||9<document.documentMode)}function Hy(){Pc&&(Pc.detachEvent("onpropertychange",Wy),Rc=Pc=null)}function Wy(l){if(l.propertyName==="value"&&hu(Rc)){var d=[];$y(d,Rc,l,$t(l)),Ur(N3,d)}}function j3(l,d,p){l==="focusin"?(Hy(),Pc=d,Rc=p,Pc.attachEvent("onpropertychange",Wy)):l==="focusout"&&Hy()}function k3(l){if(l==="selectionchange"||l==="keyup"||l==="keydown")return hu(Rc)}function S3(l,d){if(l==="click")return hu(d)}function C3(l,d){if(l==="input"||l==="change")return hu(d)}function E3(l,d){return l===d&&(l!==0||1/l===1/d)||l!==l&&d!==d}var Ir=typeof Object.is=="function"?Object.is:E3;function Oc(l,d){if(Ir(l,d))return!0;if(typeof l!="object"||l===null||typeof d!="object"||d===null)return!1;var p=Object.keys(l),x=Object.keys(d);if(p.length!==x.length)return!1;for(x=0;x<p.length;x++){var j=p[x];if(!u.call(d,j)||!Ir(l[j],d[j]))return!1}return!0}function Uy(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function Ky(l,d){var p=Uy(l);l=0;for(var x;p;){if(p.nodeType===3){if(x=l+p.textContent.length,l<=d&&x>=d)return{node:p,offset:d-l};l=x}e:{for(;p;){if(p.nextSibling){p=p.nextSibling;break e}p=p.parentNode}p=void 0}p=Uy(p)}}function qy(l,d){return l&&d?l===d?!0:l&&l.nodeType===3?!1:d&&d.nodeType===3?qy(l,d.parentNode):"contains"in l?l.contains(d):l.compareDocumentPosition?!!(l.compareDocumentPosition(d)&16):!1:!1}function Gy(){for(var l=window,d=Fe();d instanceof l.HTMLIFrameElement;){try{var p=typeof d.contentWindow.location.href=="string"}catch{p=!1}if(p)l=d.contentWindow;else break;d=Fe(l.document)}return d}function Pp(l){var d=l&&l.nodeName&&l.nodeName.toLowerCase();return d&&(d==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||d==="textarea"||l.contentEditable==="true")}function T3(l){var d=Gy(),p=l.focusedElem,x=l.selectionRange;if(d!==p&&p&&p.ownerDocument&&qy(p.ownerDocument.documentElement,p)){if(x!==null&&Pp(p)){if(d=x.start,l=x.end,l===void 0&&(l=d),"selectionStart"in p)p.selectionStart=d,p.selectionEnd=Math.min(l,p.value.length);else if(l=(d=p.ownerDocument||document)&&d.defaultView||window,l.getSelection){l=l.getSelection();var j=p.textContent.length,S=Math.min(x.start,j);x=x.end===void 0?S:Math.min(x.end,j),!l.extend&&S>x&&(j=x,x=S,S=j),j=Ky(p,S);var A=Ky(p,x);j&&A&&(l.rangeCount!==1||l.anchorNode!==j.node||l.anchorOffset!==j.offset||l.focusNode!==A.node||l.focusOffset!==A.offset)&&(d=d.createRange(),d.setStart(j.node,j.offset),l.removeAllRanges(),S>x?(l.addRange(d),l.extend(A.node,A.offset)):(d.setEnd(A.node,A.offset),l.addRange(d)))}}for(d=[],l=p;l=l.parentNode;)l.nodeType===1&&d.push({element:l,left:l.scrollLeft,top:l.scrollTop});for(typeof p.focus=="function"&&p.focus(),p=0;p<d.length;p++)l=d[p],l.element.scrollLeft=l.left,l.element.scrollTop=l.top}}var M3=c&&"documentMode"in document&&11>=document.documentMode,xl=null,Rp=null,Dc=null,Op=!1;function Jy(l,d,p){var x=p.window===p?p.document:p.nodeType===9?p:p.ownerDocument;Op||xl==null||xl!==Fe(x)||(x=xl,"selectionStart"in x&&Pp(x)?x={start:x.selectionStart,end:x.selectionEnd}:(x=(x.ownerDocument&&x.ownerDocument.defaultView||window).getSelection(),x={anchorNode:x.anchorNode,anchorOffset:x.anchorOffset,focusNode:x.focusNode,focusOffset:x.focusOffset}),Dc&&Oc(Dc,x)||(Dc=x,x=gu(Rp,"onSelect"),0<x.length&&(d=new Tc("onSelect","select",null,d,p),l.push({event:d,listeners:x}),d.target=xl)))}function fu(l,d){var p={};return p[l.toLowerCase()]=d.toLowerCase(),p["Webkit"+l]="webkit"+d,p["Moz"+l]="moz"+d,p}var yl={animationend:fu("Animation","AnimationEnd"),animationiteration:fu("Animation","AnimationIteration"),animationstart:fu("Animation","AnimationStart"),transitionend:fu("Transition","TransitionEnd")},Dp={},Yy={};c&&(Yy=document.createElement("div").style,"AnimationEvent"in window||(delete yl.animationend.animation,delete yl.animationiteration.animation,delete yl.animationstart.animation),"TransitionEvent"in window||delete yl.transitionend.transition);function pu(l){if(Dp[l])return Dp[l];if(!yl[l])return l;var d=yl[l],p;for(p in d)if(d.hasOwnProperty(p)&&p in Yy)return Dp[l]=d[p];return l}var Qy=pu("animationend"),Xy=pu("animationiteration"),Zy=pu("animationstart"),eb=pu("transitionend"),tb=new Map,nb="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ai(l,d){tb.set(l,d),i(d,[l])}for(var Lp=0;Lp<nb.length;Lp++){var _p=nb[Lp],A3=_p.toLowerCase(),I3=_p[0].toUpperCase()+_p.slice(1);ai(A3,"on"+I3)}ai(Qy,"onAnimationEnd"),ai(Xy,"onAnimationIteration"),ai(Zy,"onAnimationStart"),ai("dblclick","onDoubleClick"),ai("focusin","onFocus"),ai("focusout","onBlur"),ai(eb,"onTransitionEnd"),o("onMouseEnter",["mouseout","mouseover"]),o("onMouseLeave",["mouseout","mouseover"]),o("onPointerEnter",["pointerout","pointerover"]),o("onPointerLeave",["pointerout","pointerover"]),i("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),i("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),i("onBeforeInput",["compositionend","keypress","textInput","paste"]),i("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Lc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),P3=new Set("cancel close invalid load scroll toggle".split(" ").concat(Lc));function sb(l,d,p){var x=l.type||"unknown-event";l.currentTarget=p,Ys(x,d,void 0,l),l.currentTarget=null}function rb(l,d){d=(d&4)!==0;for(var p=0;p<l.length;p++){var x=l[p],j=x.event;x=x.listeners;e:{var S=void 0;if(d)for(var A=x.length-1;0<=A;A--){var V=x[A],Q=V.instance,ge=V.currentTarget;if(V=V.listener,Q!==S&&j.isPropagationStopped())break e;sb(j,V,ge),S=Q}else for(A=0;A<x.length;A++){if(V=x[A],Q=V.instance,ge=V.currentTarget,V=V.listener,Q!==S&&j.isPropagationStopped())break e;sb(j,V,ge),S=Q}}}if(Js)throw l=so,Js=!1,so=null,l}function Xt(l,d){var p=d[Up];p===void 0&&(p=d[Up]=new Set);var x=l+"__bubble";p.has(x)||(ab(d,l,2,!1),p.add(x))}function zp(l,d,p){var x=0;d&&(x|=4),ab(p,l,x,d)}var mu="_reactListening"+Math.random().toString(36).slice(2);function _c(l){if(!l[mu]){l[mu]=!0,s.forEach(function(p){p!=="selectionchange"&&(P3.has(p)||zp(p,!1,l),zp(p,!0,l))});var d=l.nodeType===9?l:l.ownerDocument;d===null||d[mu]||(d[mu]=!0,zp("selectionchange",!1,d))}}function ab(l,d,p,x){switch(Ec(d)){case 1:var j=lo;break;case 4:j=co;break;default:j=fl}p=j.bind(null,d,p,l),j=void 0,!Xa||d!=="touchstart"&&d!=="touchmove"&&d!=="wheel"||(j=!0),x?j!==void 0?l.addEventListener(d,p,{capture:!0,passive:j}):l.addEventListener(d,p,!0):j!==void 0?l.addEventListener(d,p,{passive:j}):l.addEventListener(d,p,!1)}function Fp(l,d,p,x,j){var S=x;if((d&1)===0&&(d&2)===0&&x!==null)e:for(;;){if(x===null)return;var A=x.tag;if(A===3||A===4){var V=x.stateNode.containerInfo;if(V===j||V.nodeType===8&&V.parentNode===j)break;if(A===4)for(A=x.return;A!==null;){var Q=A.tag;if((Q===3||Q===4)&&(Q=A.stateNode.containerInfo,Q===j||Q.nodeType===8&&Q.parentNode===j))return;A=A.return}for(;V!==null;){if(A=go(V),A===null)return;if(Q=A.tag,Q===5||Q===6){x=S=A;continue e}V=V.parentNode}}x=x.return}Ur(function(){var ge=S,Se=$t(p),Ce=[];e:{var je=tb.get(l);if(je!==void 0){var ze=Tc,He=l;switch(l){case"keypress":if(ho(p)===0)break e;case"keydown":case"keyup":ze=Nt;break;case"focusin":He="focus",ze=mo;break;case"focusout":He="blur",ze=mo;break;case"beforeblur":case"afterblur":ze=mo;break;case"click":if(p.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ze=iu;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ze=Tp;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ze=u3;break;case Qy:case Xy:case Zy:ze=cu;break;case eb:ze=f3;break;case"scroll":ze=Cp;break;case"wheel":ze=m3;break;case"copy":case"cut":case"paste":ze=T;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ze=Rn}var qe=(d&4)!==0,jn=!qe&&l==="scroll",le=qe?je!==null?je+"Capture":null:je;qe=[];for(var ne=ge,de;ne!==null;){de=ne;var Pe=de.stateNode;if(de.tag===5&&Pe!==null&&(de=Pe,le!==null&&(Pe=xa(ne,le),Pe!=null&&qe.push(zc(ne,Pe,de)))),jn)break;ne=ne.return}0<qe.length&&(je=new ze(je,He,null,p,Se),Ce.push({event:je,listeners:qe}))}}if((d&7)===0){e:{if(je=l==="mouseover"||l==="pointerover",ze=l==="mouseout"||l==="pointerout",je&&p!==it&&(He=p.relatedTarget||p.fromElement)&&(go(He)||He[Sa]))break e;if((ze||je)&&(je=Se.window===Se?Se:(je=Se.ownerDocument)?je.defaultView||je.parentWindow:window,ze?(He=p.relatedTarget||p.toElement,ze=ge,He=He?go(He):null,He!==null&&(jn=jr(He),He!==jn||He.tag!==5&&He.tag!==6)&&(He=null)):(ze=null,He=ge),ze!==He)){if(qe=iu,Pe="onMouseLeave",le="onMouseEnter",ne="mouse",(l==="pointerout"||l==="pointerover")&&(qe=Rn,Pe="onPointerLeave",le="onPointerEnter",ne="pointer"),jn=ze==null?je:Nl(ze),de=He==null?je:Nl(He),je=new qe(Pe,ne+"leave",ze,p,Se),je.target=jn,je.relatedTarget=de,Pe=null,go(Se)===ge&&(qe=new qe(le,ne+"enter",He,p,Se),qe.target=de,qe.relatedTarget=jn,Pe=qe),jn=Pe,ze&&He)t:{for(qe=ze,le=He,ne=0,de=qe;de;de=bl(de))ne++;for(de=0,Pe=le;Pe;Pe=bl(Pe))de++;for(;0<ne-de;)qe=bl(qe),ne--;for(;0<de-ne;)le=bl(le),de--;for(;ne--;){if(qe===le||le!==null&&qe===le.alternate)break t;qe=bl(qe),le=bl(le)}qe=null}else qe=null;ze!==null&&ib(Ce,je,ze,qe,!1),He!==null&&jn!==null&&ib(Ce,jn,He,qe,!0)}}e:{if(je=ge?Nl(ge):window,ze=je.nodeName&&je.nodeName.toLowerCase(),ze==="select"||ze==="input"&&je.type==="file")var Ge=w3;else if(Fy(je))if(By)Ge=C3;else{Ge=k3;var nt=j3}else(ze=je.nodeName)&&ze.toLowerCase()==="input"&&(je.type==="checkbox"||je.type==="radio")&&(Ge=S3);if(Ge&&(Ge=Ge(l,ge))){$y(Ce,Ge,p,Se);break e}nt&&nt(l,je,ge),l==="focusout"&&(nt=je._wrapperState)&&nt.controlled&&je.type==="number"&&sn(je,"number",je.value)}switch(nt=ge?Nl(ge):window,l){case"focusin":(Fy(nt)||nt.contentEditable==="true")&&(xl=nt,Rp=ge,Dc=null);break;case"focusout":Dc=Rp=xl=null;break;case"mousedown":Op=!0;break;case"contextmenu":case"mouseup":case"dragend":Op=!1,Jy(Ce,p,Se);break;case"selectionchange":if(M3)break;case"keydown":case"keyup":Jy(Ce,p,Se)}var st;if(Mp)e:{switch(l){case"compositionstart":var ct="onCompositionStart";break e;case"compositionend":ct="onCompositionEnd";break e;case"compositionupdate":ct="onCompositionUpdate";break e}ct=void 0}else gl?_y(l,p)&&(ct="onCompositionEnd"):l==="keydown"&&p.keyCode===229&&(ct="onCompositionStart");ct&&(Oy&&p.locale!=="ko"&&(gl||ct!=="onCompositionStart"?ct==="onCompositionEnd"&&gl&&(st=ru()):(Ar=Se,pl="value"in Ar?Ar.value:Ar.textContent,gl=!0)),nt=gu(ge,ct),0<nt.length&&(ct=new ie(ct,l,null,p,Se),Ce.push({event:ct,listeners:nt}),st?ct.data=st:(st=zy(p),st!==null&&(ct.data=st)))),(st=x3?y3(l,p):b3(l,p))&&(ge=gu(ge,"onBeforeInput"),0<ge.length&&(Se=new ie("onBeforeInput","beforeinput",null,p,Se),Ce.push({event:Se,listeners:ge}),Se.data=st))}rb(Ce,d)})}function zc(l,d,p){return{instance:l,listener:d,currentTarget:p}}function gu(l,d){for(var p=d+"Capture",x=[];l!==null;){var j=l,S=j.stateNode;j.tag===5&&S!==null&&(j=S,S=xa(l,p),S!=null&&x.unshift(zc(l,S,j)),S=xa(l,d),S!=null&&x.push(zc(l,S,j))),l=l.return}return x}function bl(l){if(l===null)return null;do l=l.return;while(l&&l.tag!==5);return l||null}function ib(l,d,p,x,j){for(var S=d._reactName,A=[];p!==null&&p!==x;){var V=p,Q=V.alternate,ge=V.stateNode;if(Q!==null&&Q===x)break;V.tag===5&&ge!==null&&(V=ge,j?(Q=xa(p,S),Q!=null&&A.unshift(zc(p,Q,V))):j||(Q=xa(p,S),Q!=null&&A.push(zc(p,Q,V)))),p=p.return}A.length!==0&&l.push({event:d,listeners:A})}var R3=/\r\n?/g,O3=/\u0000|\uFFFD/g;function ob(l){return(typeof l=="string"?l:""+l).replace(R3,`
`).replace(O3,"")}function xu(l,d,p){if(d=ob(d),ob(l)!==d&&p)throw Error(n(425))}function yu(){}var $p=null,Bp=null;function Vp(l,d){return l==="textarea"||l==="noscript"||typeof d.children=="string"||typeof d.children=="number"||typeof d.dangerouslySetInnerHTML=="object"&&d.dangerouslySetInnerHTML!==null&&d.dangerouslySetInnerHTML.__html!=null}var Hp=typeof setTimeout=="function"?setTimeout:void 0,D3=typeof clearTimeout=="function"?clearTimeout:void 0,lb=typeof Promise=="function"?Promise:void 0,L3=typeof queueMicrotask=="function"?queueMicrotask:typeof lb<"u"?function(l){return lb.resolve(null).then(l).catch(_3)}:Hp;function _3(l){setTimeout(function(){throw l})}function Wp(l,d){var p=d,x=0;do{var j=p.nextSibling;if(l.removeChild(p),j&&j.nodeType===8)if(p=j.data,p==="/$"){if(x===0){l.removeChild(j),Tr(d);return}x--}else p!=="$"&&p!=="$?"&&p!=="$!"||x++;p=j}while(p);Tr(d)}function ii(l){for(;l!=null;l=l.nextSibling){var d=l.nodeType;if(d===1||d===3)break;if(d===8){if(d=l.data,d==="$"||d==="$!"||d==="$?")break;if(d==="/$")return null}}return l}function cb(l){l=l.previousSibling;for(var d=0;l;){if(l.nodeType===8){var p=l.data;if(p==="$"||p==="$!"||p==="$?"){if(d===0)return l;d--}else p==="/$"&&d++}l=l.previousSibling}return null}var vl=Math.random().toString(36).slice(2),ta="__reactFiber$"+vl,Fc="__reactProps$"+vl,Sa="__reactContainer$"+vl,Up="__reactEvents$"+vl,z3="__reactListeners$"+vl,F3="__reactHandles$"+vl;function go(l){var d=l[ta];if(d)return d;for(var p=l.parentNode;p;){if(d=p[Sa]||p[ta]){if(p=d.alternate,d.child!==null||p!==null&&p.child!==null)for(l=cb(l);l!==null;){if(p=l[ta])return p;l=cb(l)}return d}l=p,p=l.parentNode}return null}function $c(l){return l=l[ta]||l[Sa],!l||l.tag!==5&&l.tag!==6&&l.tag!==13&&l.tag!==3?null:l}function Nl(l){if(l.tag===5||l.tag===6)return l.stateNode;throw Error(n(33))}function bu(l){return l[Fc]||null}var Kp=[],wl=-1;function oi(l){return{current:l}}function Zt(l){0>wl||(l.current=Kp[wl],Kp[wl]=null,wl--)}function qt(l,d){wl++,Kp[wl]=l.current,l.current=d}var li={},us=oi(li),zs=oi(!1),xo=li;function jl(l,d){var p=l.type.contextTypes;if(!p)return li;var x=l.stateNode;if(x&&x.__reactInternalMemoizedUnmaskedChildContext===d)return x.__reactInternalMemoizedMaskedChildContext;var j={},S;for(S in p)j[S]=d[S];return x&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=d,l.__reactInternalMemoizedMaskedChildContext=j),j}function Fs(l){return l=l.childContextTypes,l!=null}function vu(){Zt(zs),Zt(us)}function db(l,d,p){if(us.current!==li)throw Error(n(168));qt(us,d),qt(zs,p)}function ub(l,d,p){var x=l.stateNode;if(d=d.childContextTypes,typeof x.getChildContext!="function")return p;x=x.getChildContext();for(var j in x)if(!(j in d))throw Error(n(108,ee(l)||"Unknown",j));return B({},p,x)}function Nu(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||li,xo=us.current,qt(us,l),qt(zs,zs.current),!0}function hb(l,d,p){var x=l.stateNode;if(!x)throw Error(n(169));p?(l=ub(l,d,xo),x.__reactInternalMemoizedMergedChildContext=l,Zt(zs),Zt(us),qt(us,l)):Zt(zs),qt(zs,p)}var Ca=null,wu=!1,qp=!1;function fb(l){Ca===null?Ca=[l]:Ca.push(l)}function $3(l){wu=!0,fb(l)}function ci(){if(!qp&&Ca!==null){qp=!0;var l=0,d=ht;try{var p=Ca;for(ht=1;l<p.length;l++){var x=p[l];do x=x(!0);while(x!==null)}Ca=null,wu=!1}catch(j){throw Ca!==null&&(Ca=Ca.slice(l+1)),ls(Qs,ci),j}finally{ht=d,qp=!1}}return null}var kl=[],Sl=0,ju=null,ku=0,cr=[],dr=0,yo=null,Ea=1,Ta="";function bo(l,d){kl[Sl++]=ku,kl[Sl++]=ju,ju=l,ku=d}function pb(l,d,p){cr[dr++]=Ea,cr[dr++]=Ta,cr[dr++]=yo,yo=l;var x=Ea;l=Ta;var j=32-Es(x)-1;x&=~(1<<j),p+=1;var S=32-Es(d)+j;if(30<S){var A=j-j%5;S=(x&(1<<A)-1).toString(32),x>>=A,j-=A,Ea=1<<32-Es(d)+j|p<<j|x,Ta=S+l}else Ea=1<<S|p<<j|x,Ta=l}function Gp(l){l.return!==null&&(bo(l,1),pb(l,1,0))}function Jp(l){for(;l===ju;)ju=kl[--Sl],kl[Sl]=null,ku=kl[--Sl],kl[Sl]=null;for(;l===yo;)yo=cr[--dr],cr[dr]=null,Ta=cr[--dr],cr[dr]=null,Ea=cr[--dr],cr[dr]=null}var Zs=null,er=null,an=!1,Pr=null;function mb(l,d){var p=pr(5,null,null,0);p.elementType="DELETED",p.stateNode=d,p.return=l,d=l.deletions,d===null?(l.deletions=[p],l.flags|=16):d.push(p)}function gb(l,d){switch(l.tag){case 5:var p=l.type;return d=d.nodeType!==1||p.toLowerCase()!==d.nodeName.toLowerCase()?null:d,d!==null?(l.stateNode=d,Zs=l,er=ii(d.firstChild),!0):!1;case 6:return d=l.pendingProps===""||d.nodeType!==3?null:d,d!==null?(l.stateNode=d,Zs=l,er=null,!0):!1;case 13:return d=d.nodeType!==8?null:d,d!==null?(p=yo!==null?{id:Ea,overflow:Ta}:null,l.memoizedState={dehydrated:d,treeContext:p,retryLane:1073741824},p=pr(18,null,null,0),p.stateNode=d,p.return=l,l.child=p,Zs=l,er=null,!0):!1;default:return!1}}function Yp(l){return(l.mode&1)!==0&&(l.flags&128)===0}function Qp(l){if(an){var d=er;if(d){var p=d;if(!gb(l,d)){if(Yp(l))throw Error(n(418));d=ii(p.nextSibling);var x=Zs;d&&gb(l,d)?mb(x,p):(l.flags=l.flags&-4097|2,an=!1,Zs=l)}}else{if(Yp(l))throw Error(n(418));l.flags=l.flags&-4097|2,an=!1,Zs=l}}}function xb(l){for(l=l.return;l!==null&&l.tag!==5&&l.tag!==3&&l.tag!==13;)l=l.return;Zs=l}function Su(l){if(l!==Zs)return!1;if(!an)return xb(l),an=!0,!1;var d;if((d=l.tag!==3)&&!(d=l.tag!==5)&&(d=l.type,d=d!=="head"&&d!=="body"&&!Vp(l.type,l.memoizedProps)),d&&(d=er)){if(Yp(l))throw yb(),Error(n(418));for(;d;)mb(l,d),d=ii(d.nextSibling)}if(xb(l),l.tag===13){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(n(317));e:{for(l=l.nextSibling,d=0;l;){if(l.nodeType===8){var p=l.data;if(p==="/$"){if(d===0){er=ii(l.nextSibling);break e}d--}else p!=="$"&&p!=="$!"&&p!=="$?"||d++}l=l.nextSibling}er=null}}else er=Zs?ii(l.stateNode.nextSibling):null;return!0}function yb(){for(var l=er;l;)l=ii(l.nextSibling)}function Cl(){er=Zs=null,an=!1}function Xp(l){Pr===null?Pr=[l]:Pr.push(l)}var B3=I.ReactCurrentBatchConfig;function Bc(l,d,p){if(l=p.ref,l!==null&&typeof l!="function"&&typeof l!="object"){if(p._owner){if(p=p._owner,p){if(p.tag!==1)throw Error(n(309));var x=p.stateNode}if(!x)throw Error(n(147,l));var j=x,S=""+l;return d!==null&&d.ref!==null&&typeof d.ref=="function"&&d.ref._stringRef===S?d.ref:(d=function(A){var V=j.refs;A===null?delete V[S]:V[S]=A},d._stringRef=S,d)}if(typeof l!="string")throw Error(n(284));if(!p._owner)throw Error(n(290,l))}return l}function Cu(l,d){throw l=Object.prototype.toString.call(d),Error(n(31,l==="[object Object]"?"object with keys {"+Object.keys(d).join(", ")+"}":l))}function bb(l){var d=l._init;return d(l._payload)}function vb(l){function d(le,ne){if(l){var de=le.deletions;de===null?(le.deletions=[ne],le.flags|=16):de.push(ne)}}function p(le,ne){if(!l)return null;for(;ne!==null;)d(le,ne),ne=ne.sibling;return null}function x(le,ne){for(le=new Map;ne!==null;)ne.key!==null?le.set(ne.key,ne):le.set(ne.index,ne),ne=ne.sibling;return le}function j(le,ne){return le=xi(le,ne),le.index=0,le.sibling=null,le}function S(le,ne,de){return le.index=de,l?(de=le.alternate,de!==null?(de=de.index,de<ne?(le.flags|=2,ne):de):(le.flags|=2,ne)):(le.flags|=1048576,ne)}function A(le){return l&&le.alternate===null&&(le.flags|=2),le}function V(le,ne,de,Pe){return ne===null||ne.tag!==6?(ne=Hm(de,le.mode,Pe),ne.return=le,ne):(ne=j(ne,de),ne.return=le,ne)}function Q(le,ne,de,Pe){var Ge=de.type;return Ge===D?Se(le,ne,de.props.children,Pe,de.key):ne!==null&&(ne.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===J&&bb(Ge)===ne.type)?(Pe=j(ne,de.props),Pe.ref=Bc(le,ne,de),Pe.return=le,Pe):(Pe=Yu(de.type,de.key,de.props,null,le.mode,Pe),Pe.ref=Bc(le,ne,de),Pe.return=le,Pe)}function ge(le,ne,de,Pe){return ne===null||ne.tag!==4||ne.stateNode.containerInfo!==de.containerInfo||ne.stateNode.implementation!==de.implementation?(ne=Wm(de,le.mode,Pe),ne.return=le,ne):(ne=j(ne,de.children||[]),ne.return=le,ne)}function Se(le,ne,de,Pe,Ge){return ne===null||ne.tag!==7?(ne=Eo(de,le.mode,Pe,Ge),ne.return=le,ne):(ne=j(ne,de),ne.return=le,ne)}function Ce(le,ne,de){if(typeof ne=="string"&&ne!==""||typeof ne=="number")return ne=Hm(""+ne,le.mode,de),ne.return=le,ne;if(typeof ne=="object"&&ne!==null){switch(ne.$$typeof){case L:return de=Yu(ne.type,ne.key,ne.props,null,le.mode,de),de.ref=Bc(le,null,ne),de.return=le,de;case W:return ne=Wm(ne,le.mode,de),ne.return=le,ne;case J:var Pe=ne._init;return Ce(le,Pe(ne._payload),de)}if(Tt(ne)||q(ne))return ne=Eo(ne,le.mode,de,null),ne.return=le,ne;Cu(le,ne)}return null}function je(le,ne,de,Pe){var Ge=ne!==null?ne.key:null;if(typeof de=="string"&&de!==""||typeof de=="number")return Ge!==null?null:V(le,ne,""+de,Pe);if(typeof de=="object"&&de!==null){switch(de.$$typeof){case L:return de.key===Ge?Q(le,ne,de,Pe):null;case W:return de.key===Ge?ge(le,ne,de,Pe):null;case J:return Ge=de._init,je(le,ne,Ge(de._payload),Pe)}if(Tt(de)||q(de))return Ge!==null?null:Se(le,ne,de,Pe,null);Cu(le,de)}return null}function ze(le,ne,de,Pe,Ge){if(typeof Pe=="string"&&Pe!==""||typeof Pe=="number")return le=le.get(de)||null,V(ne,le,""+Pe,Ge);if(typeof Pe=="object"&&Pe!==null){switch(Pe.$$typeof){case L:return le=le.get(Pe.key===null?de:Pe.key)||null,Q(ne,le,Pe,Ge);case W:return le=le.get(Pe.key===null?de:Pe.key)||null,ge(ne,le,Pe,Ge);case J:var nt=Pe._init;return ze(le,ne,de,nt(Pe._payload),Ge)}if(Tt(Pe)||q(Pe))return le=le.get(de)||null,Se(ne,le,Pe,Ge,null);Cu(ne,Pe)}return null}function He(le,ne,de,Pe){for(var Ge=null,nt=null,st=ne,ct=ne=0,Bn=null;st!==null&&ct<de.length;ct++){st.index>ct?(Bn=st,st=null):Bn=st.sibling;var St=je(le,st,de[ct],Pe);if(St===null){st===null&&(st=Bn);break}l&&st&&St.alternate===null&&d(le,st),ne=S(St,ne,ct),nt===null?Ge=St:nt.sibling=St,nt=St,st=Bn}if(ct===de.length)return p(le,st),an&&bo(le,ct),Ge;if(st===null){for(;ct<de.length;ct++)st=Ce(le,de[ct],Pe),st!==null&&(ne=S(st,ne,ct),nt===null?Ge=st:nt.sibling=st,nt=st);return an&&bo(le,ct),Ge}for(st=x(le,st);ct<de.length;ct++)Bn=ze(st,le,ct,de[ct],Pe),Bn!==null&&(l&&Bn.alternate!==null&&st.delete(Bn.key===null?ct:Bn.key),ne=S(Bn,ne,ct),nt===null?Ge=Bn:nt.sibling=Bn,nt=Bn);return l&&st.forEach(function(yi){return d(le,yi)}),an&&bo(le,ct),Ge}function qe(le,ne,de,Pe){var Ge=q(de);if(typeof Ge!="function")throw Error(n(150));if(de=Ge.call(de),de==null)throw Error(n(151));for(var nt=Ge=null,st=ne,ct=ne=0,Bn=null,St=de.next();st!==null&&!St.done;ct++,St=de.next()){st.index>ct?(Bn=st,st=null):Bn=st.sibling;var yi=je(le,st,St.value,Pe);if(yi===null){st===null&&(st=Bn);break}l&&st&&yi.alternate===null&&d(le,st),ne=S(yi,ne,ct),nt===null?Ge=yi:nt.sibling=yi,nt=yi,st=Bn}if(St.done)return p(le,st),an&&bo(le,ct),Ge;if(st===null){for(;!St.done;ct++,St=de.next())St=Ce(le,St.value,Pe),St!==null&&(ne=S(St,ne,ct),nt===null?Ge=St:nt.sibling=St,nt=St);return an&&bo(le,ct),Ge}for(st=x(le,st);!St.done;ct++,St=de.next())St=ze(st,le,ct,St.value,Pe),St!==null&&(l&&St.alternate!==null&&st.delete(St.key===null?ct:St.key),ne=S(St,ne,ct),nt===null?Ge=St:nt.sibling=St,nt=St);return l&&st.forEach(function(vE){return d(le,vE)}),an&&bo(le,ct),Ge}function jn(le,ne,de,Pe){if(typeof de=="object"&&de!==null&&de.type===D&&de.key===null&&(de=de.props.children),typeof de=="object"&&de!==null){switch(de.$$typeof){case L:e:{for(var Ge=de.key,nt=ne;nt!==null;){if(nt.key===Ge){if(Ge=de.type,Ge===D){if(nt.tag===7){p(le,nt.sibling),ne=j(nt,de.props.children),ne.return=le,le=ne;break e}}else if(nt.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===J&&bb(Ge)===nt.type){p(le,nt.sibling),ne=j(nt,de.props),ne.ref=Bc(le,nt,de),ne.return=le,le=ne;break e}p(le,nt);break}else d(le,nt);nt=nt.sibling}de.type===D?(ne=Eo(de.props.children,le.mode,Pe,de.key),ne.return=le,le=ne):(Pe=Yu(de.type,de.key,de.props,null,le.mode,Pe),Pe.ref=Bc(le,ne,de),Pe.return=le,le=Pe)}return A(le);case W:e:{for(nt=de.key;ne!==null;){if(ne.key===nt)if(ne.tag===4&&ne.stateNode.containerInfo===de.containerInfo&&ne.stateNode.implementation===de.implementation){p(le,ne.sibling),ne=j(ne,de.children||[]),ne.return=le,le=ne;break e}else{p(le,ne);break}else d(le,ne);ne=ne.sibling}ne=Wm(de,le.mode,Pe),ne.return=le,le=ne}return A(le);case J:return nt=de._init,jn(le,ne,nt(de._payload),Pe)}if(Tt(de))return He(le,ne,de,Pe);if(q(de))return qe(le,ne,de,Pe);Cu(le,de)}return typeof de=="string"&&de!==""||typeof de=="number"?(de=""+de,ne!==null&&ne.tag===6?(p(le,ne.sibling),ne=j(ne,de),ne.return=le,le=ne):(p(le,ne),ne=Hm(de,le.mode,Pe),ne.return=le,le=ne),A(le)):p(le,ne)}return jn}var El=vb(!0),Nb=vb(!1),Eu=oi(null),Tu=null,Tl=null,Zp=null;function em(){Zp=Tl=Tu=null}function tm(l){var d=Eu.current;Zt(Eu),l._currentValue=d}function nm(l,d,p){for(;l!==null;){var x=l.alternate;if((l.childLanes&d)!==d?(l.childLanes|=d,x!==null&&(x.childLanes|=d)):x!==null&&(x.childLanes&d)!==d&&(x.childLanes|=d),l===p)break;l=l.return}}function Ml(l,d){Tu=l,Zp=Tl=null,l=l.dependencies,l!==null&&l.firstContext!==null&&((l.lanes&d)!==0&&($s=!0),l.firstContext=null)}function ur(l){var d=l._currentValue;if(Zp!==l)if(l={context:l,memoizedValue:d,next:null},Tl===null){if(Tu===null)throw Error(n(308));Tl=l,Tu.dependencies={lanes:0,firstContext:l}}else Tl=Tl.next=l;return d}var vo=null;function sm(l){vo===null?vo=[l]:vo.push(l)}function wb(l,d,p,x){var j=d.interleaved;return j===null?(p.next=p,sm(d)):(p.next=j.next,j.next=p),d.interleaved=p,Ma(l,x)}function Ma(l,d){l.lanes|=d;var p=l.alternate;for(p!==null&&(p.lanes|=d),p=l,l=l.return;l!==null;)l.childLanes|=d,p=l.alternate,p!==null&&(p.childLanes|=d),p=l,l=l.return;return p.tag===3?p.stateNode:null}var di=!1;function rm(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jb(l,d){l=l.updateQueue,d.updateQueue===l&&(d.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,effects:l.effects})}function Aa(l,d){return{eventTime:l,lane:d,tag:0,payload:null,callback:null,next:null}}function ui(l,d,p){var x=l.updateQueue;if(x===null)return null;if(x=x.shared,(kt&2)!==0){var j=x.pending;return j===null?d.next=d:(d.next=j.next,j.next=d),x.pending=d,Ma(l,p)}return j=x.interleaved,j===null?(d.next=d,sm(x)):(d.next=j.next,j.next=d),x.interleaved=d,Ma(l,p)}function Mu(l,d,p){if(d=d.updateQueue,d!==null&&(d=d.shared,(p&4194240)!==0)){var x=d.lanes;x&=l.pendingLanes,p|=x,d.lanes=p,pn(l,p)}}function kb(l,d){var p=l.updateQueue,x=l.alternate;if(x!==null&&(x=x.updateQueue,p===x)){var j=null,S=null;if(p=p.firstBaseUpdate,p!==null){do{var A={eventTime:p.eventTime,lane:p.lane,tag:p.tag,payload:p.payload,callback:p.callback,next:null};S===null?j=S=A:S=S.next=A,p=p.next}while(p!==null);S===null?j=S=d:S=S.next=d}else j=S=d;p={baseState:x.baseState,firstBaseUpdate:j,lastBaseUpdate:S,shared:x.shared,effects:x.effects},l.updateQueue=p;return}l=p.lastBaseUpdate,l===null?p.firstBaseUpdate=d:l.next=d,p.lastBaseUpdate=d}function Au(l,d,p,x){var j=l.updateQueue;di=!1;var S=j.firstBaseUpdate,A=j.lastBaseUpdate,V=j.shared.pending;if(V!==null){j.shared.pending=null;var Q=V,ge=Q.next;Q.next=null,A===null?S=ge:A.next=ge,A=Q;var Se=l.alternate;Se!==null&&(Se=Se.updateQueue,V=Se.lastBaseUpdate,V!==A&&(V===null?Se.firstBaseUpdate=ge:V.next=ge,Se.lastBaseUpdate=Q))}if(S!==null){var Ce=j.baseState;A=0,Se=ge=Q=null,V=S;do{var je=V.lane,ze=V.eventTime;if((x&je)===je){Se!==null&&(Se=Se.next={eventTime:ze,lane:0,tag:V.tag,payload:V.payload,callback:V.callback,next:null});e:{var He=l,qe=V;switch(je=d,ze=p,qe.tag){case 1:if(He=qe.payload,typeof He=="function"){Ce=He.call(ze,Ce,je);break e}Ce=He;break e;case 3:He.flags=He.flags&-65537|128;case 0:if(He=qe.payload,je=typeof He=="function"?He.call(ze,Ce,je):He,je==null)break e;Ce=B({},Ce,je);break e;case 2:di=!0}}V.callback!==null&&V.lane!==0&&(l.flags|=64,je=j.effects,je===null?j.effects=[V]:je.push(V))}else ze={eventTime:ze,lane:je,tag:V.tag,payload:V.payload,callback:V.callback,next:null},Se===null?(ge=Se=ze,Q=Ce):Se=Se.next=ze,A|=je;if(V=V.next,V===null){if(V=j.shared.pending,V===null)break;je=V,V=je.next,je.next=null,j.lastBaseUpdate=je,j.shared.pending=null}}while(!0);if(Se===null&&(Q=Ce),j.baseState=Q,j.firstBaseUpdate=ge,j.lastBaseUpdate=Se,d=j.shared.interleaved,d!==null){j=d;do A|=j.lane,j=j.next;while(j!==d)}else S===null&&(j.shared.lanes=0);jo|=A,l.lanes=A,l.memoizedState=Ce}}function Sb(l,d,p){if(l=d.effects,d.effects=null,l!==null)for(d=0;d<l.length;d++){var x=l[d],j=x.callback;if(j!==null){if(x.callback=null,x=p,typeof j!="function")throw Error(n(191,j));j.call(x)}}}var Vc={},na=oi(Vc),Hc=oi(Vc),Wc=oi(Vc);function No(l){if(l===Vc)throw Error(n(174));return l}function am(l,d){switch(qt(Wc,d),qt(Hc,l),qt(na,Vc),l=d.nodeType,l){case 9:case 11:d=(d=d.documentElement)?d.namespaceURI:ws(null,"");break;default:l=l===8?d.parentNode:d,d=l.namespaceURI||null,l=l.tagName,d=ws(d,l)}Zt(na),qt(na,d)}function Al(){Zt(na),Zt(Hc),Zt(Wc)}function Cb(l){No(Wc.current);var d=No(na.current),p=ws(d,l.type);d!==p&&(qt(Hc,l),qt(na,p))}function im(l){Hc.current===l&&(Zt(na),Zt(Hc))}var cn=oi(0);function Iu(l){for(var d=l;d!==null;){if(d.tag===13){var p=d.memoizedState;if(p!==null&&(p=p.dehydrated,p===null||p.data==="$?"||p.data==="$!"))return d}else if(d.tag===19&&d.memoizedProps.revealOrder!==void 0){if((d.flags&128)!==0)return d}else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===l)break;for(;d.sibling===null;){if(d.return===null||d.return===l)return null;d=d.return}d.sibling.return=d.return,d=d.sibling}return null}var om=[];function lm(){for(var l=0;l<om.length;l++)om[l]._workInProgressVersionPrimary=null;om.length=0}var Pu=I.ReactCurrentDispatcher,cm=I.ReactCurrentBatchConfig,wo=0,dn=null,On=null,Fn=null,Ru=!1,Uc=!1,Kc=0,V3=0;function hs(){throw Error(n(321))}function dm(l,d){if(d===null)return!1;for(var p=0;p<d.length&&p<l.length;p++)if(!Ir(l[p],d[p]))return!1;return!0}function um(l,d,p,x,j,S){if(wo=S,dn=d,d.memoizedState=null,d.updateQueue=null,d.lanes=0,Pu.current=l===null||l.memoizedState===null?K3:q3,l=p(x,j),Uc){S=0;do{if(Uc=!1,Kc=0,25<=S)throw Error(n(301));S+=1,Fn=On=null,d.updateQueue=null,Pu.current=G3,l=p(x,j)}while(Uc)}if(Pu.current=Lu,d=On!==null&&On.next!==null,wo=0,Fn=On=dn=null,Ru=!1,d)throw Error(n(300));return l}function hm(){var l=Kc!==0;return Kc=0,l}function sa(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Fn===null?dn.memoizedState=Fn=l:Fn=Fn.next=l,Fn}function hr(){if(On===null){var l=dn.alternate;l=l!==null?l.memoizedState:null}else l=On.next;var d=Fn===null?dn.memoizedState:Fn.next;if(d!==null)Fn=d,On=l;else{if(l===null)throw Error(n(310));On=l,l={memoizedState:On.memoizedState,baseState:On.baseState,baseQueue:On.baseQueue,queue:On.queue,next:null},Fn===null?dn.memoizedState=Fn=l:Fn=Fn.next=l}return Fn}function qc(l,d){return typeof d=="function"?d(l):d}function fm(l){var d=hr(),p=d.queue;if(p===null)throw Error(n(311));p.lastRenderedReducer=l;var x=On,j=x.baseQueue,S=p.pending;if(S!==null){if(j!==null){var A=j.next;j.next=S.next,S.next=A}x.baseQueue=j=S,p.pending=null}if(j!==null){S=j.next,x=x.baseState;var V=A=null,Q=null,ge=S;do{var Se=ge.lane;if((wo&Se)===Se)Q!==null&&(Q=Q.next={lane:0,action:ge.action,hasEagerState:ge.hasEagerState,eagerState:ge.eagerState,next:null}),x=ge.hasEagerState?ge.eagerState:l(x,ge.action);else{var Ce={lane:Se,action:ge.action,hasEagerState:ge.hasEagerState,eagerState:ge.eagerState,next:null};Q===null?(V=Q=Ce,A=x):Q=Q.next=Ce,dn.lanes|=Se,jo|=Se}ge=ge.next}while(ge!==null&&ge!==S);Q===null?A=x:Q.next=V,Ir(x,d.memoizedState)||($s=!0),d.memoizedState=x,d.baseState=A,d.baseQueue=Q,p.lastRenderedState=x}if(l=p.interleaved,l!==null){j=l;do S=j.lane,dn.lanes|=S,jo|=S,j=j.next;while(j!==l)}else j===null&&(p.lanes=0);return[d.memoizedState,p.dispatch]}function pm(l){var d=hr(),p=d.queue;if(p===null)throw Error(n(311));p.lastRenderedReducer=l;var x=p.dispatch,j=p.pending,S=d.memoizedState;if(j!==null){p.pending=null;var A=j=j.next;do S=l(S,A.action),A=A.next;while(A!==j);Ir(S,d.memoizedState)||($s=!0),d.memoizedState=S,d.baseQueue===null&&(d.baseState=S),p.lastRenderedState=S}return[S,x]}function Eb(){}function Tb(l,d){var p=dn,x=hr(),j=d(),S=!Ir(x.memoizedState,j);if(S&&(x.memoizedState=j,$s=!0),x=x.queue,mm(Ib.bind(null,p,x,l),[l]),x.getSnapshot!==d||S||Fn!==null&&Fn.memoizedState.tag&1){if(p.flags|=2048,Gc(9,Ab.bind(null,p,x,j,d),void 0,null),$n===null)throw Error(n(349));(wo&30)!==0||Mb(p,d,j)}return j}function Mb(l,d,p){l.flags|=16384,l={getSnapshot:d,value:p},d=dn.updateQueue,d===null?(d={lastEffect:null,stores:null},dn.updateQueue=d,d.stores=[l]):(p=d.stores,p===null?d.stores=[l]:p.push(l))}function Ab(l,d,p,x){d.value=p,d.getSnapshot=x,Pb(d)&&Rb(l)}function Ib(l,d,p){return p(function(){Pb(d)&&Rb(l)})}function Pb(l){var d=l.getSnapshot;l=l.value;try{var p=d();return!Ir(l,p)}catch{return!0}}function Rb(l){var d=Ma(l,1);d!==null&&Lr(d,l,1,-1)}function Ob(l){var d=sa();return typeof l=="function"&&(l=l()),d.memoizedState=d.baseState=l,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:qc,lastRenderedState:l},d.queue=l,l=l.dispatch=U3.bind(null,dn,l),[d.memoizedState,l]}function Gc(l,d,p,x){return l={tag:l,create:d,destroy:p,deps:x,next:null},d=dn.updateQueue,d===null?(d={lastEffect:null,stores:null},dn.updateQueue=d,d.lastEffect=l.next=l):(p=d.lastEffect,p===null?d.lastEffect=l.next=l:(x=p.next,p.next=l,l.next=x,d.lastEffect=l)),l}function Db(){return hr().memoizedState}function Ou(l,d,p,x){var j=sa();dn.flags|=l,j.memoizedState=Gc(1|d,p,void 0,x===void 0?null:x)}function Du(l,d,p,x){var j=hr();x=x===void 0?null:x;var S=void 0;if(On!==null){var A=On.memoizedState;if(S=A.destroy,x!==null&&dm(x,A.deps)){j.memoizedState=Gc(d,p,S,x);return}}dn.flags|=l,j.memoizedState=Gc(1|d,p,S,x)}function Lb(l,d){return Ou(8390656,8,l,d)}function mm(l,d){return Du(2048,8,l,d)}function _b(l,d){return Du(4,2,l,d)}function zb(l,d){return Du(4,4,l,d)}function Fb(l,d){if(typeof d=="function")return l=l(),d(l),function(){d(null)};if(d!=null)return l=l(),d.current=l,function(){d.current=null}}function $b(l,d,p){return p=p!=null?p.concat([l]):null,Du(4,4,Fb.bind(null,d,l),p)}function gm(){}function Bb(l,d){var p=hr();d=d===void 0?null:d;var x=p.memoizedState;return x!==null&&d!==null&&dm(d,x[1])?x[0]:(p.memoizedState=[l,d],l)}function Vb(l,d){var p=hr();d=d===void 0?null:d;var x=p.memoizedState;return x!==null&&d!==null&&dm(d,x[1])?x[0]:(l=l(),p.memoizedState=[l,d],l)}function Hb(l,d,p){return(wo&21)===0?(l.baseState&&(l.baseState=!1,$s=!0),l.memoizedState=p):(Ir(p,d)||(p=F(),dn.lanes|=p,jo|=p,l.baseState=!0),d)}function H3(l,d){var p=ht;ht=p!==0&&4>p?p:4,l(!0);var x=cm.transition;cm.transition={};try{l(!1),d()}finally{ht=p,cm.transition=x}}function Wb(){return hr().memoizedState}function W3(l,d,p){var x=mi(l);if(p={lane:x,action:p,hasEagerState:!1,eagerState:null,next:null},Ub(l))Kb(d,p);else if(p=wb(l,d,p,x),p!==null){var j=Ps();Lr(p,l,x,j),qb(p,d,x)}}function U3(l,d,p){var x=mi(l),j={lane:x,action:p,hasEagerState:!1,eagerState:null,next:null};if(Ub(l))Kb(d,j);else{var S=l.alternate;if(l.lanes===0&&(S===null||S.lanes===0)&&(S=d.lastRenderedReducer,S!==null))try{var A=d.lastRenderedState,V=S(A,p);if(j.hasEagerState=!0,j.eagerState=V,Ir(V,A)){var Q=d.interleaved;Q===null?(j.next=j,sm(d)):(j.next=Q.next,Q.next=j),d.interleaved=j;return}}catch{}finally{}p=wb(l,d,j,x),p!==null&&(j=Ps(),Lr(p,l,x,j),qb(p,d,x))}}function Ub(l){var d=l.alternate;return l===dn||d!==null&&d===dn}function Kb(l,d){Uc=Ru=!0;var p=l.pending;p===null?d.next=d:(d.next=p.next,p.next=d),l.pending=d}function qb(l,d,p){if((p&4194240)!==0){var x=d.lanes;x&=l.pendingLanes,p|=x,d.lanes=p,pn(l,p)}}var Lu={readContext:ur,useCallback:hs,useContext:hs,useEffect:hs,useImperativeHandle:hs,useInsertionEffect:hs,useLayoutEffect:hs,useMemo:hs,useReducer:hs,useRef:hs,useState:hs,useDebugValue:hs,useDeferredValue:hs,useTransition:hs,useMutableSource:hs,useSyncExternalStore:hs,useId:hs,unstable_isNewReconciler:!1},K3={readContext:ur,useCallback:function(l,d){return sa().memoizedState=[l,d===void 0?null:d],l},useContext:ur,useEffect:Lb,useImperativeHandle:function(l,d,p){return p=p!=null?p.concat([l]):null,Ou(4194308,4,Fb.bind(null,d,l),p)},useLayoutEffect:function(l,d){return Ou(4194308,4,l,d)},useInsertionEffect:function(l,d){return Ou(4,2,l,d)},useMemo:function(l,d){var p=sa();return d=d===void 0?null:d,l=l(),p.memoizedState=[l,d],l},useReducer:function(l,d,p){var x=sa();return d=p!==void 0?p(d):d,x.memoizedState=x.baseState=d,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:d},x.queue=l,l=l.dispatch=W3.bind(null,dn,l),[x.memoizedState,l]},useRef:function(l){var d=sa();return l={current:l},d.memoizedState=l},useState:Ob,useDebugValue:gm,useDeferredValue:function(l){return sa().memoizedState=l},useTransition:function(){var l=Ob(!1),d=l[0];return l=H3.bind(null,l[1]),sa().memoizedState=l,[d,l]},useMutableSource:function(){},useSyncExternalStore:function(l,d,p){var x=dn,j=sa();if(an){if(p===void 0)throw Error(n(407));p=p()}else{if(p=d(),$n===null)throw Error(n(349));(wo&30)!==0||Mb(x,d,p)}j.memoizedState=p;var S={value:p,getSnapshot:d};return j.queue=S,Lb(Ib.bind(null,x,S,l),[l]),x.flags|=2048,Gc(9,Ab.bind(null,x,S,p,d),void 0,null),p},useId:function(){var l=sa(),d=$n.identifierPrefix;if(an){var p=Ta,x=Ea;p=(x&~(1<<32-Es(x)-1)).toString(32)+p,d=":"+d+"R"+p,p=Kc++,0<p&&(d+="H"+p.toString(32)),d+=":"}else p=V3++,d=":"+d+"r"+p.toString(32)+":";return l.memoizedState=d},unstable_isNewReconciler:!1},q3={readContext:ur,useCallback:Bb,useContext:ur,useEffect:mm,useImperativeHandle:$b,useInsertionEffect:_b,useLayoutEffect:zb,useMemo:Vb,useReducer:fm,useRef:Db,useState:function(){return fm(qc)},useDebugValue:gm,useDeferredValue:function(l){var d=hr();return Hb(d,On.memoizedState,l)},useTransition:function(){var l=fm(qc)[0],d=hr().memoizedState;return[l,d]},useMutableSource:Eb,useSyncExternalStore:Tb,useId:Wb,unstable_isNewReconciler:!1},G3={readContext:ur,useCallback:Bb,useContext:ur,useEffect:mm,useImperativeHandle:$b,useInsertionEffect:_b,useLayoutEffect:zb,useMemo:Vb,useReducer:pm,useRef:Db,useState:function(){return pm(qc)},useDebugValue:gm,useDeferredValue:function(l){var d=hr();return On===null?d.memoizedState=l:Hb(d,On.memoizedState,l)},useTransition:function(){var l=pm(qc)[0],d=hr().memoizedState;return[l,d]},useMutableSource:Eb,useSyncExternalStore:Tb,useId:Wb,unstable_isNewReconciler:!1};function Rr(l,d){if(l&&l.defaultProps){d=B({},d),l=l.defaultProps;for(var p in l)d[p]===void 0&&(d[p]=l[p]);return d}return d}function xm(l,d,p,x){d=l.memoizedState,p=p(x,d),p=p==null?d:B({},d,p),l.memoizedState=p,l.lanes===0&&(l.updateQueue.baseState=p)}var _u={isMounted:function(l){return(l=l._reactInternals)?jr(l)===l:!1},enqueueSetState:function(l,d,p){l=l._reactInternals;var x=Ps(),j=mi(l),S=Aa(x,j);S.payload=d,p!=null&&(S.callback=p),d=ui(l,S,j),d!==null&&(Lr(d,l,j,x),Mu(d,l,j))},enqueueReplaceState:function(l,d,p){l=l._reactInternals;var x=Ps(),j=mi(l),S=Aa(x,j);S.tag=1,S.payload=d,p!=null&&(S.callback=p),d=ui(l,S,j),d!==null&&(Lr(d,l,j,x),Mu(d,l,j))},enqueueForceUpdate:function(l,d){l=l._reactInternals;var p=Ps(),x=mi(l),j=Aa(p,x);j.tag=2,d!=null&&(j.callback=d),d=ui(l,j,x),d!==null&&(Lr(d,l,x,p),Mu(d,l,x))}};function Gb(l,d,p,x,j,S,A){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(x,S,A):d.prototype&&d.prototype.isPureReactComponent?!Oc(p,x)||!Oc(j,S):!0}function Jb(l,d,p){var x=!1,j=li,S=d.contextType;return typeof S=="object"&&S!==null?S=ur(S):(j=Fs(d)?xo:us.current,x=d.contextTypes,S=(x=x!=null)?jl(l,j):li),d=new d(p,S),l.memoizedState=d.state!==null&&d.state!==void 0?d.state:null,d.updater=_u,l.stateNode=d,d._reactInternals=l,x&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=j,l.__reactInternalMemoizedMaskedChildContext=S),d}function Yb(l,d,p,x){l=d.state,typeof d.componentWillReceiveProps=="function"&&d.componentWillReceiveProps(p,x),typeof d.UNSAFE_componentWillReceiveProps=="function"&&d.UNSAFE_componentWillReceiveProps(p,x),d.state!==l&&_u.enqueueReplaceState(d,d.state,null)}function ym(l,d,p,x){var j=l.stateNode;j.props=p,j.state=l.memoizedState,j.refs={},rm(l);var S=d.contextType;typeof S=="object"&&S!==null?j.context=ur(S):(S=Fs(d)?xo:us.current,j.context=jl(l,S)),j.state=l.memoizedState,S=d.getDerivedStateFromProps,typeof S=="function"&&(xm(l,d,S,p),j.state=l.memoizedState),typeof d.getDerivedStateFromProps=="function"||typeof j.getSnapshotBeforeUpdate=="function"||typeof j.UNSAFE_componentWillMount!="function"&&typeof j.componentWillMount!="function"||(d=j.state,typeof j.componentWillMount=="function"&&j.componentWillMount(),typeof j.UNSAFE_componentWillMount=="function"&&j.UNSAFE_componentWillMount(),d!==j.state&&_u.enqueueReplaceState(j,j.state,null),Au(l,p,j,x),j.state=l.memoizedState),typeof j.componentDidMount=="function"&&(l.flags|=4194308)}function Il(l,d){try{var p="",x=d;do p+=Ae(x),x=x.return;while(x);var j=p}catch(S){j=`
Error generating stack: `+S.message+`
`+S.stack}return{value:l,source:d,stack:j,digest:null}}function bm(l,d,p){return{value:l,source:null,stack:p??null,digest:d??null}}function vm(l,d){try{console.error(d.value)}catch(p){setTimeout(function(){throw p})}}var J3=typeof WeakMap=="function"?WeakMap:Map;function Qb(l,d,p){p=Aa(-1,p),p.tag=3,p.payload={element:null};var x=d.value;return p.callback=function(){Wu||(Wu=!0,Dm=x),vm(l,d)},p}function Xb(l,d,p){p=Aa(-1,p),p.tag=3;var x=l.type.getDerivedStateFromError;if(typeof x=="function"){var j=d.value;p.payload=function(){return x(j)},p.callback=function(){vm(l,d)}}var S=l.stateNode;return S!==null&&typeof S.componentDidCatch=="function"&&(p.callback=function(){vm(l,d),typeof x!="function"&&(fi===null?fi=new Set([this]):fi.add(this));var A=d.stack;this.componentDidCatch(d.value,{componentStack:A!==null?A:""})}),p}function Zb(l,d,p){var x=l.pingCache;if(x===null){x=l.pingCache=new J3;var j=new Set;x.set(d,j)}else j=x.get(d),j===void 0&&(j=new Set,x.set(d,j));j.has(p)||(j.add(p),l=cE.bind(null,l,d,p),d.then(l,l))}function ev(l){do{var d;if((d=l.tag===13)&&(d=l.memoizedState,d=d!==null?d.dehydrated!==null:!0),d)return l;l=l.return}while(l!==null);return null}function tv(l,d,p,x,j){return(l.mode&1)===0?(l===d?l.flags|=65536:(l.flags|=128,p.flags|=131072,p.flags&=-52805,p.tag===1&&(p.alternate===null?p.tag=17:(d=Aa(-1,1),d.tag=2,ui(p,d,1))),p.lanes|=1),l):(l.flags|=65536,l.lanes=j,l)}var Y3=I.ReactCurrentOwner,$s=!1;function Is(l,d,p,x){d.child=l===null?Nb(d,null,p,x):El(d,l.child,p,x)}function nv(l,d,p,x,j){p=p.render;var S=d.ref;return Ml(d,j),x=um(l,d,p,x,S,j),p=hm(),l!==null&&!$s?(d.updateQueue=l.updateQueue,d.flags&=-2053,l.lanes&=~j,Ia(l,d,j)):(an&&p&&Gp(d),d.flags|=1,Is(l,d,x,j),d.child)}function sv(l,d,p,x,j){if(l===null){var S=p.type;return typeof S=="function"&&!Vm(S)&&S.defaultProps===void 0&&p.compare===null&&p.defaultProps===void 0?(d.tag=15,d.type=S,rv(l,d,S,x,j)):(l=Yu(p.type,null,x,d,d.mode,j),l.ref=d.ref,l.return=d,d.child=l)}if(S=l.child,(l.lanes&j)===0){var A=S.memoizedProps;if(p=p.compare,p=p!==null?p:Oc,p(A,x)&&l.ref===d.ref)return Ia(l,d,j)}return d.flags|=1,l=xi(S,x),l.ref=d.ref,l.return=d,d.child=l}function rv(l,d,p,x,j){if(l!==null){var S=l.memoizedProps;if(Oc(S,x)&&l.ref===d.ref)if($s=!1,d.pendingProps=x=S,(l.lanes&j)!==0)(l.flags&131072)!==0&&($s=!0);else return d.lanes=l.lanes,Ia(l,d,j)}return Nm(l,d,p,x,j)}function av(l,d,p){var x=d.pendingProps,j=x.children,S=l!==null?l.memoizedState:null;if(x.mode==="hidden")if((d.mode&1)===0)d.memoizedState={baseLanes:0,cachePool:null,transitions:null},qt(Rl,tr),tr|=p;else{if((p&1073741824)===0)return l=S!==null?S.baseLanes|p:p,d.lanes=d.childLanes=1073741824,d.memoizedState={baseLanes:l,cachePool:null,transitions:null},d.updateQueue=null,qt(Rl,tr),tr|=l,null;d.memoizedState={baseLanes:0,cachePool:null,transitions:null},x=S!==null?S.baseLanes:p,qt(Rl,tr),tr|=x}else S!==null?(x=S.baseLanes|p,d.memoizedState=null):x=p,qt(Rl,tr),tr|=x;return Is(l,d,j,p),d.child}function iv(l,d){var p=d.ref;(l===null&&p!==null||l!==null&&l.ref!==p)&&(d.flags|=512,d.flags|=2097152)}function Nm(l,d,p,x,j){var S=Fs(p)?xo:us.current;return S=jl(d,S),Ml(d,j),p=um(l,d,p,x,S,j),x=hm(),l!==null&&!$s?(d.updateQueue=l.updateQueue,d.flags&=-2053,l.lanes&=~j,Ia(l,d,j)):(an&&x&&Gp(d),d.flags|=1,Is(l,d,p,j),d.child)}function ov(l,d,p,x,j){if(Fs(p)){var S=!0;Nu(d)}else S=!1;if(Ml(d,j),d.stateNode===null)Fu(l,d),Jb(d,p,x),ym(d,p,x,j),x=!0;else if(l===null){var A=d.stateNode,V=d.memoizedProps;A.props=V;var Q=A.context,ge=p.contextType;typeof ge=="object"&&ge!==null?ge=ur(ge):(ge=Fs(p)?xo:us.current,ge=jl(d,ge));var Se=p.getDerivedStateFromProps,Ce=typeof Se=="function"||typeof A.getSnapshotBeforeUpdate=="function";Ce||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(V!==x||Q!==ge)&&Yb(d,A,x,ge),di=!1;var je=d.memoizedState;A.state=je,Au(d,x,A,j),Q=d.memoizedState,V!==x||je!==Q||zs.current||di?(typeof Se=="function"&&(xm(d,p,Se,x),Q=d.memoizedState),(V=di||Gb(d,p,V,x,je,Q,ge))?(Ce||typeof A.UNSAFE_componentWillMount!="function"&&typeof A.componentWillMount!="function"||(typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount()),typeof A.componentDidMount=="function"&&(d.flags|=4194308)):(typeof A.componentDidMount=="function"&&(d.flags|=4194308),d.memoizedProps=x,d.memoizedState=Q),A.props=x,A.state=Q,A.context=ge,x=V):(typeof A.componentDidMount=="function"&&(d.flags|=4194308),x=!1)}else{A=d.stateNode,jb(l,d),V=d.memoizedProps,ge=d.type===d.elementType?V:Rr(d.type,V),A.props=ge,Ce=d.pendingProps,je=A.context,Q=p.contextType,typeof Q=="object"&&Q!==null?Q=ur(Q):(Q=Fs(p)?xo:us.current,Q=jl(d,Q));var ze=p.getDerivedStateFromProps;(Se=typeof ze=="function"||typeof A.getSnapshotBeforeUpdate=="function")||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(V!==Ce||je!==Q)&&Yb(d,A,x,Q),di=!1,je=d.memoizedState,A.state=je,Au(d,x,A,j);var He=d.memoizedState;V!==Ce||je!==He||zs.current||di?(typeof ze=="function"&&(xm(d,p,ze,x),He=d.memoizedState),(ge=di||Gb(d,p,ge,x,je,He,Q)||!1)?(Se||typeof A.UNSAFE_componentWillUpdate!="function"&&typeof A.componentWillUpdate!="function"||(typeof A.componentWillUpdate=="function"&&A.componentWillUpdate(x,He,Q),typeof A.UNSAFE_componentWillUpdate=="function"&&A.UNSAFE_componentWillUpdate(x,He,Q)),typeof A.componentDidUpdate=="function"&&(d.flags|=4),typeof A.getSnapshotBeforeUpdate=="function"&&(d.flags|=1024)):(typeof A.componentDidUpdate!="function"||V===l.memoizedProps&&je===l.memoizedState||(d.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||V===l.memoizedProps&&je===l.memoizedState||(d.flags|=1024),d.memoizedProps=x,d.memoizedState=He),A.props=x,A.state=He,A.context=Q,x=ge):(typeof A.componentDidUpdate!="function"||V===l.memoizedProps&&je===l.memoizedState||(d.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||V===l.memoizedProps&&je===l.memoizedState||(d.flags|=1024),x=!1)}return wm(l,d,p,x,S,j)}function wm(l,d,p,x,j,S){iv(l,d);var A=(d.flags&128)!==0;if(!x&&!A)return j&&hb(d,p,!1),Ia(l,d,S);x=d.stateNode,Y3.current=d;var V=A&&typeof p.getDerivedStateFromError!="function"?null:x.render();return d.flags|=1,l!==null&&A?(d.child=El(d,l.child,null,S),d.child=El(d,null,V,S)):Is(l,d,V,S),d.memoizedState=x.state,j&&hb(d,p,!0),d.child}function lv(l){var d=l.stateNode;d.pendingContext?db(l,d.pendingContext,d.pendingContext!==d.context):d.context&&db(l,d.context,!1),am(l,d.containerInfo)}function cv(l,d,p,x,j){return Cl(),Xp(j),d.flags|=256,Is(l,d,p,x),d.child}var jm={dehydrated:null,treeContext:null,retryLane:0};function km(l){return{baseLanes:l,cachePool:null,transitions:null}}function dv(l,d,p){var x=d.pendingProps,j=cn.current,S=!1,A=(d.flags&128)!==0,V;if((V=A)||(V=l!==null&&l.memoizedState===null?!1:(j&2)!==0),V?(S=!0,d.flags&=-129):(l===null||l.memoizedState!==null)&&(j|=1),qt(cn,j&1),l===null)return Qp(d),l=d.memoizedState,l!==null&&(l=l.dehydrated,l!==null)?((d.mode&1)===0?d.lanes=1:l.data==="$!"?d.lanes=8:d.lanes=1073741824,null):(A=x.children,l=x.fallback,S?(x=d.mode,S=d.child,A={mode:"hidden",children:A},(x&1)===0&&S!==null?(S.childLanes=0,S.pendingProps=A):S=Qu(A,x,0,null),l=Eo(l,x,p,null),S.return=d,l.return=d,S.sibling=l,d.child=S,d.child.memoizedState=km(p),d.memoizedState=jm,l):Sm(d,A));if(j=l.memoizedState,j!==null&&(V=j.dehydrated,V!==null))return Q3(l,d,A,x,V,j,p);if(S){S=x.fallback,A=d.mode,j=l.child,V=j.sibling;var Q={mode:"hidden",children:x.children};return(A&1)===0&&d.child!==j?(x=d.child,x.childLanes=0,x.pendingProps=Q,d.deletions=null):(x=xi(j,Q),x.subtreeFlags=j.subtreeFlags&14680064),V!==null?S=xi(V,S):(S=Eo(S,A,p,null),S.flags|=2),S.return=d,x.return=d,x.sibling=S,d.child=x,x=S,S=d.child,A=l.child.memoizedState,A=A===null?km(p):{baseLanes:A.baseLanes|p,cachePool:null,transitions:A.transitions},S.memoizedState=A,S.childLanes=l.childLanes&~p,d.memoizedState=jm,x}return S=l.child,l=S.sibling,x=xi(S,{mode:"visible",children:x.children}),(d.mode&1)===0&&(x.lanes=p),x.return=d,x.sibling=null,l!==null&&(p=d.deletions,p===null?(d.deletions=[l],d.flags|=16):p.push(l)),d.child=x,d.memoizedState=null,x}function Sm(l,d){return d=Qu({mode:"visible",children:d},l.mode,0,null),d.return=l,l.child=d}function zu(l,d,p,x){return x!==null&&Xp(x),El(d,l.child,null,p),l=Sm(d,d.pendingProps.children),l.flags|=2,d.memoizedState=null,l}function Q3(l,d,p,x,j,S,A){if(p)return d.flags&256?(d.flags&=-257,x=bm(Error(n(422))),zu(l,d,A,x)):d.memoizedState!==null?(d.child=l.child,d.flags|=128,null):(S=x.fallback,j=d.mode,x=Qu({mode:"visible",children:x.children},j,0,null),S=Eo(S,j,A,null),S.flags|=2,x.return=d,S.return=d,x.sibling=S,d.child=x,(d.mode&1)!==0&&El(d,l.child,null,A),d.child.memoizedState=km(A),d.memoizedState=jm,S);if((d.mode&1)===0)return zu(l,d,A,null);if(j.data==="$!"){if(x=j.nextSibling&&j.nextSibling.dataset,x)var V=x.dgst;return x=V,S=Error(n(419)),x=bm(S,x,void 0),zu(l,d,A,x)}if(V=(A&l.childLanes)!==0,$s||V){if(x=$n,x!==null){switch(A&-A){case 4:j=2;break;case 16:j=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:j=32;break;case 536870912:j=268435456;break;default:j=0}j=(j&(x.suspendedLanes|A))!==0?0:j,j!==0&&j!==S.retryLane&&(S.retryLane=j,Ma(l,j),Lr(x,l,j,-1))}return Bm(),x=bm(Error(n(421))),zu(l,d,A,x)}return j.data==="$?"?(d.flags|=128,d.child=l.child,d=dE.bind(null,l),j._reactRetry=d,null):(l=S.treeContext,er=ii(j.nextSibling),Zs=d,an=!0,Pr=null,l!==null&&(cr[dr++]=Ea,cr[dr++]=Ta,cr[dr++]=yo,Ea=l.id,Ta=l.overflow,yo=d),d=Sm(d,x.children),d.flags|=4096,d)}function uv(l,d,p){l.lanes|=d;var x=l.alternate;x!==null&&(x.lanes|=d),nm(l.return,d,p)}function Cm(l,d,p,x,j){var S=l.memoizedState;S===null?l.memoizedState={isBackwards:d,rendering:null,renderingStartTime:0,last:x,tail:p,tailMode:j}:(S.isBackwards=d,S.rendering=null,S.renderingStartTime=0,S.last=x,S.tail=p,S.tailMode=j)}function hv(l,d,p){var x=d.pendingProps,j=x.revealOrder,S=x.tail;if(Is(l,d,x.children,p),x=cn.current,(x&2)!==0)x=x&1|2,d.flags|=128;else{if(l!==null&&(l.flags&128)!==0)e:for(l=d.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&uv(l,p,d);else if(l.tag===19)uv(l,p,d);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===d)break e;for(;l.sibling===null;){if(l.return===null||l.return===d)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}x&=1}if(qt(cn,x),(d.mode&1)===0)d.memoizedState=null;else switch(j){case"forwards":for(p=d.child,j=null;p!==null;)l=p.alternate,l!==null&&Iu(l)===null&&(j=p),p=p.sibling;p=j,p===null?(j=d.child,d.child=null):(j=p.sibling,p.sibling=null),Cm(d,!1,j,p,S);break;case"backwards":for(p=null,j=d.child,d.child=null;j!==null;){if(l=j.alternate,l!==null&&Iu(l)===null){d.child=j;break}l=j.sibling,j.sibling=p,p=j,j=l}Cm(d,!0,p,null,S);break;case"together":Cm(d,!1,null,null,void 0);break;default:d.memoizedState=null}return d.child}function Fu(l,d){(d.mode&1)===0&&l!==null&&(l.alternate=null,d.alternate=null,d.flags|=2)}function Ia(l,d,p){if(l!==null&&(d.dependencies=l.dependencies),jo|=d.lanes,(p&d.childLanes)===0)return null;if(l!==null&&d.child!==l.child)throw Error(n(153));if(d.child!==null){for(l=d.child,p=xi(l,l.pendingProps),d.child=p,p.return=d;l.sibling!==null;)l=l.sibling,p=p.sibling=xi(l,l.pendingProps),p.return=d;p.sibling=null}return d.child}function X3(l,d,p){switch(d.tag){case 3:lv(d),Cl();break;case 5:Cb(d);break;case 1:Fs(d.type)&&Nu(d);break;case 4:am(d,d.stateNode.containerInfo);break;case 10:var x=d.type._context,j=d.memoizedProps.value;qt(Eu,x._currentValue),x._currentValue=j;break;case 13:if(x=d.memoizedState,x!==null)return x.dehydrated!==null?(qt(cn,cn.current&1),d.flags|=128,null):(p&d.child.childLanes)!==0?dv(l,d,p):(qt(cn,cn.current&1),l=Ia(l,d,p),l!==null?l.sibling:null);qt(cn,cn.current&1);break;case 19:if(x=(p&d.childLanes)!==0,(l.flags&128)!==0){if(x)return hv(l,d,p);d.flags|=128}if(j=d.memoizedState,j!==null&&(j.rendering=null,j.tail=null,j.lastEffect=null),qt(cn,cn.current),x)break;return null;case 22:case 23:return d.lanes=0,av(l,d,p)}return Ia(l,d,p)}var fv,Em,pv,mv;fv=function(l,d){for(var p=d.child;p!==null;){if(p.tag===5||p.tag===6)l.appendChild(p.stateNode);else if(p.tag!==4&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===d)break;for(;p.sibling===null;){if(p.return===null||p.return===d)return;p=p.return}p.sibling.return=p.return,p=p.sibling}},Em=function(){},pv=function(l,d,p,x){var j=l.memoizedProps;if(j!==x){l=d.stateNode,No(na.current);var S=null;switch(p){case"input":j=rt(l,j),x=rt(l,x),S=[];break;case"select":j=B({},j,{value:void 0}),x=B({},x,{value:void 0}),S=[];break;case"textarea":j=Kt(l,j),x=Kt(l,x),S=[];break;default:typeof j.onClick!="function"&&typeof x.onClick=="function"&&(l.onclick=yu)}U(p,x);var A;p=null;for(ge in j)if(!x.hasOwnProperty(ge)&&j.hasOwnProperty(ge)&&j[ge]!=null)if(ge==="style"){var V=j[ge];for(A in V)V.hasOwnProperty(A)&&(p||(p={}),p[A]="")}else ge!=="dangerouslySetInnerHTML"&&ge!=="children"&&ge!=="suppressContentEditableWarning"&&ge!=="suppressHydrationWarning"&&ge!=="autoFocus"&&(a.hasOwnProperty(ge)?S||(S=[]):(S=S||[]).push(ge,null));for(ge in x){var Q=x[ge];if(V=j!=null?j[ge]:void 0,x.hasOwnProperty(ge)&&Q!==V&&(Q!=null||V!=null))if(ge==="style")if(V){for(A in V)!V.hasOwnProperty(A)||Q&&Q.hasOwnProperty(A)||(p||(p={}),p[A]="");for(A in Q)Q.hasOwnProperty(A)&&V[A]!==Q[A]&&(p||(p={}),p[A]=Q[A])}else p||(S||(S=[]),S.push(ge,p)),p=Q;else ge==="dangerouslySetInnerHTML"?(Q=Q?Q.__html:void 0,V=V?V.__html:void 0,Q!=null&&V!==Q&&(S=S||[]).push(ge,Q)):ge==="children"?typeof Q!="string"&&typeof Q!="number"||(S=S||[]).push(ge,""+Q):ge!=="suppressContentEditableWarning"&&ge!=="suppressHydrationWarning"&&(a.hasOwnProperty(ge)?(Q!=null&&ge==="onScroll"&&Xt("scroll",l),S||V===Q||(S=[])):(S=S||[]).push(ge,Q))}p&&(S=S||[]).push("style",p);var ge=S;(d.updateQueue=ge)&&(d.flags|=4)}},mv=function(l,d,p,x){p!==x&&(d.flags|=4)};function Jc(l,d){if(!an)switch(l.tailMode){case"hidden":d=l.tail;for(var p=null;d!==null;)d.alternate!==null&&(p=d),d=d.sibling;p===null?l.tail=null:p.sibling=null;break;case"collapsed":p=l.tail;for(var x=null;p!==null;)p.alternate!==null&&(x=p),p=p.sibling;x===null?d||l.tail===null?l.tail=null:l.tail.sibling=null:x.sibling=null}}function fs(l){var d=l.alternate!==null&&l.alternate.child===l.child,p=0,x=0;if(d)for(var j=l.child;j!==null;)p|=j.lanes|j.childLanes,x|=j.subtreeFlags&14680064,x|=j.flags&14680064,j.return=l,j=j.sibling;else for(j=l.child;j!==null;)p|=j.lanes|j.childLanes,x|=j.subtreeFlags,x|=j.flags,j.return=l,j=j.sibling;return l.subtreeFlags|=x,l.childLanes=p,d}function Z3(l,d,p){var x=d.pendingProps;switch(Jp(d),d.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return fs(d),null;case 1:return Fs(d.type)&&vu(),fs(d),null;case 3:return x=d.stateNode,Al(),Zt(zs),Zt(us),lm(),x.pendingContext&&(x.context=x.pendingContext,x.pendingContext=null),(l===null||l.child===null)&&(Su(d)?d.flags|=4:l===null||l.memoizedState.isDehydrated&&(d.flags&256)===0||(d.flags|=1024,Pr!==null&&(zm(Pr),Pr=null))),Em(l,d),fs(d),null;case 5:im(d);var j=No(Wc.current);if(p=d.type,l!==null&&d.stateNode!=null)pv(l,d,p,x,j),l.ref!==d.ref&&(d.flags|=512,d.flags|=2097152);else{if(!x){if(d.stateNode===null)throw Error(n(166));return fs(d),null}if(l=No(na.current),Su(d)){x=d.stateNode,p=d.type;var S=d.memoizedProps;switch(x[ta]=d,x[Fc]=S,l=(d.mode&1)!==0,p){case"dialog":Xt("cancel",x),Xt("close",x);break;case"iframe":case"object":case"embed":Xt("load",x);break;case"video":case"audio":for(j=0;j<Lc.length;j++)Xt(Lc[j],x);break;case"source":Xt("error",x);break;case"img":case"image":case"link":Xt("error",x),Xt("load",x);break;case"details":Xt("toggle",x);break;case"input":vt(x,S),Xt("invalid",x);break;case"select":x._wrapperState={wasMultiple:!!S.multiple},Xt("invalid",x);break;case"textarea":Ns(x,S),Xt("invalid",x)}U(p,S),j=null;for(var A in S)if(S.hasOwnProperty(A)){var V=S[A];A==="children"?typeof V=="string"?x.textContent!==V&&(S.suppressHydrationWarning!==!0&&xu(x.textContent,V,l),j=["children",V]):typeof V=="number"&&x.textContent!==""+V&&(S.suppressHydrationWarning!==!0&&xu(x.textContent,V,l),j=["children",""+V]):a.hasOwnProperty(A)&&V!=null&&A==="onScroll"&&Xt("scroll",x)}switch(p){case"input":ce(x),In(x,S,!0);break;case"textarea":ce(x),is(x);break;case"select":case"option":break;default:typeof S.onClick=="function"&&(x.onclick=yu)}x=j,d.updateQueue=x,x!==null&&(d.flags|=4)}else{A=j.nodeType===9?j:j.ownerDocument,l==="http://www.w3.org/1999/xhtml"&&(l=Ls(p)),l==="http://www.w3.org/1999/xhtml"?p==="script"?(l=A.createElement("div"),l.innerHTML="<script><\/script>",l=l.removeChild(l.firstChild)):typeof x.is=="string"?l=A.createElement(p,{is:x.is}):(l=A.createElement(p),p==="select"&&(A=l,x.multiple?A.multiple=!0:x.size&&(A.size=x.size))):l=A.createElementNS(l,p),l[ta]=d,l[Fc]=x,fv(l,d,!1,!1),d.stateNode=l;e:{switch(A=_e(p,x),p){case"dialog":Xt("cancel",l),Xt("close",l),j=x;break;case"iframe":case"object":case"embed":Xt("load",l),j=x;break;case"video":case"audio":for(j=0;j<Lc.length;j++)Xt(Lc[j],l);j=x;break;case"source":Xt("error",l),j=x;break;case"img":case"image":case"link":Xt("error",l),Xt("load",l),j=x;break;case"details":Xt("toggle",l),j=x;break;case"input":vt(l,x),j=rt(l,x),Xt("invalid",l);break;case"option":j=x;break;case"select":l._wrapperState={wasMultiple:!!x.multiple},j=B({},x,{value:void 0}),Xt("invalid",l);break;case"textarea":Ns(l,x),j=Kt(l,x),Xt("invalid",l);break;default:j=x}U(p,j),V=j;for(S in V)if(V.hasOwnProperty(S)){var Q=V[S];S==="style"?hn(l,Q):S==="dangerouslySetInnerHTML"?(Q=Q?Q.__html:void 0,Q!=null&&qs(l,Q)):S==="children"?typeof Q=="string"?(p!=="textarea"||Q!=="")&&un(l,Q):typeof Q=="number"&&un(l,""+Q):S!=="suppressContentEditableWarning"&&S!=="suppressHydrationWarning"&&S!=="autoFocus"&&(a.hasOwnProperty(S)?Q!=null&&S==="onScroll"&&Xt("scroll",l):Q!=null&&E(l,S,Q,A))}switch(p){case"input":ce(l),In(l,x,!1);break;case"textarea":ce(l),is(l);break;case"option":x.value!=null&&l.setAttribute("value",""+Y(x.value));break;case"select":l.multiple=!!x.multiple,S=x.value,S!=null?Mt(l,!!x.multiple,S,!1):x.defaultValue!=null&&Mt(l,!!x.multiple,x.defaultValue,!0);break;default:typeof j.onClick=="function"&&(l.onclick=yu)}switch(p){case"button":case"input":case"select":case"textarea":x=!!x.autoFocus;break e;case"img":x=!0;break e;default:x=!1}}x&&(d.flags|=4)}d.ref!==null&&(d.flags|=512,d.flags|=2097152)}return fs(d),null;case 6:if(l&&d.stateNode!=null)mv(l,d,l.memoizedProps,x);else{if(typeof x!="string"&&d.stateNode===null)throw Error(n(166));if(p=No(Wc.current),No(na.current),Su(d)){if(x=d.stateNode,p=d.memoizedProps,x[ta]=d,(S=x.nodeValue!==p)&&(l=Zs,l!==null))switch(l.tag){case 3:xu(x.nodeValue,p,(l.mode&1)!==0);break;case 5:l.memoizedProps.suppressHydrationWarning!==!0&&xu(x.nodeValue,p,(l.mode&1)!==0)}S&&(d.flags|=4)}else x=(p.nodeType===9?p:p.ownerDocument).createTextNode(x),x[ta]=d,d.stateNode=x}return fs(d),null;case 13:if(Zt(cn),x=d.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(an&&er!==null&&(d.mode&1)!==0&&(d.flags&128)===0)yb(),Cl(),d.flags|=98560,S=!1;else if(S=Su(d),x!==null&&x.dehydrated!==null){if(l===null){if(!S)throw Error(n(318));if(S=d.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));S[ta]=d}else Cl(),(d.flags&128)===0&&(d.memoizedState=null),d.flags|=4;fs(d),S=!1}else Pr!==null&&(zm(Pr),Pr=null),S=!0;if(!S)return d.flags&65536?d:null}return(d.flags&128)!==0?(d.lanes=p,d):(x=x!==null,x!==(l!==null&&l.memoizedState!==null)&&x&&(d.child.flags|=8192,(d.mode&1)!==0&&(l===null||(cn.current&1)!==0?Dn===0&&(Dn=3):Bm())),d.updateQueue!==null&&(d.flags|=4),fs(d),null);case 4:return Al(),Em(l,d),l===null&&_c(d.stateNode.containerInfo),fs(d),null;case 10:return tm(d.type._context),fs(d),null;case 17:return Fs(d.type)&&vu(),fs(d),null;case 19:if(Zt(cn),S=d.memoizedState,S===null)return fs(d),null;if(x=(d.flags&128)!==0,A=S.rendering,A===null)if(x)Jc(S,!1);else{if(Dn!==0||l!==null&&(l.flags&128)!==0)for(l=d.child;l!==null;){if(A=Iu(l),A!==null){for(d.flags|=128,Jc(S,!1),x=A.updateQueue,x!==null&&(d.updateQueue=x,d.flags|=4),d.subtreeFlags=0,x=p,p=d.child;p!==null;)S=p,l=x,S.flags&=14680066,A=S.alternate,A===null?(S.childLanes=0,S.lanes=l,S.child=null,S.subtreeFlags=0,S.memoizedProps=null,S.memoizedState=null,S.updateQueue=null,S.dependencies=null,S.stateNode=null):(S.childLanes=A.childLanes,S.lanes=A.lanes,S.child=A.child,S.subtreeFlags=0,S.deletions=null,S.memoizedProps=A.memoizedProps,S.memoizedState=A.memoizedState,S.updateQueue=A.updateQueue,S.type=A.type,l=A.dependencies,S.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext}),p=p.sibling;return qt(cn,cn.current&1|2),d.child}l=l.sibling}S.tail!==null&&Bt()>Ol&&(d.flags|=128,x=!0,Jc(S,!1),d.lanes=4194304)}else{if(!x)if(l=Iu(A),l!==null){if(d.flags|=128,x=!0,p=l.updateQueue,p!==null&&(d.updateQueue=p,d.flags|=4),Jc(S,!0),S.tail===null&&S.tailMode==="hidden"&&!A.alternate&&!an)return fs(d),null}else 2*Bt()-S.renderingStartTime>Ol&&p!==1073741824&&(d.flags|=128,x=!0,Jc(S,!1),d.lanes=4194304);S.isBackwards?(A.sibling=d.child,d.child=A):(p=S.last,p!==null?p.sibling=A:d.child=A,S.last=A)}return S.tail!==null?(d=S.tail,S.rendering=d,S.tail=d.sibling,S.renderingStartTime=Bt(),d.sibling=null,p=cn.current,qt(cn,x?p&1|2:p&1),d):(fs(d),null);case 22:case 23:return $m(),x=d.memoizedState!==null,l!==null&&l.memoizedState!==null!==x&&(d.flags|=8192),x&&(d.mode&1)!==0?(tr&1073741824)!==0&&(fs(d),d.subtreeFlags&6&&(d.flags|=8192)):fs(d),null;case 24:return null;case 25:return null}throw Error(n(156,d.tag))}function eE(l,d){switch(Jp(d),d.tag){case 1:return Fs(d.type)&&vu(),l=d.flags,l&65536?(d.flags=l&-65537|128,d):null;case 3:return Al(),Zt(zs),Zt(us),lm(),l=d.flags,(l&65536)!==0&&(l&128)===0?(d.flags=l&-65537|128,d):null;case 5:return im(d),null;case 13:if(Zt(cn),l=d.memoizedState,l!==null&&l.dehydrated!==null){if(d.alternate===null)throw Error(n(340));Cl()}return l=d.flags,l&65536?(d.flags=l&-65537|128,d):null;case 19:return Zt(cn),null;case 4:return Al(),null;case 10:return tm(d.type._context),null;case 22:case 23:return $m(),null;case 24:return null;default:return null}}var $u=!1,ps=!1,tE=typeof WeakSet=="function"?WeakSet:Set,Ve=null;function Pl(l,d){var p=l.ref;if(p!==null)if(typeof p=="function")try{p(null)}catch(x){mn(l,d,x)}else p.current=null}function Tm(l,d,p){try{p()}catch(x){mn(l,d,x)}}var gv=!1;function nE(l,d){if($p=hl,l=Gy(),Pp(l)){if("selectionStart"in l)var p={start:l.selectionStart,end:l.selectionEnd};else e:{p=(p=l.ownerDocument)&&p.defaultView||window;var x=p.getSelection&&p.getSelection();if(x&&x.rangeCount!==0){p=x.anchorNode;var j=x.anchorOffset,S=x.focusNode;x=x.focusOffset;try{p.nodeType,S.nodeType}catch{p=null;break e}var A=0,V=-1,Q=-1,ge=0,Se=0,Ce=l,je=null;t:for(;;){for(var ze;Ce!==p||j!==0&&Ce.nodeType!==3||(V=A+j),Ce!==S||x!==0&&Ce.nodeType!==3||(Q=A+x),Ce.nodeType===3&&(A+=Ce.nodeValue.length),(ze=Ce.firstChild)!==null;)je=Ce,Ce=ze;for(;;){if(Ce===l)break t;if(je===p&&++ge===j&&(V=A),je===S&&++Se===x&&(Q=A),(ze=Ce.nextSibling)!==null)break;Ce=je,je=Ce.parentNode}Ce=ze}p=V===-1||Q===-1?null:{start:V,end:Q}}else p=null}p=p||{start:0,end:0}}else p=null;for(Bp={focusedElem:l,selectionRange:p},hl=!1,Ve=d;Ve!==null;)if(d=Ve,l=d.child,(d.subtreeFlags&1028)!==0&&l!==null)l.return=d,Ve=l;else for(;Ve!==null;){d=Ve;try{var He=d.alternate;if((d.flags&1024)!==0)switch(d.tag){case 0:case 11:case 15:break;case 1:if(He!==null){var qe=He.memoizedProps,jn=He.memoizedState,le=d.stateNode,ne=le.getSnapshotBeforeUpdate(d.elementType===d.type?qe:Rr(d.type,qe),jn);le.__reactInternalSnapshotBeforeUpdate=ne}break;case 3:var de=d.stateNode.containerInfo;de.nodeType===1?de.textContent="":de.nodeType===9&&de.documentElement&&de.removeChild(de.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(Pe){mn(d,d.return,Pe)}if(l=d.sibling,l!==null){l.return=d.return,Ve=l;break}Ve=d.return}return He=gv,gv=!1,He}function Yc(l,d,p){var x=d.updateQueue;if(x=x!==null?x.lastEffect:null,x!==null){var j=x=x.next;do{if((j.tag&l)===l){var S=j.destroy;j.destroy=void 0,S!==void 0&&Tm(d,p,S)}j=j.next}while(j!==x)}}function Bu(l,d){if(d=d.updateQueue,d=d!==null?d.lastEffect:null,d!==null){var p=d=d.next;do{if((p.tag&l)===l){var x=p.create;p.destroy=x()}p=p.next}while(p!==d)}}function Mm(l){var d=l.ref;if(d!==null){var p=l.stateNode;switch(l.tag){case 5:l=p;break;default:l=p}typeof d=="function"?d(l):d.current=l}}function xv(l){var d=l.alternate;d!==null&&(l.alternate=null,xv(d)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(d=l.stateNode,d!==null&&(delete d[ta],delete d[Fc],delete d[Up],delete d[z3],delete d[F3])),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function yv(l){return l.tag===5||l.tag===3||l.tag===4}function bv(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||yv(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Am(l,d,p){var x=l.tag;if(x===5||x===6)l=l.stateNode,d?p.nodeType===8?p.parentNode.insertBefore(l,d):p.insertBefore(l,d):(p.nodeType===8?(d=p.parentNode,d.insertBefore(l,p)):(d=p,d.appendChild(l)),p=p._reactRootContainer,p!=null||d.onclick!==null||(d.onclick=yu));else if(x!==4&&(l=l.child,l!==null))for(Am(l,d,p),l=l.sibling;l!==null;)Am(l,d,p),l=l.sibling}function Im(l,d,p){var x=l.tag;if(x===5||x===6)l=l.stateNode,d?p.insertBefore(l,d):p.appendChild(l);else if(x!==4&&(l=l.child,l!==null))for(Im(l,d,p),l=l.sibling;l!==null;)Im(l,d,p),l=l.sibling}var Jn=null,Or=!1;function hi(l,d,p){for(p=p.child;p!==null;)vv(l,d,p),p=p.sibling}function vv(l,d,p){if(cs&&typeof cs.onCommitFiberUnmount=="function")try{cs.onCommitFiberUnmount(kr,p)}catch{}switch(p.tag){case 5:ps||Pl(p,d);case 6:var x=Jn,j=Or;Jn=null,hi(l,d,p),Jn=x,Or=j,Jn!==null&&(Or?(l=Jn,p=p.stateNode,l.nodeType===8?l.parentNode.removeChild(p):l.removeChild(p)):Jn.removeChild(p.stateNode));break;case 18:Jn!==null&&(Or?(l=Jn,p=p.stateNode,l.nodeType===8?Wp(l.parentNode,p):l.nodeType===1&&Wp(l,p),Tr(l)):Wp(Jn,p.stateNode));break;case 4:x=Jn,j=Or,Jn=p.stateNode.containerInfo,Or=!0,hi(l,d,p),Jn=x,Or=j;break;case 0:case 11:case 14:case 15:if(!ps&&(x=p.updateQueue,x!==null&&(x=x.lastEffect,x!==null))){j=x=x.next;do{var S=j,A=S.destroy;S=S.tag,A!==void 0&&((S&2)!==0||(S&4)!==0)&&Tm(p,d,A),j=j.next}while(j!==x)}hi(l,d,p);break;case 1:if(!ps&&(Pl(p,d),x=p.stateNode,typeof x.componentWillUnmount=="function"))try{x.props=p.memoizedProps,x.state=p.memoizedState,x.componentWillUnmount()}catch(V){mn(p,d,V)}hi(l,d,p);break;case 21:hi(l,d,p);break;case 22:p.mode&1?(ps=(x=ps)||p.memoizedState!==null,hi(l,d,p),ps=x):hi(l,d,p);break;default:hi(l,d,p)}}function Nv(l){var d=l.updateQueue;if(d!==null){l.updateQueue=null;var p=l.stateNode;p===null&&(p=l.stateNode=new tE),d.forEach(function(x){var j=uE.bind(null,l,x);p.has(x)||(p.add(x),x.then(j,j))})}}function Dr(l,d){var p=d.deletions;if(p!==null)for(var x=0;x<p.length;x++){var j=p[x];try{var S=l,A=d,V=A;e:for(;V!==null;){switch(V.tag){case 5:Jn=V.stateNode,Or=!1;break e;case 3:Jn=V.stateNode.containerInfo,Or=!0;break e;case 4:Jn=V.stateNode.containerInfo,Or=!0;break e}V=V.return}if(Jn===null)throw Error(n(160));vv(S,A,j),Jn=null,Or=!1;var Q=j.alternate;Q!==null&&(Q.return=null),j.return=null}catch(ge){mn(j,d,ge)}}if(d.subtreeFlags&12854)for(d=d.child;d!==null;)wv(d,l),d=d.sibling}function wv(l,d){var p=l.alternate,x=l.flags;switch(l.tag){case 0:case 11:case 14:case 15:if(Dr(d,l),ra(l),x&4){try{Yc(3,l,l.return),Bu(3,l)}catch(qe){mn(l,l.return,qe)}try{Yc(5,l,l.return)}catch(qe){mn(l,l.return,qe)}}break;case 1:Dr(d,l),ra(l),x&512&&p!==null&&Pl(p,p.return);break;case 5:if(Dr(d,l),ra(l),x&512&&p!==null&&Pl(p,p.return),l.flags&32){var j=l.stateNode;try{un(j,"")}catch(qe){mn(l,l.return,qe)}}if(x&4&&(j=l.stateNode,j!=null)){var S=l.memoizedProps,A=p!==null?p.memoizedProps:S,V=l.type,Q=l.updateQueue;if(l.updateQueue=null,Q!==null)try{V==="input"&&S.type==="radio"&&S.name!=null&&mt(j,S),_e(V,A);var ge=_e(V,S);for(A=0;A<Q.length;A+=2){var Se=Q[A],Ce=Q[A+1];Se==="style"?hn(j,Ce):Se==="dangerouslySetInnerHTML"?qs(j,Ce):Se==="children"?un(j,Ce):E(j,Se,Ce,ge)}switch(V){case"input":Ut(j,S);break;case"textarea":as(j,S);break;case"select":var je=j._wrapperState.wasMultiple;j._wrapperState.wasMultiple=!!S.multiple;var ze=S.value;ze!=null?Mt(j,!!S.multiple,ze,!1):je!==!!S.multiple&&(S.defaultValue!=null?Mt(j,!!S.multiple,S.defaultValue,!0):Mt(j,!!S.multiple,S.multiple?[]:"",!1))}j[Fc]=S}catch(qe){mn(l,l.return,qe)}}break;case 6:if(Dr(d,l),ra(l),x&4){if(l.stateNode===null)throw Error(n(162));j=l.stateNode,S=l.memoizedProps;try{j.nodeValue=S}catch(qe){mn(l,l.return,qe)}}break;case 3:if(Dr(d,l),ra(l),x&4&&p!==null&&p.memoizedState.isDehydrated)try{Tr(d.containerInfo)}catch(qe){mn(l,l.return,qe)}break;case 4:Dr(d,l),ra(l);break;case 13:Dr(d,l),ra(l),j=l.child,j.flags&8192&&(S=j.memoizedState!==null,j.stateNode.isHidden=S,!S||j.alternate!==null&&j.alternate.memoizedState!==null||(Om=Bt())),x&4&&Nv(l);break;case 22:if(Se=p!==null&&p.memoizedState!==null,l.mode&1?(ps=(ge=ps)||Se,Dr(d,l),ps=ge):Dr(d,l),ra(l),x&8192){if(ge=l.memoizedState!==null,(l.stateNode.isHidden=ge)&&!Se&&(l.mode&1)!==0)for(Ve=l,Se=l.child;Se!==null;){for(Ce=Ve=Se;Ve!==null;){switch(je=Ve,ze=je.child,je.tag){case 0:case 11:case 14:case 15:Yc(4,je,je.return);break;case 1:Pl(je,je.return);var He=je.stateNode;if(typeof He.componentWillUnmount=="function"){x=je,p=je.return;try{d=x,He.props=d.memoizedProps,He.state=d.memoizedState,He.componentWillUnmount()}catch(qe){mn(x,p,qe)}}break;case 5:Pl(je,je.return);break;case 22:if(je.memoizedState!==null){Sv(Ce);continue}}ze!==null?(ze.return=je,Ve=ze):Sv(Ce)}Se=Se.sibling}e:for(Se=null,Ce=l;;){if(Ce.tag===5){if(Se===null){Se=Ce;try{j=Ce.stateNode,ge?(S=j.style,typeof S.setProperty=="function"?S.setProperty("display","none","important"):S.display="none"):(V=Ce.stateNode,Q=Ce.memoizedProps.style,A=Q!=null&&Q.hasOwnProperty("display")?Q.display:null,V.style.display=Gs("display",A))}catch(qe){mn(l,l.return,qe)}}}else if(Ce.tag===6){if(Se===null)try{Ce.stateNode.nodeValue=ge?"":Ce.memoizedProps}catch(qe){mn(l,l.return,qe)}}else if((Ce.tag!==22&&Ce.tag!==23||Ce.memoizedState===null||Ce===l)&&Ce.child!==null){Ce.child.return=Ce,Ce=Ce.child;continue}if(Ce===l)break e;for(;Ce.sibling===null;){if(Ce.return===null||Ce.return===l)break e;Se===Ce&&(Se=null),Ce=Ce.return}Se===Ce&&(Se=null),Ce.sibling.return=Ce.return,Ce=Ce.sibling}}break;case 19:Dr(d,l),ra(l),x&4&&Nv(l);break;case 21:break;default:Dr(d,l),ra(l)}}function ra(l){var d=l.flags;if(d&2){try{e:{for(var p=l.return;p!==null;){if(yv(p)){var x=p;break e}p=p.return}throw Error(n(160))}switch(x.tag){case 5:var j=x.stateNode;x.flags&32&&(un(j,""),x.flags&=-33);var S=bv(l);Im(l,S,j);break;case 3:case 4:var A=x.stateNode.containerInfo,V=bv(l);Am(l,V,A);break;default:throw Error(n(161))}}catch(Q){mn(l,l.return,Q)}l.flags&=-3}d&4096&&(l.flags&=-4097)}function sE(l,d,p){Ve=l,jv(l)}function jv(l,d,p){for(var x=(l.mode&1)!==0;Ve!==null;){var j=Ve,S=j.child;if(j.tag===22&&x){var A=j.memoizedState!==null||$u;if(!A){var V=j.alternate,Q=V!==null&&V.memoizedState!==null||ps;V=$u;var ge=ps;if($u=A,(ps=Q)&&!ge)for(Ve=j;Ve!==null;)A=Ve,Q=A.child,A.tag===22&&A.memoizedState!==null?Cv(j):Q!==null?(Q.return=A,Ve=Q):Cv(j);for(;S!==null;)Ve=S,jv(S),S=S.sibling;Ve=j,$u=V,ps=ge}kv(l)}else(j.subtreeFlags&8772)!==0&&S!==null?(S.return=j,Ve=S):kv(l)}}function kv(l){for(;Ve!==null;){var d=Ve;if((d.flags&8772)!==0){var p=d.alternate;try{if((d.flags&8772)!==0)switch(d.tag){case 0:case 11:case 15:ps||Bu(5,d);break;case 1:var x=d.stateNode;if(d.flags&4&&!ps)if(p===null)x.componentDidMount();else{var j=d.elementType===d.type?p.memoizedProps:Rr(d.type,p.memoizedProps);x.componentDidUpdate(j,p.memoizedState,x.__reactInternalSnapshotBeforeUpdate)}var S=d.updateQueue;S!==null&&Sb(d,S,x);break;case 3:var A=d.updateQueue;if(A!==null){if(p=null,d.child!==null)switch(d.child.tag){case 5:p=d.child.stateNode;break;case 1:p=d.child.stateNode}Sb(d,A,p)}break;case 5:var V=d.stateNode;if(p===null&&d.flags&4){p=V;var Q=d.memoizedProps;switch(d.type){case"button":case"input":case"select":case"textarea":Q.autoFocus&&p.focus();break;case"img":Q.src&&(p.src=Q.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(d.memoizedState===null){var ge=d.alternate;if(ge!==null){var Se=ge.memoizedState;if(Se!==null){var Ce=Se.dehydrated;Ce!==null&&Tr(Ce)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}ps||d.flags&512&&Mm(d)}catch(je){mn(d,d.return,je)}}if(d===l){Ve=null;break}if(p=d.sibling,p!==null){p.return=d.return,Ve=p;break}Ve=d.return}}function Sv(l){for(;Ve!==null;){var d=Ve;if(d===l){Ve=null;break}var p=d.sibling;if(p!==null){p.return=d.return,Ve=p;break}Ve=d.return}}function Cv(l){for(;Ve!==null;){var d=Ve;try{switch(d.tag){case 0:case 11:case 15:var p=d.return;try{Bu(4,d)}catch(Q){mn(d,p,Q)}break;case 1:var x=d.stateNode;if(typeof x.componentDidMount=="function"){var j=d.return;try{x.componentDidMount()}catch(Q){mn(d,j,Q)}}var S=d.return;try{Mm(d)}catch(Q){mn(d,S,Q)}break;case 5:var A=d.return;try{Mm(d)}catch(Q){mn(d,A,Q)}}}catch(Q){mn(d,d.return,Q)}if(d===l){Ve=null;break}var V=d.sibling;if(V!==null){V.return=d.return,Ve=V;break}Ve=d.return}}var rE=Math.ceil,Vu=I.ReactCurrentDispatcher,Pm=I.ReactCurrentOwner,fr=I.ReactCurrentBatchConfig,kt=0,$n=null,Cn=null,Yn=0,tr=0,Rl=oi(0),Dn=0,Qc=null,jo=0,Hu=0,Rm=0,Xc=null,Bs=null,Om=0,Ol=1/0,Pa=null,Wu=!1,Dm=null,fi=null,Uu=!1,pi=null,Ku=0,Zc=0,Lm=null,qu=-1,Gu=0;function Ps(){return(kt&6)!==0?Bt():qu!==-1?qu:qu=Bt()}function mi(l){return(l.mode&1)===0?1:(kt&2)!==0&&Yn!==0?Yn&-Yn:B3.transition!==null?(Gu===0&&(Gu=F()),Gu):(l=ht,l!==0||(l=window.event,l=l===void 0?16:Ec(l.type)),l)}function Lr(l,d,p,x){if(50<Zc)throw Zc=0,Lm=null,Error(n(185));Ke(l,p,x),((kt&2)===0||l!==$n)&&(l===$n&&((kt&2)===0&&(Hu|=p),Dn===4&&gi(l,Yn)),Vs(l,x),p===1&&kt===0&&(d.mode&1)===0&&(Ol=Bt()+500,wu&&ci()))}function Vs(l,d){var p=l.callbackNode;Na(l,d);var x=Yr(l,l===$n?Yn:0);if(x===0)p!==null&&Za(p),l.callbackNode=null,l.callbackPriority=0;else if(d=x&-x,l.callbackPriority!==d){if(p!=null&&Za(p),d===1)l.tag===0?$3(Tv.bind(null,l)):fb(Tv.bind(null,l)),L3(function(){(kt&6)===0&&ci()}),p=null;else{switch(Nn(x)){case 1:p=Qs;break;case 4:p=Cs;break;case 16:p=Xs;break;case 536870912:p=Gr;break;default:p=Xs}p=Lv(p,Ev.bind(null,l))}l.callbackPriority=d,l.callbackNode=p}}function Ev(l,d){if(qu=-1,Gu=0,(kt&6)!==0)throw Error(n(327));var p=l.callbackNode;if(Dl()&&l.callbackNode!==p)return null;var x=Yr(l,l===$n?Yn:0);if(x===0)return null;if((x&30)!==0||(x&l.expiredLanes)!==0||d)d=Ju(l,x);else{d=x;var j=kt;kt|=2;var S=Av();($n!==l||Yn!==d)&&(Pa=null,Ol=Bt()+500,So(l,d));do try{oE();break}catch(V){Mv(l,V)}while(!0);em(),Vu.current=S,kt=j,Cn!==null?d=0:($n=null,Yn=0,d=Dn)}if(d!==0){if(d===2&&(j=ti(l),j!==0&&(x=j,d=_m(l,j))),d===1)throw p=Qc,So(l,0),gi(l,x),Vs(l,Bt()),p;if(d===6)gi(l,x);else{if(j=l.current.alternate,(x&30)===0&&!aE(j)&&(d=Ju(l,x),d===2&&(S=ti(l),S!==0&&(x=S,d=_m(l,S))),d===1))throw p=Qc,So(l,0),gi(l,x),Vs(l,Bt()),p;switch(l.finishedWork=j,l.finishedLanes=x,d){case 0:case 1:throw Error(n(345));case 2:Co(l,Bs,Pa);break;case 3:if(gi(l,x),(x&130023424)===x&&(d=Om+500-Bt(),10<d)){if(Yr(l,0)!==0)break;if(j=l.suspendedLanes,(j&x)!==x){Ps(),l.pingedLanes|=l.suspendedLanes&j;break}l.timeoutHandle=Hp(Co.bind(null,l,Bs,Pa),d);break}Co(l,Bs,Pa);break;case 4:if(gi(l,x),(x&4194240)===x)break;for(d=l.eventTimes,j=-1;0<x;){var A=31-Es(x);S=1<<A,A=d[A],A>j&&(j=A),x&=~S}if(x=j,x=Bt()-x,x=(120>x?120:480>x?480:1080>x?1080:1920>x?1920:3e3>x?3e3:4320>x?4320:1960*rE(x/1960))-x,10<x){l.timeoutHandle=Hp(Co.bind(null,l,Bs,Pa),x);break}Co(l,Bs,Pa);break;case 5:Co(l,Bs,Pa);break;default:throw Error(n(329))}}}return Vs(l,Bt()),l.callbackNode===p?Ev.bind(null,l):null}function _m(l,d){var p=Xc;return l.current.memoizedState.isDehydrated&&(So(l,d).flags|=256),l=Ju(l,d),l!==2&&(d=Bs,Bs=p,d!==null&&zm(d)),l}function zm(l){Bs===null?Bs=l:Bs.push.apply(Bs,l)}function aE(l){for(var d=l;;){if(d.flags&16384){var p=d.updateQueue;if(p!==null&&(p=p.stores,p!==null))for(var x=0;x<p.length;x++){var j=p[x],S=j.getSnapshot;j=j.value;try{if(!Ir(S(),j))return!1}catch{return!1}}}if(p=d.child,d.subtreeFlags&16384&&p!==null)p.return=d,d=p;else{if(d===l)break;for(;d.sibling===null;){if(d.return===null||d.return===l)return!0;d=d.return}d.sibling.return=d.return,d=d.sibling}}return!0}function gi(l,d){for(d&=~Rm,d&=~Hu,l.suspendedLanes|=d,l.pingedLanes&=~d,l=l.expirationTimes;0<d;){var p=31-Es(d),x=1<<p;l[p]=-1,d&=~x}}function Tv(l){if((kt&6)!==0)throw Error(n(327));Dl();var d=Yr(l,0);if((d&1)===0)return Vs(l,Bt()),null;var p=Ju(l,d);if(l.tag!==0&&p===2){var x=ti(l);x!==0&&(d=x,p=_m(l,x))}if(p===1)throw p=Qc,So(l,0),gi(l,d),Vs(l,Bt()),p;if(p===6)throw Error(n(345));return l.finishedWork=l.current.alternate,l.finishedLanes=d,Co(l,Bs,Pa),Vs(l,Bt()),null}function Fm(l,d){var p=kt;kt|=1;try{return l(d)}finally{kt=p,kt===0&&(Ol=Bt()+500,wu&&ci())}}function ko(l){pi!==null&&pi.tag===0&&(kt&6)===0&&Dl();var d=kt;kt|=1;var p=fr.transition,x=ht;try{if(fr.transition=null,ht=1,l)return l()}finally{ht=x,fr.transition=p,kt=d,(kt&6)===0&&ci()}}function $m(){tr=Rl.current,Zt(Rl)}function So(l,d){l.finishedWork=null,l.finishedLanes=0;var p=l.timeoutHandle;if(p!==-1&&(l.timeoutHandle=-1,D3(p)),Cn!==null)for(p=Cn.return;p!==null;){var x=p;switch(Jp(x),x.tag){case 1:x=x.type.childContextTypes,x!=null&&vu();break;case 3:Al(),Zt(zs),Zt(us),lm();break;case 5:im(x);break;case 4:Al();break;case 13:Zt(cn);break;case 19:Zt(cn);break;case 10:tm(x.type._context);break;case 22:case 23:$m()}p=p.return}if($n=l,Cn=l=xi(l.current,null),Yn=tr=d,Dn=0,Qc=null,Rm=Hu=jo=0,Bs=Xc=null,vo!==null){for(d=0;d<vo.length;d++)if(p=vo[d],x=p.interleaved,x!==null){p.interleaved=null;var j=x.next,S=p.pending;if(S!==null){var A=S.next;S.next=j,x.next=A}p.pending=x}vo=null}return l}function Mv(l,d){do{var p=Cn;try{if(em(),Pu.current=Lu,Ru){for(var x=dn.memoizedState;x!==null;){var j=x.queue;j!==null&&(j.pending=null),x=x.next}Ru=!1}if(wo=0,Fn=On=dn=null,Uc=!1,Kc=0,Pm.current=null,p===null||p.return===null){Dn=1,Qc=d,Cn=null;break}e:{var S=l,A=p.return,V=p,Q=d;if(d=Yn,V.flags|=32768,Q!==null&&typeof Q=="object"&&typeof Q.then=="function"){var ge=Q,Se=V,Ce=Se.tag;if((Se.mode&1)===0&&(Ce===0||Ce===11||Ce===15)){var je=Se.alternate;je?(Se.updateQueue=je.updateQueue,Se.memoizedState=je.memoizedState,Se.lanes=je.lanes):(Se.updateQueue=null,Se.memoizedState=null)}var ze=ev(A);if(ze!==null){ze.flags&=-257,tv(ze,A,V,S,d),ze.mode&1&&Zb(S,ge,d),d=ze,Q=ge;var He=d.updateQueue;if(He===null){var qe=new Set;qe.add(Q),d.updateQueue=qe}else He.add(Q);break e}else{if((d&1)===0){Zb(S,ge,d),Bm();break e}Q=Error(n(426))}}else if(an&&V.mode&1){var jn=ev(A);if(jn!==null){(jn.flags&65536)===0&&(jn.flags|=256),tv(jn,A,V,S,d),Xp(Il(Q,V));break e}}S=Q=Il(Q,V),Dn!==4&&(Dn=2),Xc===null?Xc=[S]:Xc.push(S),S=A;do{switch(S.tag){case 3:S.flags|=65536,d&=-d,S.lanes|=d;var le=Qb(S,Q,d);kb(S,le);break e;case 1:V=Q;var ne=S.type,de=S.stateNode;if((S.flags&128)===0&&(typeof ne.getDerivedStateFromError=="function"||de!==null&&typeof de.componentDidCatch=="function"&&(fi===null||!fi.has(de)))){S.flags|=65536,d&=-d,S.lanes|=d;var Pe=Xb(S,V,d);kb(S,Pe);break e}}S=S.return}while(S!==null)}Pv(p)}catch(Ge){d=Ge,Cn===p&&p!==null&&(Cn=p=p.return);continue}break}while(!0)}function Av(){var l=Vu.current;return Vu.current=Lu,l===null?Lu:l}function Bm(){(Dn===0||Dn===3||Dn===2)&&(Dn=4),$n===null||(jo&268435455)===0&&(Hu&268435455)===0||gi($n,Yn)}function Ju(l,d){var p=kt;kt|=2;var x=Av();($n!==l||Yn!==d)&&(Pa=null,So(l,d));do try{iE();break}catch(j){Mv(l,j)}while(!0);if(em(),kt=p,Vu.current=x,Cn!==null)throw Error(n(261));return $n=null,Yn=0,Dn}function iE(){for(;Cn!==null;)Iv(Cn)}function oE(){for(;Cn!==null&&!il();)Iv(Cn)}function Iv(l){var d=Dv(l.alternate,l,tr);l.memoizedProps=l.pendingProps,d===null?Pv(l):Cn=d,Pm.current=null}function Pv(l){var d=l;do{var p=d.alternate;if(l=d.return,(d.flags&32768)===0){if(p=Z3(p,d,tr),p!==null){Cn=p;return}}else{if(p=eE(p,d),p!==null){p.flags&=32767,Cn=p;return}if(l!==null)l.flags|=32768,l.subtreeFlags=0,l.deletions=null;else{Dn=6,Cn=null;return}}if(d=d.sibling,d!==null){Cn=d;return}Cn=d=l}while(d!==null);Dn===0&&(Dn=5)}function Co(l,d,p){var x=ht,j=fr.transition;try{fr.transition=null,ht=1,lE(l,d,p,x)}finally{fr.transition=j,ht=x}return null}function lE(l,d,p,x){do Dl();while(pi!==null);if((kt&6)!==0)throw Error(n(327));p=l.finishedWork;var j=l.finishedLanes;if(p===null)return null;if(l.finishedWork=null,l.finishedLanes=0,p===l.current)throw Error(n(177));l.callbackNode=null,l.callbackPriority=0;var S=p.lanes|p.childLanes;if(dt(l,S),l===$n&&(Cn=$n=null,Yn=0),(p.subtreeFlags&2064)===0&&(p.flags&2064)===0||Uu||(Uu=!0,Lv(Xs,function(){return Dl(),null})),S=(p.flags&15990)!==0,(p.subtreeFlags&15990)!==0||S){S=fr.transition,fr.transition=null;var A=ht;ht=1;var V=kt;kt|=4,Pm.current=null,nE(l,p),wv(p,l),T3(Bp),hl=!!$p,Bp=$p=null,l.current=p,sE(p),jc(),kt=V,ht=A,fr.transition=S}else l.current=p;if(Uu&&(Uu=!1,pi=l,Ku=j),S=l.pendingLanes,S===0&&(fi=null),kc(p.stateNode),Vs(l,Bt()),d!==null)for(x=l.onRecoverableError,p=0;p<d.length;p++)j=d[p],x(j.value,{componentStack:j.stack,digest:j.digest});if(Wu)throw Wu=!1,l=Dm,Dm=null,l;return(Ku&1)!==0&&l.tag!==0&&Dl(),S=l.pendingLanes,(S&1)!==0?l===Lm?Zc++:(Zc=0,Lm=l):Zc=0,ci(),null}function Dl(){if(pi!==null){var l=Nn(Ku),d=fr.transition,p=ht;try{if(fr.transition=null,ht=16>l?16:l,pi===null)var x=!1;else{if(l=pi,pi=null,Ku=0,(kt&6)!==0)throw Error(n(331));var j=kt;for(kt|=4,Ve=l.current;Ve!==null;){var S=Ve,A=S.child;if((Ve.flags&16)!==0){var V=S.deletions;if(V!==null){for(var Q=0;Q<V.length;Q++){var ge=V[Q];for(Ve=ge;Ve!==null;){var Se=Ve;switch(Se.tag){case 0:case 11:case 15:Yc(8,Se,S)}var Ce=Se.child;if(Ce!==null)Ce.return=Se,Ve=Ce;else for(;Ve!==null;){Se=Ve;var je=Se.sibling,ze=Se.return;if(xv(Se),Se===ge){Ve=null;break}if(je!==null){je.return=ze,Ve=je;break}Ve=ze}}}var He=S.alternate;if(He!==null){var qe=He.child;if(qe!==null){He.child=null;do{var jn=qe.sibling;qe.sibling=null,qe=jn}while(qe!==null)}}Ve=S}}if((S.subtreeFlags&2064)!==0&&A!==null)A.return=S,Ve=A;else e:for(;Ve!==null;){if(S=Ve,(S.flags&2048)!==0)switch(S.tag){case 0:case 11:case 15:Yc(9,S,S.return)}var le=S.sibling;if(le!==null){le.return=S.return,Ve=le;break e}Ve=S.return}}var ne=l.current;for(Ve=ne;Ve!==null;){A=Ve;var de=A.child;if((A.subtreeFlags&2064)!==0&&de!==null)de.return=A,Ve=de;else e:for(A=ne;Ve!==null;){if(V=Ve,(V.flags&2048)!==0)try{switch(V.tag){case 0:case 11:case 15:Bu(9,V)}}catch(Ge){mn(V,V.return,Ge)}if(V===A){Ve=null;break e}var Pe=V.sibling;if(Pe!==null){Pe.return=V.return,Ve=Pe;break e}Ve=V.return}}if(kt=j,ci(),cs&&typeof cs.onPostCommitFiberRoot=="function")try{cs.onPostCommitFiberRoot(kr,l)}catch{}x=!0}return x}finally{ht=p,fr.transition=d}}return!1}function Rv(l,d,p){d=Il(p,d),d=Qb(l,d,1),l=ui(l,d,1),d=Ps(),l!==null&&(Ke(l,1,d),Vs(l,d))}function mn(l,d,p){if(l.tag===3)Rv(l,l,p);else for(;d!==null;){if(d.tag===3){Rv(d,l,p);break}else if(d.tag===1){var x=d.stateNode;if(typeof d.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&(fi===null||!fi.has(x))){l=Il(p,l),l=Xb(d,l,1),d=ui(d,l,1),l=Ps(),d!==null&&(Ke(d,1,l),Vs(d,l));break}}d=d.return}}function cE(l,d,p){var x=l.pingCache;x!==null&&x.delete(d),d=Ps(),l.pingedLanes|=l.suspendedLanes&p,$n===l&&(Yn&p)===p&&(Dn===4||Dn===3&&(Yn&130023424)===Yn&&500>Bt()-Om?So(l,0):Rm|=p),Vs(l,d)}function Ov(l,d){d===0&&((l.mode&1)===0?d=1:(d=Sr,Sr<<=1,(Sr&130023424)===0&&(Sr=4194304)));var p=Ps();l=Ma(l,d),l!==null&&(Ke(l,d,p),Vs(l,p))}function dE(l){var d=l.memoizedState,p=0;d!==null&&(p=d.retryLane),Ov(l,p)}function uE(l,d){var p=0;switch(l.tag){case 13:var x=l.stateNode,j=l.memoizedState;j!==null&&(p=j.retryLane);break;case 19:x=l.stateNode;break;default:throw Error(n(314))}x!==null&&x.delete(d),Ov(l,p)}var Dv;Dv=function(l,d,p){if(l!==null)if(l.memoizedProps!==d.pendingProps||zs.current)$s=!0;else{if((l.lanes&p)===0&&(d.flags&128)===0)return $s=!1,X3(l,d,p);$s=(l.flags&131072)!==0}else $s=!1,an&&(d.flags&1048576)!==0&&pb(d,ku,d.index);switch(d.lanes=0,d.tag){case 2:var x=d.type;Fu(l,d),l=d.pendingProps;var j=jl(d,us.current);Ml(d,p),j=um(null,d,x,l,j,p);var S=hm();return d.flags|=1,typeof j=="object"&&j!==null&&typeof j.render=="function"&&j.$$typeof===void 0?(d.tag=1,d.memoizedState=null,d.updateQueue=null,Fs(x)?(S=!0,Nu(d)):S=!1,d.memoizedState=j.state!==null&&j.state!==void 0?j.state:null,rm(d),j.updater=_u,d.stateNode=j,j._reactInternals=d,ym(d,x,l,p),d=wm(null,d,x,!0,S,p)):(d.tag=0,an&&S&&Gp(d),Is(null,d,j,p),d=d.child),d;case 16:x=d.elementType;e:{switch(Fu(l,d),l=d.pendingProps,j=x._init,x=j(x._payload),d.type=x,j=d.tag=fE(x),l=Rr(x,l),j){case 0:d=Nm(null,d,x,l,p);break e;case 1:d=ov(null,d,x,l,p);break e;case 11:d=nv(null,d,x,l,p);break e;case 14:d=sv(null,d,x,Rr(x.type,l),p);break e}throw Error(n(306,x,""))}return d;case 0:return x=d.type,j=d.pendingProps,j=d.elementType===x?j:Rr(x,j),Nm(l,d,x,j,p);case 1:return x=d.type,j=d.pendingProps,j=d.elementType===x?j:Rr(x,j),ov(l,d,x,j,p);case 3:e:{if(lv(d),l===null)throw Error(n(387));x=d.pendingProps,S=d.memoizedState,j=S.element,jb(l,d),Au(d,x,null,p);var A=d.memoizedState;if(x=A.element,S.isDehydrated)if(S={element:x,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},d.updateQueue.baseState=S,d.memoizedState=S,d.flags&256){j=Il(Error(n(423)),d),d=cv(l,d,x,p,j);break e}else if(x!==j){j=Il(Error(n(424)),d),d=cv(l,d,x,p,j);break e}else for(er=ii(d.stateNode.containerInfo.firstChild),Zs=d,an=!0,Pr=null,p=Nb(d,null,x,p),d.child=p;p;)p.flags=p.flags&-3|4096,p=p.sibling;else{if(Cl(),x===j){d=Ia(l,d,p);break e}Is(l,d,x,p)}d=d.child}return d;case 5:return Cb(d),l===null&&Qp(d),x=d.type,j=d.pendingProps,S=l!==null?l.memoizedProps:null,A=j.children,Vp(x,j)?A=null:S!==null&&Vp(x,S)&&(d.flags|=32),iv(l,d),Is(l,d,A,p),d.child;case 6:return l===null&&Qp(d),null;case 13:return dv(l,d,p);case 4:return am(d,d.stateNode.containerInfo),x=d.pendingProps,l===null?d.child=El(d,null,x,p):Is(l,d,x,p),d.child;case 11:return x=d.type,j=d.pendingProps,j=d.elementType===x?j:Rr(x,j),nv(l,d,x,j,p);case 7:return Is(l,d,d.pendingProps,p),d.child;case 8:return Is(l,d,d.pendingProps.children,p),d.child;case 12:return Is(l,d,d.pendingProps.children,p),d.child;case 10:e:{if(x=d.type._context,j=d.pendingProps,S=d.memoizedProps,A=j.value,qt(Eu,x._currentValue),x._currentValue=A,S!==null)if(Ir(S.value,A)){if(S.children===j.children&&!zs.current){d=Ia(l,d,p);break e}}else for(S=d.child,S!==null&&(S.return=d);S!==null;){var V=S.dependencies;if(V!==null){A=S.child;for(var Q=V.firstContext;Q!==null;){if(Q.context===x){if(S.tag===1){Q=Aa(-1,p&-p),Q.tag=2;var ge=S.updateQueue;if(ge!==null){ge=ge.shared;var Se=ge.pending;Se===null?Q.next=Q:(Q.next=Se.next,Se.next=Q),ge.pending=Q}}S.lanes|=p,Q=S.alternate,Q!==null&&(Q.lanes|=p),nm(S.return,p,d),V.lanes|=p;break}Q=Q.next}}else if(S.tag===10)A=S.type===d.type?null:S.child;else if(S.tag===18){if(A=S.return,A===null)throw Error(n(341));A.lanes|=p,V=A.alternate,V!==null&&(V.lanes|=p),nm(A,p,d),A=S.sibling}else A=S.child;if(A!==null)A.return=S;else for(A=S;A!==null;){if(A===d){A=null;break}if(S=A.sibling,S!==null){S.return=A.return,A=S;break}A=A.return}S=A}Is(l,d,j.children,p),d=d.child}return d;case 9:return j=d.type,x=d.pendingProps.children,Ml(d,p),j=ur(j),x=x(j),d.flags|=1,Is(l,d,x,p),d.child;case 14:return x=d.type,j=Rr(x,d.pendingProps),j=Rr(x.type,j),sv(l,d,x,j,p);case 15:return rv(l,d,d.type,d.pendingProps,p);case 17:return x=d.type,j=d.pendingProps,j=d.elementType===x?j:Rr(x,j),Fu(l,d),d.tag=1,Fs(x)?(l=!0,Nu(d)):l=!1,Ml(d,p),Jb(d,x,j),ym(d,x,j,p),wm(null,d,x,!0,l,p);case 19:return hv(l,d,p);case 22:return av(l,d,p)}throw Error(n(156,d.tag))};function Lv(l,d){return ls(l,d)}function hE(l,d,p,x){this.tag=l,this.key=p,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=d,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function pr(l,d,p,x){return new hE(l,d,p,x)}function Vm(l){return l=l.prototype,!(!l||!l.isReactComponent)}function fE(l){if(typeof l=="function")return Vm(l)?1:0;if(l!=null){if(l=l.$$typeof,l===ue)return 11;if(l===O)return 14}return 2}function xi(l,d){var p=l.alternate;return p===null?(p=pr(l.tag,d,l.key,l.mode),p.elementType=l.elementType,p.type=l.type,p.stateNode=l.stateNode,p.alternate=l,l.alternate=p):(p.pendingProps=d,p.type=l.type,p.flags=0,p.subtreeFlags=0,p.deletions=null),p.flags=l.flags&14680064,p.childLanes=l.childLanes,p.lanes=l.lanes,p.child=l.child,p.memoizedProps=l.memoizedProps,p.memoizedState=l.memoizedState,p.updateQueue=l.updateQueue,d=l.dependencies,p.dependencies=d===null?null:{lanes:d.lanes,firstContext:d.firstContext},p.sibling=l.sibling,p.index=l.index,p.ref=l.ref,p}function Yu(l,d,p,x,j,S){var A=2;if(x=l,typeof l=="function")Vm(l)&&(A=1);else if(typeof l=="string")A=5;else e:switch(l){case D:return Eo(p.children,j,S,d);case P:A=8,j|=8;break;case R:return l=pr(12,p,d,j|2),l.elementType=R,l.lanes=S,l;case xe:return l=pr(13,p,d,j),l.elementType=xe,l.lanes=S,l;case H:return l=pr(19,p,d,j),l.elementType=H,l.lanes=S,l;case $:return Qu(p,j,S,d);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case K:A=10;break e;case re:A=9;break e;case ue:A=11;break e;case O:A=14;break e;case J:A=16,x=null;break e}throw Error(n(130,l==null?l:typeof l,""))}return d=pr(A,p,d,j),d.elementType=l,d.type=x,d.lanes=S,d}function Eo(l,d,p,x){return l=pr(7,l,x,d),l.lanes=p,l}function Qu(l,d,p,x){return l=pr(22,l,x,d),l.elementType=$,l.lanes=p,l.stateNode={isHidden:!1},l}function Hm(l,d,p){return l=pr(6,l,null,d),l.lanes=p,l}function Wm(l,d,p){return d=pr(4,l.children!==null?l.children:[],l.key,d),d.lanes=p,d.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},d}function pE(l,d,p,x,j){this.tag=d,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$e(0),this.expirationTimes=$e(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$e(0),this.identifierPrefix=x,this.onRecoverableError=j,this.mutableSourceEagerHydrationData=null}function Um(l,d,p,x,j,S,A,V,Q){return l=new pE(l,d,p,V,Q),d===1?(d=1,S===!0&&(d|=8)):d=0,S=pr(3,null,null,d),l.current=S,S.stateNode=l,S.memoizedState={element:x,isDehydrated:p,cache:null,transitions:null,pendingSuspenseBoundaries:null},rm(S),l}function mE(l,d,p){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:W,key:x==null?null:""+x,children:l,containerInfo:d,implementation:p}}function _v(l){if(!l)return li;l=l._reactInternals;e:{if(jr(l)!==l||l.tag!==1)throw Error(n(170));var d=l;do{switch(d.tag){case 3:d=d.stateNode.context;break e;case 1:if(Fs(d.type)){d=d.stateNode.__reactInternalMemoizedMergedChildContext;break e}}d=d.return}while(d!==null);throw Error(n(171))}if(l.tag===1){var p=l.type;if(Fs(p))return ub(l,p,d)}return d}function zv(l,d,p,x,j,S,A,V,Q){return l=Um(p,x,!0,l,j,S,A,V,Q),l.context=_v(null),p=l.current,x=Ps(),j=mi(p),S=Aa(x,j),S.callback=d??null,ui(p,S,j),l.current.lanes=j,Ke(l,j,x),Vs(l,x),l}function Xu(l,d,p,x){var j=d.current,S=Ps(),A=mi(j);return p=_v(p),d.context===null?d.context=p:d.pendingContext=p,d=Aa(S,A),d.payload={element:l},x=x===void 0?null:x,x!==null&&(d.callback=x),l=ui(j,d,A),l!==null&&(Lr(l,j,A,S),Mu(l,j,A)),A}function Zu(l){if(l=l.current,!l.child)return null;switch(l.child.tag){case 5:return l.child.stateNode;default:return l.child.stateNode}}function Fv(l,d){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var p=l.retryLane;l.retryLane=p!==0&&p<d?p:d}}function Km(l,d){Fv(l,d),(l=l.alternate)&&Fv(l,d)}function gE(){return null}var $v=typeof reportError=="function"?reportError:function(l){console.error(l)};function qm(l){this._internalRoot=l}eh.prototype.render=qm.prototype.render=function(l){var d=this._internalRoot;if(d===null)throw Error(n(409));Xu(l,d,null,null)},eh.prototype.unmount=qm.prototype.unmount=function(){var l=this._internalRoot;if(l!==null){this._internalRoot=null;var d=l.containerInfo;ko(function(){Xu(null,l,null,null)}),d[Sa]=null}};function eh(l){this._internalRoot=l}eh.prototype.unstable_scheduleHydration=function(l){if(l){var d=Qr();l={blockedOn:null,target:l,priority:d};for(var p=0;p<Xr.length&&d!==0&&d<Xr[p].priority;p++);Xr.splice(p,0,l),p===0&&Zr(l)}};function Gm(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function th(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11&&(l.nodeType!==8||l.nodeValue!==" react-mount-point-unstable "))}function Bv(){}function xE(l,d,p,x,j){if(j){if(typeof x=="function"){var S=x;x=function(){var ge=Zu(A);S.call(ge)}}var A=zv(d,x,l,0,null,!1,!1,"",Bv);return l._reactRootContainer=A,l[Sa]=A.current,_c(l.nodeType===8?l.parentNode:l),ko(),A}for(;j=l.lastChild;)l.removeChild(j);if(typeof x=="function"){var V=x;x=function(){var ge=Zu(Q);V.call(ge)}}var Q=Um(l,0,!1,null,null,!1,!1,"",Bv);return l._reactRootContainer=Q,l[Sa]=Q.current,_c(l.nodeType===8?l.parentNode:l),ko(function(){Xu(d,Q,p,x)}),Q}function nh(l,d,p,x,j){var S=p._reactRootContainer;if(S){var A=S;if(typeof j=="function"){var V=j;j=function(){var Q=Zu(A);V.call(Q)}}Xu(d,A,l,j)}else A=xE(p,d,l,j,x);return Zu(A)}Vt=function(l){switch(l.tag){case 3:var d=l.stateNode;if(d.current.memoizedState.isDehydrated){var p=Jr(d.pendingLanes);p!==0&&(pn(d,p|1),Vs(d,Bt()),(kt&6)===0&&(Ol=Bt()+500,ci()))}break;case 13:ko(function(){var x=Ma(l,1);if(x!==null){var j=Ps();Lr(x,l,1,j)}}),Km(l,1)}},Gn=function(l){if(l.tag===13){var d=Ma(l,134217728);if(d!==null){var p=Ps();Lr(d,l,134217728,p)}Km(l,134217728)}},Cr=function(l){if(l.tag===13){var d=mi(l),p=Ma(l,d);if(p!==null){var x=Ps();Lr(p,l,d,x)}Km(l,d)}},Qr=function(){return ht},Er=function(l,d){var p=ht;try{return ht=l,d()}finally{ht=p}},me=function(l,d,p){switch(d){case"input":if(Ut(l,p),d=p.name,p.type==="radio"&&d!=null){for(p=l;p.parentNode;)p=p.parentNode;for(p=p.querySelectorAll("input[name="+JSON.stringify(""+d)+'][type="radio"]'),d=0;d<p.length;d++){var x=p[d];if(x!==l&&x.form===l.form){var j=bu(x);if(!j)throw Error(n(90));pe(x),Ut(x,j)}}}break;case"textarea":as(l,p);break;case"select":d=p.value,d!=null&&Mt(l,!!p.multiple,d,!1)}},Pn=Fm,qn=ko;var yE={usingClientEntryPoint:!1,Events:[$c,Nl,bu,fn,Kn,Fm]},ed={findFiberByHostInstance:go,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},bE={bundleType:ed.bundleType,version:ed.version,rendererPackageName:ed.rendererPackageName,rendererConfig:ed.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:I.ReactCurrentDispatcher,findHostInstanceByFiber:function(l){return l=Kr(l),l===null?null:l.stateNode},findFiberByHostInstance:ed.findFiberByHostInstance||gE,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var sh=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!sh.isDisabled&&sh.supportsFiber)try{kr=sh.inject(bE),cs=sh}catch{}}return Hs.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=yE,Hs.createPortal=function(l,d){var p=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Gm(d))throw Error(n(200));return mE(l,d,null,p)},Hs.createRoot=function(l,d){if(!Gm(l))throw Error(n(299));var p=!1,x="",j=$v;return d!=null&&(d.unstable_strictMode===!0&&(p=!0),d.identifierPrefix!==void 0&&(x=d.identifierPrefix),d.onRecoverableError!==void 0&&(j=d.onRecoverableError)),d=Um(l,1,!1,null,null,p,!1,x,j),l[Sa]=d.current,_c(l.nodeType===8?l.parentNode:l),new qm(d)},Hs.findDOMNode=function(l){if(l==null)return null;if(l.nodeType===1)return l;var d=l._reactInternals;if(d===void 0)throw typeof l.render=="function"?Error(n(188)):(l=Object.keys(l).join(","),Error(n(268,l)));return l=Kr(d),l=l===null?null:l.stateNode,l},Hs.flushSync=function(l){return ko(l)},Hs.hydrate=function(l,d,p){if(!th(d))throw Error(n(200));return nh(null,l,d,!0,p)},Hs.hydrateRoot=function(l,d,p){if(!Gm(l))throw Error(n(405));var x=p!=null&&p.hydratedSources||null,j=!1,S="",A=$v;if(p!=null&&(p.unstable_strictMode===!0&&(j=!0),p.identifierPrefix!==void 0&&(S=p.identifierPrefix),p.onRecoverableError!==void 0&&(A=p.onRecoverableError)),d=zv(d,null,l,1,p??null,j,!1,S,A),l[Sa]=d.current,_c(l),x)for(l=0;l<x.length;l++)p=x[l],j=p._getVersion,j=j(p._source),d.mutableSourceEagerHydrationData==null?d.mutableSourceEagerHydrationData=[p,j]:d.mutableSourceEagerHydrationData.push(p,j);return new eh(d)},Hs.render=function(l,d,p){if(!th(d))throw Error(n(200));return nh(null,l,d,!1,p)},Hs.unmountComponentAtNode=function(l){if(!th(l))throw Error(n(40));return l._reactRootContainer?(ko(function(){nh(null,null,l,!1,function(){l._reactRootContainer=null,l[Sa]=null})}),!0):!1},Hs.unstable_batchedUpdates=Fm,Hs.unstable_renderSubtreeIntoContainer=function(l,d,p,x){if(!th(p))throw Error(n(200));if(l==null||l._reactInternals===void 0)throw Error(n(38));return nh(l,d,p,!1,x)},Hs.version="18.3.1-next-f1338f8080-20240426",Hs}var Jv;function rj(){if(Jv)return Qm.exports;Jv=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),Qm.exports=EE(),Qm.exports}var Yv;function TE(){if(Yv)return rh;Yv=1;var t=rj();return rh.createRoot=t.createRoot,rh.hydrateRoot=t.hydrateRoot,rh}var ME=TE(),qd=rj();const aj=sj(qd);/**
* @remix-run/router v1.23.2
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/function Md(){return Md=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Md.apply(this,arguments)}var Ai;(function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"})(Ai||(Ai={}));const Qv="popstate";function AE(t){t===void 0&&(t={});function e(s,a){let{pathname:i,search:o,hash:c}=s.location;return Xg("",{pathname:i,search:o,hash:c},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function n(s,a){return typeof a=="string"?a:Vh(a)}return PE(e,n,null,t)}function Sn(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function h0(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function IE(){return Math.random().toString(36).substr(2,8)}function Xv(t,e){return{usr:t.state,key:t.key,idx:e}}function Xg(t,e,n,s){return n===void 0&&(n=null),Md({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?dc(e):e,{state:n,key:e&&e.key||s||IE()})}function Vh(t){let{pathname:e="/",search:n="",hash:s=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),s&&s!=="#"&&(e+=s.charAt(0)==="#"?s:"#"+s),e}function dc(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let s=t.indexOf("?");s>=0&&(e.search=t.substr(s),t=t.substr(0,s)),t&&(e.pathname=t)}return e}function PE(t,e,n,s){s===void 0&&(s={});let{window:a=document.defaultView,v5Compat:i=!1}=s,o=a.history,c=Ai.Pop,u=null,h=f();h==null&&(h=0,o.replaceState(Md({},o.state,{idx:h}),""));function f(){return(o.state||{idx:null}).idx}function m(){c=Ai.Pop;let v=f(),k=v==null?null:v-h;h=v,u&&u({action:c,location:w.location,delta:k})}function g(v,k){c=Ai.Push;let C=Xg(w.location,v,k);h=f()+1;let E=Xv(C,h),I=w.createHref(C);try{o.pushState(E,"",I)}catch(L){if(L instanceof DOMException&&L.name==="DataCloneError")throw L;a.location.assign(I)}i&&u&&u({action:c,location:w.location,delta:1})}function y(v,k){c=Ai.Replace;let C=Xg(w.location,v,k);h=f();let E=Xv(C,h),I=w.createHref(C);o.replaceState(E,"",I),i&&u&&u({action:c,location:w.location,delta:0})}function N(v){let k=a.location.origin!=="null"?a.location.origin:a.location.href,C=typeof v=="string"?v:Vh(v);return C=C.replace(/ $/,"%20"),Sn(k,"No window.location.(origin|href) available to create URL for href: "+C),new URL(C,k)}let w={get action(){return c},get location(){return t(a,o)},listen(v){if(u)throw new Error("A history only accepts one active listener");return a.addEventListener(Qv,m),u=v,()=>{a.removeEventListener(Qv,m),u=null}},createHref(v){return e(a,v)},createURL:N,encodeLocation(v){let k=N(v);return{pathname:k.pathname,search:k.search,hash:k.hash}},push:g,replace:y,go(v){return o.go(v)}};return w}var Zv;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(Zv||(Zv={}));function RE(t,e,n){return n===void 0&&(n="/"),OE(t,e,n)}function OE(t,e,n,s){let a=typeof e=="string"?dc(e):e,i=f0(a.pathname||"/",n);if(i==null)return null;let o=ij(t);DE(o);let c=null;for(let u=0;c==null&&u<o.length;++u){let h=qE(i);c=WE(o[u],h)}return c}function ij(t,e,n,s){e===void 0&&(e=[]),n===void 0&&(n=[]),s===void 0&&(s="");let a=(i,o,c)=>{let u={relativePath:c===void 0?i.path||"":c,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};u.relativePath.startsWith("/")&&(Sn(u.relativePath.startsWith(s),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+s+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(s.length));let h=Di([s,u.relativePath]),f=n.concat(u);i.children&&i.children.length>0&&(Sn(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+h+'".')),ij(i.children,e,f,h)),!(i.path==null&&!i.index)&&e.push({path:h,score:VE(h,i.index),routesMeta:f})};return t.forEach((i,o)=>{var c;if(i.path===""||!((c=i.path)!=null&&c.includes("?")))a(i,o);else for(let u of oj(i.path))a(i,o,u)}),e}function oj(t){let e=t.split("/");if(e.length===0)return[];let[n,...s]=e,a=n.endsWith("?"),i=n.replace(/\?$/,"");if(s.length===0)return a?[i,""]:[i];let o=oj(s.join("/")),c=[];return c.push(...o.map(u=>u===""?i:[i,u].join("/"))),a&&c.push(...o),c.map(u=>t.startsWith("/")&&u===""?"/":u)}function DE(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:HE(e.routesMeta.map(s=>s.childrenIndex),n.routesMeta.map(s=>s.childrenIndex)))}const LE=/^:[\w-]+$/,_E=3,zE=2,FE=1,$E=10,BE=-2,e1=t=>t==="*";function VE(t,e){let n=t.split("/"),s=n.length;return n.some(e1)&&(s+=BE),e&&(s+=zE),n.filter(a=>!e1(a)).reduce((a,i)=>a+(LE.test(i)?_E:i===""?FE:$E),s)}function HE(t,e){return t.length===e.length&&t.slice(0,-1).every((s,a)=>s===e[a])?t[t.length-1]-e[e.length-1]:0}function WE(t,e,n){let{routesMeta:s}=t,a={},i="/",o=[];for(let c=0;c<s.length;++c){let u=s[c],h=c===s.length-1,f=i==="/"?e:e.slice(i.length)||"/",m=UE({path:u.relativePath,caseSensitive:u.caseSensitive,end:h},f),g=u.route;if(!m)return null;Object.assign(a,m.params),o.push({params:a,pathname:Di([i,m.pathname]),pathnameBase:XE(Di([i,m.pathnameBase])),route:g}),m.pathnameBase!=="/"&&(i=Di([i,m.pathnameBase]))}return o}function UE(t,e){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[n,s]=KE(t.path,t.caseSensitive,t.end),a=e.match(n);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),c=a.slice(1);return{params:s.reduce((h,f,m)=>{let{paramName:g,isOptional:y}=f;if(g==="*"){let w=c[m]||"";o=i.slice(0,i.length-w.length).replace(/(.)\/+$/,"$1")}const N=c[m];return y&&!N?h[g]=void 0:h[g]=(N||"").replace(/%2F/g,"/"),h},{}),pathname:i,pathnameBase:o,pattern:t}}function KE(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),h0(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let s=[],a="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,c,u)=>(s.push({paramName:c,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(s.push({paramName:"*"}),a+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":t!==""&&t!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,e?void 0:"i"),s]}function qE(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return h0(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function f0(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,s=t.charAt(n);return s&&s!=="/"?null:t.slice(n)||"/"}const GE=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,JE=t=>GE.test(t);function YE(t,e){e===void 0&&(e="/");let{pathname:n,search:s="",hash:a=""}=typeof t=="string"?dc(t):t,i;if(n)if(JE(n))i=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),h0(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?i=t1(n.substring(1),"/"):i=t1(n,e)}else i=e;return{pathname:i,search:ZE(s),hash:eT(a)}}function t1(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function eg(t,e,n,s){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(s)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function QE(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function p0(t,e){let n=QE(t);return e?n.map((s,a)=>a===n.length-1?s.pathname:s.pathnameBase):n.map(s=>s.pathnameBase)}function m0(t,e,n,s){s===void 0&&(s=!1);let a;typeof t=="string"?a=dc(t):(a=Md({},t),Sn(!a.pathname||!a.pathname.includes("?"),eg("?","pathname","search",a)),Sn(!a.pathname||!a.pathname.includes("#"),eg("#","pathname","hash",a)),Sn(!a.search||!a.search.includes("#"),eg("#","search","hash",a)));let i=t===""||a.pathname==="",o=i?"/":a.pathname,c;if(o==null)c=n;else{let m=e.length-1;if(!s&&o.startsWith("..")){let g=o.split("/");for(;g[0]==="..";)g.shift(),m-=1;a.pathname=g.join("/")}c=m>=0?e[m]:"/"}let u=YE(a,c),h=o&&o!=="/"&&o.endsWith("/"),f=(i||o===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(h||f)&&(u.pathname+="/"),u}const Di=t=>t.join("/").replace(/\/\/+/g,"/"),XE=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),ZE=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,eT=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function tT(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const lj=["post","put","patch","delete"];new Set(lj);const nT=["get",...lj];new Set(nT);/**
* React Router v6.30.3
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/function Ad(){return Ad=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ad.apply(this,arguments)}const g0=b.createContext(null),sT=b.createContext(null),qi=b.createContext(null),Kf=b.createContext(null),Ya=b.createContext({outlet:null,matches:[],isDataRoute:!1}),cj=b.createContext(null);function rT(t,e){let{relative:n}=e===void 0?{}:e;uc()||Sn(!1);let{basename:s,navigator:a}=b.useContext(qi),{hash:i,pathname:o,search:c}=uj(t,{relative:n}),u=o;return s!=="/"&&(u=o==="/"?s:Di([s,o])),a.createHref({pathname:u,search:c,hash:i})}function uc(){return b.useContext(Kf)!=null}function Gi(){return uc()||Sn(!1),b.useContext(Kf).location}function dj(t){b.useContext(qi).static||b.useLayoutEffect(t)}function Ji(){let{isDataRoute:t}=b.useContext(Ya);return t?bT():aT()}function aT(){uc()||Sn(!1);let t=b.useContext(g0),{basename:e,future:n,navigator:s}=b.useContext(qi),{matches:a}=b.useContext(Ya),{pathname:i}=Gi(),o=JSON.stringify(p0(a,n.v7_relativeSplatPath)),c=b.useRef(!1);return dj(()=>{c.current=!0}),b.useCallback(function(h,f){if(f===void 0&&(f={}),!c.current)return;if(typeof h=="number"){s.go(h);return}let m=m0(h,JSON.parse(o),i,f.relative==="path");t==null&&e!=="/"&&(m.pathname=m.pathname==="/"?e:Di([e,m.pathname])),(f.replace?s.replace:s.push)(m,f.state,f)},[e,s,o,i,t])}const iT=b.createContext(null);function oT(t){let e=b.useContext(Ya).outlet;return e&&b.createElement(iT.Provider,{value:t},e)}function uj(t,e){let{relative:n}=e===void 0?{}:e,{future:s}=b.useContext(qi),{matches:a}=b.useContext(Ya),{pathname:i}=Gi(),o=JSON.stringify(p0(a,s.v7_relativeSplatPath));return b.useMemo(()=>m0(t,JSON.parse(o),i,n==="path"),[t,o,i,n])}function lT(t,e){return cT(t,e)}function cT(t,e,n,s){uc()||Sn(!1);let{navigator:a}=b.useContext(qi),{matches:i}=b.useContext(Ya),o=i[i.length-1],c=o?o.params:{};o&&o.pathname;let u=o?o.pathnameBase:"/";o&&o.route;let h=Gi(),f;if(e){var m;let v=typeof e=="string"?dc(e):e;u==="/"||(m=v.pathname)!=null&&m.startsWith(u)||Sn(!1),f=v}else f=h;let g=f.pathname||"/",y=g;if(u!=="/"){let v=u.replace(/^\//,"").split("/");y="/"+g.replace(/^\//,"").split("/").slice(v.length).join("/")}let N=RE(t,{pathname:y}),w=pT(N&&N.map(v=>Object.assign({},v,{params:Object.assign({},c,v.params),pathname:Di([u,a.encodeLocation?a.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?u:Di([u,a.encodeLocation?a.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),i,n,s);return e&&w?b.createElement(Kf.Provider,{value:{location:Ad({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:Ai.Pop}},w):w}function dT(){let t=yT(),e=tT(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},e),n?b.createElement("pre",{style:a},n):null,null)}const uT=b.createElement(dT,null);class hT extends b.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?b.createElement(Ya.Provider,{value:this.props.routeContext},b.createElement(cj.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function fT(t){let{routeContext:e,match:n,children:s}=t,a=b.useContext(g0);return a&&a.static&&a.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(Ya.Provider,{value:e},s)}function pT(t,e,n,s){var a;if(e===void 0&&(e=[]),n===void 0&&(n=null),s===void 0&&(s=null),t==null){var i;if(!n)return null;if(n.errors)t=n.matches;else if((i=s)!=null&&i.v7_partialHydration&&e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let o=t,c=(a=n)==null?void 0:a.errors;if(c!=null){let f=o.findIndex(m=>m.route.id&&(c==null?void 0:c[m.route.id])!==void 0);f>=0||Sn(!1),o=o.slice(0,Math.min(o.length,f+1))}let u=!1,h=-1;if(n&&s&&s.v7_partialHydration)for(let f=0;f<o.length;f++){let m=o[f];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(h=f),m.route.id){let{loaderData:g,errors:y}=n,N=m.route.loader&&g[m.route.id]===void 0&&(!y||y[m.route.id]===void 0);if(m.route.lazy||N){u=!0,h>=0?o=o.slice(0,h+1):o=[o[0]];break}}}return o.reduceRight((f,m,g)=>{let y,N=!1,w=null,v=null;n&&(y=c&&m.route.id?c[m.route.id]:void 0,w=m.route.errorElement||uT,u&&(h<0&&g===0?(vT("route-fallback"),N=!0,v=null):h===g&&(N=!0,v=m.route.hydrateFallbackElement||null)));let k=e.concat(o.slice(0,g+1)),C=()=>{let E;return y?E=w:N?E=v:m.route.Component?E=b.createElement(m.route.Component,null):m.route.element?E=m.route.element:E=f,b.createElement(fT,{match:m,routeContext:{outlet:f,matches:k,isDataRoute:n!=null},children:E})};return n&&(m.route.ErrorBoundary||m.route.errorElement||g===0)?b.createElement(hT,{location:n.location,revalidation:n.revalidation,component:w,error:y,children:C(),routeContext:{outlet:null,matches:k,isDataRoute:!0}}):C()},null)}var hj=(function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t})(hj||{}),fj=(function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t})(fj||{});function mT(t){let e=b.useContext(g0);return e||Sn(!1),e}function gT(t){let e=b.useContext(sT);return e||Sn(!1),e}function xT(t){let e=b.useContext(Ya);return e||Sn(!1),e}function pj(t){let e=xT(),n=e.matches[e.matches.length-1];return n.route.id||Sn(!1),n.route.id}function yT(){var t;let e=b.useContext(cj),n=gT(),s=pj();return e!==void 0?e:(t=n.errors)==null?void 0:t[s]}function bT(){let{router:t}=mT(hj.UseNavigateStable),e=pj(fj.UseNavigateStable),n=b.useRef(!1);return dj(()=>{n.current=!0}),b.useCallback(function(a,i){i===void 0&&(i={}),n.current&&(typeof a=="number"?t.navigate(a):t.navigate(a,Ad({fromRouteId:e},i)))},[t,e])}const n1={};function vT(t,e,n){n1[t]||(n1[t]=!0)}function NT(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function tg(t){let{to:e,replace:n,state:s,relative:a}=t;uc()||Sn(!1);let{future:i,static:o}=b.useContext(qi),{matches:c}=b.useContext(Ya),{pathname:u}=Gi(),h=Ji(),f=m0(e,p0(c,i.v7_relativeSplatPath),u,a==="path"),m=JSON.stringify(f);return b.useEffect(()=>h(JSON.parse(m),{replace:n,state:s,relative:a}),[h,m,a,n,s]),null}function wT(t){return oT(t.context)}function Gt(t){Sn(!1)}function jT(t){let{basename:e="/",children:n=null,location:s,navigationType:a=Ai.Pop,navigator:i,static:o=!1,future:c}=t;uc()&&Sn(!1);let u=e.replace(/^\/*/,"/"),h=b.useMemo(()=>({basename:u,navigator:i,static:o,future:Ad({v7_relativeSplatPath:!1},c)}),[u,c,i,o]);typeof s=="string"&&(s=dc(s));let{pathname:f="/",search:m="",hash:g="",state:y=null,key:N="default"}=s,w=b.useMemo(()=>{let v=f0(f,u);return v==null?null:{location:{pathname:v,search:m,hash:g,state:y,key:N},navigationType:a}},[u,f,m,g,y,N,a]);return w==null?null:b.createElement(qi.Provider,{value:h},b.createElement(Kf.Provider,{children:n,value:w}))}function kT(t){let{children:e,location:n}=t;return lT(Zg(e),n)}new Promise(()=>{});function Zg(t,e){e===void 0&&(e=[]);let n=[];return b.Children.forEach(t,(s,a)=>{if(!b.isValidElement(s))return;let i=[...e,a];if(s.type===b.Fragment){n.push.apply(n,Zg(s.props.children,i));return}s.type!==Gt&&Sn(!1),!s.props.index||!s.props.children||Sn(!1);let o={id:s.props.id||i.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,loader:s.props.loader,action:s.props.action,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(o.children=Zg(s.props.children,i)),n.push(o)}),n}/**
* React Router DOM v6.30.3
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/function ex(){return ex=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},ex.apply(this,arguments)}function ST(t,e){if(t==null)return{};var n={},s=Object.keys(t),a,i;for(i=0;i<s.length;i++)a=s[i],!(e.indexOf(a)>=0)&&(n[a]=t[a]);return n}function CT(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function ET(t,e){return t.button===0&&(!e||e==="_self")&&!CT(t)}function tx(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let s=t[n];return e.concat(Array.isArray(s)?s.map(a=>[n,a]):[[n,s]])},[]))}function TT(t,e){let n=tx(t);return e&&e.forEach((s,a)=>{n.has(a)||e.getAll(a).forEach(i=>{n.append(a,i)})}),n}const MT=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],AT="6";try{window.__reactRouterVersion=AT}catch{}const IT="startTransition",s1=Uf[IT];function PT(t){let{basename:e,children:n,future:s,window:a}=t,i=b.useRef();i.current==null&&(i.current=AE({window:a,v5Compat:!0}));let o=i.current,[c,u]=b.useState({action:o.action,location:o.location}),{v7_startTransition:h}=s||{},f=b.useCallback(m=>{h&&s1?s1(()=>u(m)):u(m)},[u,h]);return b.useLayoutEffect(()=>o.listen(f),[o,f]),b.useEffect(()=>NT(s),[s]),b.createElement(jT,{basename:e,children:n,location:c.location,navigationType:c.action,navigator:o,future:s})}const RT=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",OT=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,nx=b.forwardRef(function(e,n){let{onClick:s,relative:a,reloadDocument:i,replace:o,state:c,target:u,to:h,preventScrollReset:f,viewTransition:m}=e,g=ST(e,MT),{basename:y}=b.useContext(qi),N,w=!1;if(typeof h=="string"&&OT.test(h)&&(N=h,RT))try{let E=new URL(window.location.href),I=h.startsWith("//")?new URL(E.protocol+h):new URL(h),L=f0(I.pathname,y);I.origin===E.origin&&L!=null?h=L+I.search+I.hash:w=!0}catch{}let v=rT(h,{relative:a}),k=DT(h,{replace:o,state:c,target:u,preventScrollReset:f,relative:a,viewTransition:m});function C(E){s&&s(E),E.defaultPrevented||k(E)}return b.createElement("a",ex({},g,{href:N||v,onClick:w||i?s:C,ref:n,target:u}))});var r1;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(r1||(r1={}));var a1;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(a1||(a1={}));function DT(t,e){let{target:n,replace:s,state:a,preventScrollReset:i,relative:o,viewTransition:c}=e===void 0?{}:e,u=Ji(),h=Gi(),f=uj(t,{relative:o});return b.useCallback(m=>{if(ET(m,n)){m.preventDefault();let g=s!==void 0?s:Vh(h)===Vh(f);u(t,{replace:g,state:a,preventScrollReset:i,relative:o,viewTransition:c})}},[h,u,f,s,a,n,t,i,o,c])}function mj(t){let e=b.useRef(tx(t)),n=b.useRef(!1),s=Gi(),a=b.useMemo(()=>TT(s.search,n.current?null:e.current),[s.search]),i=Ji(),o=b.useCallback((c,u)=>{const h=tx(typeof c=="function"?c(a):c);n.current=!0,i("?"+h,u)},[i,a]);return[a,o]}/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const LT=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),_T=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,s)=>s?s.toUpperCase():n.toLowerCase()),i1=t=>{const e=_T(t);return e.charAt(0).toUpperCase()+e.slice(1)},gj=(...t)=>t.filter((e,n,s)=>!!e&&e.trim()!==""&&s.indexOf(e)===n).join(" ").trim(),zT=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/var FT={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const $T=b.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:a="",children:i,iconNode:o,...c},u)=>b.createElement("svg",{ref:u,...FT,width:e,height:e,stroke:t,strokeWidth:s?Number(n)*24/Number(e):n,className:gj("lucide",a),...!i&&!zT(c)&&{"aria-hidden":"true"},...c},[...o.map(([h,f])=>b.createElement(h,f)),...Array.isArray(i)?i:[i]]));/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const Ie=(t,e)=>{const n=b.forwardRef(({className:s,...a},i)=>b.createElement($T,{ref:i,iconNode:e,className:gj(`lucide-${LT(i1(t))}`,`lucide-${t}`,s),...a}));return n.displayName=i1(t),n};/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const BT=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],ng=Ie("arrow-up-down",BT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const VT=[["path",{d:"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",key:"yr8idg"}]],o1=Ie("bitcoin",VT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const HT=[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]],WT=Ie("bold",HT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const UT=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],ir=Ie("book-open",UT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const KT=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],Hh=Ie("calendar",KT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const qT=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],sx=Ie("chart-column",qT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const GT=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],qf=Ie("check",GT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const JT=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],x0=Ie("chevron-down",JT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const YT=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],QT=Ie("chevron-left",YT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const XT=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ql=Ie("chevron-right",XT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const ZT=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],xj=Ie("chevron-up",ZT);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const eM=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],yj=Ie("circle-alert",eM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const tM=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],l1=Ie("circle-check-big",tM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const nM=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],rx=Ie("circle-check",nM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const sM=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],bj=Ie("circle-question-mark",sM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const rM=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],sg=Ie("circle-user",rM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const aM=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],vj=Ie("circle-x",aM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const iM=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ax=Ie("clock",iM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const oM=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],lM=Ie("cloud",oM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const cM=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],dM=Ie("code",cM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const uM=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],y0=Ie("copy",uM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const hM=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],c1=Ie("credit-card",hM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const fM=[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]],Yl=Ie("crown",fM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const pM=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Wh=Ie("dollar-sign",pM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const mM=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],gM=Ie("download",mM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const xM=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],qa=Ie("external-link",xM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const yM=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],ix=Ie("eye",yM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const bM=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Nj=Ie("file-text",bM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const vM=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],wj=Ie("funnel",vM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const NM=[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]],jj=Ie("gift",NM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const wM=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]],jM=Ie("git-merge",wM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const kM=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],ox=Ie("globe",kM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const SM=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],CM=Ie("graduation-cap",SM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const EM=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],Ra=Ie("grip-vertical",EM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const TM=[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]],MM=Ie("handshake",TM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const AM=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],d1=Ie("hash",AM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const IM=[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"m17 12 3-2v8",key:"1hhhft"}]],PM=Ie("heading-1",IM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const RM=[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",key:"9jr5yi"}]],OM=Ie("heading-2",RM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const DM=[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",key:"68ncm8"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",key:"1ejuhz"}]],LM=Ie("heading-3",DM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const _M=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],zM=Ie("house",_M);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const FM=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],kj=Ie("image",FM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const $M=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],ah=Ie("info",$M);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const BM=[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]],VM=Ie("italic",BM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const HM=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],Sj=Ie("key",HM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const WM=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],UM=Ie("layout-dashboard",WM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const KM=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],$r=Ie("link-2",KM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const qM=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],lx=Ie("link",qM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const GM=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],JM=Ie("list-ordered",GM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const YM=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],QM=Ie("list",YM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const XM=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],ZM=Ie("lock",XM);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const eA=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],tA=Ie("log-out",eA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const nA=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],Cj=Ie("map-pin",nA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const sA=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],rA=Ie("menu",sA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const aA=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],iA=Ie("message-circle",aA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const oA=[["path",{d:"M5 12h14",key:"1ays0h"}]],lA=Ie("minus",oA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const cA=[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]],Gl=Ie("navigation",cA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const dA=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],uA=Ie("palette",dA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const hA=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],Jt=Ie("pen-line",hA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const fA=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],cx=Ie("pencil",fA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const pA=[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]],mA=Ie("percent",pA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const gA=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],xA=Ie("phone",gA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const yA=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],u1=Ie("pin",yA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const bA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],xn=Ie("plus",bA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const vA=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],h1=Ie("qr-code",vA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const NA=[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]],wA=Ie("quote",NA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const jA=[["path",{d:"M21 7v6h-6",key:"3ptur4"}],["path",{d:"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",key:"1kgawr"}]],kA=Ie("redo",jA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const SA=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],Be=Ie("refresh-cw",SA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const CA=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],kn=Ie("save",CA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const EA=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],ca=Ie("search",EA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const TA=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],MA=Ie("send",TA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const AA=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],_o=Ie("settings",AA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const IA=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],ih=Ie("settings-2",IA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const PA=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],pd=Ie("shield-check",PA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const RA=[["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}],["path",{d:"M3.103 6.034h17.794",key:"awc11p"}],["path",{d:"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z",key:"o988cm"}]],dx=Ie("shopping-bag",RA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const OA=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],Bi=Ie("smartphone",OA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const DA=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Ii=Ie("star",DA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const LA=[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]],_A=Ie("strikethrough",LA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const zA=[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]],FA=Ie("table",zA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const $A=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],md=Ie("tag",$A);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const BA=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Xn=Ie("trash-2",BA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const VA=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],gd=Ie("trending-up",VA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const HA=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],ux=Ie("trophy",HA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const WA=[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]],hx=Ie("undo-2",WA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const UA=[["path",{d:"M3 7v6h6",key:"1v2h90"}],["path",{d:"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13",key:"1r6uu6"}]],KA=Ie("undo",UA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const qA=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Uh=Ie("upload",qA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const GA=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],xd=Ie("user-plus",GA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const JA=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],zo=Ie("user",JA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const YA=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],zn=Ie("users",YA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const QA=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]],tc=Ie("wallet",QA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const XA=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],gs=Ie("x",XA);/**
* @license lucide-react v0.562.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const ZA=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Va=Ie("zap",ZA),b0="admin_token";function Gf(){try{return localStorage.getItem(b0)}catch{return null}}function e5(t){try{localStorage.setItem(b0,t)}catch{}}function rg(){try{localStorage.removeItem(b0)}catch{}}const t5="https://soulapi.quwanzhi.com",n5=15e3,f1=6e4,s5=()=>{const t="https://soulapi.quwanzhi.com";return t.length>0?t.replace(/\/$/,""):t5};function Wo(t){const e=s5(),n=t.startsWith("/")?t:`/${t}`;return e?`${e}${n}`:n}async function Jf(t,e={}){const{data:n,...s}=e,a=Wo(t),i=new Headers(s.headers),o=Gf();o&&i.set("Authorization",`Bearer ${o}`),n!=null&&!i.has("Content-Type")&&i.set("Content-Type","application/json");const c=n!=null?JSON.stringify(n):s.body,u=s.timeout??n5,h=new AbortController,f=setTimeout(()=>h.abort(),u),m=await fetch(a,{...s,headers:i,body:c,credentials:"include",signal:h.signal}).finally(()=>clearTimeout(f)),y=(m.headers.get("Content-Type")||"").includes("application/json")?await m.json():m,N=w=>{const v=w,k=((v==null?void 0:v.message)||(v==null?void 0:v.error)||"").toString();(k.includes("可提现金额不足")||k.includes("可提现不足")||k.includes("余额不足"))&&window.dispatchEvent(new CustomEvent("recharge-alert",{detail:k}))};if(!m.ok){N(y);const w=new Error((y==null?void 0:y.error)||`HTTP ${m.status}`);throw w.status=m.status,w.data=y,w}return N(y),y}function Oe(t,e){return Jf(t,{...e,method:"GET"})}function jt(t,e,n){return Jf(t,{...n,method:"POST",data:e})}function Pt(t,e,n){return Jf(t,{...n,method:"PUT",data:e})}function oa(t,e){return Jf(t,{...e,method:"DELETE"})}function r5(){const[t,e]=b.useState(!1),[n,s]=b.useState("");return b.useEffect(()=>{const a=i=>{const o=i.detail;s(o||"可提现/余额不足,请及时充值商户号"),e(!0)};return window.addEventListener("recharge-alert",a),()=>window.removeEventListener("recharge-alert",a)},[]),t?r.jsxs("div",{className:"flex items-center justify-between gap-4 px-4 py-3 bg-red-900/80 border-b border-red-600/50 text-red-100",role:"alert",children:[r.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[r.jsx(yj,{className:"w-5 h-5 shrink-0 text-red-400"}),r.jsxs("span",{className:"text-sm font-medium",children:[n,r.jsx("span",{className:"ml-2 text-red-300",children:"请及时充值商户号或核对账户后重试。"})]})]}),r.jsx("button",{type:"button",onClick:()=>e(!1),className:"shrink-0 p-1 rounded hover:bg-red-800/50 transition-colors","aria-label":"关闭告警",children:r.jsx(gs,{className:"w-4 h-4"})})]}):null}const a5=[{icon:UM,label:"数据概览",href:"/dashboard"},{icon:ir,label:"内容管理",href:"/content"},{icon:zn,label:"用户管理",href:"/users"},{icon:jM,label:"找伙伴",href:"/find-partner"},{icon:tc,label:"推广中心",href:"/distribution"}];function i5(){const t=Gi(),e=Ji(),[n,s]=b.useState(!1),[a,i]=b.useState(!1);b.useEffect(()=>{s(!0)},[]),b.useEffect(()=>{if(!n)return;i(!1);let c=!1;if(!Gf()){e("/login",{replace:!0});return}return Oe("/api/admin").then(u=>{c||(u&&u.success!==!1?i(!0):(rg(),e("/login",{replace:!0,state:{from:t.pathname}})))}).catch(()=>{c||(rg(),e("/login",{replace:!0,state:{from:t.pathname}}))}),()=>{c=!0}},[t.pathname,n,e]);const o=async()=>{rg();try{await jt("/api/admin/logout",{})}catch{}e("/login",{replace:!0})};return!n||!a?r.jsxs("div",{className:"flex min-h-screen bg-[#0a1628]",children:[r.jsx("div",{className:"w-64 bg-[#0f2137] border-r border-gray-700/50"}),r.jsx("div",{className:"flex-1 flex items-center justify-center",children:r.jsx("div",{className:"text-[#38bdac]",children:"加载中..."})})]}):r.jsxs("div",{className:"flex min-h-screen bg-[#0a1628]",children:[r.jsxs("div",{className:"w-64 bg-[#0f2137] flex flex-col border-r border-gray-700/50 shadow-xl",children:[r.jsxs("div",{className:"p-6 border-b border-gray-700/50",children:[r.jsx("h1",{className:"text-xl font-bold text-[#38bdac]",children:"管理后台"}),r.jsx("p",{className:"text-xs text-gray-400 mt-1",children:"Soul创业派对"})]}),r.jsxs("nav",{className:"flex-1 p-4 space-y-1 overflow-y-auto",children:[a5.map(c=>{const u=t.pathname===c.href;return r.jsxs(nx,{to:c.href,className:`flex items-center gap-3 px-4 py-3 rounded-lg transition-colors ${u?"bg-[#38bdac]/20 text-[#38bdac] font-medium":"text-gray-400 hover:bg-gray-700/50 hover:text-white"}`,children:[r.jsx(c.icon,{className:"w-5 h-5 shrink-0"}),r.jsx("span",{className:"text-sm",children:c.label})]},c.href)}),r.jsx("div",{className:"pt-4 mt-4 border-t border-gray-700/50",children:r.jsxs(nx,{to:"/settings",className:`flex items-center gap-3 px-4 py-3 rounded-lg transition-colors ${t.pathname==="/settings"?"bg-[#38bdac]/20 text-[#38bdac] font-medium":"text-gray-400 hover:bg-gray-700/50 hover:text-white"}`,children:[r.jsx(_o,{className:"w-5 h-5 shrink-0"}),r.jsx("span",{className:"text-sm",children:"系统设置"})]})})]}),r.jsx("div",{className:"p-4 border-t border-gray-700/50 space-y-1",children:r.jsxs("button",{type:"button",onClick:o,className:"w-full flex items-center gap-3 px-4 py-3 text-gray-400 hover:text-white rounded-lg hover:bg-gray-700/50 transition-colors",children:[r.jsx(tA,{className:"w-5 h-5"}),r.jsx("span",{className:"text-sm",children:"退出登录"})]})})]}),r.jsxs("div",{className:"flex-1 overflow-auto bg-[#0a1628] min-w-0 flex flex-col",children:[r.jsx(r5,{}),r.jsx("div",{className:"w-full min-w-[1024px] min-h-full flex-1",children:r.jsx(wT,{})})]})]})}function p1(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function v0(...t){return e=>{let n=!1;const s=t.map(a=>{const i=p1(a,e);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let a=0;a<s.length;a++){const i=s[a];typeof i=="function"?i():p1(t[a],null)}}}}function Ot(...t){return b.useCallback(v0(...t),t)}var o5=Symbol.for("react.lazy"),Kh=Uf[" use ".trim().toString()];function l5(t){return typeof t=="object"&&t!==null&&"then"in t}function Ej(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===o5&&"_payload"in t&&l5(t._payload)}function Tj(t){const e=c5(t),n=b.forwardRef((s,a)=>{let{children:i,...o}=s;Ej(i)&&typeof Kh=="function"&&(i=Kh(i._payload));const c=b.Children.toArray(i),u=c.find(u5);if(u){const h=u.props.children,f=c.map(m=>m===u?b.Children.count(h)>1?b.Children.only(null):b.isValidElement(h)?h.props.children:null:m);return r.jsx(e,{...o,ref:a,children:b.isValidElement(h)?b.cloneElement(h,void 0,f):null})}return r.jsx(e,{...o,ref:a,children:i})});return n.displayName=`${t}.Slot`,n}var Mj=Tj("Slot");function c5(t){const e=b.forwardRef((n,s)=>{let{children:a,...i}=n;if(Ej(a)&&typeof Kh=="function"&&(a=Kh(a._payload)),b.isValidElement(a)){const o=f5(a),c=h5(i,a.props);return a.type!==b.Fragment&&(c.ref=s?v0(s,o):o),b.cloneElement(a,c)}return b.Children.count(a)>1?b.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var d5=Symbol("radix.slottable");function u5(t){return b.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===d5}function h5(t,e){const n={...e};for(const s in e){const a=t[s],i=e[s];/^on[A-Z]/.test(s)?a&&i?n[s]=(...c)=>{const u=i(...c);return a(...c),u}:a&&(n[s]=a):s==="style"?n[s]={...a,...i}:s==="className"&&(n[s]=[a,i].filter(Boolean).join(" "))}return{...t,...n}}function f5(t){var s,a;let e=(s=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:s.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function Aj(t){var e,n,s="";if(typeof t=="string"||typeof t=="number")s+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(e=0;e<a;e++)t[e]&&(n=Aj(t[e]))&&(s&&(s+=" "),s+=n)}else for(n in t)t[n]&&(s&&(s+=" "),s+=n);return s}function Ij(){for(var t,e,n=0,s="",a=arguments.length;n<a;n++)(t=arguments[n])&&(e=Aj(t))&&(s&&(s+=" "),s+=e);return s}const m1=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,g1=Ij,Pj=(t,e)=>n=>{var s;if((e==null?void 0:e.variants)==null)return g1(t,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:a,defaultVariants:i}=e,o=Object.keys(a).map(h=>{const f=n==null?void 0:n[h],m=i==null?void 0:i[h];if(f===null)return null;const g=m1(f)||m1(m);return a[h][g]}),c=n&&Object.entries(n).reduce((h,f)=>{let[m,g]=f;return g===void 0||(h[m]=g),h},{}),u=e==null||(s=e.compoundVariants)===null||s===void 0?void 0:s.reduce((h,f)=>{let{class:m,className:g,...y}=f;return Object.entries(y).every(N=>{let[w,v]=N;return Array.isArray(v)?v.includes({...i,...c}[w]):{...i,...c}[w]===v})?[...h,m,g]:h},[]);return g1(t,o,u,n==null?void 0:n.class,n==null?void 0:n.className)},p5=(t,e)=>{const n=new Array(t.length+e.length);for(let s=0;s<t.length;s++)n[s]=t[s];for(let s=0;s<e.length;s++)n[t.length+s]=e[s];return n},m5=(t,e)=>({classGroupId:t,validator:e}),Rj=(t=new Map,e=null,n)=>({nextPart:t,validators:e,classGroupId:n}),qh="-",x1=[],g5="arbitrary..",x5=t=>{const e=b5(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:s}=t;return{getClassGroupId:o=>{if(o.startsWith("[")&&o.endsWith("]"))return y5(o);const c=o.split(qh),u=c[0]===""&&c.length>1?1:0;return Oj(c,u,e)},getConflictingClassGroupIds:(o,c)=>{if(c){const u=s[o],h=n[o];return u?h?p5(h,u):u:h||x1}return n[o]||x1}}},Oj=(t,e,n)=>{if(t.length-e===0)return n.classGroupId;const a=t[e],i=n.nextPart.get(a);if(i){const h=Oj(t,e+1,i);if(h)return h}const o=n.validators;if(o===null)return;const c=e===0?t.join(qh):t.slice(e).join(qh),u=o.length;for(let h=0;h<u;h++){const f=o[h];if(f.validator(c))return f.classGroupId}},y5=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=t.slice(1,-1),n=e.indexOf(":"),s=e.slice(0,n);return s?g5+s:void 0})(),b5=t=>{const{theme:e,classGroups:n}=t;return v5(n,e)},v5=(t,e)=>{const n=Rj();for(const s in t){const a=t[s];N0(a,n,s,e)}return n},N0=(t,e,n,s)=>{const a=t.length;for(let i=0;i<a;i++){const o=t[i];N5(o,e,n,s)}},N5=(t,e,n,s)=>{if(typeof t=="string"){w5(t,e,n);return}if(typeof t=="function"){j5(t,e,n,s);return}k5(t,e,n,s)},w5=(t,e,n)=>{const s=t===""?e:Dj(e,t);s.classGroupId=n},j5=(t,e,n,s)=>{if(S5(t)){N0(t(s),e,n,s);return}e.validators===null&&(e.validators=[]),e.validators.push(m5(n,t))},k5=(t,e,n,s)=>{const a=Object.entries(t),i=a.length;for(let o=0;o<i;o++){const[c,u]=a[o];N0(u,Dj(e,c),n,s)}},Dj=(t,e)=>{let n=t;const s=e.split(qh),a=s.length;for(let i=0;i<a;i++){const o=s[i];let c=n.nextPart.get(o);c||(c=Rj(),n.nextPart.set(o,c)),n=c}return n},S5=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,C5=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,n=Object.create(null),s=Object.create(null);const a=(i,o)=>{n[i]=o,e++,e>t&&(e=0,s=n,n=Object.create(null))};return{get(i){let o=n[i];if(o!==void 0)return o;if((o=s[i])!==void 0)return a(i,o),o},set(i,o){i in n?n[i]=o:a(i,o)}}},fx="!",y1=":",E5=[],b1=(t,e,n,s,a)=>({modifiers:t,hasImportantModifier:e,baseClassName:n,maybePostfixModifierPosition:s,isExternal:a}),T5=t=>{const{prefix:e,experimentalParseClassName:n}=t;let s=a=>{const i=[];let o=0,c=0,u=0,h;const f=a.length;for(let w=0;w<f;w++){const v=a[w];if(o===0&&c===0){if(v===y1){i.push(a.slice(u,w)),u=w+1;continue}if(v==="/"){h=w;continue}}v==="["?o++:v==="]"?o--:v==="("?c++:v===")"&&c--}const m=i.length===0?a:a.slice(u);let g=m,y=!1;m.endsWith(fx)?(g=m.slice(0,-1),y=!0):m.startsWith(fx)&&(g=m.slice(1),y=!0);const N=h&&h>u?h-u:void 0;return b1(i,y,g,N)};if(e){const a=e+y1,i=s;s=o=>o.startsWith(a)?i(o.slice(a.length)):b1(E5,!1,o,void 0,!0)}if(n){const a=s;s=i=>n({className:i,parseClassName:a})}return s},M5=t=>{const e=new Map;return t.orderSensitiveModifiers.forEach((n,s)=>{e.set(n,1e6+s)}),n=>{const s=[];let a=[];for(let i=0;i<n.length;i++){const o=n[i],c=o[0]==="[",u=e.has(o);c||u?(a.length>0&&(a.sort(),s.push(...a),a=[]),s.push(o)):a.push(o)}return a.length>0&&(a.sort(),s.push(...a)),s}},A5=t=>({cache:C5(t.cacheSize),parseClassName:T5(t),sortModifiers:M5(t),...x5(t)}),I5=/\s+/,P5=(t,e)=>{const{parseClassName:n,getClassGroupId:s,getConflictingClassGroupIds:a,sortModifiers:i}=e,o=[],c=t.trim().split(I5);let u="";for(let h=c.length-1;h>=0;h-=1){const f=c[h],{isExternal:m,modifiers:g,hasImportantModifier:y,baseClassName:N,maybePostfixModifierPosition:w}=n(f);if(m){u=f+(u.length>0?" "+u:u);continue}let v=!!w,k=s(v?N.substring(0,w):N);if(!k){if(!v){u=f+(u.length>0?" "+u:u);continue}if(k=s(N),!k){u=f+(u.length>0?" "+u:u);continue}v=!1}const C=g.length===0?"":g.length===1?g[0]:i(g).join(":"),E=y?C+fx:C,I=E+k;if(o.indexOf(I)>-1)continue;o.push(I);const L=a(k,v);for(let W=0;W<L.length;++W){const D=L[W];o.push(E+D)}u=f+(u.length>0?" "+u:u)}return u},R5=(...t)=>{let e=0,n,s,a="";for(;e<t.length;)(n=t[e++])&&(s=Lj(n))&&(a&&(a+=" "),a+=s);return a},Lj=t=>{if(typeof t=="string")return t;let e,n="";for(let s=0;s<t.length;s++)t[s]&&(e=Lj(t[s]))&&(n&&(n+=" "),n+=e);return n},O5=(t,...e)=>{let n,s,a,i;const o=u=>{const h=e.reduce((f,m)=>m(f),t());return n=A5(h),s=n.cache.get,a=n.cache.set,i=c,c(u)},c=u=>{const h=s(u);if(h)return h;const f=P5(u,n);return a(u,f),f};return i=o,(...u)=>i(R5(...u))},D5=[],Ln=t=>{const e=n=>n[t]||D5;return e.isThemeGetter=!0,e},_j=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,zj=/^\((?:(\w[\w-]*):)?(.+)\)$/i,L5=/^\d+\/\d+$/,_5=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,z5=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,F5=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,$5=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B5=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ll=t=>L5.test(t),gt=t=>!!t&&!Number.isNaN(Number(t)),bi=t=>!!t&&Number.isInteger(Number(t)),ag=t=>t.endsWith("%")&&gt(t.slice(0,-1)),Oa=t=>_5.test(t),V5=()=>!0,H5=t=>z5.test(t)&&!F5.test(t),Fj=()=>!1,W5=t=>$5.test(t),U5=t=>B5.test(t),K5=t=>!We(t)&&!Ue(t),q5=t=>hc(t,Vj,Fj),We=t=>_j.test(t),To=t=>hc(t,Hj,H5),ig=t=>hc(t,X5,gt),v1=t=>hc(t,$j,Fj),G5=t=>hc(t,Bj,U5),oh=t=>hc(t,Wj,W5),Ue=t=>zj.test(t),nd=t=>fc(t,Hj),J5=t=>fc(t,Z5),N1=t=>fc(t,$j),Y5=t=>fc(t,Vj),Q5=t=>fc(t,Bj),lh=t=>fc(t,Wj,!0),hc=(t,e,n)=>{const s=_j.exec(t);return s?s[1]?e(s[1]):n(s[2]):!1},fc=(t,e,n=!1)=>{const s=zj.exec(t);return s?s[1]?e(s[1]):n:!1},$j=t=>t==="position"||t==="percentage",Bj=t=>t==="image"||t==="url",Vj=t=>t==="length"||t==="size"||t==="bg-size",Hj=t=>t==="length",X5=t=>t==="number",Z5=t=>t==="family-name",Wj=t=>t==="shadow",eI=()=>{const t=Ln("color"),e=Ln("font"),n=Ln("text"),s=Ln("font-weight"),a=Ln("tracking"),i=Ln("leading"),o=Ln("breakpoint"),c=Ln("container"),u=Ln("spacing"),h=Ln("radius"),f=Ln("shadow"),m=Ln("inset-shadow"),g=Ln("text-shadow"),y=Ln("drop-shadow"),N=Ln("blur"),w=Ln("perspective"),v=Ln("aspect"),k=Ln("ease"),C=Ln("animate"),E=()=>["auto","avoid","all","avoid-page","page","left","right","column"],I=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],L=()=>[...I(),Ue,We],W=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],P=()=>[Ue,We,u],R=()=>[Ll,"full","auto",...P()],K=()=>[bi,"none","subgrid",Ue,We],re=()=>["auto",{span:["full",bi,Ue,We]},bi,Ue,We],ue=()=>[bi,"auto",Ue,We],xe=()=>["auto","min","max","fr",Ue,We],H=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],O=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...P()],$=()=>[Ll,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...P()],M=()=>[t,Ue,We],q=()=>[...I(),N1,v1,{position:[Ue,We]}],B=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",Y5,q5,{size:[Ue,We]}],G=()=>[ag,nd,To],oe=()=>["","none","full",h,Ue,We],ye=()=>["",gt,nd,To],Ae=()=>["solid","dashed","dotted","double"],ke=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[gt,ag,N1,v1],Y=()=>["","none",N,Ue,We],he=()=>["none",gt,Ue,We],te=()=>["none",gt,Ue,We],ce=()=>[gt,Ue,We],pe=()=>[Ll,"full",...P()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Oa],breakpoint:[Oa],color:[V5],container:[Oa],"drop-shadow":[Oa],ease:["in","out","in-out"],font:[K5],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Oa],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Oa],shadow:[Oa],spacing:["px",gt],text:[Oa],"text-shadow":[Oa],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ll,We,Ue,v]}],container:["container"],columns:[{columns:[gt,We,Ue,c]}],"break-after":[{"break-after":E()}],"break-before":[{"break-before":E()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:L()}],overflow:[{overflow:W()}],"overflow-x":[{"overflow-x":W()}],"overflow-y":[{"overflow-y":W()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[bi,"auto",Ue,We]}],basis:[{basis:[Ll,"full","auto",c,...P()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[gt,Ll,"auto","initial","none",We]}],grow:[{grow:["",gt,Ue,We]}],shrink:[{shrink:["",gt,Ue,We]}],order:[{order:[bi,"first","last","none",Ue,We]}],"grid-cols":[{"grid-cols":K()}],"col-start-end":[{col:re()}],"col-start":[{"col-start":ue()}],"col-end":[{"col-end":ue()}],"grid-rows":[{"grid-rows":K()}],"row-start-end":[{row:re()}],"row-start":[{"row-start":ue()}],"row-end":[{"row-end":ue()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":xe()}],"auto-rows":[{"auto-rows":xe()}],gap:[{gap:P()}],"gap-x":[{"gap-x":P()}],"gap-y":[{"gap-y":P()}],"justify-content":[{justify:[...H(),"normal"]}],"justify-items":[{"justify-items":[...O(),"normal"]}],"justify-self":[{"justify-self":["auto",...O()]}],"align-content":[{content:["normal",...H()]}],"align-items":[{items:[...O(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...O(),{baseline:["","last"]}]}],"place-content":[{"place-content":H()}],"place-items":[{"place-items":[...O(),"baseline"]}],"place-self":[{"place-self":["auto",...O()]}],p:[{p:P()}],px:[{px:P()}],py:[{py:P()}],ps:[{ps:P()}],pe:[{pe:P()}],pt:[{pt:P()}],pr:[{pr:P()}],pb:[{pb:P()}],pl:[{pl:P()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":P()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":P()}],"space-y-reverse":["space-y-reverse"],size:[{size:$()}],w:[{w:[c,"screen",...$()]}],"min-w":[{"min-w":[c,"screen","none",...$()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[o]},...$()]}],h:[{h:["screen","lh",...$()]}],"min-h":[{"min-h":["screen","lh","none",...$()]}],"max-h":[{"max-h":["screen","lh",...$()]}],"font-size":[{text:["base",n,nd,To]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,Ue,ig]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ag,We]}],"font-family":[{font:[J5,We,e]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,Ue,We]}],"line-clamp":[{"line-clamp":[gt,"none",Ue,ig]}],leading:[{leading:[i,...P()]}],"list-image":[{"list-image":["none",Ue,We]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ue,We]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[gt,"from-font","auto",Ue,To]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[gt,"auto",Ue,We]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ue,We]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ue,We]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:q()}],"bg-repeat":[{bg:B()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},bi,Ue,We],radial:["",Ue,We],conic:[bi,Ue,We]},Q5,G5]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:G()}],"gradient-via-pos":[{via:G()}],"gradient-to-pos":[{to:G()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:oe()}],"rounded-s":[{"rounded-s":oe()}],"rounded-e":[{"rounded-e":oe()}],"rounded-t":[{"rounded-t":oe()}],"rounded-r":[{"rounded-r":oe()}],"rounded-b":[{"rounded-b":oe()}],"rounded-l":[{"rounded-l":oe()}],"rounded-ss":[{"rounded-ss":oe()}],"rounded-se":[{"rounded-se":oe()}],"rounded-ee":[{"rounded-ee":oe()}],"rounded-es":[{"rounded-es":oe()}],"rounded-tl":[{"rounded-tl":oe()}],"rounded-tr":[{"rounded-tr":oe()}],"rounded-br":[{"rounded-br":oe()}],"rounded-bl":[{"rounded-bl":oe()}],"border-w":[{border:ye()}],"border-w-x":[{"border-x":ye()}],"border-w-y":[{"border-y":ye()}],"border-w-s":[{"border-s":ye()}],"border-w-e":[{"border-e":ye()}],"border-w-t":[{"border-t":ye()}],"border-w-r":[{"border-r":ye()}],"border-w-b":[{"border-b":ye()}],"border-w-l":[{"border-l":ye()}],"divide-x":[{"divide-x":ye()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ye()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ae(),"hidden","none"]}],"divide-style":[{divide:[...Ae(),"hidden","none"]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}],"divide-color":[{divide:M()}],"outline-style":[{outline:[...Ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[gt,Ue,We]}],"outline-w":[{outline:["",gt,nd,To]}],"outline-color":[{outline:M()}],shadow:[{shadow:["","none",f,lh,oh]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":["none",m,lh,oh]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:ye()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[gt,To]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":ye()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":["none",g,lh,oh]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[gt,Ue,We]}],"mix-blend":[{"mix-blend":[...ke(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ke()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[gt]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[Ue,We]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":I()}],"mask-image-conic-pos":[{"mask-conic":[gt]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:q()}],"mask-repeat":[{mask:B()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ue,We]}],filter:[{filter:["","none",Ue,We]}],blur:[{blur:Y()}],brightness:[{brightness:[gt,Ue,We]}],contrast:[{contrast:[gt,Ue,We]}],"drop-shadow":[{"drop-shadow":["","none",y,lh,oh]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:["",gt,Ue,We]}],"hue-rotate":[{"hue-rotate":[gt,Ue,We]}],invert:[{invert:["",gt,Ue,We]}],saturate:[{saturate:[gt,Ue,We]}],sepia:[{sepia:["",gt,Ue,We]}],"backdrop-filter":[{"backdrop-filter":["","none",Ue,We]}],"backdrop-blur":[{"backdrop-blur":Y()}],"backdrop-brightness":[{"backdrop-brightness":[gt,Ue,We]}],"backdrop-contrast":[{"backdrop-contrast":[gt,Ue,We]}],"backdrop-grayscale":[{"backdrop-grayscale":["",gt,Ue,We]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[gt,Ue,We]}],"backdrop-invert":[{"backdrop-invert":["",gt,Ue,We]}],"backdrop-opacity":[{"backdrop-opacity":[gt,Ue,We]}],"backdrop-saturate":[{"backdrop-saturate":[gt,Ue,We]}],"backdrop-sepia":[{"backdrop-sepia":["",gt,Ue,We]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":P()}],"border-spacing-x":[{"border-spacing-x":P()}],"border-spacing-y":[{"border-spacing-y":P()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ue,We]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[gt,"initial",Ue,We]}],ease:[{ease:["linear","initial",k,Ue,We]}],delay:[{delay:[gt,Ue,We]}],animate:[{animate:["none",C,Ue,We]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Ue,We]}],"perspective-origin":[{"perspective-origin":L()}],rotate:[{rotate:he()}],"rotate-x":[{"rotate-x":he()}],"rotate-y":[{"rotate-y":he()}],"rotate-z":[{"rotate-z":he()}],scale:[{scale:te()}],"scale-x":[{"scale-x":te()}],"scale-y":[{"scale-y":te()}],"scale-z":[{"scale-z":te()}],"scale-3d":["scale-3d"],skew:[{skew:ce()}],"skew-x":[{"skew-x":ce()}],"skew-y":[{"skew-y":ce()}],transform:[{transform:[Ue,We,"","none","gpu","cpu"]}],"transform-origin":[{origin:L()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:pe()}],"translate-x":[{"translate-x":pe()}],"translate-y":[{"translate-y":pe()}],"translate-z":[{"translate-z":pe()}],"translate-none":["translate-none"],accent:[{accent:M()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:M()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ue,We]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ue,We]}],fill:[{fill:["none",...M()]}],"stroke-w":[{stroke:[gt,nd,To,ig]}],stroke:[{stroke:["none",...M()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},tI=O5(eI);function Dt(...t){return tI(Ij(t))}const nI=Pj("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function X({className:t,variant:e,size:n,asChild:s=!1,...a}){const i=s?Mj:"button";return r.jsx(i,{"data-slot":"button",className:Dt(nI({variant:e,size:n,className:t})),...a})}function ae({className:t,type:e,...n}){return r.jsx("input",{type:e,"data-slot":"input",className:Dt("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none placeholder:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 md:text-sm focus-visible:ring-2 focus-visible:ring-ring",t),...n})}function sI(){const t=Ji(),[e,n]=b.useState(""),[s,a]=b.useState(""),[i,o]=b.useState(""),[c,u]=b.useState(!1),h=async()=>{o(""),u(!0);try{const f=await jt("/api/admin",{username:e.trim(),password:s});if((f==null?void 0:f.success)!==!1&&(f!=null&&f.token)){e5(f.token),t("/dashboard",{replace:!0});return}o(f.error||"用户名或密码错误")}catch(f){const m=f;o(m.status===401?"用户名或密码错误":(m==null?void 0:m.message)||"网络错误,请重试")}finally{u(!1)}};return r.jsxs("div",{className:"min-h-screen bg-[#0a1628] flex items-center justify-center p-4",children:[r.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[r.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-[#38bdac]/5 rounded-full blur-3xl"}),r.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-blue-500/5 rounded-full blur-3xl"})]}),r.jsxs("div",{className:"w-full max-w-md relative z-10",children:[r.jsxs("div",{className:"text-center mb-8",children:[r.jsx("div",{className:"w-16 h-16 bg-[#38bdac]/20 rounded-2xl flex items-center justify-center mx-auto mb-4 border border-[#38bdac]/30",children:r.jsx(pd,{className:"w-8 h-8 text-[#38bdac]"})}),r.jsx("h1",{className:"text-2xl font-bold text-white mb-2",children:"管理后台"}),r.jsx("p",{className:"text-gray-400",children:"一场SOUL的创业实验场"})]}),r.jsxs("div",{className:"bg-[#0f2137] rounded-2xl p-8 shadow-xl border border-gray-700/50 backdrop-blur-xl",children:[r.jsx("h2",{className:"text-xl font-semibold text-white mb-6 text-center",children:"管理员登录"}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{children:[r.jsx("label",{className:"block text-gray-400 text-sm mb-2",children:"用户名"}),r.jsxs("div",{className:"relative",children:[r.jsx(zo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"}),r.jsx(ae,{type:"text",value:e,onChange:f=>n(f.target.value),placeholder:"请输入用户名",className:"pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500 focus:border-[#38bdac]"})]})]}),r.jsxs("div",{children:[r.jsx("label",{className:"block text-gray-400 text-sm mb-2",children:"密码"}),r.jsxs("div",{className:"relative",children:[r.jsx(ZM,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-gray-500"}),r.jsx(ae,{type:"password",value:s,onChange:f=>a(f.target.value),placeholder:"请输入密码",className:"pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500 focus:border-[#38bdac]",onKeyDown:f=>f.key==="Enter"&&h()})]})]}),i&&r.jsx("div",{className:"bg-red-500/10 text-red-400 text-sm p-3 rounded-lg border border-red-500/20",children:i}),r.jsx(X,{onClick:h,disabled:c,className:"w-full bg-[#38bdac] hover:bg-[#2da396] text-white py-5 disabled:opacity-50",children:c?"登录中...":"登录"})]})]}),r.jsx("p",{className:"text-center text-gray-500 text-xs mt-6",children:"Soul创业实验场 · 后台管理系统"})]})]})}const Ee=b.forwardRef(({className:t,...e},n)=>r.jsx("div",{ref:n,className:Dt("rounded-xl border bg-card text-card-foreground shadow",t),...e}));Ee.displayName="Card";const Qe=b.forwardRef(({className:t,...e},n)=>r.jsx("div",{ref:n,className:Dt("flex flex-col space-y-1.5 p-6",t),...e}));Qe.displayName="CardHeader";const Xe=b.forwardRef(({className:t,...e},n)=>r.jsx("h3",{ref:n,className:Dt("font-semibold leading-none tracking-tight",t),...e}));Xe.displayName="CardTitle";const Ft=b.forwardRef(({className:t,...e},n)=>r.jsx("p",{ref:n,className:Dt("text-sm text-muted-foreground",t),...e}));Ft.displayName="CardDescription";const Te=b.forwardRef(({className:t,...e},n)=>r.jsx("div",{ref:n,className:Dt("p-6 pt-0",t),...e}));Te.displayName="CardContent";const rI=b.forwardRef(({className:t,...e},n)=>r.jsx("div",{ref:n,className:Dt("flex items-center p-6 pt-0",t),...e}));rI.displayName="CardFooter";const aI={success:{bg:"#f0fdf4",border:"#22c55e",icon:"✓"},error:{bg:"#fef2f2",border:"#ef4444",icon:"✕"},info:{bg:"#eff6ff",border:"#3b82f6",icon:""}};function og(t,e="info",n=3e3){const s=`toast-${Date.now()}`,a=aI[e],i=document.createElement("div");i.id=s,i.setAttribute("role","alert"),Object.assign(i.style,{position:"fixed",top:"24px",right:"24px",zIndex:"9999",display:"flex",alignItems:"center",gap:"10px",padding:"12px 18px",borderRadius:"10px",background:a.bg,border:`1.5px solid ${a.border}`,boxShadow:"0 4px 20px rgba(0,0,0,.12)",fontSize:"14px",color:"#1a1a1a",fontWeight:"500",maxWidth:"380px",lineHeight:"1.5",opacity:"0",transform:"translateY(-8px)",transition:"opacity .22s ease, transform .22s ease",pointerEvents:"none"});const o=document.createElement("span");Object.assign(o.style,{width:"20px",height:"20px",borderRadius:"50%",background:a.border,color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"12px",fontWeight:"700",flexShrink:"0"}),o.textContent=a.icon;const c=document.createElement("span");c.textContent=t,i.appendChild(o),i.appendChild(c),document.body.appendChild(i),requestAnimationFrame(()=>{i.style.opacity="1",i.style.transform="translateY(0)"});const u=setTimeout(()=>h(s),n);function h(f){clearTimeout(u);const m=document.getElementById(f);m&&(m.style.opacity="0",m.style.transform="translateY(-8px)",setTimeout(()=>{var g;return(g=m.parentNode)==null?void 0:g.removeChild(m)},250))}}const se={success:(t,e)=>og(t,"success",e),error:(t,e)=>og(t,"error",e),info:(t,e)=>og(t,"info",e)};function ft(t,e,{checkForDefaultPrevented:n=!0}={}){return function(a){if(t==null||t(a),n===!1||!a.defaultPrevented)return e==null?void 0:e(a)}}function iI(t,e){const n=b.createContext(e),s=i=>{const{children:o,...c}=i,u=b.useMemo(()=>c,Object.values(c));return r.jsx(n.Provider,{value:u,children:o})};s.displayName=t+"Provider";function a(i){const o=b.useContext(n);if(o)return o;if(e!==void 0)return e;throw new Error(`\`${i}\` must be used within \`${t}\``)}return[s,a]}function Yi(t,e=[]){let n=[];function s(i,o){const c=b.createContext(o),u=n.length;n=[...n,o];const h=m=>{var k;const{scope:g,children:y,...N}=m,w=((k=g==null?void 0:g[t])==null?void 0:k[u])||c,v=b.useMemo(()=>N,Object.values(N));return r.jsx(w.Provider,{value:v,children:y})};h.displayName=i+"Provider";function f(m,g){var w;const y=((w=g==null?void 0:g[t])==null?void 0:w[u])||c,N=b.useContext(y);if(N)return N;if(o!==void 0)return o;throw new Error(`\`${m}\` must be used within \`${i}\``)}return[h,f]}const a=()=>{const i=n.map(o=>b.createContext(o));return function(c){const u=(c==null?void 0:c[t])||i;return b.useMemo(()=>({[`__scope${t}`]:{...c,[t]:u}}),[c,u])}};return a.scopeName=t,[s,oI(a,...e)]}function oI(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const s=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=s.reduce((c,{useScope:u,scopeName:h})=>{const m=u(i)[`__scope${h}`];return{...c,...m}},{});return b.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var xs=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},lI=Uf[" useId ".trim().toString()]||(()=>{}),cI=0;function Li(t){const[e,n]=b.useState(lI());return xs(()=>{n(s=>s??String(cI++))},[t]),e?`radix-${e}`:""}var dI=Uf[" useInsertionEffect ".trim().toString()]||xs;function Uo({prop:t,defaultProp:e,onChange:n=()=>{},caller:s}){const[a,i,o]=uI({defaultProp:e,onChange:n}),c=t!==void 0,u=c?t:a;{const f=b.useRef(t!==void 0);b.useEffect(()=>{const m=f.current;m!==c&&console.warn(`${s} is changing from ${m?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=c},[c,s])}const h=b.useCallback(f=>{var m;if(c){const g=hI(f)?f(t):f;g!==t&&((m=o.current)==null||m.call(o,g))}else i(f)},[c,t,i,o]);return[u,h]}function uI({defaultProp:t,onChange:e}){const[n,s]=b.useState(t),a=b.useRef(n),i=b.useRef(e);return dI(()=>{i.current=e},[e]),b.useEffect(()=>{var o;a.current!==n&&((o=i.current)==null||o.call(i,n),a.current=n)},[n,a]),[n,s,i]}function hI(t){return typeof t=="function"}function Id(t){const e=fI(t),n=b.forwardRef((s,a)=>{const{children:i,...o}=s,c=b.Children.toArray(i),u=c.find(mI);if(u){const h=u.props.children,f=c.map(m=>m===u?b.Children.count(h)>1?b.Children.only(null):b.isValidElement(h)?h.props.children:null:m);return r.jsx(e,{...o,ref:a,children:b.isValidElement(h)?b.cloneElement(h,void 0,f):null})}return r.jsx(e,{...o,ref:a,children:i})});return n.displayName=`${t}.Slot`,n}function fI(t){const e=b.forwardRef((n,s)=>{const{children:a,...i}=n;if(b.isValidElement(a)){const o=xI(a),c=gI(i,a.props);return a.type!==b.Fragment&&(c.ref=s?v0(s,o):o),b.cloneElement(a,c)}return b.Children.count(a)>1?b.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var pI=Symbol("radix.slottable");function mI(t){return b.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===pI}function gI(t,e){const n={...e};for(const s in e){const a=t[s],i=e[s];/^on[A-Z]/.test(s)?a&&i?n[s]=(...c)=>{const u=i(...c);return a(...c),u}:a&&(n[s]=a):s==="style"?n[s]={...a,...i}:s==="className"&&(n[s]=[a,i].filter(Boolean).join(" "))}return{...t,...n}}function xI(t){var s,a;let e=(s=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:s.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var yI=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xt=yI.reduce((t,e)=>{const n=Id(`Primitive.${e}`),s=b.forwardRef((a,i)=>{const{asChild:o,...c}=a,u=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(u,{...c,ref:i})});return s.displayName=`Primitive.${e}`,{...t,[e]:s}},{});function bI(t,e){t&&qd.flushSync(()=>t.dispatchEvent(e))}function Vi(t){const e=b.useRef(t);return b.useEffect(()=>{e.current=t}),b.useMemo(()=>(...n)=>{var s;return(s=e.current)==null?void 0:s.call(e,...n)},[])}function vI(t,e=globalThis==null?void 0:globalThis.document){const n=Vi(t);b.useEffect(()=>{const s=a=>{a.key==="Escape"&&n(a)};return e.addEventListener("keydown",s,{capture:!0}),()=>e.removeEventListener("keydown",s,{capture:!0})},[n,e])}var NI="DismissableLayer",px="dismissableLayer.update",wI="dismissableLayer.pointerDownOutside",jI="dismissableLayer.focusOutside",w1,Uj=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),w0=b.forwardRef((t,e)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:o,onDismiss:c,...u}=t,h=b.useContext(Uj),[f,m]=b.useState(null),g=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=b.useState({}),N=Ot(e,D=>m(D)),w=Array.from(h.layers),[v]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),k=w.indexOf(v),C=f?w.indexOf(f):-1,E=h.layersWithOutsidePointerEventsDisabled.size>0,I=C>=k,L=CI(D=>{const P=D.target,R=[...h.branches].some(K=>K.contains(P));!I||R||(a==null||a(D),o==null||o(D),D.defaultPrevented||c==null||c())},g),W=EI(D=>{const P=D.target;[...h.branches].some(K=>K.contains(P))||(i==null||i(D),o==null||o(D),D.defaultPrevented||c==null||c())},g);return vI(D=>{C===h.layers.size-1&&(s==null||s(D),!D.defaultPrevented&&c&&(D.preventDefault(),c()))},g),b.useEffect(()=>{if(f)return n&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(w1=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(f)),h.layers.add(f),j1(),()=>{n&&h.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=w1)}},[f,g,n,h]),b.useEffect(()=>()=>{f&&(h.layers.delete(f),h.layersWithOutsidePointerEventsDisabled.delete(f),j1())},[f,h]),b.useEffect(()=>{const D=()=>y({});return document.addEventListener(px,D),()=>document.removeEventListener(px,D)},[]),r.jsx(xt.div,{...u,ref:N,style:{pointerEvents:E?I?"auto":"none":void 0,...t.style},onFocusCapture:ft(t.onFocusCapture,W.onFocusCapture),onBlurCapture:ft(t.onBlurCapture,W.onBlurCapture),onPointerDownCapture:ft(t.onPointerDownCapture,L.onPointerDownCapture)})});w0.displayName=NI;var kI="DismissableLayerBranch",SI=b.forwardRef((t,e)=>{const n=b.useContext(Uj),s=b.useRef(null),a=Ot(e,s);return b.useEffect(()=>{const i=s.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),r.jsx(xt.div,{...t,ref:a})});SI.displayName=kI;function CI(t,e=globalThis==null?void 0:globalThis.document){const n=Vi(t),s=b.useRef(!1),a=b.useRef(()=>{});return b.useEffect(()=>{const i=c=>{if(c.target&&!s.current){let u=function(){Kj(wI,n,h,{discrete:!0})};const h={originalEvent:c};c.pointerType==="touch"?(e.removeEventListener("click",a.current),a.current=u,e.addEventListener("click",a.current,{once:!0})):u()}else e.removeEventListener("click",a.current);s.current=!1},o=window.setTimeout(()=>{e.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(o),e.removeEventListener("pointerdown",i),e.removeEventListener("click",a.current)}},[e,n]),{onPointerDownCapture:()=>s.current=!0}}function EI(t,e=globalThis==null?void 0:globalThis.document){const n=Vi(t),s=b.useRef(!1);return b.useEffect(()=>{const a=i=>{i.target&&!s.current&&Kj(jI,n,{originalEvent:i},{discrete:!1})};return e.addEventListener("focusin",a),()=>e.removeEventListener("focusin",a)},[e,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function j1(){const t=new CustomEvent(px);document.dispatchEvent(t)}function Kj(t,e,n,{discrete:s}){const a=n.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&a.addEventListener(t,e,{once:!0}),s?bI(a,i):a.dispatchEvent(i)}var lg="focusScope.autoFocusOnMount",cg="focusScope.autoFocusOnUnmount",k1={bubbles:!1,cancelable:!0},TI="FocusScope",j0=b.forwardRef((t,e)=>{const{loop:n=!1,trapped:s=!1,onMountAutoFocus:a,onUnmountAutoFocus:i,...o}=t,[c,u]=b.useState(null),h=Vi(a),f=Vi(i),m=b.useRef(null),g=Ot(e,w=>u(w)),y=b.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;b.useEffect(()=>{if(s){let w=function(E){if(y.paused||!c)return;const I=E.target;c.contains(I)?m.current=I:wi(m.current,{select:!0})},v=function(E){if(y.paused||!c)return;const I=E.relatedTarget;I!==null&&(c.contains(I)||wi(m.current,{select:!0}))},k=function(E){if(document.activeElement===document.body)for(const L of E)L.removedNodes.length>0&&wi(c)};document.addEventListener("focusin",w),document.addEventListener("focusout",v);const C=new MutationObserver(k);return c&&C.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",v),C.disconnect()}}},[s,c,y.paused]),b.useEffect(()=>{if(c){C1.add(y);const w=document.activeElement;if(!c.contains(w)){const k=new CustomEvent(lg,k1);c.addEventListener(lg,h),c.dispatchEvent(k),k.defaultPrevented||(MI(OI(qj(c)),{select:!0}),document.activeElement===w&&wi(c))}return()=>{c.removeEventListener(lg,h),setTimeout(()=>{const k=new CustomEvent(cg,k1);c.addEventListener(cg,f),c.dispatchEvent(k),k.defaultPrevented||wi(w??document.body,{select:!0}),c.removeEventListener(cg,f),C1.remove(y)},0)}}},[c,h,f,y]);const N=b.useCallback(w=>{if(!n&&!s||y.paused)return;const v=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,k=document.activeElement;if(v&&k){const C=w.currentTarget,[E,I]=AI(C);E&&I?!w.shiftKey&&k===I?(w.preventDefault(),n&&wi(E,{select:!0})):w.shiftKey&&k===E&&(w.preventDefault(),n&&wi(I,{select:!0})):k===C&&w.preventDefault()}},[n,s,y.paused]);return r.jsx(xt.div,{tabIndex:-1,...o,ref:g,onKeyDown:N})});j0.displayName=TI;function MI(t,{select:e=!1}={}){const n=document.activeElement;for(const s of t)if(wi(s,{select:e}),document.activeElement!==n)return}function AI(t){const e=qj(t),n=S1(e,t),s=S1(e.reverse(),t);return[n,s]}function qj(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const a=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||a?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)e.push(n.currentNode);return e}function S1(t,e){for(const n of t)if(!II(n,{upTo:e}))return n}function II(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function PI(t){return t instanceof HTMLInputElement&&"select"in t}function wi(t,{select:e=!1}={}){if(t&&t.focus){const n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&PI(t)&&e&&t.select()}}var C1=RI();function RI(){let t=[];return{add(e){const n=t[0];e!==n&&(n==null||n.pause()),t=E1(t,e),t.unshift(e)},remove(e){var n;t=E1(t,e),(n=t[0])==null||n.resume()}}}function E1(t,e){const n=[...t],s=n.indexOf(e);return s!==-1&&n.splice(s,1),n}function OI(t){return t.filter(e=>e.tagName!=="A")}var DI="Portal",k0=b.forwardRef((t,e)=>{var c;const{container:n,...s}=t,[a,i]=b.useState(!1);xs(()=>i(!0),[]);const o=n||a&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return o?aj.createPortal(r.jsx(xt.div,{...s,ref:e}),o):null});k0.displayName=DI;function LI(t,e){return b.useReducer((n,s)=>e[n][s]??n,t)}var Gd=t=>{const{present:e,children:n}=t,s=_I(e),a=typeof n=="function"?n({present:s.isPresent}):b.Children.only(n),i=Ot(s.ref,zI(a));return typeof n=="function"||s.isPresent?b.cloneElement(a,{ref:i}):null};Gd.displayName="Presence";function _I(t){const[e,n]=b.useState(),s=b.useRef(null),a=b.useRef(t),i=b.useRef("none"),o=t?"mounted":"unmounted",[c,u]=LI(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const h=ch(s.current);i.current=c==="mounted"?h:"none"},[c]),xs(()=>{const h=s.current,f=a.current;if(f!==t){const g=i.current,y=ch(h);t?u("MOUNT"):y==="none"||(h==null?void 0:h.display)==="none"?u("UNMOUNT"):u(f&&g!==y?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,u]),xs(()=>{if(e){let h;const f=e.ownerDocument.defaultView??window,m=y=>{const w=ch(s.current).includes(CSS.escape(y.animationName));if(y.target===e&&w&&(u("ANIMATION_END"),!a.current)){const v=e.style.animationFillMode;e.style.animationFillMode="forwards",h=f.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=v)})}},g=y=>{y.target===e&&(i.current=ch(s.current))};return e.addEventListener("animationstart",g),e.addEventListener("animationcancel",m),e.addEventListener("animationend",m),()=>{f.clearTimeout(h),e.removeEventListener("animationstart",g),e.removeEventListener("animationcancel",m),e.removeEventListener("animationend",m)}}else u("ANIMATION_END")},[e,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:b.useCallback(h=>{s.current=h?getComputedStyle(h):null,n(h)},[])}}function ch(t){return(t==null?void 0:t.animationName)||"none"}function zI(t){var s,a;let e=(s=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:s.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var dg=0;function Gj(){b.useEffect(()=>{const t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??T1()),document.body.insertAdjacentElement("beforeend",t[1]??T1()),dg++,()=>{dg===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),dg--}},[])}function T1(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var la=function(){return la=Object.assign||function(e){for(var n,s=1,a=arguments.length;s<a;s++){n=arguments[s];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},la.apply(this,arguments)};function Jj(t,e){var n={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(n[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(t);a<s.length;a++)e.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(t,s[a])&&(n[s[a]]=t[s[a]]);return n}function FI(t,e,n){if(n||arguments.length===2)for(var s=0,a=e.length,i;s<a;s++)(i||!(s in e))&&(i||(i=Array.prototype.slice.call(e,0,s)),i[s]=e[s]);return t.concat(i||Array.prototype.slice.call(e))}var Ph="right-scroll-bar-position",Rh="width-before-scroll-bar",$I="with-scroll-bars-hidden",BI="--removed-body-scroll-bar-size";function ug(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}function VI(t,e){var n=b.useState(function(){return{value:t,callback:e,facade:{get current(){return n.value},set current(s){var a=n.value;a!==s&&(n.value=s,n.callback(s,a))}}}})[0];return n.callback=e,n.facade}var HI=typeof window<"u"?b.useLayoutEffect:b.useEffect,M1=new WeakMap;function WI(t,e){var n=VI(null,function(s){return t.forEach(function(a){return ug(a,s)})});return HI(function(){var s=M1.get(n);if(s){var a=new Set(s),i=new Set(t),o=n.current;a.forEach(function(c){i.has(c)||ug(c,null)}),i.forEach(function(c){a.has(c)||ug(c,o)})}M1.set(n,t)},[t]),n}function UI(t){return t}function KI(t,e){e===void 0&&(e=UI);var n=[],s=!1,a={read:function(){if(s)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:t},useMedium:function(i){var o=e(i,s);return n.push(o),function(){n=n.filter(function(c){return c!==o})}},assignSyncMedium:function(i){for(s=!0;n.length;){var o=n;n=[],o.forEach(i)}n={push:function(c){return i(c)},filter:function(){return n}}},assignMedium:function(i){s=!0;var o=[];if(n.length){var c=n;n=[],c.forEach(i),o=n}var u=function(){var f=o;o=[],f.forEach(i)},h=function(){return Promise.resolve().then(u)};h(),n={push:function(f){o.push(f),h()},filter:function(f){return o=o.filter(f),n}}}};return a}function qI(t){t===void 0&&(t={});var e=KI(null);return e.options=la({async:!0,ssr:!1},t),e}var Yj=function(t){var e=t.sideCar,n=Jj(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var s=e.read();if(!s)throw new Error("Sidecar medium not found");return b.createElement(s,la({},n))};Yj.isSideCarExport=!0;function GI(t,e){return t.useMedium(e),Yj}var Qj=qI(),hg=function(){},Yf=b.forwardRef(function(t,e){var n=b.useRef(null),s=b.useState({onScrollCapture:hg,onWheelCapture:hg,onTouchMoveCapture:hg}),a=s[0],i=s[1],o=t.forwardProps,c=t.children,u=t.className,h=t.removeScrollBar,f=t.enabled,m=t.shards,g=t.sideCar,y=t.noRelative,N=t.noIsolation,w=t.inert,v=t.allowPinchZoom,k=t.as,C=k===void 0?"div":k,E=t.gapMode,I=Jj(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),L=g,W=WI([n,e]),D=la(la({},I),a);return b.createElement(b.Fragment,null,f&&b.createElement(L,{sideCar:Qj,removeScrollBar:h,shards:m,noRelative:y,noIsolation:N,inert:w,setCallbacks:i,allowPinchZoom:!!v,lockRef:n,gapMode:E}),o?b.cloneElement(b.Children.only(c),la(la({},D),{ref:W})):b.createElement(C,la({},D,{className:u,ref:W}),c))});Yf.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Yf.classNames={fullWidth:Rh,zeroRight:Ph};var JI=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function YI(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=JI();return e&&t.setAttribute("nonce",e),t}function QI(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function XI(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var ZI=function(){var t=0,e=null;return{add:function(n){t==0&&(e=YI())&&(QI(e,n),XI(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}},eP=function(){var t=ZI();return function(e,n){b.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&n])}},Xj=function(){var t=eP(),e=function(n){var s=n.styles,a=n.dynamic;return t(s,a),null};return e},tP={left:0,top:0,right:0,gap:0},fg=function(t){return parseInt(t||"",10)||0},nP=function(t){var e=window.getComputedStyle(document.body),n=e[t==="padding"?"paddingLeft":"marginLeft"],s=e[t==="padding"?"paddingTop":"marginTop"],a=e[t==="padding"?"paddingRight":"marginRight"];return[fg(n),fg(s),fg(a)]},sP=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return tP;var e=nP(t),n=document.documentElement.clientWidth,s=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,s-n+e[2]-e[0])}},rP=Xj(),Ql="data-scroll-locked",aP=function(t,e,n,s){var a=t.left,i=t.top,o=t.right,c=t.gap;return n===void 0&&(n="margin"),`
.`.concat($I,` {
overflow: hidden `).concat(s,`;
padding-right: `).concat(c,"px ").concat(s,`;
}
body[`).concat(Ql,`] {
overflow: hidden `).concat(s,`;
overscroll-behavior: contain;
`).concat([e&&"position: relative ".concat(s,";"),n==="margin"&&`
padding-left: `.concat(a,`px;
padding-top: `).concat(i,`px;
padding-right: `).concat(o,`px;
margin-left:0;
margin-top:0;
margin-right: `).concat(c,"px ").concat(s,`;
`),n==="padding"&&"padding-right: ".concat(c,"px ").concat(s,";")].filter(Boolean).join(""),`
}
.`).concat(Ph,` {
right: `).concat(c,"px ").concat(s,`;
}
.`).concat(Rh,` {
margin-right: `).concat(c,"px ").concat(s,`;
}
.`).concat(Ph," .").concat(Ph,` {
right: 0 `).concat(s,`;
}
.`).concat(Rh," .").concat(Rh,` {
margin-right: 0 `).concat(s,`;
}
body[`).concat(Ql,`] {
`).concat(BI,": ").concat(c,`px;
}
`)},A1=function(){var t=parseInt(document.body.getAttribute(Ql)||"0",10);return isFinite(t)?t:0},iP=function(){b.useEffect(function(){return document.body.setAttribute(Ql,(A1()+1).toString()),function(){var t=A1()-1;t<=0?document.body.removeAttribute(Ql):document.body.setAttribute(Ql,t.toString())}},[])},oP=function(t){var e=t.noRelative,n=t.noImportant,s=t.gapMode,a=s===void 0?"margin":s;iP();var i=b.useMemo(function(){return sP(a)},[a]);return b.createElement(rP,{styles:aP(i,!e,a,n?"":"!important")})},mx=!1;if(typeof window<"u")try{var dh=Object.defineProperty({},"passive",{get:function(){return mx=!0,!0}});window.addEventListener("test",dh,dh),window.removeEventListener("test",dh,dh)}catch{mx=!1}var _l=mx?{passive:!1}:!1,lP=function(t){return t.tagName==="TEXTAREA"},Zj=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!lP(t)&&n[e]==="visible")},cP=function(t){return Zj(t,"overflowY")},dP=function(t){return Zj(t,"overflowX")},I1=function(t,e){var n=e.ownerDocument,s=e;do{typeof ShadowRoot<"u"&&s instanceof ShadowRoot&&(s=s.host);var a=ek(t,s);if(a){var i=tk(t,s),o=i[1],c=i[2];if(o>c)return!0}s=s.parentNode}while(s&&s!==n.body);return!1},uP=function(t){var e=t.scrollTop,n=t.scrollHeight,s=t.clientHeight;return[e,n,s]},hP=function(t){var e=t.scrollLeft,n=t.scrollWidth,s=t.clientWidth;return[e,n,s]},ek=function(t,e){return t==="v"?cP(e):dP(e)},tk=function(t,e){return t==="v"?uP(e):hP(e)},fP=function(t,e){return t==="h"&&e==="rtl"?-1:1},pP=function(t,e,n,s,a){var i=fP(t,window.getComputedStyle(e).direction),o=i*s,c=n.target,u=e.contains(c),h=!1,f=o>0,m=0,g=0;do{if(!c)break;var y=tk(t,c),N=y[0],w=y[1],v=y[2],k=w-v-i*N;(N||k)&&ek(t,c)&&(m+=k,g+=N);var C=c.parentNode;c=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!u&&c!==document.body||u&&(e.contains(c)||e===c));return(f&&Math.abs(m)<1||!f&&Math.abs(g)<1)&&(h=!0),h},uh=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},P1=function(t){return[t.deltaX,t.deltaY]},R1=function(t){return t&&"current"in t?t.current:t},mP=function(t,e){return t[0]===e[0]&&t[1]===e[1]},gP=function(t){return`
.block-interactivity-`.concat(t,` {pointer-events: none;}
.allow-interactivity-`).concat(t,` {pointer-events: all;}
`)},xP=0,zl=[];function yP(t){var e=b.useRef([]),n=b.useRef([0,0]),s=b.useRef(),a=b.useState(xP++)[0],i=b.useState(Xj)[0],o=b.useRef(t);b.useEffect(function(){o.current=t},[t]),b.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var w=FI([t.lockRef.current],(t.shards||[]).map(R1),!0).filter(Boolean);return w.forEach(function(v){return v.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var c=b.useCallback(function(w,v){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!o.current.allowPinchZoom;var k=uh(w),C=n.current,E="deltaX"in w?w.deltaX:C[0]-k[0],I="deltaY"in w?w.deltaY:C[1]-k[1],L,W=w.target,D=Math.abs(E)>Math.abs(I)?"h":"v";if("touches"in w&&D==="h"&&W.type==="range")return!1;var P=window.getSelection(),R=P&&P.anchorNode,K=R?R===W||R.contains(W):!1;if(K)return!1;var re=I1(D,W);if(!re)return!0;if(re?L=D:(L=D==="v"?"h":"v",re=I1(D,W)),!re)return!1;if(!s.current&&"changedTouches"in w&&(E||I)&&(s.current=L),!L)return!0;var ue=s.current||L;return pP(ue,v,w,ue==="h"?E:I)},[]),u=b.useCallback(function(w){var v=w;if(!(!zl.length||zl[zl.length-1]!==i)){var k="deltaY"in v?P1(v):uh(v),C=e.current.filter(function(L){return L.name===v.type&&(L.target===v.target||v.target===L.shadowParent)&&mP(L.delta,k)})[0];if(C&&C.should){v.cancelable&&v.preventDefault();return}if(!C){var E=(o.current.shards||[]).map(R1).filter(Boolean).filter(function(L){return L.contains(v.target)}),I=E.length>0?c(v,E[0]):!o.current.noIsolation;I&&v.cancelable&&v.preventDefault()}}},[]),h=b.useCallback(function(w,v,k,C){var E={name:w,delta:v,target:k,should:C,shadowParent:bP(k)};e.current.push(E),setTimeout(function(){e.current=e.current.filter(function(I){return I!==E})},1)},[]),f=b.useCallback(function(w){n.current=uh(w),s.current=void 0},[]),m=b.useCallback(function(w){h(w.type,P1(w),w.target,c(w,t.lockRef.current))},[]),g=b.useCallback(function(w){h(w.type,uh(w),w.target,c(w,t.lockRef.current))},[]);b.useEffect(function(){return zl.push(i),t.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:g}),document.addEventListener("wheel",u,_l),document.addEventListener("touchmove",u,_l),document.addEventListener("touchstart",f,_l),function(){zl=zl.filter(function(w){return w!==i}),document.removeEventListener("wheel",u,_l),document.removeEventListener("touchmove",u,_l),document.removeEventListener("touchstart",f,_l)}},[]);var y=t.removeScrollBar,N=t.inert;return b.createElement(b.Fragment,null,N?b.createElement(i,{styles:gP(a)}):null,y?b.createElement(oP,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function bP(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const vP=GI(Qj,yP);var S0=b.forwardRef(function(t,e){return b.createElement(Yf,la({},t,{ref:e,sideCar:vP}))});S0.classNames=Yf.classNames;var NP=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Fl=new WeakMap,hh=new WeakMap,fh={},pg=0,nk=function(t){return t&&(t.host||nk(t.parentNode))},wP=function(t,e){return e.map(function(n){if(t.contains(n))return n;var s=nk(n);return s&&t.contains(s)?s:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},jP=function(t,e,n,s){var a=wP(e,Array.isArray(t)?t:[t]);fh[n]||(fh[n]=new WeakMap);var i=fh[n],o=[],c=new Set,u=new Set(a),h=function(m){!m||c.has(m)||(c.add(m),h(m.parentNode))};a.forEach(h);var f=function(m){!m||u.has(m)||Array.prototype.forEach.call(m.children,function(g){if(c.has(g))f(g);else try{var y=g.getAttribute(s),N=y!==null&&y!=="false",w=(Fl.get(g)||0)+1,v=(i.get(g)||0)+1;Fl.set(g,w),i.set(g,v),o.push(g),w===1&&N&&hh.set(g,!0),v===1&&g.setAttribute(n,"true"),N||g.setAttribute(s,"true")}catch(k){console.error("aria-hidden: cannot operate on ",g,k)}})};return f(e),c.clear(),pg++,function(){o.forEach(function(m){var g=Fl.get(m)-1,y=i.get(m)-1;Fl.set(m,g),i.set(m,y),g||(hh.has(m)||m.removeAttribute(s),hh.delete(m)),y||m.removeAttribute(n)}),pg--,pg||(Fl=new WeakMap,Fl=new WeakMap,hh=new WeakMap,fh={})}},sk=function(t,e,n){n===void 0&&(n="data-aria-hidden");var s=Array.from(Array.isArray(t)?t:[t]),a=NP(t);return a?(s.push.apply(s,Array.from(a.querySelectorAll("[aria-live], script"))),jP(s,a,n,"aria-hidden")):function(){return null}},Qf="Dialog",[rk]=Yi(Qf),[kP,Hr]=rk(Qf),ak=t=>{const{__scopeDialog:e,children:n,open:s,defaultOpen:a,onOpenChange:i,modal:o=!0}=t,c=b.useRef(null),u=b.useRef(null),[h,f]=Uo({prop:s,defaultProp:a??!1,onChange:i,caller:Qf});return r.jsx(kP,{scope:e,triggerRef:c,contentRef:u,contentId:Li(),titleId:Li(),descriptionId:Li(),open:h,onOpenChange:f,onOpenToggle:b.useCallback(()=>f(m=>!m),[f]),modal:o,children:n})};ak.displayName=Qf;var ik="DialogTrigger",SP=b.forwardRef((t,e)=>{const{__scopeDialog:n,...s}=t,a=Hr(ik,n),i=Ot(e,a.triggerRef);return r.jsx(xt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":T0(a.open),...s,ref:i,onClick:ft(t.onClick,a.onOpenToggle)})});SP.displayName=ik;var C0="DialogPortal",[CP,ok]=rk(C0,{forceMount:void 0}),lk=t=>{const{__scopeDialog:e,forceMount:n,children:s,container:a}=t,i=Hr(C0,e);return r.jsx(CP,{scope:e,forceMount:n,children:b.Children.map(s,o=>r.jsx(Gd,{present:n||i.open,children:r.jsx(k0,{asChild:!0,container:a,children:o})}))})};lk.displayName=C0;var Gh="DialogOverlay",ck=b.forwardRef((t,e)=>{const n=ok(Gh,t.__scopeDialog),{forceMount:s=n.forceMount,...a}=t,i=Hr(Gh,t.__scopeDialog);return i.modal?r.jsx(Gd,{present:s||i.open,children:r.jsx(TP,{...a,ref:e})}):null});ck.displayName=Gh;var EP=Id("DialogOverlay.RemoveScroll"),TP=b.forwardRef((t,e)=>{const{__scopeDialog:n,...s}=t,a=Hr(Gh,n);return r.jsx(S0,{as:EP,allowPinchZoom:!0,shards:[a.contentRef],children:r.jsx(xt.div,{"data-state":T0(a.open),...s,ref:e,style:{pointerEvents:"auto",...s.style}})})}),Ko="DialogContent",dk=b.forwardRef((t,e)=>{const n=ok(Ko,t.__scopeDialog),{forceMount:s=n.forceMount,...a}=t,i=Hr(Ko,t.__scopeDialog);return r.jsx(Gd,{present:s||i.open,children:i.modal?r.jsx(MP,{...a,ref:e}):r.jsx(AP,{...a,ref:e})})});dk.displayName=Ko;var MP=b.forwardRef((t,e)=>{const n=Hr(Ko,t.__scopeDialog),s=b.useRef(null),a=Ot(e,n.contentRef,s);return b.useEffect(()=>{const i=s.current;if(i)return sk(i)},[]),r.jsx(uk,{...t,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ft(t.onCloseAutoFocus,i=>{var o;i.preventDefault(),(o=n.triggerRef.current)==null||o.focus()}),onPointerDownOutside:ft(t.onPointerDownOutside,i=>{const o=i.detail.originalEvent,c=o.button===0&&o.ctrlKey===!0;(o.button===2||c)&&i.preventDefault()}),onFocusOutside:ft(t.onFocusOutside,i=>i.preventDefault())})}),AP=b.forwardRef((t,e)=>{const n=Hr(Ko,t.__scopeDialog),s=b.useRef(!1),a=b.useRef(!1);return r.jsx(uk,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var o,c;(o=t.onCloseAutoFocus)==null||o.call(t,i),i.defaultPrevented||(s.current||(c=n.triggerRef.current)==null||c.focus(),i.preventDefault()),s.current=!1,a.current=!1},onInteractOutside:i=>{var u,h;(u=t.onInteractOutside)==null||u.call(t,i),i.defaultPrevented||(s.current=!0,i.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const o=i.target;((h=n.triggerRef.current)==null?void 0:h.contains(o))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&a.current&&i.preventDefault()}})}),uk=b.forwardRef((t,e)=>{const{__scopeDialog:n,trapFocus:s,onOpenAutoFocus:a,onCloseAutoFocus:i,...o}=t,c=Hr(Ko,n),u=b.useRef(null),h=Ot(e,u);return Gj(),r.jsxs(r.Fragment,{children:[r.jsx(j0,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:a,onUnmountAutoFocus:i,children:r.jsx(w0,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":T0(c.open),...o,ref:h,onDismiss:()=>c.onOpenChange(!1)})}),r.jsxs(r.Fragment,{children:[r.jsx(IP,{titleId:c.titleId}),r.jsx(RP,{contentRef:u,descriptionId:c.descriptionId})]})]})}),E0="DialogTitle",hk=b.forwardRef((t,e)=>{const{__scopeDialog:n,...s}=t,a=Hr(E0,n);return r.jsx(xt.h2,{id:a.titleId,...s,ref:e})});hk.displayName=E0;var fk="DialogDescription",pk=b.forwardRef((t,e)=>{const{__scopeDialog:n,...s}=t,a=Hr(fk,n);return r.jsx(xt.p,{id:a.descriptionId,...s,ref:e})});pk.displayName=fk;var mk="DialogClose",gk=b.forwardRef((t,e)=>{const{__scopeDialog:n,...s}=t,a=Hr(mk,n);return r.jsx(xt.button,{type:"button",...s,ref:e,onClick:ft(t.onClick,()=>a.onOpenChange(!1))})});gk.displayName=mk;function T0(t){return t?"open":"closed"}var xk="DialogTitleWarning",[QV,yk]=iI(xk,{contentName:Ko,titleName:E0,docsSlug:"dialog"}),IP=({titleId:t})=>{const e=yk(xk),n=`\`${e.contentName}\` requires a \`${e.titleName}\` for the component to be accessible for screen reader users.
If you want to hide the \`${e.titleName}\`, you can wrap it with our VisuallyHidden component.
For more information, see https://radix-ui.com/primitives/docs/components/${e.docsSlug}`;return b.useEffect(()=>{t&&(document.getElementById(t)||console.error(n))},[n,t]),null},PP="DialogDescriptionWarning",RP=({contentRef:t,descriptionId:e})=>{const s=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${yk(PP).contentName}}.`;return b.useEffect(()=>{var i;const a=(i=t.current)==null?void 0:i.getAttribute("aria-describedby");e&&a&&(document.getElementById(e)||console.warn(s))},[s,t,e]),null},OP=ak,DP=lk,LP=ck,_P=dk,zP=hk,FP=pk,$P=gk;function Lt(t){return r.jsx(OP,{"data-slot":"dialog",...t})}function BP(t){return r.jsx(DP,{...t})}const bk=b.forwardRef(({className:t,...e},n)=>r.jsx(LP,{ref:n,className:Dt("fixed inset-0 z-50 bg-black/50",t),...e}));bk.displayName="DialogOverlay";const It=b.forwardRef(({className:t,children:e,showCloseButton:n=!0,...s},a)=>r.jsxs(BP,{children:[r.jsx(bk,{}),r.jsxs(_P,{ref:a,"aria-describedby":void 0,className:Dt("fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border bg-background p-6 shadow-lg",t),...s,children:[e,n&&r.jsxs($P,{className:"absolute right-4 top-4 rounded-sm opacity-70 hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[r.jsx(gs,{className:"h-4 w-4"}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));It.displayName="DialogContent";function _t({className:t,...e}){return r.jsx("div",{className:Dt("flex flex-col gap-2 text-center sm:text-left",t),...e})}function on({className:t,...e}){return r.jsx("div",{className:Dt("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...e})}function zt(t){return r.jsx(zP,{className:"text-lg font-semibold leading-none",...t})}function Pd(t){return r.jsx(FP,{className:"text-sm text-muted-foreground",...t})}const VP=Pj("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 transition-colors",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Je({className:t,variant:e,asChild:n=!1,...s}){const a=n?Mj:"span";return r.jsx(a,{className:Dt(VP({variant:e}),t),...s})}var HP=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],WP=HP.reduce((t,e)=>{const n=Tj(`Primitive.${e}`),s=b.forwardRef((a,i)=>{const{asChild:o,...c}=a,u=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(u,{...c,ref:i})});return s.displayName=`Primitive.${e}`,{...t,[e]:s}},{}),UP="Label",vk=b.forwardRef((t,e)=>r.jsx(WP.label,{...t,ref:e,onMouseDown:n=>{var a;n.target.closest("button, input, select, textarea")||((a=t.onMouseDown)==null||a.call(t,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));vk.displayName=UP;var Nk=vk;const Z=b.forwardRef(({className:t,...e},n)=>r.jsx(Nk,{ref:n,className:Dt("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",t),...e}));Z.displayName=Nk.displayName;function M0(t){const e=t+"CollectionProvider",[n,s]=Yi(e),[a,i]=n(e,{collectionRef:{current:null},itemMap:new Map}),o=w=>{const{scope:v,children:k}=w,C=Rs.useRef(null),E=Rs.useRef(new Map).current;return r.jsx(a,{scope:v,itemMap:E,collectionRef:C,children:k})};o.displayName=e;const c=t+"CollectionSlot",u=Id(c),h=Rs.forwardRef((w,v)=>{const{scope:k,children:C}=w,E=i(c,k),I=Ot(v,E.collectionRef);return r.jsx(u,{ref:I,children:C})});h.displayName=c;const f=t+"CollectionItemSlot",m="data-radix-collection-item",g=Id(f),y=Rs.forwardRef((w,v)=>{const{scope:k,children:C,...E}=w,I=Rs.useRef(null),L=Ot(v,I),W=i(f,k);return Rs.useEffect(()=>(W.itemMap.set(I,{ref:I,...E}),()=>void W.itemMap.delete(I))),r.jsx(g,{[m]:"",ref:L,children:C})});y.displayName=f;function N(w){const v=i(t+"CollectionConsumer",w);return Rs.useCallback(()=>{const C=v.collectionRef.current;if(!C)return[];const E=Array.from(C.querySelectorAll(`[${m}]`));return Array.from(v.itemMap.values()).sort((W,D)=>E.indexOf(W.ref.current)-E.indexOf(D.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:o,Slot:h,ItemSlot:y},N,s]}var KP=b.createContext(void 0);function Xf(t){const e=b.useContext(KP);return t||e||"ltr"}var mg="rovingFocusGroup.onEntryFocus",qP={bubbles:!1,cancelable:!0},Jd="RovingFocusGroup",[gx,wk,GP]=M0(Jd),[JP,jk]=Yi(Jd,[GP]),[YP,QP]=JP(Jd),kk=b.forwardRef((t,e)=>r.jsx(gx.Provider,{scope:t.__scopeRovingFocusGroup,children:r.jsx(gx.Slot,{scope:t.__scopeRovingFocusGroup,children:r.jsx(XP,{...t,ref:e})})}));kk.displayName=Jd;var XP=b.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:n,orientation:s,loop:a=!1,dir:i,currentTabStopId:o,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:u,onEntryFocus:h,preventScrollOnEntryFocus:f=!1,...m}=t,g=b.useRef(null),y=Ot(e,g),N=Xf(i),[w,v]=Uo({prop:o,defaultProp:c??null,onChange:u,caller:Jd}),[k,C]=b.useState(!1),E=Vi(h),I=wk(n),L=b.useRef(!1),[W,D]=b.useState(0);return b.useEffect(()=>{const P=g.current;if(P)return P.addEventListener(mg,E),()=>P.removeEventListener(mg,E)},[E]),r.jsx(YP,{scope:n,orientation:s,dir:N,loop:a,currentTabStopId:w,onItemFocus:b.useCallback(P=>v(P),[v]),onItemShiftTab:b.useCallback(()=>C(!0),[]),onFocusableItemAdd:b.useCallback(()=>D(P=>P+1),[]),onFocusableItemRemove:b.useCallback(()=>D(P=>P-1),[]),children:r.jsx(xt.div,{tabIndex:k||W===0?-1:0,"data-orientation":s,...m,ref:y,style:{outline:"none",...t.style},onMouseDown:ft(t.onMouseDown,()=>{L.current=!0}),onFocus:ft(t.onFocus,P=>{const R=!L.current;if(P.target===P.currentTarget&&R&&!k){const K=new CustomEvent(mg,qP);if(P.currentTarget.dispatchEvent(K),!K.defaultPrevented){const re=I().filter(J=>J.focusable),ue=re.find(J=>J.active),xe=re.find(J=>J.id===w),O=[ue,xe,...re].filter(Boolean).map(J=>J.ref.current);Ek(O,f)}}L.current=!1}),onBlur:ft(t.onBlur,()=>C(!1))})})}),Sk="RovingFocusGroupItem",Ck=b.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:n,focusable:s=!0,active:a=!1,tabStopId:i,children:o,...c}=t,u=Li(),h=i||u,f=QP(Sk,n),m=f.currentTabStopId===h,g=wk(n),{onFocusableItemAdd:y,onFocusableItemRemove:N,currentTabStopId:w}=f;return b.useEffect(()=>{if(s)return y(),()=>N()},[s,y,N]),r.jsx(gx.ItemSlot,{scope:n,id:h,focusable:s,active:a,children:r.jsx(xt.span,{tabIndex:m?0:-1,"data-orientation":f.orientation,...c,ref:e,onMouseDown:ft(t.onMouseDown,v=>{s?f.onItemFocus(h):v.preventDefault()}),onFocus:ft(t.onFocus,()=>f.onItemFocus(h)),onKeyDown:ft(t.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){f.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const k=tR(v,f.orientation,f.dir);if(k!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let E=g().filter(I=>I.focusable).map(I=>I.ref.current);if(k==="last")E.reverse();else if(k==="prev"||k==="next"){k==="prev"&&E.reverse();const I=E.indexOf(v.currentTarget);E=f.loop?nR(E,I+1):E.slice(I+1)}setTimeout(()=>Ek(E))}}),children:typeof o=="function"?o({isCurrentTabStop:m,hasTabStop:w!=null}):o})})});Ck.displayName=Sk;var ZP={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function eR(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function tR(t,e,n){const s=eR(t.key,n);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(s))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(s)))return ZP[s]}function Ek(t,e=!1){const n=document.activeElement;for(const s of t)if(s===n||(s.focus({preventScroll:e}),document.activeElement!==n))return}function nR(t,e){return t.map((n,s)=>t[(e+s)%t.length])}var sR=kk,rR=Ck,Zf="Tabs",[aR]=Yi(Zf,[jk]),Tk=jk(),[iR,A0]=aR(Zf),Mk=b.forwardRef((t,e)=>{const{__scopeTabs:n,value:s,onValueChange:a,defaultValue:i,orientation:o="horizontal",dir:c,activationMode:u="automatic",...h}=t,f=Xf(c),[m,g]=Uo({prop:s,onChange:a,defaultProp:i??"",caller:Zf});return r.jsx(iR,{scope:n,baseId:Li(),value:m,onValueChange:g,orientation:o,dir:f,activationMode:u,children:r.jsx(xt.div,{dir:f,"data-orientation":o,...h,ref:e})})});Mk.displayName=Zf;var Ak="TabsList",Ik=b.forwardRef((t,e)=>{const{__scopeTabs:n,loop:s=!0,...a}=t,i=A0(Ak,n),o=Tk(n);return r.jsx(sR,{asChild:!0,...o,orientation:i.orientation,dir:i.dir,loop:s,children:r.jsx(xt.div,{role:"tablist","aria-orientation":i.orientation,...a,ref:e})})});Ik.displayName=Ak;var Pk="TabsTrigger",Rk=b.forwardRef((t,e)=>{const{__scopeTabs:n,value:s,disabled:a=!1,...i}=t,o=A0(Pk,n),c=Tk(n),u=Lk(o.baseId,s),h=_k(o.baseId,s),f=s===o.value;return r.jsx(rR,{asChild:!0,...c,focusable:!a,active:f,children:r.jsx(xt.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":h,"data-state":f?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:u,...i,ref:e,onMouseDown:ft(t.onMouseDown,m=>{!a&&m.button===0&&m.ctrlKey===!1?o.onValueChange(s):m.preventDefault()}),onKeyDown:ft(t.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&o.onValueChange(s)}),onFocus:ft(t.onFocus,()=>{const m=o.activationMode!=="manual";!f&&!a&&m&&o.onValueChange(s)})})})});Rk.displayName=Pk;var Ok="TabsContent",Dk=b.forwardRef((t,e)=>{const{__scopeTabs:n,value:s,forceMount:a,children:i,...o}=t,c=A0(Ok,n),u=Lk(c.baseId,s),h=_k(c.baseId,s),f=s===c.value,m=b.useRef(f);return b.useEffect(()=>{const g=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(g)},[]),r.jsx(Gd,{present:a||f,children:({present:g})=>r.jsx(xt.div,{"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!g,id:h,tabIndex:0,...o,ref:e,style:{...t.style,animationDuration:m.current?"0s":void 0},children:g&&i})})});Dk.displayName=Ok;function Lk(t,e){return`${t}-trigger-${e}`}function _k(t,e){return`${t}-content-${e}`}var oR=Mk,zk=Ik,Fk=Rk,$k=Dk;const Yd=oR,pc=b.forwardRef(({className:t,...e},n)=>r.jsx(zk,{ref:n,className:Dt("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",t),...e}));pc.displayName=zk.displayName;const tn=b.forwardRef(({className:t,...e},n)=>r.jsx(Fk,{ref:n,className:Dt("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",t),...e}));tn.displayName=Fk.displayName;const nn=b.forwardRef(({className:t,...e},n)=>r.jsx($k,{ref:n,className:Dt("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...e}));nn.displayName=$k.displayName;function I0(t){const e=b.useRef({value:t,previous:t});return b.useMemo(()=>(e.current.value!==t&&(e.current.previous=e.current.value,e.current.value=t),e.current.previous),[t])}function P0(t){const[e,n]=b.useState(void 0);return xs(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const s=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const i=a[0];let o,c;if("borderBoxSize"in i){const u=i.borderBoxSize,h=Array.isArray(u)?u[0]:u;o=h.inlineSize,c=h.blockSize}else o=t.offsetWidth,c=t.offsetHeight;n({width:o,height:c})});return s.observe(t,{box:"border-box"}),()=>s.unobserve(t)}else n(void 0)},[t]),e}var ep="Switch",[lR]=Yi(ep),[cR,dR]=lR(ep),Bk=b.forwardRef((t,e)=>{const{__scopeSwitch:n,name:s,checked:a,defaultChecked:i,required:o,disabled:c,value:u="on",onCheckedChange:h,form:f,...m}=t,[g,y]=b.useState(null),N=Ot(e,E=>y(E)),w=b.useRef(!1),v=g?f||!!g.closest("form"):!0,[k,C]=Uo({prop:a,defaultProp:i??!1,onChange:h,caller:ep});return r.jsxs(cR,{scope:n,checked:k,disabled:c,children:[r.jsx(xt.button,{type:"button",role:"switch","aria-checked":k,"aria-required":o,"data-state":Uk(k),"data-disabled":c?"":void 0,disabled:c,value:u,...m,ref:N,onClick:ft(t.onClick,E=>{C(I=>!I),v&&(w.current=E.isPropagationStopped(),w.current||E.stopPropagation())})}),v&&r.jsx(Wk,{control:g,bubbles:!w.current,name:s,value:u,checked:k,required:o,disabled:c,form:f,style:{transform:"translateX(-100%)"}})]})});Bk.displayName=ep;var Vk="SwitchThumb",Hk=b.forwardRef((t,e)=>{const{__scopeSwitch:n,...s}=t,a=dR(Vk,n);return r.jsx(xt.span,{"data-state":Uk(a.checked),"data-disabled":a.disabled?"":void 0,...s,ref:e})});Hk.displayName=Vk;var uR="SwitchBubbleInput",Wk=b.forwardRef(({__scopeSwitch:t,control:e,checked:n,bubbles:s=!0,...a},i)=>{const o=b.useRef(null),c=Ot(o,i),u=I0(n),h=P0(e);return b.useEffect(()=>{const f=o.current;if(!f)return;const m=window.HTMLInputElement.prototype,y=Object.getOwnPropertyDescriptor(m,"checked").set;if(u!==n&&y){const N=new Event("click",{bubbles:s});y.call(f,n),f.dispatchEvent(N)}},[u,n,s]),r.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:c,style:{...a.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});Wk.displayName=uR;function Uk(t){return t?"checked":"unchecked"}var Kk=Bk,hR=Hk;const Et=b.forwardRef(({className:t,...e},n)=>r.jsx(Kk,{className:Dt("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#38bdac] focus-visible:ring-offset-2 focus-visible:ring-offset-[#0a1628] disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-gray-600 data-[state=checked]:bg-[#38bdac]",t),...e,ref:n,children:r.jsx(hR,{className:Dt("pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Et.displayName=Kk.displayName;function R0({open:t,onClose:e,userId:n,onUserUpdated:s}){var $t;const[a,i]=b.useState(null),[o,c]=b.useState([]),[u,h]=b.useState([]),[f,m]=b.useState(null),[g,y]=b.useState(!1),[N,w]=b.useState(!1),[v,k]=b.useState(!1),[C,E]=b.useState("info"),[I,L]=b.useState(""),[W,D]=b.useState(""),[P,R]=b.useState([]),[K,re]=b.useState(""),[ue,xe]=b.useState(""),[H,O]=b.useState(""),[J,$]=b.useState(!1),[M,q]=b.useState({isVip:!1,vipExpireDate:"",vipRole:"",vipName:"",vipProject:"",vipContact:"",vipBio:""}),[B,z]=b.useState([]),[G,oe]=b.useState(!1),[ye,Ae]=b.useState(""),[ke,ee]=b.useState(""),[Y,he]=b.useState(!1),[te,ce]=b.useState(!1),[pe,Fe]=b.useState(null),[rt,vt]=b.useState(null),[mt,Ut]=b.useState(""),[In,sn]=b.useState(""),[Tt,Mt]=b.useState(""),[Kt,Ns]=b.useState(!1),[as,is]=b.useState(null),[Ls,ws]=b.useState("");b.useEffect(()=>{t&&n&&(E("info"),Fe(null),vt(null),is(null),ws(""),xe(""),O(""),rn(),Oe("/api/db/vip-roles").then(me=>{me!=null&&me.success&&me.data&&z(me.data)}).catch(()=>{}))},[t,n]);async function rn(){if(n){y(!0);try{const me=await Oe(`/api/db/users?id=${encodeURIComponent(n)}`);if(me!=null&&me.success&&me.user){const fe=me.user;i(fe),L(fe.phone||""),D(fe.nickname||""),Ut(fe.phone||""),sn(fe.wechatId||""),Mt(fe.openId||"");try{R(typeof fe.tags=="string"?JSON.parse(fe.tags||"[]"):[])}catch{R([])}q({isVip:!!(fe.isVip??!1),vipExpireDate:fe.vipExpireDate?String(fe.vipExpireDate).slice(0,10):"",vipRole:String(fe.vipRole??""),vipName:String(fe.vipName??""),vipProject:String(fe.vipProject??""),vipContact:String(fe.vipContact??""),vipBio:String(fe.vipBio??"")})}try{const fe=await Oe(`/api/admin/user/track?userId=${encodeURIComponent(n)}&limit=50`);fe!=null&&fe.success&&fe.tracks&&c(fe.tracks)}catch{c([])}try{const fe=await Oe(`/api/db/users/referrals?userId=${encodeURIComponent(n)}`);fe!=null&&fe.success&&fe.referrals&&h(fe.referrals)}catch{h([])}try{const fe=await Oe(`/api/admin/users/${encodeURIComponent(n)}/balance`);fe!=null&&fe.success&&fe.data?m(fe.data):m(null)}catch{m(null)}}catch(me){console.error("Load user detail error:",me)}finally{y(!1)}}}async function qs(){if(!(a!=null&&a.phone)){se.info("用户未绑定手机号,无法同步");return}w(!0);try{const me=await jt("/api/ckb/sync",{action:"full_sync",phone:a.phone,userId:a.id});me!=null&&me.success?(se.success("同步成功"),rn()):se.error("同步失败: "+(me==null?void 0:me.error))}catch(me){console.error("Sync CKB error:",me),se.error("同步失败")}finally{w(!1)}}async function un(){if(a){if(M.isVip&&!M.vipExpireDate.trim()){se.error("开启 VIP 请填写有效到期日");return}k(!0);try{const me={id:a.id,phone:I||void 0,nickname:W||void 0,tags:JSON.stringify(P),isVip:M.isVip,vipExpireDate:M.isVip?M.vipExpireDate:void 0,vipRole:M.vipRole||void 0,vipName:M.vipName||void 0,vipProject:M.vipProject||void 0,vipContact:M.vipContact||void 0,vipBio:M.vipBio||void 0},fe=await Pt("/api/db/users",me);fe!=null&&fe.success?(se.success("保存成功"),rn(),s==null||s()):se.error("保存失败: "+(fe==null?void 0:fe.error))}catch(me){console.error("Save user error:",me),se.error("保存失败")}finally{k(!1)}}}const Un=()=>{K&&!P.includes(K)&&(R([...P,K]),re(""))},js=me=>R(P.filter(fe=>fe!==me));async function Gs(){if(a){if(!ue){se.error("请输入新密码");return}if(ue!==H){se.error("两次密码不一致");return}if(ue.length<6){se.error("密码至少 6 位");return}$(!0);try{const me=await Pt("/api/db/users",{id:a.id,password:ue});me!=null&&me.success?(se.success("修改成功"),xe(""),O("")):se.error("修改失败: "+((me==null?void 0:me.error)||""))}catch{se.error("修改失败")}finally{$(!1)}}}async function hn(){if(!a)return;const me=parseFloat(ye);if(Number.isNaN(me)||me===0){se.error("请输入有效金额(正数增加、负数扣减)");return}he(!0);try{const fe=await jt(`/api/admin/users/${a.id}/balance/adjust`,{amount:me,remark:ke||void 0});fe!=null&&fe.success?(se.success("余额已调整"),oe(!1),Ae(""),ee(""),rn(),s==null||s()):se.error("调整失败: "+((fe==null?void 0:fe.error)||""))}catch{se.error("调整失败")}finally{he(!1)}}async function ks(){if(!mt&&!Tt&&!In){vt("请至少输入手机号、微信号或 OpenID 中的一项");return}ce(!0),vt(null),Fe(null);try{const me=new URLSearchParams;mt&&me.set("phone",mt),Tt&&me.set("openId",Tt),In&&me.set("wechatId",In);const fe=await Oe(`/api/admin/shensheshou/query?${me}`);fe!=null&&fe.success&&fe.data?(Fe(fe.data),a&&await U(fe.data)):vt((fe==null?void 0:fe.error)||"未查询到数据,该用户可能未在神射手收录")}catch(me){console.error("SSS query error:",me),vt("请求失败,请检查神射手接口配置")}finally{ce(!1)}}async function U(me){if(a)try{await jt("/api/admin/shensheshou/enrich",{userId:a.id,phone:mt||a.phone||"",openId:Tt||a.openId||"",wechatId:In||a.wechatId||""}),rn()}catch(fe){console.error("SSS enrich error:",fe)}}async function _e(){if(a){Ns(!0),is(null);try{const me={users:[{phone:a.phone||"",name:a.nickname||"",openId:a.openId||"",tags:P}]},fe=await jt("/api/admin/shensheshou/ingest",me);fe!=null&&fe.success&&fe.data?is(fe.data):is({error:(fe==null?void 0:fe.error)||"推送失败"})}catch(me){console.error("SSS ingest error:",me),is({error:"请求失败"})}finally{Ns(!1)}}}const it=me=>{const at={view_chapter:ir,purchase:dx,match:zn,login:zo,register:zo,share:$r,bind_phone:xA,bind_wechat:iA,fill_profile:md,visit_page:Gl}[me]||ax;return r.jsx(at,{className:"w-4 h-4"})};return t?r.jsxs(r.Fragment,{children:[r.jsx(Lt,{open:t,onOpenChange:()=>e(),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-4xl max-h-[90vh] overflow-hidden",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(zo,{className:"w-5 h-5 text-[#38bdac]"}),"用户详情",(a==null?void 0:a.phone)&&r.jsx(Je,{className:"bg-green-500/20 text-green-400 border-0 ml-2",children:"已绑定手机"}),(a==null?void 0:a.isVip)&&r.jsx(Je,{className:"bg-amber-500/20 text-amber-400 border-0",children:"VIP"})]})}),g?r.jsxs("div",{className:"flex items-center justify-center py-20",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):a?r.jsxs("div",{className:"flex flex-col h-[75vh]",children:[r.jsxs("div",{className:"flex items-center gap-4 p-4 bg-[#0a1628] rounded-lg mb-3",children:[r.jsx("div",{className:"w-16 h-16 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-2xl text-[#38bdac] shrink-0",children:a.avatar?r.jsx("img",{src:a.avatar,className:"w-full h-full rounded-full object-cover",alt:""}):(($t=a.nickname)==null?void 0:$t.charAt(0))||"?"}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[r.jsx("h3",{className:"text-lg font-bold text-white",children:a.nickname}),a.isAdmin&&r.jsx(Je,{className:"bg-purple-500/20 text-purple-400 border-0",children:"管理员"}),a.hasFullBook&&r.jsx(Je,{className:"bg-green-500/20 text-green-400 border-0",children:"全书已购"}),a.vipRole&&r.jsx(Je,{className:"bg-amber-500/20 text-amber-400 border-0",children:a.vipRole})]}),r.jsxs("p",{className:"text-gray-400 text-sm mt-1",children:[a.phone?`📱 ${a.phone}`:"未绑定手机",a.wechatId&&` · 💬 ${a.wechatId}`,a.mbti&&` · ${a.mbti}`]}),r.jsxs("div",{className:"flex items-center gap-4 mt-1",children:[r.jsxs("p",{className:"text-gray-600 text-xs",children:["ID: ",a.id.slice(0,16),"…"]}),a.referralCode&&r.jsxs("p",{className:"text-xs",children:[r.jsx("span",{className:"text-gray-500",children:"推广码:"}),r.jsx("code",{className:"text-[#38bdac] bg-[#38bdac]/10 px-1.5 py-0.5 rounded",children:a.referralCode})]})]})]}),r.jsxs("div",{className:"text-right shrink-0",children:[r.jsxs("p",{className:"text-[#38bdac] font-bold text-lg",children:["¥",(a.earnings||0).toFixed(2)]}),r.jsx("p",{className:"text-gray-500 text-xs",children:"累计收益"})]})]}),r.jsxs(Yd,{value:C,onValueChange:E,className:"flex-1 flex flex-col overflow-hidden",children:[r.jsxs(pc,{className:"bg-[#0a1628] border border-gray-700/50 p-1 mb-3 flex-wrap h-auto gap-1",children:[r.jsx(tn,{value:"info",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-xs",children:"基础信息"}),r.jsx(tn,{value:"tags",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-xs",children:"标签体系"}),r.jsxs(tn,{value:"journey",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-xs",children:[r.jsx(Gl,{className:"w-3 h-3 mr-1"}),"用户旅程"]}),r.jsx(tn,{value:"relations",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-xs",children:"关系链路"}),r.jsxs(tn,{value:"shensheshou",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-xs",children:[r.jsx(Va,{className:"w-3 h-3 mr-1"}),"用户资料完善"]})]}),r.jsxs(nn,{value:"info",className:"flex-1 overflow-auto space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"手机号"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"输入手机号",value:I,onChange:me=>L(me.target.value),disabled:!!(a!=null&&a.phone)}),(a==null?void 0:a.phone)&&r.jsx("p",{className:"text-xs text-gray-500",children:"编辑时手机号不可修改"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"昵称"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"输入昵称",value:W,onChange:me=>D(me.target.value)})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[a.openId&&r.jsxs("div",{className:"p-3 bg-[#0a1628] rounded-lg",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"微信 OpenID"}),r.jsx("p",{className:"text-gray-300 font-mono text-xs break-all",children:a.openId})]}),a.region&&r.jsxs("div",{className:"p-3 bg-[#0a1628] rounded-lg flex items-center gap-2",children:[r.jsx(Cj,{className:"w-4 h-4 text-gray-500"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-500 text-xs",children:"地区"}),r.jsx("p",{className:"text-white",children:a.region})]})]}),a.industry&&r.jsxs("div",{className:"p-3 bg-[#0a1628] rounded-lg",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"行业"}),r.jsx("p",{className:"text-white",children:a.industry})]}),a.position&&r.jsxs("div",{className:"p-3 bg-[#0a1628] rounded-lg",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"职位"}),r.jsx("p",{className:"text-white",children:a.position})]})]}),r.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4",children:[r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"推荐人数"}),r.jsx("p",{className:"text-2xl font-bold text-white",children:a.referralCount??0})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"待提现"}),r.jsxs("p",{className:"text-2xl font-bold text-yellow-400",children:["¥",(a.pendingEarnings??0).toFixed(2)]})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg flex flex-col justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"当前余额"}),r.jsxs("p",{className:"text-2xl font-bold text-[#38bdac]",children:["¥",((f==null?void 0:f.balance)??0).toFixed(2)]})]}),r.jsx(X,{size:"sm",variant:"outline",className:"mt-2 border-[#38bdac]/50 text-[#38bdac] hover:bg-[#38bdac]/10 text-xs",onClick:()=>{Ae(""),ee(""),oe(!0)},children:"调整余额"})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"创建时间"}),r.jsx("p",{className:"text-sm text-white",children:a.createdAt?new Date(a.createdAt).toLocaleDateString():"-"})]})]}),r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg border border-gray-700/50",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(Sj,{className:"w-4 h-4 text-yellow-400"}),r.jsx("span",{className:"text-white font-medium",children:"修改密码"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(ae,{type:"password",className:"bg-[#162840] border-gray-700 text-white",placeholder:"新密码至少6位",value:ue,onChange:me=>xe(me.target.value)}),r.jsx(ae,{type:"password",className:"bg-[#162840] border-gray-700 text-white",placeholder:"确认密码",value:H,onChange:me=>O(me.target.value)}),r.jsx(X,{size:"sm",onClick:Gs,disabled:J||!ue||!H,className:"bg-yellow-500/20 hover:bg-yellow-500/30 text-yellow-400 border border-yellow-500/40",children:J?"保存中...":"确认修改"})]})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg border border-amber-500/20",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(Yl,{className:"w-4 h-4 text-amber-400"}),r.jsx("span",{className:"text-white font-medium",children:"设成超级个体"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Z,{className:"text-gray-400 text-sm",children:"VIP 会员"}),r.jsx(Et,{checked:M.isVip,onCheckedChange:me=>q(fe=>({...fe,isVip:me}))})]}),M.isVip&&r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"到期日"}),r.jsx(ae,{type:"date",className:"bg-[#162840] border-gray-700 text-white text-sm",value:M.vipExpireDate,onChange:me=>q(fe=>({...fe,vipExpireDate:me.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"角色"}),r.jsxs("select",{className:"w-full bg-[#162840] border border-gray-700 text-white rounded px-2 py-1.5 text-sm",value:M.vipRole,onChange:me=>q(fe=>({...fe,vipRole:me.target.value})),children:[r.jsx("option",{value:"",children:"请选择"}),B.map(me=>r.jsx("option",{value:me.name,children:me.name},me.id))]})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"展示名"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white text-sm",placeholder:"创业老板排行展示名",value:M.vipName,onChange:me=>q(fe=>({...fe,vipName:me.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"项目"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white text-sm",placeholder:"如:某某科技",value:M.vipProject,onChange:me=>q(fe=>({...fe,vipProject:me.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"联系方式"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white text-sm",placeholder:"微信/手机等",value:M.vipContact,onChange:me=>q(fe=>({...fe,vipContact:me.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"简介"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white text-sm",placeholder:"简短介绍",value:M.vipBio,onChange:me=>q(fe=>({...fe,vipBio:me.target.value}))})]})]})]})]}),a.isVip&&r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg border border-amber-500/20",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(Yl,{className:"w-4 h-4 text-amber-400"}),r.jsx("span",{className:"text-white font-medium",children:"VIP 信息"}),r.jsx(Je,{className:"bg-amber-500/20 text-amber-400 border-0 text-xs",children:a.vipRole||"VIP"})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[a.vipName&&r.jsxs("div",{children:[r.jsx("span",{className:"text-gray-500",children:"展示名:"}),r.jsx("span",{className:"text-white",children:a.vipName})]}),a.vipProject&&r.jsxs("div",{children:[r.jsx("span",{className:"text-gray-500",children:"项目:"}),r.jsx("span",{className:"text-white",children:a.vipProject})]}),a.vipContact&&r.jsxs("div",{children:[r.jsx("span",{className:"text-gray-500",children:"联系方式:"}),r.jsx("span",{className:"text-white",children:a.vipContact})]}),a.vipExpireDate&&r.jsxs("div",{children:[r.jsx("span",{className:"text-gray-500",children:"到期时间:"}),r.jsx("span",{className:"text-white",children:new Date(a.vipExpireDate).toLocaleDateString()})]})]}),a.vipBio&&r.jsx("p",{className:"text-gray-400 text-sm mt-2",children:a.vipBio})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg border border-purple-500/20",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(Bi,{className:"w-4 h-4 text-purple-400"}),r.jsx("span",{className:"text-white font-medium",children:"微信归属"}),r.jsx("span",{className:"text-gray-500 text-xs",children:"该用户归属在哪个微信号下"})]}),r.jsxs("div",{className:"flex gap-2 items-center",children:[r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white flex-1",placeholder:"输入归属微信号(如 wxid_xxxx",value:Ls,onChange:me=>ws(me.target.value)}),r.jsxs(X,{size:"sm",onClick:async()=>{if(!(!Ls||!a))try{await Pt("/api/db/users",{id:a.id,wechatId:Ls}),se.success("已保存微信归属"),rn()}catch{se.error("保存失败")}},className:"bg-purple-500/20 hover:bg-purple-500/30 text-purple-400 border border-purple-500/30 shrink-0",children:[r.jsx(kn,{className:"w-4 h-4 mr-1"})," 保存"]})]}),a.wechatId&&r.jsxs("p",{className:"text-gray-500 text-xs mt-2",children:["当前归属:",r.jsx("span",{className:"text-purple-400",children:a.wechatId})]})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx($r,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx("span",{className:"text-white font-medium",children:"存客宝同步"})]}),r.jsx(X,{size:"sm",onClick:qs,disabled:N||!a.phone,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:N?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-1 animate-spin"})," 同步中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-1"})," 同步数据"]})})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-gray-500",children:"同步状态:"}),a.ckbSyncedAt?r.jsx(Je,{className:"bg-green-500/20 text-green-400 border-0 ml-1",children:"已同步"}):r.jsx(Je,{className:"bg-gray-500/20 text-gray-400 border-0 ml-1",children:"未同步"})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-gray-500",children:"最后同步:"}),r.jsx("span",{className:"text-gray-300 ml-1",children:a.ckbSyncedAt?new Date(a.ckbSyncedAt).toLocaleString():"-"})]})]})]})]}),r.jsxs(nn,{value:"tags",className:"flex-1 overflow-auto space-y-4",children:[r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(md,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx("span",{className:"text-white font-medium",children:"用户标签"}),r.jsx("span",{className:"text-gray-500 text-xs",children:"基于《一场 Soul 的创业实验》维度打标"})]}),r.jsxs("div",{className:"mb-3 p-2.5 bg-[#38bdac]/5 border border-[#38bdac]/20 rounded-lg flex items-center gap-2 text-xs text-gray-400",children:[r.jsx(rx,{className:"w-3.5 h-3.5 text-[#38bdac] shrink-0"}),"命中的标签自动高亮 · 系统根据行为轨迹和填写资料自动打标 · 手动点击补充或取消"]}),r.jsx("div",{className:"mb-4 space-y-3",children:[{category:"身份类型",tags:["创业者","打工人","自由职业","学生","投资人","合伙人"]},{category:"行业背景",tags:["电商","内容","传统行业","科技/AI","金融","教育","餐饮"]},{category:"痛点标签",tags:["找资源","找方向","找合伙人","想赚钱","想学习","找情感出口"]},{category:"付费意愿",tags:["高意向","已付费","观望中","薅羊毛"]},{category:"MBTI",tags:["ENTJ","INTJ","ENFP","INFP","ENTP","INTP","ESTJ","ISFJ"]}].map(me=>r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1.5",children:me.category}),r.jsx("div",{className:"flex flex-wrap gap-1.5",children:me.tags.map(fe=>r.jsxs("button",{type:"button",onClick:()=>{P.includes(fe)?js(fe):R([...P,fe])},className:`px-2 py-0.5 rounded text-xs border transition-all ${P.includes(fe)?"bg-[#38bdac]/20 border-[#38bdac]/50 text-[#38bdac]":"bg-transparent border-gray-700 text-gray-500 hover:border-gray-500 hover:text-gray-300"}`,children:[P.includes(fe)?"✓ ":"",fe]},fe))})]},me.category))}),r.jsxs("div",{className:"border-t border-gray-700/50 pt-3",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-2",children:"已选标签"}),r.jsxs("div",{className:"flex flex-wrap gap-2 mb-3 min-h-[32px]",children:[P.map((me,fe)=>r.jsxs(Je,{className:"bg-[#38bdac]/20 text-[#38bdac] border-0 pr-1",children:[me,r.jsx("button",{type:"button",onClick:()=>js(me),className:"ml-1 hover:text-red-400",children:r.jsx(gs,{className:"w-3 h-3"})})]},fe)),P.length===0&&r.jsx("span",{className:"text-gray-600 text-sm",children:"暂未选择标签"})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white flex-1",placeholder:"自定义标签(回车添加)",value:K,onChange:me=>re(me.target.value),onKeyDown:me=>me.key==="Enter"&&Un()}),r.jsx(X,{onClick:Un,className:"bg-[#38bdac] hover:bg-[#2da396]",children:"添加"})]})]})]}),(()=>{const me=a.tags||a.ckbTags||"";let fe=[];try{const yt=typeof me=="string"?JSON.parse(me||"[]"):[];fe=Array.isArray(yt)?yt:typeof me=="string"?me.split(","):[]}catch{fe=typeof me=="string"?me.split(","):[]}const at=fe.map(yt=>String(yt).trim()).filter(Boolean);return at.length===0?null:r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r.jsx(md,{className:"w-4 h-4 text-purple-400"}),r.jsx("span",{className:"text-white font-medium",children:"存客宝标签"})]}),r.jsx("div",{className:"flex flex-wrap gap-2",children:at.map((yt,fn)=>r.jsx(Je,{className:"bg-purple-500/20 text-purple-400 border-0",children:yt},fn))})]})})()]}),r.jsxs(nn,{value:"journey",className:"flex-1 overflow-auto",children:[r.jsxs("div",{className:"mb-3 p-3 bg-[#0a1628] rounded-lg flex items-center gap-2",children:[r.jsx(Gl,{className:"w-4 h-4 text-[#38bdac]"}),r.jsxs("span",{className:"text-gray-400 text-sm",children:["记录用户从注册到付费的完整行动路径,共 ",o.length," 条记录"]})]}),r.jsx("div",{className:"space-y-2",children:o.length>0?o.map((me,fe)=>r.jsxs("div",{className:"flex items-start gap-3 p-3 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx("div",{className:"w-8 h-8 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-[#38bdac]",children:it(me.action)}),fe<o.length-1&&r.jsx("div",{className:"w-0.5 h-4 bg-gray-700/50 mt-1"})]}),r.jsxs("div",{className:"flex-1 pb-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-white font-medium",children:me.actionLabel}),me.chapterTitle&&r.jsxs("span",{className:"text-gray-400 text-sm",children:["- ",me.chapterTitle]})]}),r.jsxs("p",{className:"text-gray-500 text-xs mt-0.5",children:[r.jsx(ax,{className:"w-3 h-3 inline mr-1"}),me.timeAgo," · ",new Date(me.createdAt).toLocaleString()]})]})]},me.id)):r.jsxs("div",{className:"text-center py-12",children:[r.jsx(Gl,{className:"w-10 h-10 text-[#38bdac]/40 mx-auto mb-4"}),r.jsx("p",{className:"text-gray-400",children:"暂无用户旅程记录"}),r.jsx("p",{className:"text-gray-600 text-sm mt-1",children:"当用户浏览章节、购买或完善信息时会自动记录"})]})})]}),r.jsx(nn,{value:"relations",className:"flex-1 overflow-auto space-y-4",children:r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx($r,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx("span",{className:"text-white font-medium",children:"推荐的用户"})]}),r.jsxs(Je,{className:"bg-[#38bdac]/20 text-[#38bdac] border-0",children:["共 ",u.length," 人"]})]}),r.jsx("div",{className:"space-y-2 max-h-[250px] overflow-y-auto",children:u.length>0?u.map((me,fe)=>{var yt;const at=me;return r.jsxs("div",{className:"flex items-center justify-between p-2 bg-[#162840] rounded",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:"w-6 h-6 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-xs text-[#38bdac]",children:((yt=at.nickname)==null?void 0:yt.charAt(0))||"?"}),r.jsx("span",{className:"text-white text-sm",children:at.nickname})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[at.status==="vip"&&r.jsx(Je,{className:"bg-green-500/20 text-green-400 border-0 text-xs",children:"已购"}),r.jsx("span",{className:"text-gray-500 text-xs",children:at.createdAt?new Date(at.createdAt).toLocaleDateString():""})]})]},at.id||fe)}):r.jsx("p",{className:"text-gray-500 text-sm text-center py-4",children:"暂无推荐用户"})})]})}),r.jsxs(nn,{value:"shensheshou",className:"flex-1 overflow-auto space-y-4",children:[r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(Va,{className:"w-5 h-5 text-[#38bdac]"}),r.jsx("span",{className:"text-white font-medium",children:"用户资料完善"}),r.jsx("span",{className:"text-gray-500 text-xs",children:"通过多维度查询神射手数据,自动回填用户基础信息"})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 mb-3",children:[r.jsxs("div",{children:[r.jsx(Z,{className:"text-gray-500 text-xs mb-1 block",children:"手机号"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white",placeholder:"11位手机号",value:mt,onChange:me=>Ut(me.target.value)})]}),r.jsxs("div",{children:[r.jsx(Z,{className:"text-gray-500 text-xs mb-1 block",children:"微信号"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white",placeholder:"微信 ID",value:In,onChange:me=>sn(me.target.value)})]}),r.jsxs("div",{className:"col-span-2",children:[r.jsx(Z,{className:"text-gray-500 text-xs mb-1 block",children:"微信 OpenID"}),r.jsx(ae,{className:"bg-[#162840] border-gray-700 text-white",placeholder:"openid_xxxx自动填入",value:Tt,onChange:me=>Mt(me.target.value)})]})]}),r.jsx(X,{onClick:ks,disabled:te,className:"w-full bg-[#38bdac] hover:bg-[#2da396] text-white",children:te?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-1 animate-spin"})," 查询并自动回填中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(ca,{className:"w-4 h-4 mr-1"})," 查询并自动完善用户资料"]})}),r.jsx("p",{className:"text-gray-600 text-xs mt-2",children:"查询成功后,神射手返回的标签将自动同步到该用户"}),rt&&r.jsx("div",{className:"mt-3 p-3 bg-red-500/10 border border-red-500/30 rounded-lg text-red-400 text-sm",children:rt}),pe&&r.jsxs("div",{className:"mt-3 space-y-3",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsxs("div",{className:"p-3 bg-[#162840] rounded-lg",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"神射手 RFM 分"}),r.jsx("p",{className:"text-2xl font-bold text-[#38bdac]",children:pe.rfm_score??"-"})]}),r.jsxs("div",{className:"p-3 bg-[#162840] rounded-lg",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"用户等级"}),r.jsx("p",{className:"text-2xl font-bold text-white",children:pe.user_level??"-"})]})]}),pe.tags&&pe.tags.length>0&&r.jsxs("div",{className:"p-3 bg-[#162840] rounded-lg",children:[r.jsx("p",{className:"text-gray-500 text-xs mb-2",children:"神射手标签"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:pe.tags.map((me,fe)=>r.jsx(Je,{className:"bg-[#38bdac]/10 text-[#38bdac] border border-[#38bdac]/20",children:me},fe))})]}),pe.last_active&&r.jsxs("div",{className:"text-sm text-gray-500",children:["最近活跃:",pe.last_active]})]})]}),r.jsxs("div",{className:"p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[r.jsx(Va,{className:"w-4 h-4 text-purple-400"}),r.jsx("span",{className:"text-white font-medium",children:"推送用户数据到神射手"})]}),r.jsx("p",{className:"text-gray-500 text-xs",children:"将本用户信息(手机号、昵称、标签等)同步至神射手,自动完善用户画像"})]}),r.jsx(X,{onClick:_e,disabled:Kt||!a.phone,variant:"outline",className:"border-purple-500/40 text-purple-400 hover:bg-purple-500/10 bg-transparent shrink-0 ml-4",children:Kt?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-1 animate-spin"})," 推送中"]}):r.jsxs(r.Fragment,{children:[r.jsx(Va,{className:"w-4 h-4 mr-1"})," 推送"]})})]}),!a.phone&&r.jsx("p",{className:"text-yellow-500/70 text-xs",children:"⚠ 用户未绑定手机号,无法推送"}),as&&r.jsx("div",{className:"mt-3 p-3 bg-[#162840] rounded-lg text-sm",children:as.error?r.jsx("p",{className:"text-red-400",children:String(as.error)}):r.jsxs("div",{className:"space-y-1",children:[r.jsxs("p",{className:"text-green-400 flex items-center gap-1",children:[r.jsx(rx,{className:"w-4 h-4"})," 推送成功"]}),as.enriched!==void 0&&r.jsxs("p",{className:"text-gray-400",children:["自动补全标签数:",String(as.new_tags_added??0)]})]})})]})]})]}),r.jsxs("div",{className:"flex justify-end gap-2 pt-3 border-t border-gray-700 mt-3",children:[r.jsxs(X,{variant:"outline",onClick:e,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"关闭"]}),r.jsxs(X,{onClick:un,disabled:v,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),v?"保存中...":"保存修改"]})]})]}):r.jsx("div",{className:"text-center py-12 text-gray-500",children:"用户不存在"})]})}),r.jsx(Lt,{open:G,onOpenChange:oe,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsx(zt,{children:"调整余额"})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"调整金额(元)"}),r.jsx(ae,{type:"number",step:"0.01",className:"bg-[#0a1628] border-gray-700 text-white mt-1",placeholder:"正数增加,负数扣减,如 10 或 -5",value:ye,onChange:me=>Ae(me.target.value)})]}),r.jsxs("div",{children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"备注(可选)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white mt-1",placeholder:"如:活动补偿",value:ke,onChange:me=>ee(me.target.value)})]})]}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx(X,{variant:"outline",onClick:()=>oe(!1),className:"border-gray-600 text-gray-300",children:"取消"}),r.jsx(X,{onClick:hn,disabled:Y,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:Y?"提交中...":"确认调整"})]})]})})]}):null}function fR(){const t=Ji(),[e,n]=b.useState(!0),[s,a]=b.useState(!0),[i,o]=b.useState(!0),[c,u]=b.useState([]),[h,f]=b.useState([]),[m,g]=b.useState(0),[y,N]=b.useState(0),[w,v]=b.useState(0),[k,C]=b.useState(0),[E,I]=b.useState(null),[L,W]=b.useState(null),[D,P]=b.useState(!1),[R,K]=b.useState(0),[re,ue]=b.useState(!1),[xe,H]=b.useState(null),[O,J]=b.useState("week"),[$,M]=b.useState(null),[q,B]=b.useState(!1),z=ee=>{const Y=ee;if((Y==null?void 0:Y.status)===401)I("登录已过期,请重新登录");else{if((Y==null?void 0:Y.name)==="AbortError")return;I("加载失败,请检查网络或联系管理员")}};async function G(ee){const Y=ee?{signal:ee}:void 0;n(!0),I(null);try{const ce=await Oe("/api/admin/dashboard/stats",Y);ce!=null&&ce.success&&(g(ce.totalUsers??0),N(ce.paidOrderCount??0),v(ce.totalRevenue??0),C(ce.conversionRate??0))}catch(ce){if((ce==null?void 0:ce.name)!=="AbortError"){console.error("stats 失败,尝试 overview 降级",ce);try{const pe=await Oe("/api/admin/dashboard/overview",Y);pe!=null&&pe.success&&(g(pe.totalUsers??0),N(pe.paidOrderCount??0),v(pe.totalRevenue??0),C(pe.conversionRate??0))}catch(pe){z(pe)}}}finally{n(!1)}try{const ce=await Oe("/api/admin/balance/summary",Y);ce!=null&&ce.success&&ce.data&&K(ce.data.totalGifted??0)}catch{}try{const ce=await Oe("/api/db/ckb-plan-stats",Y);ce!=null&&ce.success&&ce.data?H({ckbTotal:ce.data.ckbTotal??0,withContact:ce.data.withContact??0}):H(null)}catch{H(null)}a(!0),o(!0);const he=async()=>{try{const ce=await Oe("/api/admin/dashboard/recent-orders?limit=10",Y);if(ce!=null&&ce.success&&ce.recentOrders)f(ce.recentOrders);else throw new Error("no data")}catch(ce){if((ce==null?void 0:ce.name)!=="AbortError")try{const pe=await Oe("/api/admin/orders?page=1&pageSize=20&status=paid",Y),rt=((pe==null?void 0:pe.orders)??[]).filter(vt=>["paid","completed","success"].includes(vt.status||""));f(rt.slice(0,5))}catch{f([])}}finally{a(!1)}},te=async()=>{try{const ce=await Oe("/api/admin/dashboard/new-users",Y);if(ce!=null&&ce.success&&ce.newUsers)u(ce.newUsers);else throw new Error("no data")}catch(ce){if((ce==null?void 0:ce.name)!=="AbortError")try{const pe=await Oe("/api/db/users?page=1&pageSize=10",Y);u((pe==null?void 0:pe.users)??[])}catch{u([])}}finally{o(!1)}};await Promise.all([he(),te()])}async function oe(ee){const Y=ee||O;B(!0);try{const he=await Oe(`/api/admin/track/stats?period=${Y}`);he!=null&&he.success&&M({total:he.total??0,byModule:he.byModule??{}})}catch{M(null)}finally{B(!1)}}b.useEffect(()=>{const ee=new AbortController;G(ee.signal),oe();const Y=setInterval(()=>{G(),oe()},3e4);return()=>{ee.abort(),clearInterval(Y)}},[]);const ye=m,Ae=ee=>{const Y=ee.productType||"",he=ee.description||"";if(Y==="balance_recharge")return{title:`余额充值 ¥${typeof ee.amount=="number"?ee.amount.toFixed(2):parseFloat(String(ee.amount||"0")).toFixed(2)}`,subtitle:"余额充值"};if(Y==="gift_pay")return{title:`代付 ¥${typeof ee.amount=="number"?ee.amount.toFixed(2):parseFloat(String(ee.amount||"0")).toFixed(2)}`,subtitle:"好友代付"};if(Y==="gift_pay_batch"){const te=typeof ee.amount=="number"?ee.amount.toFixed(2):parseFloat(String(ee.amount||"0")).toFixed(2);return{title:he||`代付分享 ¥${te}`,subtitle:"代付分享"}}if(Y==="section"&&he.includes("代付领取"))return{title:he.replace("代付领取 - ",""),subtitle:"代付领取"};if(he){if(Y==="section"&&he.includes("章节")){if(he.includes("-")){const te=he.split("-");if(te.length>=3)return{title:`第${te[1]}章 第${te[2]}节`,subtitle:"《一场Soul的创业实验》"}}return{title:he,subtitle:"章节购买"}}return Y==="fullbook"||he.includes("全书")?{title:"《一场Soul的创业实验》",subtitle:"全书购买"}:Y==="vip"||he.includes("VIP")?{title:"超级个体开通费用",subtitle:"超级个体"}:Y==="match"||he.includes("伙伴")?{title:"找伙伴匹配",subtitle:"功能服务"}:{title:he,subtitle:Y==="section"?"单章":Y==="fullbook"?"全书":"其他"}}return Y==="section"?{title:`章节 ${ee.productId||""}`,subtitle:"单章购买"}:Y==="fullbook"?{title:"《一场Soul的创业实验》",subtitle:"全书购买"}:Y==="vip"?{title:"超级个体开通费用",subtitle:"超级个体"}:Y==="match"?{title:"找伙伴匹配",subtitle:"功能服务"}:{title:"未知商品",subtitle:Y||"其他"}},ke=[{title:"总用户数",value:e?null:ye,sub:null,icon:zn,color:"text-blue-400",bg:"bg-blue-500/20",link:"/users"},{title:"总收入",value:e?null:`¥${(w??0).toFixed(2)}`,sub:R>0?`含代付 ¥${R.toFixed(2)}`:null,icon:gd,color:"text-[#38bdac]",bg:"bg-[#38bdac]/20",link:"/orders"},{title:"订单数",value:e?null:y,sub:null,icon:dx,color:"text-purple-400",bg:"bg-purple-500/20",link:"/orders"},{title:"转化率",value:e?null:`${typeof k=="number"?k.toFixed(1):0}%`,sub:null,icon:ir,color:"text-orange-400",bg:"bg-orange-500/20",link:"/distribution"},{title:"存客宝获客",value:xe?xe.ckbTotal??0:null,sub:(xe==null?void 0:xe.withContact)!=null?`含联系方式 ${xe.withContact} 人`:null,icon:xd,color:"text-cyan-400",bg:"bg-cyan-500/20",link:"/users?tab=leads"}];return r.jsxs("div",{className:"p-8 w-full",children:[r.jsx("h1",{className:"text-2xl font-bold mb-8 text-white",children:"数据概览"}),E&&r.jsxs("div",{className:"mb-6 px-4 py-3 rounded-lg bg-amber-500/20 border border-amber-500/50 text-amber-200 text-sm flex items-center justify-between",children:[r.jsx("span",{children:E}),r.jsx("button",{type:"button",onClick:()=>G(),className:"text-amber-400 hover:text-amber-300 underline",children:"重试"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8",children:ke.map((ee,Y)=>r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl cursor-pointer hover:border-[#38bdac]/50 transition-colors group",onClick:()=>ee.link&&t(ee.link),children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between pb-2",children:[r.jsx(Xe,{className:"text-sm font-medium text-gray-400",children:ee.title}),r.jsx("div",{className:`p-2 rounded-lg ${ee.bg}`,children:r.jsx(ee.icon,{className:`w-4 h-4 ${ee.color}`})})]}),r.jsx(Te,{children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-2xl font-bold text-white min-h-8 flex items-center",children:ee.value!=null?ee.value:r.jsxs("span",{className:"inline-flex items-center gap-2 text-gray-500",children:[r.jsx(Be,{className:"w-4 h-4 animate-spin"}),"加载中"]})}),ee.sub&&r.jsx("p",{className:"text-xs text-gray-500 mt-1",children:ee.sub})]}),r.jsx(ql,{className:"w-5 h-5 text-gray-600 group-hover:text-[#38bdac] transition-colors"})]})})]},Y))}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between",children:[r.jsx(Xe,{className:"text-white",children:"最近订单"}),r.jsxs("button",{type:"button",onClick:()=>G(),disabled:s||i,className:"text-xs text-gray-400 hover:text-[#38bdac] flex items-center gap-1 disabled:opacity-50",title:"刷新",children:[s||i?r.jsx(Be,{className:"w-3.5 h-3.5 animate-spin"}):r.jsx(Be,{className:"w-3.5 h-3.5"}),"刷新(每 30 秒自动更新)"]})]}),r.jsx(Te,{children:r.jsx("div",{className:"space-y-3",children:s&&h.length===0?r.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-gray-500",children:[r.jsx(Be,{className:"w-8 h-8 animate-spin mb-2"}),r.jsx("span",{className:"text-sm",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[h.slice(0,re?10:4).map(ee=>{var pe;const Y=ee.referrerId?c.find(Fe=>Fe.id===ee.referrerId):void 0,he=ee.referralCode||(Y==null?void 0:Y.referralCode)||(Y==null?void 0:Y.nickname)||(ee.referrerId?String(ee.referrerId).slice(0,8):""),te=Ae(ee),ce=ee.userNickname||((pe=c.find(Fe=>Fe.id===ee.userId))==null?void 0:pe.nickname)||"匿名用户";return r.jsxs("div",{className:"flex items-start justify-between p-4 bg-[#0a1628] rounded-lg border border-gray-700/30 hover:border-[#38bdac]/30 transition-colors",children:[r.jsxs("div",{className:"flex items-start gap-3 flex-1",children:[ee.userAvatar?r.jsx("img",{src:ee.userAvatar,alt:ce,className:"w-9 h-9 rounded-full object-cover flex-shrink-0 mt-0.5",onError:Fe=>{Fe.currentTarget.style.display="none";const rt=Fe.currentTarget.nextElementSibling;rt&&rt.classList.remove("hidden")}}):null,r.jsx("div",{className:`w-9 h-9 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm font-medium text-[#38bdac] flex-shrink-0 mt-0.5 ${ee.userAvatar?"hidden":""}`,children:ce.charAt(0)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[r.jsx("button",{type:"button",onClick:()=>{ee.userId&&(W(ee.userId),P(!0))},className:"text-sm text-[#38bdac] hover:text-[#2da396] hover:underline text-left",children:ce}),r.jsx("span",{className:"text-gray-600",children:"·"}),r.jsx("span",{className:"text-sm font-medium text-white truncate",children:te.title})]}),r.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[te.subtitle&&te.subtitle!=="章节购买"&&r.jsx("span",{className:"px-1.5 py-0.5 bg-gray-700/50 rounded",children:te.subtitle}),r.jsx("span",{children:new Date(ee.createdAt||0).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})})]}),he&&r.jsxs("p",{className:"text-xs text-gray-600 mt-1",children:["推荐: ",he]})]})]}),r.jsxs("div",{className:"text-right ml-4 flex-shrink-0",children:[r.jsxs("p",{className:"text-sm font-bold text-[#38bdac]",children:["+¥",Number(ee.amount).toFixed(2)]}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:ee.paymentMethod||"微信"})]})]},ee.id)}),h.length>4&&!re&&r.jsx("button",{type:"button",onClick:()=>ue(!0),className:"w-full py-2 text-sm text-[#38bdac] hover:text-[#2da396] border border-dashed border-gray-600 rounded-lg hover:border-[#38bdac]/50 transition-colors",children:"展开更多"}),h.length===0&&!s&&r.jsxs("div",{className:"text-center py-12",children:[r.jsx(dx,{className:"w-12 h-12 text-gray-600 mx-auto mb-3"}),r.jsx("p",{className:"text-gray-500",children:"暂无订单数据"})]})]})})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"新注册用户"})}),r.jsx(Te,{children:r.jsx("div",{className:"space-y-3",children:i&&c.length===0?r.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-gray-500",children:[r.jsx(Be,{className:"w-8 h-8 animate-spin mb-2"}),r.jsx("span",{className:"text-sm",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[c.slice(0,5).map(ee=>{var Y;return r.jsxs("div",{className:"flex items-center justify-between p-4 bg-[#0a1628] rounded-lg border border-gray-700/30",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"w-10 h-10 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm font-medium text-[#38bdac]",children:((Y=ee.nickname)==null?void 0:Y.charAt(0))||"?"}),r.jsxs("div",{children:[r.jsx("button",{type:"button",onClick:()=>{W(ee.id),P(!0)},className:"text-sm font-medium text-[#38bdac] hover:text-[#2da396] hover:underline text-left",children:ee.nickname||"匿名用户"}),r.jsx("p",{className:"text-xs text-gray-500",children:ee.phone||"-"})]})]}),r.jsx("p",{className:"text-xs text-gray-400",children:ee.createdAt?new Date(ee.createdAt).toLocaleDateString():"-"})]},ee.id)}),c.length===0&&!i&&r.jsx("p",{className:"text-gray-500 text-center py-8",children:"暂无用户数据"})]})})})]})]}),r.jsxs(Ee,{className:"mt-8 bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between",children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(sx,{className:"w-5 h-5 text-[#38bdac]"}),"分类标签点击统计"]}),r.jsx("div",{className:"flex items-center gap-2",children:["today","week","month","all"].map(ee=>r.jsx("button",{type:"button",onClick:()=>{J(ee),oe(ee)},className:`px-3 py-1 text-xs rounded-full transition-colors ${O===ee?"bg-[#38bdac] text-white":"bg-gray-700/50 text-gray-400 hover:bg-gray-700"}`,children:{today:"今日",week:"本周",month:"本月",all:"全部"}[ee]},ee))})]}),r.jsx(Te,{children:q&&!$?r.jsxs("div",{className:"flex items-center justify-center py-12 text-gray-500",children:[r.jsx(Be,{className:"w-6 h-6 animate-spin mr-2"}),r.jsx("span",{children:"加载中..."})]}):$&&Object.keys($.byModule).length>0?r.jsxs("div",{className:"space-y-6",children:[r.jsxs("p",{className:"text-sm text-gray-400",children:["总点击 ",r.jsx("span",{className:"text-white font-bold text-lg",children:$.total})," 次"]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:Object.entries($.byModule).sort((ee,Y)=>Y[1].reduce((he,te)=>he+te.count,0)-ee[1].reduce((he,te)=>he+te.count,0)).map(([ee,Y])=>{const he=Y.reduce((ce,pe)=>ce+pe.count,0),te={home:"首页",chapters:"目录",read:"阅读",my:"我的",vip:"VIP",wallet:"钱包",match:"找伙伴",referral:"推广",search:"搜索",settings:"设置",about:"关于",other:"其他"};return r.jsxs("div",{className:"bg-[#0a1628] rounded-lg border border-gray-700/30 p-4",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsx("span",{className:"text-sm font-medium text-[#38bdac]",children:te[ee]||ee}),r.jsxs("span",{className:"text-xs text-gray-500",children:[he," 次"]})]}),r.jsx("div",{className:"space-y-2",children:Y.sort((ce,pe)=>pe.count-ce.count).slice(0,8).map((ce,pe)=>{const Fe={开始匹配:"开始匹配",mentor:"导师顾问",team:"团队招募",investor:"资源对接",充值:"充值",退款:"退款",wallet:"钱包",设置:"设置",VIP:"VIP会员",推广:"推广中心",目录:"目录",搜索:"搜索",匹配:"找伙伴",settings:"设置",expired:"已过期",active:"活跃",converted:"已转化",fill_profile:"完善资料",register:"注册",purchase:"购买",btn_click:"按钮点击",nav_click:"导航点击",card_click:"卡片点击",tab_click:"标签切换",rule_trigger:"规则触发",view_chapter:"浏览章节",链接卡若:"链接卡若",更多分享:"更多分享",分享朋友圈文案:"分享朋友圈",选择金额10:"选择金额10元"},rt={btn_click:"按钮点击",nav_click:"导航点击",card_click:"卡片点击",tab_click:"标签切换",purchase:"购买",register:"注册",rule_trigger:"规则触发",view_chapter:"浏览章节"},vt=Fe[ce.target]||ce.target||rt[ce.action]||ce.action;return r.jsxs("div",{className:"flex items-center justify-between text-xs",children:[r.jsx("span",{className:"text-gray-300 truncate mr-2",title:`${ce.action}: ${ce.target}`,children:vt}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[r.jsx("div",{className:"w-16 h-1.5 bg-gray-700 rounded-full overflow-hidden",children:r.jsx("div",{className:"h-full bg-[#38bdac] rounded-full",style:{width:`${he>0?ce.count/he*100:0}%`}})}),r.jsx("span",{className:"text-gray-400 w-8 text-right",children:ce.count})]})]},pe)})})]},ee)})})]}):r.jsxs("div",{className:"text-center py-12",children:[r.jsx(sx,{className:"w-12 h-12 text-gray-600 mx-auto mb-3"}),r.jsx("p",{className:"text-gray-500",children:"暂无点击数据"}),r.jsx("p",{className:"text-gray-600 text-xs mt-1",children:"小程序端接入埋点后,数据将在此实时展示"})]})})]}),r.jsx(R0,{open:D,onClose:()=>{P(!1),W(null)},userId:L,onUserUpdated:()=>G()})]})}const ns=b.forwardRef(({className:t,...e},n)=>r.jsx("div",{className:"relative w-full overflow-auto",children:r.jsx("table",{ref:n,className:Dt("w-full caption-bottom text-sm",t),...e})}));ns.displayName="Table";const ss=b.forwardRef(({className:t,...e},n)=>r.jsx("thead",{ref:n,className:Dt("[&_tr]:border-b",t),...e}));ss.displayName="TableHeader";const rs=b.forwardRef(({className:t,...e},n)=>r.jsx("tbody",{ref:n,className:Dt("[&_tr:last-child]:border-0",t),...e}));rs.displayName="TableBody";const ut=b.forwardRef(({className:t,...e},n)=>r.jsx("tr",{ref:n,className:Dt("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...e}));ut.displayName="TableRow";const we=b.forwardRef(({className:t,...e},n)=>r.jsx("th",{ref:n,className:Dt("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",t),...e}));we.displayName="TableHead";const be=b.forwardRef(({className:t,...e},n)=>r.jsx("td",{ref:n,className:Dt("p-4 align-middle [&:has([role=checkbox])]:pr-0",t),...e}));be.displayName="TableCell";function O0(t,e){const[n,s]=b.useState(t);return b.useEffect(()=>{const a=setTimeout(()=>s(t),e);return()=>clearTimeout(a)},[t,e]),n}function Us({page:t,totalPages:e,total:n,pageSize:s,onPageChange:a,onPageSizeChange:i,pageSizeOptions:o=[10,20,50,100]}){return e<=1&&!i?null:r.jsxs("div",{className:"flex items-center justify-between gap-4 py-4 px-5 border-t border-gray-700/50",children:[r.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-400",children:[r.jsxs("span",{children:["共 ",n," 条"]}),i&&r.jsx("select",{value:s,onChange:c=>i(Number(c.target.value)),className:"bg-[#0f2137] border border-gray-600 rounded px-2 py-1 text-gray-300 text-sm",children:o.map(c=>r.jsxs("option",{value:c,children:[c," 条/页"]},c))})]}),e>1&&r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>a(1),disabled:t<=1,className:"px-2 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm",children:"首页"}),r.jsx("button",{type:"button",onClick:()=>a(t-1),disabled:t<=1,className:"px-3 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm",children:"上一页"}),r.jsxs("span",{className:"px-3 py-1 text-gray-400 text-sm",children:[t," / ",e]}),r.jsx("button",{type:"button",onClick:()=>a(t+1),disabled:t>=e,className:"px-3 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm",children:"下一页"}),r.jsx("button",{type:"button",onClick:()=>a(e),disabled:t>=e,className:"px-2 py-1 rounded border border-gray-600 text-gray-400 hover:bg-gray-700/50 disabled:opacity-40 text-sm",children:"末页"})]})]})}function pR(){const[t,e]=b.useState([]),[n,s]=b.useState([]),[a,i]=b.useState(0),[o,c]=b.useState(0),[u,h]=b.useState(0),[f,m]=b.useState(1),[g,y]=b.useState(10),[N,w]=b.useState(""),v=O0(N,300),[k,C]=b.useState("all"),[E,I]=b.useState(!0),[L,W]=b.useState(null),[D,P]=b.useState(null),[R,K]=b.useState(""),[re,ue]=b.useState(!1);async function xe(){I(!0),W(null);try{const B=k==="all"?"":k==="completed"?"completed":k,z=new URLSearchParams({page:String(f),pageSize:String(g),...B&&{status:B},...v&&{search:v}}),[G,oe]=await Promise.all([Oe(`/api/admin/orders?${z}`),Oe("/api/db/users?page=1&pageSize=500")]);G!=null&&G.success&&(e(G.orders||[]),i(G.total??0),c(G.totalRevenue??0),h(G.todayRevenue??0)),oe!=null&&oe.success&&oe.users&&s(oe.users)}catch(B){console.error("加载订单失败",B),W("加载订单失败,请检查网络后重试")}finally{I(!1)}}b.useEffect(()=>{m(1)},[v,k]),b.useEffect(()=>{xe()},[f,g,v,k]);const H=B=>{var z;return B.userNickname||((z=n.find(G=>G.id===B.userId))==null?void 0:z.nickname)||"匿名用户"},O=B=>{var z;return((z=n.find(G=>G.id===B))==null?void 0:z.phone)||"-"},J=B=>{const z=B.productType||B.type||"",G=B.description||"";if(z==="balance_recharge")return{name:`余额充值 ¥${Number(B.amount||0).toFixed(2)}`,type:"余额充值"};if(G){if(z==="section"&&(G.includes("章节")||G.includes("代付领取"))){if(G.includes("代付领取"))return{name:G.replace("代付领取 - ",""),type:"代付领取"};if(G.includes("-")){const oe=G.split("-");if(oe.length>=3)return{name:`第${oe[1]}章 第${oe[2]}节`,type:"《一场Soul的创业实验》"}}return{name:G,type:"章节购买"}}return z==="fullbook"||G.includes("全书")?{name:"《一场Soul的创业实验》",type:"全书购买"}:z==="vip"||G.includes("VIP")?{name:"超级个体开通费用",type:"超级个体"}:z==="match"||G.includes("伙伴")?{name:"找伙伴匹配",type:"功能服务"}:{name:G,type:"其他"}}return z==="section"?{name:`章节 ${B.productId||B.sectionId||""}`,type:"单章"}:z==="fullbook"?{name:"《一场Soul的创业实验》",type:"全书"}:z==="vip"?{name:"超级个体开通费用",type:"超级个体"}:z==="match"?{name:"找伙伴匹配",type:"功能"}:{name:"未知商品",type:z||"其他"}},$=Math.ceil(a/g)||1;async function M(){var B;if(!(!(D!=null&&D.orderSn)&&!(D!=null&&D.id))){ue(!0),W(null);try{const z=await Pt("/api/admin/orders/refund",{orderSn:D.orderSn||D.id,reason:R||void 0});z!=null&&z.success?(P(null),K(""),xe()):W((z==null?void 0:z.error)||"退款失败")}catch(z){const G=z;W(((B=G==null?void 0:G.data)==null?void 0:B.error)||"退款失败,请检查网络后重试")}finally{ue(!1)}}}function q(){if(t.length===0){se.info("暂无数据可导出");return}const B=["订单号","用户","手机号","商品","金额","支付方式","状态","退款原因","分销佣金","下单时间"],z=t.map(ke=>{const ee=J(ke);return[ke.orderSn||ke.id||"",H(ke),O(ke.userId),ee.name,Number(ke.amount||0).toFixed(2),ke.paymentMethod==="wechat"?"微信支付":ke.paymentMethod==="balance"?"余额支付":ke.paymentMethod==="alipay"?"支付宝":ke.paymentMethod||"微信支付",ke.status==="refunded"?"已退款":ke.status==="paid"||ke.status==="completed"?"已完成":ke.status==="pending"||ke.status==="created"?"待支付":"已失败",ke.status==="refunded"&&ke.refundReason?ke.refundReason:"-",ke.referrerEarnings?Number(ke.referrerEarnings).toFixed(2):"-",ke.createdAt?new Date(ke.createdAt).toLocaleString("zh-CN"):""].join(",")}),G="\uFEFF"+[B.join(","),...z].join(`
`),oe=new Blob([G],{type:"text/csv;charset=utf-8"}),ye=URL.createObjectURL(oe),Ae=document.createElement("a");Ae.href=ye,Ae.download=`订单列表_${new Date().toISOString().slice(0,10)}.csv`,Ae.click(),URL.revokeObjectURL(ye)}return r.jsxs("div",{className:"p-8 w-full",children:[L&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-500/20 border border-red-500/50 text-red-400 text-sm flex items-center justify-between",children:[r.jsx("span",{children:L}),r.jsx("button",{type:"button",onClick:()=>W(null),className:"hover:text-red-300",children:"×"})]}),r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"订单管理"}),r.jsxs("p",{className:"text-gray-400 mt-1",children:["共 ",t.length," 笔订单"]})]}),r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsxs(X,{variant:"outline",onClick:xe,disabled:E,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${E?"animate-spin":""}`}),"刷新"]}),r.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[r.jsx("span",{className:"text-gray-400",children:"总收入:"}),r.jsxs("span",{className:"text-[#38bdac] font-bold",children:["¥",o.toFixed(2)]}),r.jsx("span",{className:"text-gray-600",children:"|"}),r.jsx("span",{className:"text-gray-400",children:"今日:"}),r.jsxs("span",{className:"text-[#FFD700] font-bold",children:["¥",u.toFixed(2)]})]})]})]}),r.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[r.jsxs("div",{className:"relative flex-1 max-w-md",children:[r.jsx(ca,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500"}),r.jsx(ae,{type:"text",placeholder:"搜索订单号/用户/章节...",className:"pl-10 bg-[#0f2137] border-gray-700 text-white placeholder:text-gray-500",value:N,onChange:B=>w(B.target.value)})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(wj,{className:"w-4 h-4 text-gray-400"}),r.jsxs("select",{value:k,onChange:B=>C(B.target.value),className:"bg-[#0f2137] border border-gray-700 text-white rounded-lg px-3 py-2 text-sm",children:[r.jsx("option",{value:"all",children:"全部状态"}),r.jsx("option",{value:"completed",children:"已完成"}),r.jsx("option",{value:"pending",children:"待支付"}),r.jsx("option",{value:"created",children:"已创建"}),r.jsx("option",{value:"failed",children:"已失败"}),r.jsx("option",{value:"refunded",children:"已退款"})]})]}),r.jsxs(X,{variant:"outline",onClick:q,disabled:t.length===0,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gM,{className:"w-4 h-4 mr-2"}),"导出 CSV"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:E?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs("div",{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"订单号"}),r.jsx(we,{className:"text-gray-400",children:"用户"}),r.jsx(we,{className:"text-gray-400",children:"商品"}),r.jsx(we,{className:"text-gray-400",children:"金额"}),r.jsx(we,{className:"text-gray-400",children:"支付方式"}),r.jsx(we,{className:"text-gray-400",children:"状态"}),r.jsx(we,{className:"text-gray-400",children:"退款原因"}),r.jsx(we,{className:"text-gray-400",children:"分销佣金"}),r.jsx(we,{className:"text-gray-400",children:"下单时间"}),r.jsx(we,{className:"text-gray-400",children:"操作"})]})}),r.jsxs(rs,{children:[t.map(B=>{const z=J(B);return r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsxs(be,{className:"font-mono text-xs text-gray-400",children:[(B.orderSn||B.id||"").slice(0,12),"..."]}),r.jsx(be,{children:r.jsxs("div",{children:[r.jsxs("p",{className:"text-white text-sm flex items-center gap-2",children:[H(B),B.paymentMethod==="gift_pay"&&r.jsx(Je,{className:"bg-emerald-500/20 text-emerald-400 hover:bg-emerald-500/20 border-0 text-xs",children:"代付领取"}),B.payerUserId&&B.paymentMethod!=="gift_pay"&&r.jsx(Je,{className:"bg-amber-500/20 text-amber-400 hover:bg-amber-500/20 border-0 text-xs",children:"代付"})]}),r.jsx("p",{className:"text-gray-500 text-xs",children:O(B.userId)}),B.payerUserId&&B.payerNickname&&r.jsxs("p",{className:"text-amber-400/80 text-xs mt-0.5",children:[B.paymentMethod==="gift_pay"?"赠送人:":"代付人:",B.payerNickname]})]})}),r.jsx(be,{children:r.jsxs("div",{children:[r.jsxs("p",{className:"text-white text-sm flex items-center gap-2",children:[z.name,(B.productType||B.type)==="vip"&&r.jsx(Je,{className:"bg-amber-500/20 text-amber-400 hover:bg-amber-500/20 border-0 text-xs",children:"超级个体"})]}),r.jsx("p",{className:"text-gray-500 text-xs",children:z.type})]})}),r.jsxs(be,{className:"text-[#38bdac] font-bold",children:["¥",Number(B.amount||0).toFixed(2)]}),r.jsx(be,{className:"text-gray-300",children:B.paymentMethod==="wechat"?"微信支付":B.paymentMethod==="balance"?"余额支付":B.paymentMethod==="alipay"?"支付宝":B.paymentMethod||"微信支付"}),r.jsx(be,{children:B.status==="refunded"?r.jsx(Je,{className:"bg-gray-500/20 text-gray-400 hover:bg-gray-500/20 border-0",children:"已退款"}):B.status==="paid"||B.status==="completed"?r.jsx(Je,{className:"bg-green-500/20 text-green-400 hover:bg-green-500/20 border-0",children:"已完成"}):B.status==="pending"||B.status==="created"?r.jsx(Je,{className:"bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/20 border-0",children:"待支付"}):r.jsx(Je,{className:"bg-red-500/20 text-red-400 hover:bg-red-500/20 border-0",children:"已失败"})}),r.jsx(be,{className:"text-gray-400 text-sm max-w-[120px] truncate",title:B.refundReason,children:B.status==="refunded"&&B.refundReason?B.refundReason:"-"}),r.jsx(be,{className:"text-[#FFD700]",children:B.referrerEarnings?`¥${Number(B.referrerEarnings).toFixed(2)}`:"-"}),r.jsx(be,{className:"text-gray-400 text-sm",children:new Date(B.createdAt).toLocaleString("zh-CN")}),r.jsx(be,{children:(B.status==="paid"||B.status==="completed")&&B.paymentMethod!=="balance"&&r.jsxs(X,{variant:"outline",size:"sm",className:"border-orange-500/50 text-orange-400 hover:bg-orange-500/20",onClick:()=>{P(B),K("")},children:[r.jsx(hx,{className:"w-3 h-3 mr-1"}),"退款"]})})]},B.id)}),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:10,className:"text-center py-12 text-gray-500",children:"暂无订单数据"})})]})]}),r.jsx(Us,{page:f,totalPages:$,total:a,pageSize:g,onPageChange:m,onPageSizeChange:B=>{y(B),m(1)}})]})})}),r.jsx(Lt,{open:!!D,onOpenChange:B=>!B&&P(null),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:"订单退款"})}),D&&r.jsxs("div",{className:"space-y-4",children:[r.jsxs("p",{className:"text-gray-400 text-sm",children:["订单号:",D.orderSn||D.id]}),r.jsxs("p",{className:"text-gray-400 text-sm",children:["退款金额:¥",Number(D.amount||0).toFixed(2)]}),r.jsxs("div",{children:[r.jsx("label",{className:"text-sm text-gray-400 block mb-2",children:"退款原因(选填)"}),r.jsx("div",{className:"form-input",children:r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",placeholder:"如:用户申请退款",value:R,onChange:B=>K(B.target.value)})})]}),r.jsx("p",{className:"text-orange-400/80 text-xs",children:"退款将原路退回至用户微信,且无法撤销,请确认后再操作。"})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",className:"border-gray-600 text-gray-300",onClick:()=>P(null),disabled:re,children:"取消"}),r.jsx(X,{className:"bg-orange-500 hover:bg-orange-600 text-white",onClick:M,disabled:re,children:re?"退款中...":"确认退款"})]})]})})]})}const mc=b.forwardRef(({className:t,...e},n)=>r.jsx("textarea",{className:Dt("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:n,...e}));mc.displayName="Textarea";const ph=[{id:"register",label:"注册/登录",icon:"👤",color:"bg-blue-500/20 border-blue-500/40 text-blue-400",desc:"微信授权登录或手机号注册"},{id:"browse",label:"浏览章节",icon:"📖",color:"bg-purple-500/20 border-purple-500/40 text-purple-400",desc:"点击免费/付费章节预览"},{id:"bind_phone",label:"绑定手机",icon:"📱",color:"bg-cyan-500/20 border-cyan-500/40 text-cyan-400",desc:"触发付费章节后绑定手机"},{id:"first_pay",label:"首次付款",icon:"💳",color:"bg-green-500/20 border-green-500/40 text-green-400",desc:"购买单章或全书"},{id:"fill_profile",label:"完善资料",icon:"✍️",color:"bg-yellow-500/20 border-yellow-500/40 text-yellow-400",desc:"填写头像、MBTI、行业等"},{id:"match",label:"派对房匹配",icon:"🤝",color:"bg-orange-500/20 border-orange-500/40 text-orange-400",desc:"参与 Soul 派对房"},{id:"vip",label:"升级 VIP",icon:"👑",color:"bg-amber-500/20 border-amber-500/40 text-amber-400",desc:"付款 ¥1980 购买全书"},{id:"distribution",label:"开启分销",icon:"🔗",color:"bg-[#38bdac]/20 border-[#38bdac]/40 text-[#38bdac]",desc:"生成推广码并推荐好友"}];function mR(){var Jr,Yr,dl,Na,ti;const[t,e]=mj(),n=t.get("pool"),s=t.get("tab")||"users",[a,i]=b.useState([]),[o,c]=b.useState(0),[u,h]=b.useState(1),[f,m]=b.useState(10),[g,y]=b.useState(""),N=O0(g,300),w=n==="vip"?"vip":n==="complete"?"complete":"all",[v,k]=b.useState(w),[C,E]=b.useState(!0),[I,L]=b.useState(!1),[W,D]=b.useState(null),[P,R]=b.useState(!1),[K,re]=b.useState("desc");b.useEffect(()=>{n==="vip"?k("vip"):n==="complete"?k("complete"):n==="all"&&k("all")},[n]);const[ue,xe]=b.useState(!1),[H,O]=b.useState(null),[J,$]=b.useState(!1),[M,q]=b.useState(!1),[B,z]=b.useState({referrals:[],stats:{}}),[G,oe]=b.useState(!1),[ye,Ae]=b.useState(null),[ke,ee]=b.useState(!1),[Y,he]=b.useState(null),[te,ce]=b.useState({phone:"",nickname:"",password:"",isAdmin:!1,hasFullBook:!1}),[pe,Fe]=b.useState([]),[rt,vt]=b.useState(!1),[mt,Ut]=b.useState(!1),[In,sn]=b.useState(null),[Tt,Mt]=b.useState({title:"",description:"",trigger:"",sort:0,enabled:!0}),[Kt,Ns]=b.useState([]),[as,is]=b.useState(!1),[Ls,ws]=b.useState(null),[rn,qs]=b.useState(null),[un,Un]=b.useState({}),[js,Gs]=b.useState(!1),[hn,ks]=b.useState([]),[U,_e]=b.useState(0),[it,$t]=b.useState(1),[me]=b.useState(20),[fe,at]=b.useState(!1),yt=b.useCallback(async()=>{at(!0);try{const F=await Oe(`/api/db/ckb-leads?mode=contact&page=${it}&pageSize=${me}`);F!=null&&F.success&&(ks(F.records||[]),_e(F.total??0))}catch{ks([]),_e(0)}finally{at(!1)}},[it,me]);b.useEffect(()=>{t.get("tab")==="leads"&&yt()},[t.get("tab"),it,yt]);const[fn,Kn]=b.useState(null),Pn=b.useCallback(async()=>{try{const F=await Oe("/api/admin/users/online-stats");F!=null&&F.success&&typeof F.onlineCount=="number"?Kn(F.onlineCount):Kn(0)}catch{Kn(null)}},[]);b.useEffect(()=>{Pn();const F=setInterval(Pn,1e4);return()=>clearInterval(F)},[Pn]);async function qn(F=!1){var $e;E(!0),F&&L(!0),D(null);try{if(P){const Ke=new URLSearchParams({search:N,limit:String(f*5)}),dt=await Oe(`/api/db/users/rfm?${Ke}`);if(dt!=null&&dt.success){let pn=dt.users||[];K==="asc"&&(pn=[...pn].reverse());const ht=(u-1)*f;i(pn.slice(ht,ht+f)),c((($e=dt.users)==null?void 0:$e.length)??0),pn.length===0&&(R(!1),D("暂无订单数据RFM 排序需要用户有购买记录后才能生效"))}else R(!1),D((dt==null?void 0:dt.error)||"RFM 加载失败,已切回普通模式")}else{const Ke=new URLSearchParams({page:String(u),pageSize:String(f),search:N,...v==="vip"&&{vip:"true"},...v==="complete"&&{pool:"complete"}}),dt=await Oe(`/api/db/users?${Ke}`);dt!=null&&dt.success?(i(dt.users||[]),c(dt.total??0)):D((dt==null?void 0:dt.error)||"加载失败")}}catch(Ke){console.error("Load users error:",Ke),D("网络错误")}finally{E(!1),F&&L(!1)}}b.useEffect(()=>{h(1)},[N,v,P]),b.useEffect(()=>{qn()},[u,f,N,v,P,K]);const Ss=Math.ceil(o/f)||1,Ur=()=>{P?K==="desc"?re("asc"):(R(!1),re("desc")):(R(!0),re("desc"))},xa=F=>({S:"bg-amber-500/20 text-amber-400",A:"bg-green-500/20 text-green-400",B:"bg-blue-500/20 text-blue-400",C:"bg-gray-500/20 text-gray-400",D:"bg-red-500/20 text-red-400"})[F||""]||"bg-gray-500/20 text-gray-400";async function Xa(F){var $e;if(confirm("确定要删除这个用户吗?"))try{const Ke=await oa(`/api/db/users?id=${encodeURIComponent(F)}`);Ke!=null&&Ke.success?(se.success("已删除"),qn()):se.error("删除失败: "+((Ke==null?void 0:Ke.error)||"未知错误"))}catch(Ke){const dt=Ke,pn=(($e=dt==null?void 0:dt.data)==null?void 0:$e.error)||(dt==null?void 0:dt.message)||"网络错误";se.error("删除失败: "+pn)}}const Nr=F=>{O(F),ce({phone:F.phone||"",nickname:F.nickname||"",password:"",isAdmin:!!(F.isAdmin??!1),hasFullBook:!!(F.hasFullBook??!1)}),xe(!0)},no=()=>{O(null),ce({phone:"",nickname:"",password:"",isAdmin:!1,hasFullBook:!1}),xe(!0)};async function wr(){if(!te.phone||!te.nickname){se.error("请填写手机号和昵称");return}$(!0);try{if(H){const F=await Pt("/api/db/users",{id:H.id,phone:te.phone||void 0,nickname:te.nickname,isAdmin:te.isAdmin,hasFullBook:te.hasFullBook,...te.password&&{password:te.password}});if(!(F!=null&&F.success)){se.error("更新失败: "+((F==null?void 0:F.error)||""));return}}else{const F=await jt("/api/db/users",{phone:te.phone,nickname:te.nickname,password:te.password,isAdmin:te.isAdmin});if(!(F!=null&&F.success)){se.error("创建失败: "+((F==null?void 0:F.error)||""));return}}xe(!1),qn()}catch{se.error("保存失败")}finally{$(!1)}}async function ya(F){Ae(F),q(!0),oe(!0);try{const $e=await Oe(`/api/db/users/referrals?userId=${encodeURIComponent(F.id)}`);$e!=null&&$e.success?z({referrals:$e.referrals||[],stats:$e.stats||{}}):z({referrals:[],stats:{}})}catch{z({referrals:[],stats:{}})}finally{oe(!1)}}const Js=b.useCallback(async()=>{vt(!0);try{const F=await Oe("/api/db/user-rules");F!=null&&F.success&&Fe(F.rules||[])}catch{}finally{vt(!1)}},[]);async function so(){if(!Tt.title){se.error("请填写规则标题");return}$(!0);try{if(In){const F=await Pt("/api/db/user-rules",{id:In.id,...Tt});if(!(F!=null&&F.success)){se.error("更新失败: "+((F==null?void 0:F.error)||""));return}}else{const F=await jt("/api/db/user-rules",Tt);if(!(F!=null&&F.success)){se.error("创建失败: "+((F==null?void 0:F.error)||""));return}}Ut(!1),Js()}catch{se.error("保存失败")}finally{$(!1)}}async function Nc(F){if(confirm("确定删除?"))try{const $e=await oa(`/api/db/user-rules?id=${F}`);$e!=null&&$e.success&&Js()}catch{}}async function wc(F){try{await Pt("/api/db/user-rules",{id:F.id,enabled:!F.enabled}),Js()}catch{}}const Ys=b.useCallback(async()=>{is(!0);try{const F=await Oe("/api/db/vip-members?limit=500");if(F!=null&&F.success&&F.data){const $e=[...F.data].map((Ke,dt)=>({...Ke,vipSort:typeof Ke.vipSort=="number"?Ke.vipSort:dt+1}));$e.sort((Ke,dt)=>(Ke.vipSort??999999)-(dt.vipSort??999999)),Ns($e)}else F&&F.error&&se.error(F.error)}catch{se.error("加载超级个体列表失败")}finally{is(!1)}},[]),[jr,ba]=b.useState(!1),[_s,va]=b.useState(null),[Kr,Ct]=b.useState(""),[ls,Za]=b.useState(!1),il=["创业者","资源整合者","技术达人","投资人","产品经理","流量操盘手"],jc=F=>{va(F),Ct(F.vipRole||""),ba(!0)},Bt=async F=>{const $e=F.trim();if(_s){if(!$e){se.error("请选择或输入标签");return}Za(!0);try{const Ke=await Pt("/api/db/users",{id:_s.id,vipRole:$e});if(!(Ke!=null&&Ke.success)){se.error((Ke==null?void 0:Ke.error)||"更新超级个体标签失败");return}se.success("已更新超级个体标签"),ba(!1),va(null),await Ys()}catch{se.error("更新超级个体标签失败")}finally{Za(!1)}}},[ol,Qs]=b.useState(!1),[Cs,Xs]=b.useState(null),[qr,Gr]=b.useState(""),[kr,cs]=b.useState(!1),kc=F=>{Xs(F),Gr(F.vipSort!=null?String(F.vipSort):""),Qs(!0)},Es=async()=>{if(!Cs)return;const F=Number(qr);if(!Number.isFinite(F)){se.error("请输入有效的数字序号");return}cs(!0);try{const $e=await Pt("/api/db/users",{id:Cs.id,vipSort:F});if(!($e!=null&&$e.success)){se.error(($e==null?void 0:$e.error)||"更新排序序号失败");return}se.success("已更新排序序号"),Qs(!1),Xs(null),await Ys()}catch{se.error("更新排序序号失败")}finally{cs(!1)}},Sc=(F,$e)=>{F.dataTransfer.effectAllowed="move",F.dataTransfer.setData("text/plain",$e),ws($e)},ll=(F,$e)=>{F.preventDefault(),rn!==$e&&qs($e)},cl=()=>{ws(null),qs(null)},ei=async(F,$e)=>{F.preventDefault();const Ke=F.dataTransfer.getData("text/plain")||Ls;if(ws(null),qs(null),!Ke||Ke===$e)return;const dt=Kt.find(Vt=>Vt.id===Ke),pn=Kt.find(Vt=>Vt.id===$e);if(!dt||!pn)return;const ht=dt.vipSort??Kt.findIndex(Vt=>Vt.id===Ke)+1,Nn=pn.vipSort??Kt.findIndex(Vt=>Vt.id===$e)+1;Ns(Vt=>{const Gn=[...Vt],Cr=Gn.findIndex(Ts=>Ts.id===Ke),Qr=Gn.findIndex(Ts=>Ts.id===$e);if(Cr===-1||Qr===-1)return Vt;const Er=[...Gn],[ro,wa]=[Er[Cr],Er[Qr]];return Er[Cr]={...wa,vipSort:ht},Er[Qr]={...ro,vipSort:Nn},Er});try{const[Vt,Gn]=await Promise.all([Pt("/api/db/users",{id:Ke,vipSort:Nn}),Pt("/api/db/users",{id:$e,vipSort:ht})]);if(!(Vt!=null&&Vt.success)||!(Gn!=null&&Gn.success)){se.error((Vt==null?void 0:Vt.error)||(Gn==null?void 0:Gn.error)||"更新排序失败"),await Ys();return}se.success("已更新排序"),await Ys()}catch{se.error("更新排序失败"),await Ys()}},Sr=b.useCallback(async()=>{Gs(!0);try{const F=await Oe("/api/db/users/journey-stats");F!=null&&F.success&&F.stats&&Un(F.stats)}catch{}finally{Gs(!1)}},[]);return r.jsxs("div",{className:"p-8 w-full",children:[W&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-500/20 border border-red-500/50 text-red-400 text-sm flex items-center justify-between",children:[r.jsx("span",{children:W}),r.jsx("button",{type:"button",onClick:()=>D(null),children:"×"})]}),r.jsx("div",{className:"flex justify-between items-center mb-6",children:r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"用户管理"}),r.jsxs("p",{className:"text-gray-400 mt-1 text-sm",children:["共 ",o," 位注册用户",fn!==null&&r.jsxs("span",{className:"text-[#38bdac] ml-1",children:["· 在线 ",fn," 人"]}),P&&" · RFM 排序中"]})]})}),r.jsxs(Yd,{value:s,onValueChange:F=>{const $e=new URLSearchParams(t);F==="users"?$e.delete("tab"):$e.set("tab",F),e($e)},className:"w-full",children:[r.jsxs(pc,{className:"bg-[#0a1628] border border-gray-700/50 p-1 mb-6 flex-wrap h-auto gap-1",children:[r.jsxs(tn,{value:"users",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] flex items-center gap-1.5",children:[r.jsx(zn,{className:"w-4 h-4"})," 用户列表"]}),r.jsxs(tn,{value:"leads",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] flex items-center gap-1.5",onClick:()=>yt(),children:[r.jsx(xd,{className:"w-4 h-4"})," 获客列表"]}),r.jsxs(tn,{value:"journey",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] flex items-center gap-1.5",onClick:Sr,children:[r.jsx(Gl,{className:"w-4 h-4"})," 用户旅程总览"]}),r.jsxs(tn,{value:"rules",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] flex items-center gap-1.5",onClick:Js,children:[r.jsx(_o,{className:"w-4 h-4"})," 规则配置"]}),r.jsxs(tn,{value:"vip-roles",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] flex items-center gap-1.5",onClick:Ys,children:[r.jsx(Yl,{className:"w-4 h-4"})," 超级个体列表"]})]}),r.jsxs(nn,{value:"users",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-4 justify-end flex-wrap",children:[r.jsxs(X,{variant:"outline",onClick:()=>qn(!0),disabled:I,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${I?"animate-spin":""}`})," 刷新"]}),r.jsxs("select",{value:v,onChange:F=>{const $e=F.target.value;k($e),h(1),n&&(t.delete("pool"),e(t))},className:"bg-[#0f2137] border border-gray-700 text-white rounded-lg px-3 py-2 text-sm",disabled:P,children:[r.jsx("option",{value:"all",children:"全部用户"}),r.jsx("option",{value:"vip",children:"VIP会员超级个体"}),r.jsx("option",{value:"complete",children:"完善资料用户"})]}),r.jsxs("div",{className:"relative",children:[r.jsx(ca,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500"}),r.jsx(ae,{type:"text",placeholder:"搜索用户...",className:"pl-10 bg-[#0f2137] border-gray-700 text-white placeholder:text-gray-500 w-56",value:g,onChange:F=>y(F.target.value)})]}),r.jsxs(X,{onClick:no,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xd,{className:"w-4 h-4 mr-2"})," 添加用户"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:C?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs("div",{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"用户信息"}),r.jsx(we,{className:"text-gray-400",children:"绑定信息"}),r.jsx(we,{className:"text-gray-400",children:"购买状态"}),r.jsx(we,{className:"text-gray-400",children:"分销收益"}),r.jsxs(we,{className:"text-gray-400 cursor-pointer select-none",onClick:Ur,children:[r.jsxs("div",{className:"flex items-center gap-1 group",children:[r.jsx(gd,{className:"w-3.5 h-3.5"}),r.jsx("span",{children:"RFM分值"}),P?K==="desc"?r.jsx(x0,{className:"w-3.5 h-3.5 text-[#38bdac]"}):r.jsx(xj,{className:"w-3.5 h-3.5 text-[#38bdac]"}):r.jsx(ng,{className:"w-3.5 h-3.5 text-gray-600 group-hover:text-gray-400"})]}),P&&r.jsx("div",{className:"text-[10px] text-[#38bdac] font-normal mt-0.5",children:"点击切换方向/关闭"})]}),r.jsx(we,{className:"text-gray-400",children:"注册时间"}),r.jsx(we,{className:"text-right text-gray-400",children:"操作"})]})}),r.jsxs(rs,{children:[a.map(F=>{var $e,Ke,dt;return r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"w-10 h-10 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm font-medium text-[#38bdac]",children:F.avatar?r.jsx("img",{src:F.avatar,className:"w-full h-full rounded-full object-cover",alt:""}):(($e=F.nickname)==null?void 0:$e.charAt(0))||"?"}),r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("button",{type:"button",onClick:()=>{he(F.id),ee(!0)},className:"font-medium text-[#38bdac] hover:text-[#2da396] hover:underline text-left",children:F.nickname}),F.isAdmin&&r.jsx(Je,{className:"bg-purple-500/20 text-purple-400 hover:bg-purple-500/20 border-0 text-xs",children:"管理员"}),F.openId&&!((Ke=F.id)!=null&&Ke.startsWith("user_"))&&r.jsx(Je,{className:"bg-green-500/20 text-green-400 hover:bg-green-500/20 border-0 text-xs",children:"微信"})]}),r.jsx("p",{className:"text-xs text-gray-500 font-mono",children:F.openId?F.openId.slice(0,12)+"...":(dt=F.id)==null?void 0:dt.slice(0,12)})]})]})}),r.jsx(be,{children:r.jsxs("div",{className:"space-y-1",children:[F.phone&&r.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[r.jsx("span",{className:"text-gray-500",children:"📱"}),r.jsx("span",{className:"text-gray-300",children:F.phone})]}),F.wechatId&&r.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[r.jsx("span",{className:"text-gray-500",children:"💬"}),r.jsx("span",{className:"text-gray-300",children:F.wechatId})]}),F.openId&&r.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[r.jsx("span",{className:"text-gray-500",children:"🔗"}),r.jsxs("span",{className:"text-gray-500 truncate max-w-[100px]",title:F.openId,children:[F.openId.slice(0,12),"..."]})]}),!F.phone&&!F.wechatId&&!F.openId&&r.jsx("span",{className:"text-gray-600 text-xs",children:"未绑定"})]})}),r.jsx(be,{children:F.hasFullBook?r.jsx(Je,{className:"bg-amber-500/20 text-amber-400 hover:bg-amber-500/20 border-0",children:"VIP"}):r.jsx(Je,{variant:"outline",className:"text-gray-500 border-gray-600",children:"未购买"})}),r.jsx(be,{children:r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"text-white font-medium",children:["¥",parseFloat(String(F.earnings||0)).toFixed(2)]}),parseFloat(String(F.pendingEarnings||0))>0&&r.jsxs("div",{className:"text-xs text-yellow-400",children:["待提现: ¥",parseFloat(String(F.pendingEarnings||0)).toFixed(2)]}),r.jsxs("div",{className:"text-xs text-[#38bdac] cursor-pointer hover:underline flex items-center gap-1",onClick:()=>ya(F),role:"button",tabIndex:0,onKeyDown:pn=>pn.key==="Enter"&&ya(F),children:[r.jsx(zn,{className:"w-3 h-3"})," 绑定",F.referralCount||0,"人"]})]})}),r.jsx(be,{children:F.rfmScore!==void 0?r.jsx("div",{className:"flex flex-col gap-1",children:r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"text-white font-bold text-base",children:F.rfmScore}),r.jsx(Je,{className:`border-0 text-xs ${xa(F.rfmLevel)}`,children:F.rfmLevel})]})}):r.jsxs("span",{className:"text-gray-600 text-sm",children:["— ",r.jsx("span",{className:"text-xs text-gray-700",children:"点列头排序"})]})}),r.jsx(be,{className:"text-gray-400",children:F.createdAt?new Date(F.createdAt).toLocaleDateString():"-"}),r.jsx(be,{className:"text-right",children:r.jsxs("div",{className:"flex items-center justify-end gap-1",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>{he(F.id),ee(!0)},className:"text-gray-400 hover:text-blue-400 hover:bg-blue-400/10",title:"用户详情",children:r.jsx(ix,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>Nr(F),className:"text-gray-400 hover:text-[#38bdac] hover:bg-[#38bdac]/10",title:"编辑用户",children:r.jsx(Jt,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"text-red-400 hover:text-red-300 hover:bg-red-500/10",onClick:()=>Xa(F.id),title:"删除",children:r.jsx(Xn,{className:"w-4 h-4"})})]})})]},F.id)}),a.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:7,className:"text-center py-12 text-gray-500",children:"暂无用户数据"})})]})]}),r.jsx(Us,{page:u,totalPages:Ss,total:o,pageSize:f,onPageChange:h,onPageSizeChange:F=>{m(F),h(1)}})]})})})]}),r.jsxs(nn,{value:"leads",children:[r.jsx("div",{className:"flex items-center justify-end mb-4",children:r.jsxs(X,{variant:"outline",onClick:yt,disabled:fe,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${fe?"animate-spin":""}`})," 刷新"]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:fe?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs("div",{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"昵称"}),r.jsx(we,{className:"text-gray-400",children:"手机号"}),r.jsx(we,{className:"text-gray-400",children:"微信号"}),r.jsx(we,{className:"text-gray-400",children:"对应 @人"}),r.jsx(we,{className:"text-gray-400",children:"获客计划"}),r.jsx(we,{className:"text-gray-400",children:"来源"}),r.jsx(we,{className:"text-gray-400",children:"时间"})]})}),r.jsxs(rs,{children:[hn.map(F=>r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{className:"text-gray-300",children:F.userNickname||F.name||"-"}),r.jsx(be,{className:"text-gray-300",children:F.phone||"-"}),r.jsx(be,{className:"text-gray-300",children:F.wechatId||"-"}),r.jsx(be,{className:"text-[#38bdac]",children:F.personName||"-"}),r.jsx(be,{className:"text-gray-400",children:F.ckbPlanId?`#${F.ckbPlanId}`:"-"}),r.jsx(be,{className:"text-gray-400",children:F.source||"-"}),r.jsx(be,{className:"text-gray-400",children:F.createdAt?new Date(F.createdAt).toLocaleString():"-"})]},F.id)),hn.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:7,className:"text-center py-12 text-gray-500",children:"暂无获客数据"})})]})]}),r.jsx(Us,{page:it,totalPages:Math.ceil(U/me)||1,total:U,pageSize:me,onPageChange:$t,onPageSizeChange:()=>{}})]})})})]}),r.jsxs(nn,{value:"journey",children:[r.jsxs("div",{className:"flex items-center justify-between mb-5",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"用户从注册到 VIP 的完整行动路径,点击各阶段查看用户动态"}),r.jsxs(X,{variant:"outline",onClick:Sr,disabled:js,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${js?"animate-spin":""}`})," 刷新数据"]})]}),r.jsxs("div",{className:"relative mb-8",children:[r.jsx("div",{className:"absolute top-16 left-0 right-0 h-0.5 bg-gradient-to-r from-blue-500/20 via-[#38bdac]/30 to-amber-500/20 mx-20"}),r.jsx("div",{className:"grid grid-cols-4 gap-4 lg:grid-cols-8",children:ph.map((F,$e)=>r.jsxs("div",{className:"relative flex flex-col items-center",children:[r.jsxs("div",{className:`relative w-full p-3 rounded-xl border ${F.color} text-center cursor-default`,children:[r.jsx("div",{className:"text-2xl mb-1",children:F.icon}),r.jsx("div",{className:`text-xs font-medium ${F.color.split(" ").find(Ke=>Ke.startsWith("text-"))}`,children:F.label}),un[F.id]!==void 0&&r.jsxs("div",{className:"mt-1.5 text-xs text-gray-400",children:[r.jsx("span",{className:"font-bold text-white",children:un[F.id]})," 人"]}),r.jsx("div",{className:"absolute -top-2.5 -left-2.5 w-5 h-5 rounded-full bg-[#0a1628] border border-gray-700 flex items-center justify-center text-[10px] text-gray-500",children:$e+1})]}),$e<ph.length-1&&r.jsx("div",{className:"hidden lg:block absolute right-0 top-1/2 -translate-y-1/2 translate-x-1/2 z-10",children:r.jsx("svg",{width:"20",height:"12",viewBox:"0 0 20 12",fill:"none",children:r.jsx("path",{d:"M0 6H16M16 6L11 1M16 6L11 11",stroke:"#374151",strokeWidth:"1.5",strokeLinecap:"round"})})}),r.jsx("p",{className:"text-[10px] text-gray-600 text-center mt-2 leading-tight",children:F.desc})]},F.id))})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"bg-[#0f2137] border border-gray-700/50 rounded-lg p-4",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(Gl,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx("span",{className:"text-white font-medium",children:"旅程关键节点"})]}),r.jsx("div",{className:"space-y-2 text-sm",children:[{step:"① 注册",action:"微信 OAuth 或手机号注册",next:"引导填写头像"},{step:"② 浏览",action:"点击章节/阅读免费内容",next:"触发绑定手机"},{step:"③ 首付",action:"购买单章或全书",next:"推送分销功能"},{step:"④ VIP",action:"¥1980 购买全书",next:"进入 VIP 私域群"},{step:"⑤ 分销",action:"推广好友购买",next:"提现分销收益"}].map(F=>r.jsxs("div",{className:"flex items-start gap-3 p-2 bg-[#0a1628] rounded",children:[r.jsx("span",{className:"text-[#38bdac] font-mono text-xs shrink-0 mt-0.5",children:F.step}),r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-300",children:F.action}),r.jsxs("p",{className:"text-gray-600 text-xs",children:["→ ",F.next]})]})]},F.step))})]}),r.jsxs("div",{className:"bg-[#0f2137] border border-gray-700/50 rounded-lg p-4",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx(ir,{className:"w-4 h-4 text-purple-400"}),r.jsx("span",{className:"text-white font-medium",children:"行为锚点统计"}),r.jsx("span",{className:"text-gray-500 text-xs ml-auto",children:"实时更新"})]}),js?r.jsx("div",{className:"flex items-center justify-center py-8",children:r.jsx(Be,{className:"w-5 h-5 text-[#38bdac] animate-spin"})}):Object.keys(un).length>0?r.jsx("div",{className:"space-y-2",children:ph.map(F=>{const $e=un[F.id]||0,Ke=Math.max(...ph.map(pn=>un[pn.id]||0),1),dt=Math.round($e/Ke*100);return r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("span",{className:"text-gray-500 text-xs w-20 shrink-0",children:[F.icon," ",F.label]}),r.jsx("div",{className:"flex-1 h-2 bg-[#0a1628] rounded-full overflow-hidden",children:r.jsx("div",{className:"h-full bg-[#38bdac]/60 rounded-full transition-all",style:{width:`${dt}%`}})}),r.jsx("span",{className:"text-gray-400 text-xs w-10 text-right",children:$e})]},F.id)})}):r.jsx("div",{className:"text-center py-8",children:r.jsx("p",{className:"text-gray-500 text-sm",children:"点击「刷新数据」加载统计"})})]})]})]}),r.jsxs(nn,{value:"rules",children:[r.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"用户旅程引导规则,定义各行为节点的触发条件与引导内容"}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs(X,{variant:"outline",onClick:Js,disabled:rt,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${rt?"animate-spin":""}`})," 刷新"]}),r.jsxs(X,{onClick:()=>{sn(null),Mt({title:"",description:"",trigger:"",sort:0,enabled:!0}),Ut(!0)},className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"})," 添加规则"]})]})]}),rt?r.jsx("div",{className:"flex items-center justify-center py-12",children:r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"})}):pe.length===0?r.jsxs("div",{className:"text-center py-16 bg-[#0f2137] rounded-lg border border-gray-700/50",children:[r.jsx(ir,{className:"w-12 h-12 text-[#38bdac]/30 mx-auto mb-4"}),r.jsx("p",{className:"text-gray-400 mb-4",children:"暂无规则重启服务将自动写入10条默认规则"}),r.jsxs(X,{onClick:Js,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(Be,{className:"w-4 h-4 mr-2"})," 重新加载"]})]}):r.jsx("div",{className:"space-y-2",children:pe.map(F=>r.jsx("div",{className:`p-4 rounded-lg border transition-all ${F.enabled?"bg-[#0f2137] border-gray-700/50":"bg-[#0a1628]/50 border-gray-700/30 opacity-55"}`,children:r.jsxs("div",{className:"flex items-start justify-between",children:[r.jsxs("div",{className:"flex-1",children:[r.jsxs("div",{className:"flex items-center gap-2 flex-wrap mb-1",children:[r.jsx(Jt,{className:"w-4 h-4 text-[#38bdac] shrink-0"}),r.jsx("span",{className:"text-white font-medium",children:F.title}),F.trigger&&r.jsxs(Je,{className:"bg-[#38bdac]/10 text-[#38bdac] border border-[#38bdac]/30 text-xs",children:["触发:",F.trigger]}),r.jsx(Je,{className:`text-xs border-0 ${F.enabled?"bg-green-500/20 text-green-400":"bg-gray-500/20 text-gray-400"}`,children:F.enabled?"启用":"禁用"})]}),F.description&&r.jsx("p",{className:"text-gray-400 text-sm ml-6",children:F.description})]}),r.jsxs("div",{className:"flex items-center gap-2 ml-4 shrink-0",children:[r.jsx(Et,{checked:F.enabled,onCheckedChange:()=>wc(F)}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>{sn(F),Mt({title:F.title,description:F.description,trigger:F.trigger,sort:F.sort,enabled:F.enabled}),Ut(!0)},className:"text-gray-400 hover:text-[#38bdac] hover:bg-[#38bdac]/10",children:r.jsx(Jt,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>Nc(F.id),className:"text-red-400 hover:text-red-300 hover:bg-red-500/10",children:r.jsx(Xn,{className:"w-4 h-4"})})]})]})},F.id))})]}),r.jsxs(nn,{value:"vip-roles",children:[r.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"展示当前所有有效的超级个体VIP 用户),用于检查会员信息与排序值。"}),r.jsx("p",{className:"text-xs text-[#38bdac]",children:"提示:按住任意一行即可拖拽排序,释放后将同步更新小程序展示顺序。"})]}),r.jsx("div",{className:"flex items-center gap-2",children:r.jsxs(X,{variant:"outline",onClick:Ys,disabled:as,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${as?"animate-spin":""}`})," ","刷新"]})})]}),as?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):Kt.length===0?r.jsxs("div",{className:"text-center py-16 bg-[#0f2137] rounded-lg border border-gray-700/50",children:[r.jsx(Yl,{className:"w-12 h-12 text-amber-400/30 mx-auto mb-4"}),r.jsx("p",{className:"text-gray-400 mb-4",children:"当前没有有效的超级个体用户。"})]}):r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400 w-16",children:"序号"}),r.jsx(we,{className:"text-gray-400",children:"成员"}),r.jsx(we,{className:"text-gray-400 min-w-48",children:"超级个体标签"}),r.jsx(we,{className:"text-gray-400 w-24",children:"排序值"}),r.jsx(we,{className:"text-gray-400 w-40 text-right",children:"操作"})]})}),r.jsx(rs,{children:Kt.map((F,$e)=>{var pn;const Ke=Ls===F.id,dt=rn===F.id;return r.jsxs(ut,{draggable:!0,onDragStart:ht=>Sc(ht,F.id),onDragOver:ht=>ll(ht,F.id),onDrop:ht=>ei(ht,F.id),onDragEnd:cl,className:`border-gray-700/50 cursor-grab active:cursor-grabbing select-none ${Ke?"opacity-60":""} ${dt?"bg-[#38bdac]/10":""}`,children:[r.jsx(be,{className:"text-gray-300",children:$e+1}),r.jsx(be,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[F.avatar?r.jsx("img",{src:F.avatar,className:"w-8 h-8 rounded-full object-cover border border-amber-400/60"}):r.jsx("div",{className:"w-8 h-8 rounded-full bg-amber-500/20 border border-amber-400/60 flex items-center justify-center text-amber-300 text-sm",children:((pn=F.name)==null?void 0:pn[0])||"创"}),r.jsx("div",{className:"min-w-0",children:r.jsx("div",{className:"text-white text-sm truncate",children:F.name})})]})}),r.jsx(be,{className:"text-gray-300 whitespace-nowrap",children:F.vipRole||r.jsx("span",{className:"text-gray-500",children:"(未设置超级个体标签)"})}),r.jsx(be,{className:"text-gray-300",children:F.vipSort??$e+1}),r.jsx(be,{className:"text-right text-xs text-gray-300",children:r.jsxs("div",{className:"inline-flex items-center gap-1.5",children:[r.jsx(X,{variant:"ghost",size:"sm",className:"h-7 w-7 px-0 text-amber-300 hover:text-amber-200",onClick:()=>jc(F),title:"设置超级个体标签",children:r.jsx(md,{className:"w-3.5 h-3.5"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"h-7 w-7 px-0 text-[#38bdac] hover:text-[#5fe0cd]",onClick:()=>{he(F.id),ee(!0)},title:"编辑资料",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"h-7 w-7 px-0 text-sky-300 hover:text-sky-200",onClick:()=>kc(F),title:"设置排序序号",children:r.jsx(ng,{className:"w-3.5 h-3.5"})})]})})]},F.id)})})]})})})]})]}),r.jsx(Lt,{open:ol,onOpenChange:F=>{Qs(F),F||Xs(null)},children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-sm",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(ng,{className:"w-5 h-5 text-[#38bdac]"}),"设置排序 — ",Cs==null?void 0:Cs.name]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"排序序号(数字越小越靠前)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如1",value:qr,onChange:F=>Gr(F.target.value)})]}),r.jsxs(on,{children:[r.jsxs(X,{variant:"outline",onClick:()=>Qs(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsxs(X,{onClick:Es,disabled:kr,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),kr?"保存中...":"保存"]})]})]})}),r.jsx(Lt,{open:jr,onOpenChange:F=>{ba(F),F||va(null)},children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(Yl,{className:"w-5 h-5 text-amber-400"}),"设置超级个体标签 — ",_s==null?void 0:_s.name]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"选择或输入标签"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:il.map(F=>r.jsx(X,{variant:Kr===F?"default":"outline",size:"sm",className:Kr===F?"bg-[#38bdac] hover:bg-[#2da396] text-white":"border-gray-600 text-gray-300 hover:bg-gray-700/50",onClick:()=>Ct(F),children:F},F))}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"或手动输入"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如:创业者、资源整合者等",value:Kr,onChange:F=>Ct(F.target.value)})]})]}),r.jsxs(on,{children:[r.jsxs(X,{variant:"outline",onClick:()=>ba(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsxs(X,{onClick:()=>Bt(Kr),disabled:ls,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),ls?"保存中...":"保存"]})]})]})}),r.jsx(Lt,{open:ue,onOpenChange:xe,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-lg",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[H?r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}):r.jsx(xd,{className:"w-5 h-5 text-[#38bdac]"}),H?"编辑用户":"添加用户"]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"手机号"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"请输入手机号",value:te.phone,onChange:F=>ce({...te,phone:F.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"昵称"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"请输入昵称",value:te.nickname,onChange:F=>ce({...te,nickname:F.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:H?"新密码 (留空则不修改)":"密码"}),r.jsx(ae,{type:"password",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:H?"留空则不修改":"请输入密码",value:te.password,onChange:F=>ce({...te,password:F.target.value})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Z,{className:"text-gray-300",children:"管理员权限"}),r.jsx(Et,{checked:te.isAdmin,onCheckedChange:F=>ce({...te,isAdmin:F})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Z,{className:"text-gray-300",children:"已购全书"}),r.jsx(Et,{checked:te.hasFullBook,onCheckedChange:F=>ce({...te,hasFullBook:F})})]})]}),r.jsxs(on,{children:[r.jsxs(X,{variant:"outline",onClick:()=>xe(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsxs(X,{onClick:wr,disabled:J,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),J?"保存中...":"保存"]})]})]})}),r.jsx(Lt,{open:mt,onOpenChange:Ut,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-lg",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}),In?"编辑规则":"添加规则"]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"规则标题 *"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"例匹配后填写头像、付款1980需填写信息",value:Tt.title,onChange:F=>Mt({...Tt,title:F.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"规则描述"}),r.jsx(mc,{className:"bg-[#0a1628] border-gray-700 text-white min-h-[80px] resize-none",placeholder:"详细说明规则内容...",value:Tt.description,onChange:F=>Mt({...Tt,description:F.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"触发条件"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"例:完成匹配、付款后、注册时",value:Tt.trigger,onChange:F=>Mt({...Tt,trigger:F.target.value})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("div",{children:r.jsx(Z,{className:"text-gray-300",children:"启用状态"})}),r.jsx(Et,{checked:Tt.enabled,onCheckedChange:F=>Mt({...Tt,enabled:F})})]})]}),r.jsxs(on,{children:[r.jsxs(X,{variant:"outline",onClick:()=>Ut(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsxs(X,{onClick:so,disabled:J,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),J?"保存中...":"保存"]})]})]})}),r.jsx(Lt,{open:M,onOpenChange:q,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-2xl max-h-[80vh] overflow-auto",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-[#38bdac]"}),"绑定关系 - ",ye==null?void 0:ye.nickname]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[r.jsxs("div",{className:"bg-[#0a1628] rounded-lg p-3 text-center",children:[r.jsx("div",{className:"text-2xl font-bold text-[#38bdac]",children:((Jr=B.stats)==null?void 0:Jr.total)||0}),r.jsx("div",{className:"text-xs text-gray-400",children:"绑定总数"})]}),r.jsxs("div",{className:"bg-[#0a1628] rounded-lg p-3 text-center",children:[r.jsx("div",{className:"text-2xl font-bold text-green-400",children:((Yr=B.stats)==null?void 0:Yr.purchased)||0}),r.jsx("div",{className:"text-xs text-gray-400",children:"已付费"})]}),r.jsxs("div",{className:"bg-[#0a1628] rounded-lg p-3 text-center",children:[r.jsxs("div",{className:"text-2xl font-bold text-yellow-400",children:["¥",(((dl=B.stats)==null?void 0:dl.earnings)||0).toFixed(2)]}),r.jsx("div",{className:"text-xs text-gray-400",children:"累计收益"})]}),r.jsxs("div",{className:"bg-[#0a1628] rounded-lg p-3 text-center",children:[r.jsxs("div",{className:"text-2xl font-bold text-orange-400",children:["¥",(((Na=B.stats)==null?void 0:Na.pendingEarnings)||0).toFixed(2)]}),r.jsx("div",{className:"text-xs text-gray-400",children:"待提现"})]})]}),G?r.jsxs("div",{className:"flex items-center justify-center py-8",children:[r.jsx(Be,{className:"w-5 h-5 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):(((ti=B.referrals)==null?void 0:ti.length)??0)>0?r.jsx("div",{className:"space-y-2 max-h-[300px] overflow-y-auto",children:(B.referrals??[]).map((F,$e)=>{var dt;const Ke=F;return r.jsxs("div",{className:"flex items-center justify-between bg-[#0a1628] rounded-lg p-3",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"w-8 h-8 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm text-[#38bdac]",children:((dt=Ke.nickname)==null?void 0:dt.charAt(0))||"?"}),r.jsxs("div",{children:[r.jsx("div",{className:"text-white text-sm",children:Ke.nickname}),r.jsx("div",{className:"text-xs text-gray-500",children:Ke.phone||(Ke.hasOpenId?"微信用户":"未绑定")})]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[Ke.status==="vip"&&r.jsx(Je,{className:"bg-green-500/20 text-green-400 border-0 text-xs",children:"全书已购"}),Ke.status==="paid"&&r.jsxs(Je,{className:"bg-blue-500/20 text-blue-400 border-0 text-xs",children:["已付费",Ke.purchasedSections,"章"]}),Ke.status==="free"&&r.jsx(Je,{className:"bg-gray-500/20 text-gray-400 border-0 text-xs",children:"未付费"}),r.jsx("span",{className:"text-xs text-gray-500",children:Ke.createdAt?new Date(Ke.createdAt).toLocaleDateString():""})]})]},Ke.id||$e)})}):r.jsx("div",{className:"text-center py-8 text-gray-500",children:"暂无绑定用户"})]}),r.jsx(on,{children:r.jsx(X,{variant:"outline",onClick:()=>q(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"关闭"})})]})}),r.jsx(R0,{open:ke,onClose:()=>ee(!1),userId:Y,onUserUpdated:qn})]})}function Jh(t,[e,n]){return Math.min(n,Math.max(e,t))}var qk=["PageUp","PageDown"],Gk=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Jk={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},gc="Slider",[xx,gR,xR]=M0(gc),[Yk]=Yi(gc,[xR]),[yR,tp]=Yk(gc),Qk=b.forwardRef((t,e)=>{const{name:n,min:s=0,max:a=100,step:i=1,orientation:o="horizontal",disabled:c=!1,minStepsBetweenThumbs:u=0,defaultValue:h=[s],value:f,onValueChange:m=()=>{},onValueCommit:g=()=>{},inverted:y=!1,form:N,...w}=t,v=b.useRef(new Set),k=b.useRef(0),E=o==="horizontal"?bR:vR,[I=[],L]=Uo({prop:f,defaultProp:h,onChange:re=>{var xe;(xe=[...v.current][k.current])==null||xe.focus(),m(re)}}),W=b.useRef(I);function D(re){const ue=SR(I,re);K(re,ue)}function P(re){K(re,k.current)}function R(){const re=W.current[k.current];I[k.current]!==re&&g(I)}function K(re,ue,{commit:xe}={commit:!1}){const H=MR(i),O=AR(Math.round((re-s)/i)*i+s,H),J=Jh(O,[s,a]);L(($=[])=>{const M=jR($,J,ue);if(TR(M,u*i)){k.current=M.indexOf(J);const q=String(M)!==String($);return q&&xe&&g(M),q?M:$}else return $})}return r.jsx(yR,{scope:t.__scopeSlider,name:n,disabled:c,min:s,max:a,valueIndexToChangeRef:k,thumbs:v.current,values:I,orientation:o,form:N,children:r.jsx(xx.Provider,{scope:t.__scopeSlider,children:r.jsx(xx.Slot,{scope:t.__scopeSlider,children:r.jsx(E,{"aria-disabled":c,"data-disabled":c?"":void 0,...w,ref:e,onPointerDown:ft(w.onPointerDown,()=>{c||(W.current=I)}),min:s,max:a,inverted:y,onSlideStart:c?void 0:D,onSlideMove:c?void 0:P,onSlideEnd:c?void 0:R,onHomeKeyDown:()=>!c&&K(s,0,{commit:!0}),onEndKeyDown:()=>!c&&K(a,I.length-1,{commit:!0}),onStepKeyDown:({event:re,direction:ue})=>{if(!c){const O=qk.includes(re.key)||re.shiftKey&&Gk.includes(re.key)?10:1,J=k.current,$=I[J],M=i*O*ue;K($+M,J,{commit:!0})}}})})})})});Qk.displayName=gc;var[Xk,Zk]=Yk(gc,{startEdge:"left",endEdge:"right",size:"width",direction:1}),bR=b.forwardRef((t,e)=>{const{min:n,max:s,dir:a,inverted:i,onSlideStart:o,onSlideMove:c,onSlideEnd:u,onStepKeyDown:h,...f}=t,[m,g]=b.useState(null),y=Ot(e,E=>g(E)),N=b.useRef(void 0),w=Xf(a),v=w==="ltr",k=v&&!i||!v&&i;function C(E){const I=N.current||m.getBoundingClientRect(),L=[0,I.width],D=D0(L,k?[n,s]:[s,n]);return N.current=I,D(E-I.left)}return r.jsx(Xk,{scope:t.__scopeSlider,startEdge:k?"left":"right",endEdge:k?"right":"left",direction:k?1:-1,size:"width",children:r.jsx(eS,{dir:w,"data-orientation":"horizontal",...f,ref:y,style:{...f.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:E=>{const I=C(E.clientX);o==null||o(I)},onSlideMove:E=>{const I=C(E.clientX);c==null||c(I)},onSlideEnd:()=>{N.current=void 0,u==null||u()},onStepKeyDown:E=>{const L=Jk[k?"from-left":"from-right"].includes(E.key);h==null||h({event:E,direction:L?-1:1})}})})}),vR=b.forwardRef((t,e)=>{const{min:n,max:s,inverted:a,onSlideStart:i,onSlideMove:o,onSlideEnd:c,onStepKeyDown:u,...h}=t,f=b.useRef(null),m=Ot(e,f),g=b.useRef(void 0),y=!a;function N(w){const v=g.current||f.current.getBoundingClientRect(),k=[0,v.height],E=D0(k,y?[s,n]:[n,s]);return g.current=v,E(w-v.top)}return r.jsx(Xk,{scope:t.__scopeSlider,startEdge:y?"bottom":"top",endEdge:y?"top":"bottom",size:"height",direction:y?1:-1,children:r.jsx(eS,{"data-orientation":"vertical",...h,ref:m,style:{...h.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const v=N(w.clientY);i==null||i(v)},onSlideMove:w=>{const v=N(w.clientY);o==null||o(v)},onSlideEnd:()=>{g.current=void 0,c==null||c()},onStepKeyDown:w=>{const k=Jk[y?"from-bottom":"from-top"].includes(w.key);u==null||u({event:w,direction:k?-1:1})}})})}),eS=b.forwardRef((t,e)=>{const{__scopeSlider:n,onSlideStart:s,onSlideMove:a,onSlideEnd:i,onHomeKeyDown:o,onEndKeyDown:c,onStepKeyDown:u,...h}=t,f=tp(gc,n);return r.jsx(xt.span,{...h,ref:e,onKeyDown:ft(t.onKeyDown,m=>{m.key==="Home"?(o(m),m.preventDefault()):m.key==="End"?(c(m),m.preventDefault()):qk.concat(Gk).includes(m.key)&&(u(m),m.preventDefault())}),onPointerDown:ft(t.onPointerDown,m=>{const g=m.target;g.setPointerCapture(m.pointerId),m.preventDefault(),f.thumbs.has(g)?g.focus():s(m)}),onPointerMove:ft(t.onPointerMove,m=>{m.target.hasPointerCapture(m.pointerId)&&a(m)}),onPointerUp:ft(t.onPointerUp,m=>{const g=m.target;g.hasPointerCapture(m.pointerId)&&(g.releasePointerCapture(m.pointerId),i(m))})})}),tS="SliderTrack",nS=b.forwardRef((t,e)=>{const{__scopeSlider:n,...s}=t,a=tp(tS,n);return r.jsx(xt.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...s,ref:e})});nS.displayName=tS;var yx="SliderRange",sS=b.forwardRef((t,e)=>{const{__scopeSlider:n,...s}=t,a=tp(yx,n),i=Zk(yx,n),o=b.useRef(null),c=Ot(e,o),u=a.values.length,h=a.values.map(g=>iS(g,a.min,a.max)),f=u>1?Math.min(...h):0,m=100-Math.max(...h);return r.jsx(xt.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...s,ref:c,style:{...t.style,[i.startEdge]:f+"%",[i.endEdge]:m+"%"}})});sS.displayName=yx;var bx="SliderThumb",rS=b.forwardRef((t,e)=>{const n=gR(t.__scopeSlider),[s,a]=b.useState(null),i=Ot(e,c=>a(c)),o=b.useMemo(()=>s?n().findIndex(c=>c.ref.current===s):-1,[n,s]);return r.jsx(NR,{...t,ref:i,index:o})}),NR=b.forwardRef((t,e)=>{const{__scopeSlider:n,index:s,name:a,...i}=t,o=tp(bx,n),c=Zk(bx,n),[u,h]=b.useState(null),f=Ot(e,C=>h(C)),m=u?o.form||!!u.closest("form"):!0,g=P0(u),y=o.values[s],N=y===void 0?0:iS(y,o.min,o.max),w=kR(s,o.values.length),v=g==null?void 0:g[c.size],k=v?CR(v,N,c.direction):0;return b.useEffect(()=>{if(u)return o.thumbs.add(u),()=>{o.thumbs.delete(u)}},[u,o.thumbs]),r.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[c.startEdge]:`calc(${N}% + ${k}px)`},children:[r.jsx(xx.ItemSlot,{scope:t.__scopeSlider,children:r.jsx(xt.span,{role:"slider","aria-label":t["aria-label"]||w,"aria-valuemin":o.min,"aria-valuenow":y,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?"":void 0,tabIndex:o.disabled?void 0:0,...i,ref:f,style:y===void 0?{display:"none"}:t.style,onFocus:ft(t.onFocus,()=>{o.valueIndexToChangeRef.current=s})})}),m&&r.jsx(aS,{name:a??(o.name?o.name+(o.values.length>1?"[]":""):void 0),form:o.form,value:y},s)]})});rS.displayName=bx;var wR="RadioBubbleInput",aS=b.forwardRef(({__scopeSlider:t,value:e,...n},s)=>{const a=b.useRef(null),i=Ot(a,s),o=I0(e);return b.useEffect(()=>{const c=a.current;if(!c)return;const u=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(u,"value").set;if(o!==e&&f){const m=new Event("input",{bubbles:!0});f.call(c,e),c.dispatchEvent(m)}},[o,e]),r.jsx(xt.input,{style:{display:"none"},...n,ref:i,defaultValue:e})});aS.displayName=wR;function jR(t=[],e,n){const s=[...t];return s[n]=e,s.sort((a,i)=>a-i)}function iS(t,e,n){const i=100/(n-e)*(t-e);return Jh(i,[0,100])}function kR(t,e){return e>2?`Value ${t+1} of ${e}`:e===2?["Minimum","Maximum"][t]:void 0}function SR(t,e){if(t.length===1)return 0;const n=t.map(a=>Math.abs(a-e)),s=Math.min(...n);return n.indexOf(s)}function CR(t,e,n){const s=t/2,i=D0([0,50],[0,s]);return(s-i(e)*n)*n}function ER(t){return t.slice(0,-1).map((e,n)=>t[n+1]-e)}function TR(t,e){if(e>0){const n=ER(t);return Math.min(...n)>=e}return!0}function D0(t,e){return n=>{if(t[0]===t[1]||e[0]===e[1])return e[0];const s=(e[1]-e[0])/(t[1]-t[0]);return e[0]+s*(n-t[0])}}function MR(t){return(String(t).split(".")[1]||"").length}function AR(t,e){const n=Math.pow(10,e);return Math.round(t*n)/n}var IR=Qk,PR=nS,RR=sS,OR=rS;function DR({className:t,defaultValue:e,value:n,min:s=0,max:a=100,...i}){const o=b.useMemo(()=>Array.isArray(n)?n:Array.isArray(e)?e:[s,a],[n,e,s,a]);return r.jsxs(IR,{defaultValue:e,value:n,min:s,max:a,className:Dt("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50",t),...i,children:[r.jsx(PR,{className:"bg-gray-600 relative grow overflow-hidden rounded-full h-1.5 w-full",children:r.jsx(RR,{className:"bg-[#38bdac] absolute h-full rounded-full"})}),Array.from({length:o.length},(c,u)=>r.jsx(OR,{className:"block size-4 shrink-0 rounded-full border-2 border-[#38bdac] bg-white shadow-sm focus-visible:ring-2 focus-visible:ring-[#38bdac] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"},u))]})}const LR={distributorShare:90,minWithdrawAmount:10,bindingDays:30,userDiscount:5,withdrawFee:5,enableAutoWithdraw:!1,vipOrderShareVip:20,vipOrderShareNonVip:10};function oS(t){const[e,n]=b.useState(LR),[s,a]=b.useState(!0),[i,o]=b.useState(!1);b.useEffect(()=>{Oe("/api/admin/referral-settings").then(h=>{const f=h==null?void 0:h.data;f&&typeof f=="object"&&n({distributorShare:f.distributorShare??90,minWithdrawAmount:f.minWithdrawAmount??10,bindingDays:f.bindingDays??30,userDiscount:f.userDiscount??5,withdrawFee:f.withdrawFee??5,enableAutoWithdraw:f.enableAutoWithdraw??!1,vipOrderShareVip:f.vipOrderShareVip??20,vipOrderShareNonVip:f.vipOrderShareNonVip??10})}).catch(console.error).finally(()=>a(!1))},[]);const c=async()=>{o(!0);try{const h={distributorShare:Number(e.distributorShare)||0,minWithdrawAmount:Number(e.minWithdrawAmount)||0,bindingDays:Number(e.bindingDays)||0,userDiscount:Number(e.userDiscount)||0,withdrawFee:Number(e.withdrawFee)??5,enableAutoWithdraw:!!e.enableAutoWithdraw,vipOrderShareVip:Number(e.vipOrderShareVip)||20,vipOrderShareNonVip:Number(e.vipOrderShareNonVip)||10},f=await jt("/api/admin/referral-settings",h);if(!f||f.success===!1){se.error("保存失败: "+(f&&typeof f=="object"&&"error"in f?f.error:""));return}se.success(`✅ 分销配置已保存成功!
• 小程序与网站的推广规则会一起生效
• 绑定关系会使用新的天数配置
• 佣金比例会立即应用到新订单
如有缓存,请刷新前台/小程序页面。`)}catch(h){console.error(h),se.error("保存失败: "+(h instanceof Error?h.message:String(h)))}finally{o(!1)}},u=h=>f=>{const m=parseFloat(f.target.value||"0");n(g=>({...g,[h]:isNaN(m)?0:m}))};return s?r.jsx("div",{className:"p-8 text-gray-500",children:"加载中..."}):r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(tc,{className:"w-5 h-5 text-[#38bdac]"}),"推广 / 分销设置"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"统一管理「好友优惠」「你得 90% 收益」「绑定期 30 天」「提现门槛」等规则,小程序和 Web 共用这套配置。"})]}),r.jsxs(X,{onClick:c,disabled:i||s,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),i?"保存中...":"保存配置"]})]}),r.jsxs("div",{className:"space-y-6",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"flex items-center gap-2 text-white",children:[r.jsx(mA,{className:"w-4 h-4 text-[#38bdac]"}),"推广规则"]}),r.jsx(Ft,{className:"text-gray-400",children:"这三项会直接体现在小程序「推广规则」卡片上,同时影响实收佣金计算。"})]}),r.jsx(Te,{className:"space-y-6",children:r.jsxs("div",{className:"grid grid-cols-3 gap-6",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(ah,{className:"w-3 h-3 text-[#38bdac]"}),"好友优惠(%"]}),r.jsx(ae,{type:"number",min:0,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:e.userDiscount,onChange:u("userDiscount")}),r.jsx("p",{className:"text-xs text-gray-500",children:"例如 5 表示好友立减 5%(在价格配置基础上生效)。"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(zn,{className:"w-3 h-3 text-[#38bdac]"}),"推广者分成(%"]}),r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx(DR,{className:"flex-1",min:10,max:100,step:1,value:[e.distributorShare],onValueChange:([h])=>n(f=>({...f,distributorShare:h}))}),r.jsx(ae,{type:"number",min:0,max:100,className:"w-20 bg-[#0a1628] border-gray-700 text-white text-center",value:e.distributorShare,onChange:u("distributorShare")})]}),r.jsxs("p",{className:"text-xs text-gray-500",children:["内容订单佣金 = 订单金额 ×"," ",r.jsxs("span",{className:"text-[#38bdac] font-mono",children:[e.distributorShare,"%"]}),";会员订单见下方。"]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(ah,{className:"w-3 h-3 text-[#38bdac]"}),"会员订单分润(推广者是会员 %"]}),r.jsx(ae,{type:"number",min:0,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:e.vipOrderShareVip,onChange:u("vipOrderShareVip")}),r.jsx("p",{className:"text-xs text-gray-500",children:"推广者已是会员时,会员订单佣金比例,默认 20%。"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(ah,{className:"w-3 h-3 text-[#38bdac]"}),"会员订单分润(推广者非会员 %"]}),r.jsx(ae,{type:"number",min:0,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:e.vipOrderShareNonVip,onChange:u("vipOrderShareNonVip")}),r.jsx("p",{className:"text-xs text-gray-500",children:"推广者非会员时,会员订单佣金比例,默认 10%。"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(zn,{className:"w-3 h-3 text-[#38bdac]"}),"绑定有效期(天)"]}),r.jsx(ae,{type:"number",min:1,max:365,className:"bg-[#0a1628] border-gray-700 text-white",value:e.bindingDays,onChange:u("bindingDays")}),r.jsx("p",{className:"text-xs text-gray-500",children:"好友通过你的链接进来并登录后,绑定在你名下的天数。"})]})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"flex items-center gap-2 text-white",children:[r.jsx(tc,{className:"w-4 h-4 text-[#38bdac]"}),"提现规则"]}),r.jsx(Ft,{className:"text-gray-400",children:"与「提现中心」「自动提现」相关的参数,影响推广者看到的可提现金额和最低门槛。"})]}),r.jsx(Te,{className:"space-y-6",children:r.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"最低提现金额(元)"}),r.jsx(ae,{type:"number",min:0,step:1,className:"bg-[#0a1628] border-gray-700 text-white",value:e.minWithdrawAmount,onChange:u("minWithdrawAmount")}),r.jsx("p",{className:"text-xs text-gray-500",children:"小程序「满 X 元可提现」展示的门槛,同时用于后端接口校验。"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"提现手续费(%"}),r.jsx(ae,{type:"number",min:0,max:100,step:.5,className:"bg-[#0a1628] border-gray-700 text-white",value:e.withdrawFee,onChange:u("withdrawFee")}),r.jsx("p",{className:"text-xs text-gray-500",children:"批准提现时按此比例扣除后打款,如 5 表示申请 100 元实际到账 95 元。"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:["自动提现开关",r.jsx(Je,{variant:"outline",className:"border-[#38bdac]/40 text-[#38bdac] text-[10px]",children:"预留"})]}),r.jsxs("div",{className:"flex items-center gap-3 mt-1",children:[r.jsx(Et,{checked:e.enableAutoWithdraw,onCheckedChange:h=>n(f=>({...f,enableAutoWithdraw:h}))}),r.jsx("span",{className:"text-sm text-gray-400",children:"开启后,可结合定时任务实现「收益自动打款到微信零钱」。"})]})]})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsx(Qe,{children:r.jsxs(Xe,{className:"flex items-center gap-2 text-gray-200 text-sm",children:[r.jsx(ah,{className:"w-4 h-4 text-[#38bdac]"}),"使用说明"]})}),r.jsxs(Te,{className:"space-y-2 text-xs text-gray-400 leading-relaxed",children:[r.jsxs("p",{children:["1. 以上配置会写入"," ",r.jsx("code",{className:"font-mono text-[11px] text-[#38bdac]",children:"system_config.referral_config"}),"小程序「推广中心」、Web 推广页以及支付回调都会读取同一份配置。"]}),r.jsx("p",{children:"2. 修改后新订单立即生效;旧订单的历史佣金不会自动重算,只影响之后产生的订单。"}),r.jsx("p",{children:"3. 如遇前端展示与实际结算不一致,优先以此处配置为准,再排查缓存和小程序版本。"})]})]})]})]})}function _R(){var ks;const[t,e]=b.useState("overview"),[n,s]=b.useState([]),[a,i]=b.useState(null),[o,c]=b.useState([]),[u,h]=b.useState([]),[f,m]=b.useState([]),[g,y]=b.useState(!0),[N,w]=b.useState(null),[v,k]=b.useState(""),[C,E]=b.useState(""),[I,L]=b.useState("all"),[W,D]=b.useState(1),[P,R]=b.useState(10),[K,re]=b.useState(0),[ue,xe]=b.useState(new Set),[H,O]=b.useState(null),[J,$]=b.useState(""),[M,q]=b.useState(!1),[B,z]=b.useState(null),[G,oe]=b.useState(""),[ye,Ae]=b.useState(!1),[ke,ee]=b.useState(!1),[Y,he]=b.useState(!1),[te,ce]=b.useState([]),[pe,Fe]=b.useState(1),[rt,vt]=b.useState(0),[mt,Ut]=b.useState("");b.useEffect(()=>{In()},[]),b.useEffect(()=>{D(1)},[t,I,C]),b.useEffect(()=>{sn(t)},[t]),b.useEffect(()=>{["orders","bindings","withdrawals"].includes(t)&&sn(t,!0),t==="giftPay"&&sn("giftPay",!0)},[W,P,I,C,pe,mt]),b.useEffect(()=>{t==="withdrawals"&&Ls()},[t]);async function In(){w(null);try{const U=await Oe("/api/admin/distribution/overview");U!=null&&U.success&&U.overview&&i(U.overview)}catch(U){console.error("[Admin] 概览接口异常:",U),w("加载概览失败")}try{const U=await Oe("/api/db/users");m((U==null?void 0:U.users)||[])}catch(U){console.error("[Admin] 用户数据加载失败:",U)}}async function sn(U,_e=!1,it){var $t;if(!(!_e&&ue.has(U))){y(!0);try{const me=f;switch(U){case"overview":break;case"orders":{try{const fe=(it==null?void 0:it.search)??C,at=(it==null?void 0:it.page)??W,yt=new URLSearchParams({page:String(at),pageSize:String(P),...I!=="all"&&{status:I},...fe&&{search:fe}}),fn=await Oe(`/api/admin/orders?${yt}`);if(fn!=null&&fn.success&&fn.orders){const Kn=fn.orders.map(Pn=>{const qn=me.find(Ur=>Ur.id===Pn.userId),Ss=Pn.referrerId?me.find(Ur=>Ur.id===Pn.referrerId):null;return{...Pn,amount:parseFloat(String(Pn.amount))||0,userNickname:(qn==null?void 0:qn.nickname)||Pn.userNickname||"未知用户",userPhone:(qn==null?void 0:qn.phone)||Pn.userPhone||"-",referrerNickname:(Ss==null?void 0:Ss.nickname)||null,referrerCode:(Ss==null?void 0:Ss.referralCode)??null,type:Pn.productType||Pn.type}});s(Kn),re(fn.total??Kn.length)}else s([]),re(0)}catch(fe){console.error(fe),w("加载订单失败"),s([])}break}case"bindings":{try{const fe=new URLSearchParams({page:String(W),pageSize:String(P),...I!=="all"&&{status:I}}),at=await Oe(`/api/db/distribution?${fe}`);c((at==null?void 0:at.bindings)||[]),re((at==null?void 0:at.total)??(($t=at==null?void 0:at.bindings)==null?void 0:$t.length)??0)}catch(fe){console.error(fe),w("加载绑定数据失败"),c([])}break}case"withdrawals":{try{const fe=I==="completed"?"success":I==="rejected"?"failed":I,at=new URLSearchParams({...fe&&fe!=="all"&&{status:fe},page:String(W),pageSize:String(P)}),yt=await Oe(`/api/admin/withdrawals?${at}`);if(yt!=null&&yt.success&&yt.withdrawals){const fn=yt.withdrawals.map(Kn=>({...Kn,account:Kn.account??"未绑定微信号",status:Kn.status==="success"?"completed":Kn.status==="failed"?"rejected":Kn.status}));h(fn),re((yt==null?void 0:yt.total)??fn.length)}else yt!=null&&yt.success||w(`获取提现记录失败: ${(yt==null?void 0:yt.error)||"未知错误"}`),h([])}catch(fe){console.error(fe),w("加载提现数据失败"),h([])}break}case"giftPay":{try{const fe=new URLSearchParams({page:String(pe),pageSize:"20",...mt&&{status:mt}}),at=await Oe(`/api/admin/gift-pay-requests?${fe}`);at!=null&&at.success&&at.data?(ce(at.data),vt(at.total??at.data.length)):(ce([]),vt(0))}catch(fe){console.error(fe),w("加载代付请求失败"),ce([])}break}}xe(fe=>new Set(fe).add(U))}catch(me){console.error(me)}finally{y(!1)}}}function Tt(){E(v),D(1),sn("orders",!0,{search:v,page:1})}async function Mt(){w(null),xe(U=>{const _e=new Set(U);return _e.delete(t),_e}),t==="overview"&&In(),await sn(t,!0)}async function Kt(U){if(confirm("确认审核通过并打款?"))try{const _e=await Pt("/api/admin/withdrawals",{id:U,action:"approve"});if(!(_e!=null&&_e.success)){const it=(_e==null?void 0:_e.message)||(_e==null?void 0:_e.error)||"操作失败";se.error(it);return}await Mt()}catch(_e){console.error(_e),se.error("操作失败")}}function Ns(U){z(U),oe("")}async function as(U){if(confirm("确认撤回该笔打款?资金将退回商户运营账户。"))try{const _e=await jt("/api/admin/withdrawals/cancel",{id:U});if(!(_e!=null&&_e.success)){se.error((_e==null?void 0:_e.error)||(_e==null?void 0:_e.message)||"撤回失败");return}se.success("已撤回打款"),await Mt()}catch(_e){console.error(_e),se.error("撤回失败")}}async function is(){const U=B;if(!U)return;const _e=G.trim();if(!_e){se.error("请填写拒绝原因");return}Ae(!0);try{const it=await Pt("/api/admin/withdrawals",{id:U,action:"reject",errorMessage:_e});if(!(it!=null&&it.success)){se.error((it==null?void 0:it.error)||"操作失败");return}se.success("已拒绝该提现申请"),z(null),oe(""),await Mt()}catch(it){console.error(it),se.error("操作失败")}finally{Ae(!1)}}async function Ls(){try{const U=await Oe("/api/admin/withdrawals/auto-approve");U!=null&&U.success&&typeof U.enableAutoApprove=="boolean"&&ee(U.enableAutoApprove)}catch{}}async function ws(U){he(!0);try{const _e=await Pt("/api/admin/withdrawals/auto-approve",{enableAutoApprove:U});_e!=null&&_e.success?(ee(U),se.success(U?"已开启自动审批,新提现将自动打款":"已关闭自动审批")):se.error("更新失败: "+((_e==null?void 0:_e.error)??""))}catch{se.error("更新失败")}finally{he(!1)}}function rn(){B&&se.info("已取消操作"),z(null),oe("")}async function qs(){var U;if(!(!(H!=null&&H.orderSn)&&!(H!=null&&H.id))){q(!0),w(null);try{const _e=await Pt("/api/admin/orders/refund",{orderSn:H.orderSn||H.id,reason:J||void 0});_e!=null&&_e.success?(O(null),$(""),await sn("orders",!0)):w((_e==null?void 0:_e.error)||"退款失败")}catch(_e){const it=_e;w(((U=it==null?void 0:it.data)==null?void 0:U.error)||"退款失败,请检查网络后重试")}finally{q(!1)}}}function un(U){const _e={active:"bg-green-500/20 text-green-400",converted:"bg-blue-500/20 text-blue-400",expired:"bg-gray-500/20 text-gray-400",cancelled:"bg-red-500/20 text-red-400",pending:"bg-orange-500/20 text-orange-400",pending_confirm:"bg-orange-500/20 text-orange-400",processing:"bg-blue-500/20 text-blue-400",completed:"bg-green-500/20 text-green-400",rejected:"bg-red-500/20 text-red-400"},it={active:"有效",converted:"已转化",expired:"已过期",cancelled:"已取消",pending:"待审核",pending_confirm:"待用户确认",processing:"处理中",completed:"已完成",rejected:"已拒绝"};return r.jsx(Je,{className:`${_e[U]||"bg-gray-500/20 text-gray-400"} border-0`,children:it[U]||U})}const Un=Math.ceil(K/P)||1,js=n,Gs=o.filter(U=>{var it,$t,me,fe;if(!v)return!0;const _e=v.toLowerCase();return((it=U.refereeNickname)==null?void 0:it.toLowerCase().includes(_e))||(($t=U.refereePhone)==null?void 0:$t.includes(_e))||((me=U.referrerName)==null?void 0:me.toLowerCase().includes(_e))||((fe=U.referrerCode)==null?void 0:fe.toLowerCase().includes(_e))}),hn=u.filter(U=>{var it;if(!v)return!0;const _e=v.toLowerCase();return((it=U.userName)==null?void 0:it.toLowerCase().includes(_e))||U.account&&U.account.toLowerCase().includes(_e)});return r.jsxs("div",{className:"p-8 w-full",children:[N&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-500/20 border border-red-500/50 text-red-400 text-sm flex items-center justify-between",children:[r.jsx("span",{children:N}),r.jsx("button",{type:"button",onClick:()=>w(null),className:"hover:text-red-300",children:"×"})]}),r.jsxs("div",{className:"flex items-center justify-between mb-8",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold text-white",children:"推广中心"}),r.jsx("p",{className:"text-gray-400 mt-1",children:"统一管理:订单、分销绑定、提现审核"})]}),r.jsxs(X,{onClick:Mt,disabled:g,variant:"outline",className:"border-gray-700 text-gray-300 hover:bg-gray-800",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),"刷新数据"]})]}),r.jsx("div",{className:"flex gap-2 mb-6 border-b border-gray-700 pb-4 flex-wrap",children:[{key:"overview",label:"数据概览",icon:gd},{key:"orders",label:"订单管理",icon:Wh},{key:"bindings",label:"绑定管理",icon:$r},{key:"withdrawals",label:"提现审核",icon:tc},{key:"giftPay",label:"代付请求",icon:jj},{key:"settings",label:"推广设置",icon:_o}].map(U=>r.jsxs("button",{type:"button",onClick:()=>{e(U.key),L("all"),k(""),E(""),U.key==="giftPay"&&(Ut(""),Fe(1))},className:`flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors ${t===U.key?"bg-[#38bdac] text-white":"text-gray-400 hover:text-white hover:bg-gray-800"}`,children:[r.jsx(U.icon,{className:"w-4 h-4"}),U.label]},U.key))}),g&&t!=="orders"?r.jsxs("div",{className:"flex items-center justify-center py-20",children:[r.jsx(Be,{className:"w-8 h-8 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[t==="overview"&&a&&r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"今日点击"}),r.jsx("p",{className:"text-2xl font-bold text-white mt-1",children:a.todayClicks}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"总点击次数(实时)"})]}),r.jsx("div",{className:"w-12 h-12 rounded-xl bg-blue-500/20 flex items-center justify-center",children:r.jsx(ix,{className:"w-6 h-6 text-blue-400"})})]})})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"今日独立用户"}),r.jsx("p",{className:"text-2xl font-bold text-white mt-1",children:a.todayUniqueVisitors??0}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"去重访客数(实时)"})]}),r.jsx("div",{className:"w-12 h-12 rounded-xl bg-cyan-500/20 flex items-center justify-center",children:r.jsx(zn,{className:"w-6 h-6 text-cyan-400"})})]})})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"今日总文章点击率"}),r.jsx("p",{className:"text-2xl font-bold text-white mt-1",children:(a.todayClickRate??0).toFixed(2)}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"人均点击(总点击/独立用户)"})]}),r.jsx("div",{className:"w-12 h-12 rounded-xl bg-amber-500/20 flex items-center justify-center",children:r.jsx(gd,{className:"w-6 h-6 text-amber-400"})})]})})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"今日绑定"}),r.jsx("p",{className:"text-2xl font-bold text-white mt-1",children:a.todayBindings})]}),r.jsx("div",{className:"w-12 h-12 rounded-xl bg-green-500/20 flex items-center justify-center",children:r.jsx($r,{className:"w-6 h-6 text-green-400"})})]})})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"今日转化"}),r.jsx("p",{className:"text-2xl font-bold text-white mt-1",children:a.todayConversions})]}),r.jsx("div",{className:"w-12 h-12 rounded-xl bg-purple-500/20 flex items-center justify-center",children:r.jsx(l1,{className:"w-6 h-6 text-purple-400"})})]})})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"今日佣金"}),r.jsxs("p",{className:"text-2xl font-bold text-[#38bdac] mt-1",children:["¥",a.todayEarnings.toFixed(2)]})]}),r.jsx("div",{className:"w-12 h-12 rounded-xl bg-[#38bdac]/20 flex items-center justify-center",children:r.jsx(Wh,{className:"w-6 h-6 text-[#38bdac]"})})]})})})]}),(((ks=a.todayClicksByPage)==null?void 0:ks.length)??0)>0&&r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsx(Qe,{children:r.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[r.jsxs("div",{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(ix,{className:"w-5 h-5 text-[#38bdac]"}),"每篇文章今日点击(按来源页/文章统计)"]}),r.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"实际用户与实际文章的点击均计入;今日总点击与上表一致"})]}),r.jsxs(X,{type:"button",size:"sm",variant:"outline",onClick:()=>void Mt(),disabled:g,className:"border-gray-600 text-gray-300 shrink-0",children:[r.jsx(Be,{className:`w-4 h-4 mr-1 ${g?"animate-spin":""}`}),"刷新"]})]})}),r.jsx(Te,{children:r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-gray-700 text-left text-gray-400",children:[r.jsx("th",{className:"pb-3 pr-4",children:"来源页/文章"}),r.jsx("th",{className:"pb-3 pr-4 text-right",children:"今日点击"}),r.jsx("th",{className:"pb-3 text-right",children:"占比"})]})}),r.jsx("tbody",{children:[...a.todayClicksByPage??[]].sort((U,_e)=>_e.clicks-U.clicks).map((U,_e)=>r.jsxs("tr",{className:"border-b border-gray-700/50",children:[r.jsx("td",{className:"py-2 pr-4 text-white font-mono",children:U.page||"(未区分)"}),r.jsx("td",{className:"py-2 pr-4 text-right text-white",children:U.clicks}),r.jsxs("td",{className:"py-2 text-right text-gray-400",children:[a.todayClicks>0?(U.clicks/a.todayClicks*100).toFixed(1):0,"%"]})]},_e))})]})})})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsx(Ee,{className:"bg-orange-500/10 border-orange-500/30",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-orange-500/20 flex items-center justify-center",children:r.jsx(ax,{className:"w-6 h-6 text-orange-400"})}),r.jsxs("div",{className:"flex-1",children:[r.jsx("p",{className:"text-orange-300 font-medium",children:"即将过期绑定"}),r.jsxs("p",{className:"text-2xl font-bold text-white",children:[a.expiringBindings," 个"]}),r.jsx("p",{className:"text-orange-300/60 text-sm",children:"7天内到期需关注转化"})]})]})})}),r.jsx(Ee,{className:"bg-blue-500/10 border-blue-500/30",children:r.jsx(Te,{className:"p-6",children:r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-blue-500/20 flex items-center justify-center",children:r.jsx(tc,{className:"w-6 h-6 text-blue-400"})}),r.jsxs("div",{className:"flex-1",children:[r.jsx("p",{className:"text-blue-300 font-medium",children:"待审核提现"}),r.jsxs("p",{className:"text-2xl font-bold text-white",children:[a.pendingWithdrawals," 笔"]}),r.jsxs("p",{className:"text-blue-300/60 text-sm",children:["共 ¥",a.pendingWithdrawAmount.toFixed(2)]})]}),r.jsx(X,{onClick:()=>e("withdrawals"),variant:"outline",className:"border-blue-500/50 text-blue-400 hover:bg-blue-500/20",children:"去审核"})]})})})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsx(Qe,{children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Hh,{className:"w-5 h-5 text-[#38bdac]"}),"本月统计"]})}),r.jsx(Te,{children:r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"点击量"}),r.jsx("p",{className:"text-xl font-bold text-white",children:a.monthClicks})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"绑定数"}),r.jsx("p",{className:"text-xl font-bold text-white",children:a.monthBindings})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"转化数"}),r.jsx("p",{className:"text-xl font-bold text-white",children:a.monthConversions})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"佣金"}),r.jsxs("p",{className:"text-xl font-bold text-[#38bdac]",children:["¥",a.monthEarnings.toFixed(2)]})]})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsx(Qe,{children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(gd,{className:"w-5 h-5 text-[#38bdac]"}),"累计统计"]})}),r.jsxs(Te,{children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"总点击"}),r.jsx("p",{className:"text-xl font-bold text-white",children:a.totalClicks.toLocaleString()})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"总绑定"}),r.jsx("p",{className:"text-xl font-bold text-white",children:a.totalBindings.toLocaleString()})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"总转化"}),r.jsx("p",{className:"text-xl font-bold text-white",children:a.totalConversions})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"总佣金"}),r.jsxs("p",{className:"text-xl font-bold text-[#38bdac]",children:["¥",a.totalEarnings.toFixed(2)]})]})]}),r.jsxs("div",{className:"mt-4 p-4 bg-[#38bdac]/10 rounded-lg flex items-center justify-between",children:[r.jsx("span",{className:"text-gray-300",children:"点击转化率"}),r.jsxs("span",{className:"text-[#38bdac] font-bold text-xl",children:[a.conversionRate,"%"]})]})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsx(Qe,{children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-[#38bdac]"}),"推广统计"]})}),r.jsx(Te,{children:r.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[r.jsx("p",{className:"text-3xl font-bold text-white",children:a.totalDistributors}),r.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"推广用户数"})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[r.jsx("p",{className:"text-3xl font-bold text-green-400",children:a.activeDistributors}),r.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"有收益用户"})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[r.jsx("p",{className:"text-3xl font-bold text-[#38bdac]",children:"90%"}),r.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"佣金比例"})]}),r.jsxs("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[r.jsx("p",{className:"text-3xl font-bold text-orange-400",children:"30天"}),r.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"绑定有效期"})]})]})})]})]}),t==="orders"&&r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex flex-wrap gap-4 items-center",children:[r.jsxs("div",{className:"flex flex-1 min-w-[200px] gap-2",children:[r.jsxs("div",{className:"relative flex-1",children:[r.jsx(ca,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),r.jsx(ae,{value:v,onChange:U=>k(U.target.value),onKeyDown:U=>{U.key==="Enter"&&(U.preventDefault(),Tt())},placeholder:"输入订单号、用户名或手机号,回车或点击搜索",className:"pl-10 pr-3 bg-[#0f2137] border-gray-700 text-white"})]}),r.jsxs(X,{type:"button",variant:"outline",onClick:Tt,disabled:g,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent shrink-0",children:[r.jsx(ca,{className:"w-4 h-4 mr-2"}),"搜索"]})]}),r.jsxs("select",{value:I,onChange:U=>L(U.target.value),className:"px-4 py-2 bg-[#0f2137] border border-gray-700 rounded-lg text-white shrink-0",children:[r.jsx("option",{value:"all",children:"全部状态"}),r.jsx("option",{value:"completed",children:"已完成"}),r.jsx("option",{value:"pending",children:"待支付"}),r.jsx("option",{value:"failed",children:"已失败"}),r.jsx("option",{value:"refunded",children:"已退款"})]}),r.jsxs(X,{type:"button",variant:"outline",onClick:()=>void Mt(),disabled:g,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent shrink-0",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),"刷新"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-0",children:[g?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):n.length===0?r.jsx("div",{className:"py-12 text-center text-gray-500",children:"暂无订单数据"}):r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"bg-[#0a1628] text-gray-400",children:[r.jsx("th",{className:"p-4 text-left font-medium",children:"订单号"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"用户"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"商品"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"金额"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"支付方式"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"状态"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"退款原因"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"推荐人/邀请码"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"分销佣金"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"下单时间"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"操作"})]})}),r.jsx("tbody",{className:"divide-y divide-gray-700/50",children:js.map(U=>{var _e,it;return r.jsxs("tr",{className:"hover:bg-[#0a1628] transition-colors",children:[r.jsxs("td",{className:"p-4 font-mono text-xs text-gray-400",children:[(_e=U.id)==null?void 0:_e.slice(0,12),"..."]}),r.jsx("td",{className:"p-4",children:r.jsxs("div",{children:[r.jsx("p",{className:"text-white text-sm",children:U.userNickname}),r.jsx("p",{className:"text-gray-500 text-xs",children:U.userPhone})]})}),r.jsx("td",{className:"p-4",children:r.jsxs("div",{children:[r.jsx("p",{className:"text-white text-sm",children:(()=>{const $t=U.productType||U.type,me=U.description||"",fe=String(U.productId||U.sectionId||""),at=$t==="vip"||me.includes("VIP")||me.toLowerCase().includes("vip")||fe.toLowerCase().includes("vip");return $t==="balance_recharge"?`余额充值 ¥${typeof U.amount=="number"?U.amount.toFixed(2):parseFloat(String(U.amount||"0")).toFixed(2)}`:at?"超级个体开通费用":$t==="fullbook"?`${U.bookName||"《底层逻辑》"} - 全本`:$t==="match"?"匹配次数购买":`${U.bookName||"《底层逻辑》"} - ${U.sectionTitle||U.chapterTitle||`章节${U.productId||U.sectionId||""}`}`})()}),r.jsx("p",{className:"text-gray-500 text-xs",children:(()=>{const $t=U.productType||U.type,me=U.description||"",fe=String(U.productId||U.sectionId||""),at=$t==="vip"||me.includes("VIP")||me.toLowerCase().includes("vip")||fe.toLowerCase().includes("vip");return $t==="balance_recharge"?"余额充值":at?"超级个体":$t==="fullbook"?"全书解锁":$t==="match"?"功能权益":U.chapterTitle||"单章购买"})()})]})}),r.jsxs("td",{className:"p-4 text-[#38bdac] font-bold",children:["¥",typeof U.amount=="number"?U.amount.toFixed(2):parseFloat(String(U.amount||"0")).toFixed(2)]}),r.jsx("td",{className:"p-4 text-gray-300",children:U.paymentMethod==="wechat"?"微信支付":U.paymentMethod==="balance"?"余额支付":U.paymentMethod==="alipay"?"支付宝":U.paymentMethod||"微信支付"}),r.jsx("td",{className:"p-4",children:U.status==="refunded"?r.jsx(Je,{className:"bg-gray-500/20 text-gray-400 border-0",children:"已退款"}):U.status==="completed"||U.status==="paid"?r.jsx(Je,{className:"bg-green-500/20 text-green-400 border-0",children:"已完成"}):U.status==="pending"||U.status==="created"?r.jsx(Je,{className:"bg-yellow-500/20 text-yellow-400 border-0",children:"待支付"}):r.jsx(Je,{className:"bg-red-500/20 text-red-400 border-0",children:"已失败"})}),r.jsx("td",{className:"p-4 text-gray-400 text-sm max-w-[120px]",title:U.refundReason,children:U.status==="refunded"&&U.refundReason?U.refundReason:"-"}),r.jsx("td",{className:"p-4 text-gray-300 text-sm",children:U.referrerId||U.referralCode?r.jsxs("span",{title:U.referralCode||U.referrerCode||U.referrerId||"",children:[U.referrerNickname||U.referralCode||U.referrerCode||((it=U.referrerId)==null?void 0:it.slice(0,8)),(U.referralCode||U.referrerCode)&&` (${U.referralCode||U.referrerCode})`]}):"-"}),r.jsx("td",{className:"p-4 text-[#FFD700]",children:U.referrerEarnings?`¥${(typeof U.referrerEarnings=="number"?U.referrerEarnings:parseFloat(String(U.referrerEarnings))).toFixed(2)}`:"-"}),r.jsx("td",{className:"p-4 text-gray-400 text-sm",children:U.createdAt?new Date(U.createdAt).toLocaleString("zh-CN"):"-"}),r.jsx("td",{className:"p-4",children:(U.status==="paid"||U.status==="completed")&&r.jsxs(X,{variant:"outline",size:"sm",className:"border-orange-500/50 text-orange-400 hover:bg-orange-500/20",onClick:()=>{O(U),$("")},children:[r.jsx(hx,{className:"w-3 h-3 mr-1"}),"退款"]})})]},U.id)})})]})}),t==="orders"&&r.jsx(Us,{page:W,totalPages:Un,total:K,pageSize:P,onPageChange:D,onPageSizeChange:U=>{R(U),D(1)}})]})})]}),t==="bindings"&&r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex flex-wrap gap-4 items-center",children:[r.jsxs("div",{className:"relative flex-1 min-w-[200px]",children:[r.jsx(ca,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),r.jsx(ae,{value:v,onChange:U=>k(U.target.value),placeholder:"搜索用户昵称、手机号、推广码...",className:"pl-10 bg-[#0f2137] border-gray-700 text-white"})]}),r.jsxs("select",{value:I,onChange:U=>L(U.target.value),className:"px-4 py-2 bg-[#0f2137] border border-gray-700 rounded-lg text-white shrink-0",children:[r.jsx("option",{value:"all",children:"全部状态"}),r.jsx("option",{value:"active",children:"有效"}),r.jsx("option",{value:"converted",children:"已转化"}),r.jsx("option",{value:"expired",children:"已过期"})]}),r.jsxs(X,{type:"button",variant:"outline",onClick:()=>void Mt(),disabled:g,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent shrink-0",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),"刷新"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-0",children:[Gs.length===0?r.jsx("div",{className:"py-12 text-center text-gray-500",children:"暂无绑定数据"}):r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"bg-[#0a1628] text-gray-400",children:[r.jsx("th",{className:"p-4 text-left font-medium",children:"访客"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"分销商"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"绑定时间"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"到期时间"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"状态"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"佣金"})]})}),r.jsx("tbody",{className:"divide-y divide-gray-700/50",children:Gs.map(U=>r.jsxs("tr",{className:"hover:bg-[#0a1628] transition-colors",children:[r.jsx("td",{className:"p-4",children:r.jsxs("div",{children:[r.jsx("p",{className:"text-white font-medium",children:U.refereeNickname||"匿名用户"}),r.jsx("p",{className:"text-gray-500 text-xs",children:U.refereePhone})]})}),r.jsx("td",{className:"p-4",children:r.jsxs("div",{children:[r.jsx("p",{className:"text-white",children:U.referrerName||"-"}),r.jsx("p",{className:"text-gray-500 text-xs font-mono",children:U.referrerCode})]})}),r.jsx("td",{className:"p-4 text-gray-400",children:U.boundAt?new Date(U.boundAt).toLocaleDateString("zh-CN"):"-"}),r.jsx("td",{className:"p-4 text-gray-400",children:U.expiresAt?new Date(U.expiresAt).toLocaleDateString("zh-CN"):"-"}),r.jsx("td",{className:"p-4",children:un(U.status)}),r.jsx("td",{className:"p-4",children:U.commission?r.jsxs("span",{className:"text-[#38bdac] font-medium",children:["¥",U.commission.toFixed(2)]}):r.jsx("span",{className:"text-gray-500",children:"-"})})]},U.id))})]})}),t==="bindings"&&r.jsx(Us,{page:W,totalPages:Un,total:K,pageSize:P,onPageChange:D,onPageSizeChange:U=>{R(U),D(1)}})]})})]}),t==="withdrawals"&&r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex flex-wrap gap-4 items-center",children:[r.jsxs("div",{className:"relative flex-1 min-w-[200px]",children:[r.jsx(ca,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),r.jsx(ae,{value:v,onChange:U=>k(U.target.value),placeholder:"搜索用户名称、账号...",className:"pl-10 bg-[#0f2137] border-gray-700 text-white"})]}),r.jsxs("select",{value:I,onChange:U=>L(U.target.value),className:"px-4 py-2 bg-[#0f2137] border border-gray-700 rounded-lg text-white shrink-0",children:[r.jsx("option",{value:"all",children:"全部状态"}),r.jsx("option",{value:"pending",children:"待审核"}),r.jsx("option",{value:"completed",children:"已完成"}),r.jsx("option",{value:"rejected",children:"已拒绝"})]}),r.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 rounded-lg bg-[#0f2137] border border-gray-700/50 shrink-0",children:[r.jsx(Va,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx("span",{className:"text-sm text-gray-300",children:"自动审批"}),r.jsx(Et,{checked:ke,onCheckedChange:ws,disabled:Y,className:"data-[state=checked]:bg-[#38bdac]"})]}),r.jsxs(X,{type:"button",variant:"outline",onClick:()=>void Mt(),disabled:g,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent shrink-0",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),"刷新"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-0",children:[hn.length===0?r.jsx("div",{className:"py-12 text-center text-gray-500",children:"暂无提现记录"}):r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"bg-[#0a1628] text-gray-400",children:[r.jsx("th",{className:"p-4 text-left font-medium",children:"申请人"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"金额"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"收款方式"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"收款账号"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"申请时间"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"状态"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"备注"}),r.jsx("th",{className:"p-4 text-right font-medium",children:"操作"})]})}),r.jsx("tbody",{className:"divide-y divide-gray-700/50",children:hn.map(U=>r.jsxs("tr",{className:"hover:bg-[#0a1628] transition-colors",children:[r.jsx("td",{className:"p-4",children:r.jsxs("div",{className:"flex items-center gap-2",children:[U.userAvatar?r.jsx("img",{src:U.userAvatar,alt:"",className:"w-8 h-8 rounded-full object-cover"}):r.jsx("div",{className:"w-8 h-8 rounded-full bg-gray-600 flex items-center justify-center text-white text-sm font-medium",children:(U.userName||U.name||"?").slice(0,1)}),r.jsx("p",{className:"text-white font-medium",children:U.userName||U.name})]})}),r.jsx("td",{className:"p-4",children:r.jsxs("span",{className:"text-[#38bdac] font-bold",children:["¥",U.amount.toFixed(2)]})}),r.jsx("td",{className:"p-4",children:r.jsx(Je,{className:U.method==="wechat"?"bg-green-500/20 text-green-400 border-0":"bg-blue-500/20 text-blue-400 border-0",children:U.method==="wechat"?"微信":"支付宝"})}),r.jsx("td",{className:"p-4",children:r.jsxs("div",{children:[r.jsx("p",{className:"text-white font-mono text-xs",children:U.account}),r.jsx("p",{className:"text-gray-500 text-xs",children:U.name})]})}),r.jsx("td",{className:"p-4 text-gray-400",children:U.createdAt?new Date(U.createdAt).toLocaleString("zh-CN"):"-"}),r.jsx("td",{className:"p-4",children:un(U.status)}),r.jsx("td",{className:"p-4 max-w-[160px]",children:r.jsx("span",{className:`text-xs ${U.status==="rejected"||U.status==="failed"?"text-red-400":"text-gray-400"}`,title:U.remark,children:U.remark||"-"})}),r.jsxs("td",{className:"p-4 text-right",children:[U.status==="pending"&&r.jsxs("div",{className:"flex gap-2 justify-end",children:[r.jsxs(X,{size:"sm",onClick:()=>Kt(U.id),className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(l1,{className:"w-4 h-4 mr-1"}),"通过"]}),r.jsxs(X,{size:"sm",variant:"outline",onClick:()=>Ns(U.id),className:"border-red-500/50 text-red-400 hover:bg-red-500/20",children:[r.jsx(vj,{className:"w-4 h-4 mr-1"}),"拒绝"]})]}),(U.status==="pending_confirm"||U.status==="processing")&&r.jsx("div",{className:"flex gap-2 justify-end",children:r.jsxs(X,{size:"sm",variant:"outline",onClick:()=>as(U.id),className:"border-amber-500/50 text-amber-400 hover:bg-amber-500/20",children:[r.jsx(hx,{className:"w-4 h-4 mr-1"}),"撤回打款"]})})]})]},U.id))})]})}),t==="withdrawals"&&r.jsx(Us,{page:W,totalPages:Un,total:K,pageSize:P,onPageChange:D,onPageSizeChange:U=>{R(U),D(1)}})]})})]}),t==="giftPay"&&r.jsx("div",{className:"space-y-4",children:r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsx(Qe,{children:r.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[r.jsx(Xe,{className:"text-white",children:"代付请求列表"}),r.jsxs("div",{className:"flex gap-2 items-center",children:[r.jsxs("select",{className:"bg-[#0a1628] border border-gray-700 text-white rounded px-3 py-1.5 text-sm",value:mt,onChange:U=>{Ut(U.target.value),Fe(1)},children:[r.jsx("option",{value:"",children:"全部状态"}),r.jsx("option",{value:"pending",children:"待支付(旧)"}),r.jsx("option",{value:"pending_pay",children:"待发起人支付"}),r.jsx("option",{value:"paid",children:"已支付"}),r.jsx("option",{value:"refunded",children:"已退款"}),r.jsx("option",{value:"cancelled",children:"已取消"}),r.jsx("option",{value:"expired",children:"已过期"})]}),r.jsxs(X,{size:"sm",variant:"outline",onClick:()=>void Mt(),disabled:g,className:"border-gray-600 text-gray-300",children:[r.jsx(Be,{className:`w-4 h-4 mr-1 ${g?"animate-spin":""}`}),"刷新"]})]})]})}),r.jsxs(Te,{children:[r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-gray-700/50",children:[r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"请求号"}),r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"发起人"}),r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"商品/金额"}),r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"份数/已领"}),r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"付款人"}),r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"状态"}),r.jsx("th",{className:"p-4 text-left font-medium text-gray-400",children:"创建时间"})]})}),r.jsx("tbody",{className:"divide-y divide-gray-700/50",children:te.map(U=>r.jsxs("tr",{className:"hover:bg-[#0a1628]",children:[r.jsx("td",{className:"p-4 font-mono text-xs text-gray-400",children:U.requestSn}),r.jsx("td",{className:"p-4",children:r.jsx("p",{className:"text-white text-sm",children:U.initiatorNick||U.initiatorUserId})}),r.jsxs("td",{className:"p-4",children:[r.jsxs("p",{className:"text-white",children:[U.productType," · ¥",U.amount.toFixed(2)]}),U.description&&r.jsx("p",{className:"text-gray-500 text-xs",children:U.description})]}),r.jsx("td",{className:"p-4 text-gray-400",children:(U.quantity??1)>1?`${U.quantity}份 / 已领${U.redeemedCount??0}`:"-"}),r.jsx("td",{className:"p-4 text-gray-400",children:U.payerNick||(U.payerUserId?U.payerUserId:"-")}),r.jsx("td",{className:"p-4",children:r.jsx(Je,{className:U.status==="paid"?"bg-green-500/20 text-green-400 border-0":U.status==="pending"||U.status==="pending_pay"?"bg-amber-500/20 text-amber-400 border-0":U.status==="refunded"?"bg-red-500/20 text-red-400 border-0":"bg-gray-500/20 text-gray-400 border-0",children:U.status==="paid"?"已支付":U.status==="pending"||U.status==="pending_pay"?"待支付":U.status==="refunded"?"已退款":U.status==="cancelled"?"已取消":"已过期"})}),r.jsx("td",{className:"p-4 text-gray-400 text-sm",children:U.createdAt?new Date(U.createdAt).toLocaleString("zh-CN"):"-"})]},U.id))})]})}),te.length===0&&!g&&r.jsx("p",{className:"text-center py-8 text-gray-500",children:"暂无代付请求"}),rt>20&&r.jsx("div",{className:"mt-4 flex justify-center",children:r.jsx(Us,{page:pe,totalPages:Math.ceil(rt/20),total:rt,pageSize:20,onPageChange:Fe,onPageSizeChange:()=>{}})})]})]})})]}),r.jsx(Lt,{open:!!H,onOpenChange:U=>!U&&O(null),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:"订单退款"})}),H&&r.jsxs("div",{className:"space-y-4",children:[r.jsxs("p",{className:"text-gray-400 text-sm",children:["订单号:",H.orderSn||H.id]}),r.jsxs("p",{className:"text-gray-400 text-sm",children:["退款金额:¥",typeof H.amount=="number"?H.amount.toFixed(2):parseFloat(String(H.amount||"0")).toFixed(2)]}),r.jsxs("div",{children:[r.jsx("label",{className:"text-sm text-gray-400 block mb-2",children:"退款原因(选填)"}),r.jsx("div",{className:"form-input",children:r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",placeholder:"如:用户申请退款",value:J,onChange:U=>$(U.target.value)})})]}),r.jsx("p",{className:"text-orange-400/80 text-xs",children:"退款将原路退回至用户微信,且无法撤销,请确认后再操作。"})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",className:"border-gray-600 text-gray-300",onClick:()=>O(null),disabled:M,children:"取消"}),r.jsx(X,{className:"bg-orange-500 hover:bg-orange-600 text-white",onClick:qs,disabled:M,children:M?"退款中...":"确认退款"})]})]})}),r.jsx(Lt,{open:!!B,onOpenChange:U=>!U&&rn(),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:"拒绝提现"})}),r.jsxs("div",{className:"space-y-4",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"拒绝后该笔提现金额将返还用户余额。"}),r.jsxs("div",{children:[r.jsx("label",{className:"text-sm text-gray-400 block mb-2",children:"拒绝原因(必填)"}),r.jsx("div",{className:"form-input",children:r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",placeholder:"请输入拒绝原因",value:G,onChange:U=>oe(U.target.value)})})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",className:"border-gray-600 text-gray-300",onClick:rn,disabled:ye,children:"取消"}),r.jsx(X,{className:"bg-red-600 hover:bg-red-700 text-white",onClick:is,disabled:ye||!G.trim(),children:ye?"提交中...":"确认拒绝"})]})]})}),t==="settings"&&r.jsx("div",{className:"-mx-8 -mt-6",children:r.jsx(oS,{embedded:!0})})]})}function zR(){const[t,e]=b.useState([]),[n,s]=b.useState({total:0,pendingCount:0,pendingAmount:0,successCount:0,successAmount:0,failedCount:0}),[a,i]=b.useState(!0),[o,c]=b.useState(null),[u,h]=b.useState("all"),[f,m]=b.useState(1),[g,y]=b.useState(10),[N,w]=b.useState(0),[v,k]=b.useState(null),[C,E]=b.useState(null),[I,L]=b.useState(""),[W,D]=b.useState(!1);async function P(){var O,J,$,M,q,B,z;i(!0),c(null);try{const G=new URLSearchParams({status:u,page:String(f),pageSize:String(g)}),oe=await Oe(`/api/admin/withdrawals?${G}`);if(oe!=null&&oe.success){const ye=oe.withdrawals||[];e(ye),w(oe.total??((O=oe.stats)==null?void 0:O.total)??ye.length),s({total:((J=oe.stats)==null?void 0:J.total)??oe.total??ye.length,pendingCount:(($=oe.stats)==null?void 0:$.pendingCount)??0,pendingAmount:((M=oe.stats)==null?void 0:M.pendingAmount)??0,successCount:((q=oe.stats)==null?void 0:q.successCount)??0,successAmount:((B=oe.stats)==null?void 0:B.successAmount)??0,failedCount:((z=oe.stats)==null?void 0:z.failedCount)??0})}else c("加载提现记录失败")}catch(G){console.error("Load withdrawals error:",G),c("加载失败,请检查网络后重试")}finally{i(!1)}}b.useEffect(()=>{m(1)},[u]),b.useEffect(()=>{P()},[u,f,g]);const R=Math.ceil(N/g)||1;async function K(O){const J=t.find($=>$.id===O);if(J!=null&&J.userCommissionInfo&&J.userCommissionInfo.availableAfterThis<0){if(!confirm(`⚠️ 风险警告:该用户审核后余额为负数(¥${J.userCommissionInfo.availableAfterThis.toFixed(2)}),可能存在超额提现。
确认已核实用户账户并完成打款?`))return}else if(!confirm("确认已完成打款?批准后将更新用户提现记录。"))return;k(O);try{const $=await Pt("/api/admin/withdrawals",{id:O,action:"approve"});$!=null&&$.success?P():se.error("操作失败: "+(($==null?void 0:$.error)??""))}catch{se.error("操作失败")}finally{k(null)}}function re(O){E(O),L("")}async function ue(){const O=C;if(!O)return;const J=I.trim();if(!J){se.error("请填写拒绝原因");return}D(!0);try{const $=await Pt("/api/admin/withdrawals",{id:O,action:"reject",errorMessage:J});$!=null&&$.success?(se.success("已拒绝该提现申请"),E(null),L(""),P()):se.error("操作失败: "+(($==null?void 0:$.error)??""))}catch{se.error("操作失败")}finally{D(!1)}}function xe(){C&&se.info("已取消操作"),E(null),L("")}function H(O){switch(O){case"pending":return r.jsx(Je,{className:"bg-orange-500/20 text-orange-400 hover:bg-orange-500/20 border-0",children:"待处理"});case"pending_confirm":return r.jsx(Je,{className:"bg-orange-500/20 text-orange-400 hover:bg-orange-500/20 border-0",children:"待用户确认"});case"processing":return r.jsx(Je,{className:"bg-blue-500/20 text-blue-400 hover:bg-blue-500/20 border-0",children:"已审批等待打款"});case"success":case"completed":return r.jsx(Je,{className:"bg-green-500/20 text-green-400 hover:bg-green-500/20 border-0",children:"已完成"});case"failed":case"rejected":return r.jsx(Je,{className:"bg-red-500/20 text-red-400 hover:bg-red-500/20 border-0",children:"已拒绝"});default:return r.jsx(Je,{className:"bg-gray-500/20 text-gray-400 border-0",children:O})}}return r.jsxs("div",{className:"p-8 w-full",children:[o&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-500/20 border border-red-500/50 text-red-400 text-sm flex items-center justify-between",children:[r.jsx("span",{children:o}),r.jsx("button",{type:"button",onClick:()=>c(null),className:"hover:text-red-300",children:"×"})]}),r.jsxs("div",{className:"flex justify-between items-start mb-8",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold text-white",children:"分账提现管理"}),r.jsx("p",{className:"text-gray-400 mt-1",children:"管理用户分销收益的提现申请"})]}),r.jsxs(X,{variant:"outline",onClick:P,disabled:a,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})]}),r.jsx(Ee,{className:"bg-gradient-to-r from-[#38bdac]/10 to-[#0f2137] border-[#38bdac]/30 mb-6",children:r.jsx(Te,{className:"p-4",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(Wh,{className:"w-5 h-5 text-[#38bdac] mt-0.5"}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-white font-medium mb-2",children:"自动分账规则"}),r.jsxs("div",{className:"text-sm text-gray-400 space-y-1",children:[r.jsxs("p",{children:["• ",r.jsx("span",{className:"text-[#38bdac]",children:"分销比例"}),":推广者获得订单金额的"," ",r.jsx("span",{className:"text-white font-medium",children:"90%"})]}),r.jsxs("p",{children:["• ",r.jsx("span",{className:"text-[#38bdac]",children:"结算方式"}),":用户付款后,分销收益自动计入推广者账户"]}),r.jsxs("p",{children:["• ",r.jsx("span",{className:"text-[#38bdac]",children:"提现方式"}),":用户在小程序端点击提现,系统自动转账到微信零钱"]}),r.jsxs("p",{children:["• ",r.jsx("span",{className:"text-[#38bdac]",children:"审批流程"}),":待处理的提现需管理员手动确认打款后批准(自动审批开关在推广中心-提现审核)"]})]})]})]})})}),r.jsxs("div",{className:"grid grid-cols-4 gap-4 mb-6",children:[r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-4 text-center",children:[r.jsx("div",{className:"text-3xl font-bold text-[#38bdac]",children:n.total}),r.jsx("div",{className:"text-sm text-gray-400",children:"总申请"})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-4 text-center",children:[r.jsx("div",{className:"text-3xl font-bold text-orange-400",children:n.pendingCount}),r.jsx("div",{className:"text-sm text-gray-400",children:"待处理"}),r.jsxs("div",{className:"text-xs text-orange-400 mt-1",children:["¥",n.pendingAmount.toFixed(2)]})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-4 text-center",children:[r.jsx("div",{className:"text-3xl font-bold text-green-400",children:n.successCount}),r.jsx("div",{className:"text-sm text-gray-400",children:"已完成"}),r.jsxs("div",{className:"text-xs text-green-400 mt-1",children:["¥",n.successAmount.toFixed(2)]})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsxs(Te,{className:"p-4 text-center",children:[r.jsx("div",{className:"text-3xl font-bold text-red-400",children:n.failedCount}),r.jsx("div",{className:"text-sm text-gray-400",children:"已拒绝"})]})})]}),r.jsx("div",{className:"flex gap-2 mb-4",children:["all","pending","success","failed"].map(O=>r.jsx(X,{variant:u===O?"default":"outline",size:"sm",onClick:()=>h(O),className:u===O?"bg-[#38bdac] hover:bg-[#2da396] text-white":"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:O==="all"?"全部":O==="pending"?"待处理":O==="success"?"已完成":"已拒绝"},O))}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:a?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):t.length===0?r.jsxs("div",{className:"text-center py-12",children:[r.jsx(tc,{className:"w-12 h-12 text-gray-600 mx-auto mb-3"}),r.jsx("p",{className:"text-gray-500",children:"暂无提现记录"})]}):r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"bg-[#0a1628] text-gray-400",children:[r.jsx("th",{className:"p-4 text-left font-medium",children:"申请时间"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"用户"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"提现金额"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"用户佣金信息"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"状态"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"备注"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"处理时间"}),r.jsx("th",{className:"p-4 text-left font-medium",children:"确认收款"}),r.jsx("th",{className:"p-4 text-right font-medium",children:"操作"})]})}),r.jsx("tbody",{className:"divide-y divide-gray-700/50",children:t.map(O=>r.jsxs("tr",{className:"hover:bg-[#0a1628] transition-colors",children:[r.jsx("td",{className:"p-4 text-gray-400",children:new Date(O.createdAt??"").toLocaleString()}),r.jsx("td",{className:"p-4",children:r.jsxs("div",{className:"flex items-center gap-2",children:[O.userAvatar?r.jsx("img",{src:O.userAvatar,alt:O.userName??"",className:"w-8 h-8 rounded-full object-cover"}):r.jsx("div",{className:"w-8 h-8 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm text-[#38bdac]",children:(O.userName??"?").charAt(0)}),r.jsxs("div",{children:[r.jsx("p",{className:"font-medium text-white",children:O.userName??"未知"}),r.jsx("p",{className:"text-xs text-gray-500",children:O.userPhone??O.referralCode??(O.userId??"").slice(0,10)})]})]})}),r.jsx("td",{className:"p-4",children:r.jsxs("span",{className:"font-bold text-orange-400",children:["¥",Number(O.amount).toFixed(2)]})}),r.jsx("td",{className:"p-4",children:O.userCommissionInfo?r.jsxs("div",{className:"text-xs space-y-1",children:[r.jsxs("div",{className:"flex justify-between gap-4",children:[r.jsx("span",{className:"text-gray-500",children:"累计佣金:"}),r.jsxs("span",{className:"text-[#38bdac] font-medium",children:["¥",O.userCommissionInfo.totalCommission.toFixed(2)]})]}),r.jsxs("div",{className:"flex justify-between gap-4",children:[r.jsx("span",{className:"text-gray-500",children:"已提现:"}),r.jsxs("span",{className:"text-gray-400",children:["¥",O.userCommissionInfo.withdrawnEarnings.toFixed(2)]})]}),r.jsxs("div",{className:"flex justify-between gap-4",children:[r.jsx("span",{className:"text-gray-500",children:"待审核:"}),r.jsxs("span",{className:"text-orange-400",children:["¥",O.userCommissionInfo.pendingWithdrawals.toFixed(2)]})]}),r.jsxs("div",{className:"flex justify-between gap-4 pt-1 border-t border-gray-700/30",children:[r.jsx("span",{className:"text-gray-500",children:"审核后余额:"}),r.jsxs("span",{className:O.userCommissionInfo.availableAfterThis>=0?"text-green-400 font-medium":"text-red-400 font-medium",children:["¥",O.userCommissionInfo.availableAfterThis.toFixed(2)]})]})]}):r.jsx("span",{className:"text-gray-500 text-xs",children:"暂无数据"})}),r.jsx("td",{className:"p-4",children:H(O.status)}),r.jsx("td",{className:"p-4 max-w-[180px]",children:r.jsx("span",{className:`text-xs ${O.status==="rejected"||O.status==="failed"?"text-red-400":"text-gray-400"}`,title:O.remark,children:O.remark||"-"})}),r.jsx("td",{className:"p-4 text-gray-400",children:O.processedAt?new Date(O.processedAt).toLocaleString():"-"}),r.jsx("td",{className:"p-4 text-gray-400",children:O.userConfirmedAt?r.jsxs("span",{className:"text-green-400",title:O.userConfirmedAt,children:["已确认 ",new Date(O.userConfirmedAt).toLocaleString()]}):"-"}),r.jsxs("td",{className:"p-4 text-right",children:[(O.status==="pending"||O.status==="pending_confirm")&&r.jsxs("div",{className:"flex items-center justify-end gap-2",children:[r.jsxs(X,{size:"sm",onClick:()=>K(O.id),disabled:v===O.id,className:"bg-green-600 hover:bg-green-700 text-white",children:[r.jsx(qf,{className:"w-4 h-4 mr-1"}),"批准"]}),r.jsxs(X,{size:"sm",variant:"outline",onClick:()=>re(O.id),disabled:v===O.id,className:"border-red-500/50 text-red-400 hover:bg-red-500/10 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-1"}),"拒绝"]})]}),(O.status==="success"||O.status==="completed")&&O.transactionId&&r.jsx("span",{className:"text-xs text-gray-500 font-mono",children:O.transactionId})]})]},O.id))})]})}),r.jsx(Us,{page:f,totalPages:R,total:N,pageSize:g,onPageChange:m,onPageSizeChange:O=>{y(O),m(1)}})]})})}),r.jsx(Lt,{open:!!C,onOpenChange:O=>!O&&xe(),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:"拒绝提现"})}),r.jsxs("div",{className:"space-y-4",children:[r.jsx("p",{className:"text-gray-400 text-sm",children:"拒绝后该笔提现金额将返还用户余额。"}),r.jsxs("div",{children:[r.jsx("label",{className:"text-sm text-gray-400 block mb-2",children:"拒绝原因(必填)"}),r.jsx("div",{className:"form-input",children:r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",placeholder:"请输入拒绝原因",value:I,onChange:O=>L(O.target.value)})})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",className:"border-gray-600 text-gray-300",onClick:xe,disabled:W,children:"取消"}),r.jsx(X,{className:"bg-red-600 hover:bg-red-700 text-white",onClick:ue,disabled:W||!I.trim(),children:W?"提交中...":"确认拒绝"})]})]})})]})}var gg={exports:{}},xg={};/**
* @license React
* use-sync-external-store-shim.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var O1;function FR(){if(O1)return xg;O1=1;var t=Kd();function e(m,g){return m===g&&(m!==0||1/m===1/g)||m!==m&&g!==g}var n=typeof Object.is=="function"?Object.is:e,s=t.useState,a=t.useEffect,i=t.useLayoutEffect,o=t.useDebugValue;function c(m,g){var y=g(),N=s({inst:{value:y,getSnapshot:g}}),w=N[0].inst,v=N[1];return i(function(){w.value=y,w.getSnapshot=g,u(w)&&v({inst:w})},[m,y,g]),a(function(){return u(w)&&v({inst:w}),m(function(){u(w)&&v({inst:w})})},[m]),o(y),y}function u(m){var g=m.getSnapshot;m=m.value;try{var y=g();return!n(m,y)}catch{return!0}}function h(m,g){return g()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?h:c;return xg.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:f,xg}var D1;function lS(){return D1||(D1=1,gg.exports=FR()),gg.exports}var cS=lS();function Qn(t){this.content=t}Qn.prototype={constructor:Qn,find:function(t){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===t)return e;return-1},get:function(t){var e=this.find(t);return e==-1?void 0:this.content[e+1]},update:function(t,e,n){var s=n&&n!=t?this.remove(n):this,a=s.find(t),i=s.content.slice();return a==-1?i.push(n||t,e):(i[a+1]=e,n&&(i[a]=n)),new Qn(i)},remove:function(t){var e=this.find(t);if(e==-1)return this;var n=this.content.slice();return n.splice(e,2),new Qn(n)},addToStart:function(t,e){return new Qn([t,e].concat(this.remove(t).content))},addToEnd:function(t,e){var n=this.remove(t).content.slice();return n.push(t,e),new Qn(n)},addBefore:function(t,e,n){var s=this.remove(e),a=s.content.slice(),i=s.find(t);return a.splice(i==-1?a.length:i,0,e,n),new Qn(a)},forEach:function(t){for(var e=0;e<this.content.length;e+=2)t(this.content[e],this.content[e+1])},prepend:function(t){return t=Qn.from(t),t.size?new Qn(t.content.concat(this.subtract(t).content)):this},append:function(t){return t=Qn.from(t),t.size?new Qn(this.subtract(t).content.concat(t.content)):this},subtract:function(t){var e=this;t=Qn.from(t);for(var n=0;n<t.content.length;n+=2)e=e.remove(t.content[n]);return e},toObject:function(){var t={};return this.forEach(function(e,n){t[e]=n}),t},get size(){return this.content.length>>1}};Qn.from=function(t){if(t instanceof Qn)return t;var e=[];if(t)for(var n in t)e.push(n,t[n]);return new Qn(e)};function dS(t,e,n){for(let s=0;;s++){if(s==t.childCount||s==e.childCount)return t.childCount==e.childCount?null:n;let a=t.child(s),i=e.child(s);if(a==i){n+=a.nodeSize;continue}if(!a.sameMarkup(i))return n;if(a.isText&&a.text!=i.text){for(let o=0;a.text[o]==i.text[o];o++)n++;return n}if(a.content.size||i.content.size){let o=dS(a.content,i.content,n+1);if(o!=null)return o}n+=a.nodeSize}}function uS(t,e,n,s){for(let a=t.childCount,i=e.childCount;;){if(a==0||i==0)return a==i?null:{a:n,b:s};let o=t.child(--a),c=e.child(--i),u=o.nodeSize;if(o==c){n-=u,s-=u;continue}if(!o.sameMarkup(c))return{a:n,b:s};if(o.isText&&o.text!=c.text){let h=0,f=Math.min(o.text.length,c.text.length);for(;h<f&&o.text[o.text.length-h-1]==c.text[c.text.length-h-1];)h++,n--,s--;return{a:n,b:s}}if(o.content.size||c.content.size){let h=uS(o.content,c.content,n-1,s-1);if(h)return h}n-=u,s-=u}}class Ne{constructor(e,n){if(this.content=e,this.size=n||0,n==null)for(let s=0;s<e.length;s++)this.size+=e[s].nodeSize}nodesBetween(e,n,s,a=0,i){for(let o=0,c=0;c<n;o++){let u=this.content[o],h=c+u.nodeSize;if(h>e&&s(u,a+c,i||null,o)!==!1&&u.content.size){let f=c+1;u.nodesBetween(Math.max(0,e-f),Math.min(u.content.size,n-f),s,a+f)}c=h}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,s,a){let i="",o=!0;return this.nodesBetween(e,n,(c,u)=>{let h=c.isText?c.text.slice(Math.max(e,u)-u,n-u):c.isLeaf?a?typeof a=="function"?a(c):a:c.type.spec.leafText?c.type.spec.leafText(c):"":"";c.isBlock&&(c.isLeaf&&h||c.isTextblock)&&s&&(o?o=!1:i+=s),i+=h},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,s=e.firstChild,a=this.content.slice(),i=0;for(n.isText&&n.sameMarkup(s)&&(a[a.length-1]=n.withText(n.text+s.text),i=1);i<e.content.length;i++)a.push(e.content[i]);return new Ne(a,this.size+e.size)}cut(e,n=this.size){if(e==0&&n==this.size)return this;let s=[],a=0;if(n>e)for(let i=0,o=0;o<n;i++){let c=this.content[i],u=o+c.nodeSize;u>e&&((o<e||u>n)&&(c.isText?c=c.cut(Math.max(0,e-o),Math.min(c.text.length,n-o)):c=c.cut(Math.max(0,e-o-1),Math.min(c.content.size,n-o-1))),s.push(c),a+=c.nodeSize),o=u}return new Ne(s,a)}cutByIndex(e,n){return e==n?Ne.empty:e==0&&n==this.content.length?this:new Ne(this.content.slice(e,n))}replaceChild(e,n){let s=this.content[e];if(s==n)return this;let a=this.content.slice(),i=this.size+n.nodeSize-s.nodeSize;return a[e]=n,new Ne(a,i)}addToStart(e){return new Ne([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new Ne(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;n<this.content.length;n++)if(!this.content[n].eq(e.content[n]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let n=this.content[e];if(!n)throw new RangeError("Index "+e+" out of range for "+this);return n}maybeChild(e){return this.content[e]||null}forEach(e){for(let n=0,s=0;n<this.content.length;n++){let a=this.content[n];e(a,s,n),s+=a.nodeSize}}findDiffStart(e,n=0){return dS(this,e,n)}findDiffEnd(e,n=this.size,s=e.size){return uS(this,e,n,s)}findIndex(e){if(e==0)return mh(0,e);if(e==this.size)return mh(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,s=0;;n++){let a=this.child(n),i=s+a.nodeSize;if(i>=e)return i==e?mh(n+1,i):mh(n,s);s=i}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return Ne.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new Ne(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return Ne.empty;let n,s=0;for(let a=0;a<e.length;a++){let i=e[a];s+=i.nodeSize,a&&i.isText&&e[a-1].sameMarkup(i)?(n||(n=e.slice(0,a)),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new Ne(n||e,s)}static from(e){if(!e)return Ne.empty;if(e instanceof Ne)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new Ne([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}Ne.empty=new Ne([],0);const yg={index:0,offset:0};function mh(t,e){return yg.index=t,yg.offset=e,yg}function Yh(t,e){if(t===e)return!0;if(!(t&&typeof t=="object")||!(e&&typeof e=="object"))return!1;let n=Array.isArray(t);if(Array.isArray(e)!=n)return!1;if(n){if(t.length!=e.length)return!1;for(let s=0;s<t.length;s++)if(!Yh(t[s],e[s]))return!1}else{for(let s in t)if(!(s in e)||!Yh(t[s],e[s]))return!1;for(let s in e)if(!(s in t))return!1}return!0}let Wt=class vx{constructor(e,n){this.type=e,this.attrs=n}addToSet(e){let n,s=!1;for(let a=0;a<e.length;a++){let i=e[a];if(this.eq(i))return e;if(this.type.excludes(i.type))n||(n=e.slice(0,a));else{if(i.type.excludes(this.type))return e;!s&&i.type.rank>this.type.rank&&(n||(n=e.slice(0,a)),n.push(this),s=!0),n&&n.push(i)}}return n||(n=e.slice()),s||n.push(this),n}removeFromSet(e){for(let n=0;n<e.length;n++)if(this.eq(e[n]))return e.slice(0,n).concat(e.slice(n+1));return e}isInSet(e){for(let n=0;n<e.length;n++)if(this.eq(e[n]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Yh(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Mark.fromJSON");let s=e.marks[n.type];if(!s)throw new RangeError(`There is no mark type ${n.type} in this schema`);let a=s.create(n.attrs);return s.checkAttrs(a.attrs),a}static sameSet(e,n){if(e==n)return!0;if(e.length!=n.length)return!1;for(let s=0;s<e.length;s++)if(!e[s].eq(n[s]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return vx.none;if(e instanceof vx)return[e];let n=e.slice();return n.sort((s,a)=>s.type.rank-a.type.rank),n}};Wt.none=[];class Qh extends Error{}class Le{constructor(e,n,s){this.content=e,this.openStart=n,this.openEnd=s}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let s=fS(this.content,e+this.openStart,n);return s&&new Le(s,this.openStart,this.openEnd)}removeBetween(e,n){return new Le(hS(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return Le.empty;let s=n.openStart||0,a=n.openEnd||0;if(typeof s!="number"||typeof a!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new Le(Ne.fromJSON(e,n.content),s,a)}static maxOpen(e,n=!0){let s=0,a=0;for(let i=e.firstChild;i&&!i.isLeaf&&(n||!i.type.spec.isolating);i=i.firstChild)s++;for(let i=e.lastChild;i&&!i.isLeaf&&(n||!i.type.spec.isolating);i=i.lastChild)a++;return new Le(e,s,a)}}Le.empty=new Le(Ne.empty,0,0);function hS(t,e,n){let{index:s,offset:a}=t.findIndex(e),i=t.maybeChild(s),{index:o,offset:c}=t.findIndex(n);if(a==e||i.isText){if(c!=n&&!t.child(o).isText)throw new RangeError("Removing non-flat range");return t.cut(0,e).append(t.cut(n))}if(s!=o)throw new RangeError("Removing non-flat range");return t.replaceChild(s,i.copy(hS(i.content,e-a-1,n-a-1)))}function fS(t,e,n,s){let{index:a,offset:i}=t.findIndex(e),o=t.maybeChild(a);if(i==e||o.isText)return s&&!s.canReplace(a,a,n)?null:t.cut(0,e).append(n).append(t.cut(e));let c=fS(o.content,e-i-1,n,o);return c&&t.replaceChild(a,o.copy(c))}function $R(t,e,n){if(n.openStart>t.depth)throw new Qh("Inserted content deeper than insertion position");if(t.depth-n.openStart!=e.depth-n.openEnd)throw new Qh("Inconsistent open depths");return pS(t,e,n,0)}function pS(t,e,n,s){let a=t.index(s),i=t.node(s);if(a==e.index(s)&&s<t.depth-n.openStart){let o=pS(t,e,n,s+1);return i.copy(i.content.replaceChild(a,o))}else if(n.content.size)if(!n.openStart&&!n.openEnd&&t.depth==s&&e.depth==s){let o=t.parent,c=o.content;return $o(o,c.cut(0,t.parentOffset).append(n.content).append(c.cut(e.parentOffset)))}else{let{start:o,end:c}=BR(n,t);return $o(i,gS(t,o,c,e,s))}else return $o(i,Xh(t,e,s))}function mS(t,e){if(!e.type.compatibleContent(t.type))throw new Qh("Cannot join "+e.type.name+" onto "+t.type.name)}function Nx(t,e,n){let s=t.node(n);return mS(s,e.node(n)),s}function Fo(t,e){let n=e.length-1;n>=0&&t.isText&&t.sameMarkup(e[n])?e[n]=t.withText(e[n].text+t.text):e.push(t)}function yd(t,e,n,s){let a=(e||t).node(n),i=0,o=e?e.index(n):a.childCount;t&&(i=t.index(n),t.depth>n?i++:t.textOffset&&(Fo(t.nodeAfter,s),i++));for(let c=i;c<o;c++)Fo(a.child(c),s);e&&e.depth==n&&e.textOffset&&Fo(e.nodeBefore,s)}function $o(t,e){return t.type.checkContent(e),t.copy(e)}function gS(t,e,n,s,a){let i=t.depth>a&&Nx(t,e,a+1),o=s.depth>a&&Nx(n,s,a+1),c=[];return yd(null,t,a,c),i&&o&&e.index(a)==n.index(a)?(mS(i,o),Fo($o(i,gS(t,e,n,s,a+1)),c)):(i&&Fo($o(i,Xh(t,e,a+1)),c),yd(e,n,a,c),o&&Fo($o(o,Xh(n,s,a+1)),c)),yd(s,null,a,c),new Ne(c)}function Xh(t,e,n){let s=[];if(yd(null,t,n,s),t.depth>n){let a=Nx(t,e,n+1);Fo($o(a,Xh(t,e,n+1)),s)}return yd(e,null,n,s),new Ne(s)}function BR(t,e){let n=e.depth-t.openStart,a=e.node(n).copy(t.content);for(let i=n-1;i>=0;i--)a=e.node(i).copy(Ne.from(a));return{start:a.resolveNoCache(t.openStart+n),end:a.resolveNoCache(a.content.size-t.openEnd-n)}}class Rd{constructor(e,n,s){this.pos=e,this.path=n,this.parentOffset=s,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let s=this.pos-this.path[this.path.length-1],a=e.child(n);return s?e.child(n).cut(s):a}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let s=this.path[n*3],a=n==0?0:this.path[n*3-1]+1;for(let i=0;i<e;i++)a+=s.child(i).nodeSize;return a}marks(){let e=this.parent,n=this.index();if(e.content.size==0)return Wt.none;if(this.textOffset)return e.child(n).marks;let s=e.maybeChild(n-1),a=e.maybeChild(n);if(!s){let c=s;s=a,a=c}let i=s.marks;for(var o=0;o<i.length;o++)i[o].type.spec.inclusive===!1&&(!a||!i[o].isInSet(a.marks))&&(i=i[o--].removeFromSet(i));return i}marksAcross(e){let n=this.parent.maybeChild(this.index());if(!n||!n.isInline)return null;let s=n.marks,a=e.parent.maybeChild(e.index());for(var i=0;i<s.length;i++)s[i].type.spec.inclusive===!1&&(!a||!s[i].isInSet(a.marks))&&(s=s[i--].removeFromSet(s));return s}sharedDepth(e){for(let n=this.depth;n>0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos<this.pos)return e.blockRange(this);for(let s=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);s>=0;s--)if(e.pos<=this.end(s)&&(!n||n(this.node(s))))return new Zh(this,e,s);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let n=1;n<=this.depth;n++)e+=(e?"/":"")+this.node(n).type.name+"_"+this.index(n-1);return e+":"+this.parentOffset}static resolve(e,n){if(!(n>=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let s=[],a=0,i=n;for(let o=e;;){let{index:c,offset:u}=o.content.findIndex(i),h=i-u;if(s.push(o,c,a+u),!h||(o=o.child(c),o.isText))break;i=h-1,a+=u+1}return new Rd(n,s,i)}static resolveCached(e,n){let s=L1.get(e);if(s)for(let i=0;i<s.elts.length;i++){let o=s.elts[i];if(o.pos==n)return o}else L1.set(e,s=new VR);let a=s.elts[s.i]=Rd.resolve(e,n);return s.i=(s.i+1)%HR,a}}class VR{constructor(){this.elts=[],this.i=0}}const HR=12,L1=new WeakMap;class Zh{constructor(e,n,s){this.$from=e,this.$to=n,this.depth=s}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const WR=Object.create(null);let Wa=class wx{constructor(e,n,s,a=Wt.none){this.type=e,this.attrs=n,this.marks=a,this.content=s||Ne.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,n,s,a=0){this.content.nodesBetween(e,n,s,a,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,n,s,a){return this.content.textBetween(e,n,s,a)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,n,s){return this.type==e&&Yh(this.attrs,n||e.defaultAttrs||WR)&&Wt.sameSet(this.marks,s||Wt.none)}copy(e=null){return e==this.content?this:new wx(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new wx(this.type,this.attrs,this.content,e)}cut(e,n=this.content.size){return e==0&&n==this.content.size?this:this.copy(this.content.cut(e,n))}slice(e,n=this.content.size,s=!1){if(e==n)return Le.empty;let a=this.resolve(e),i=this.resolve(n),o=s?0:a.sharedDepth(n),c=a.start(o),h=a.node(o).content.cut(a.pos-c,i.pos-c);return new Le(h,a.depth-o,i.depth-o)}replace(e,n,s){return $R(this.resolve(e),this.resolve(n),s)}nodeAt(e){for(let n=this;;){let{index:s,offset:a}=n.content.findIndex(e);if(n=n.maybeChild(s),!n)return null;if(a==e||n.isText)return n;e-=a+1}}childAfter(e){let{index:n,offset:s}=this.content.findIndex(e);return{node:this.content.maybeChild(n),index:n,offset:s}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:n,offset:s}=this.content.findIndex(e);if(s<e)return{node:this.content.child(n),index:n,offset:s};let a=this.content.child(n-1);return{node:a,index:n-1,offset:s-a.nodeSize}}resolve(e){return Rd.resolveCached(this,e)}resolveNoCache(e){return Rd.resolve(this,e)}rangeHasMark(e,n,s){let a=!1;return n>e&&this.nodesBetween(e,n,i=>(s.isInSet(i.marks)&&(a=!0),!a)),a}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),xS(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,s=Ne.empty,a=0,i=s.childCount){let o=this.contentMatchAt(e).matchFragment(s,a,i),c=o&&o.matchFragment(this.content,n);if(!c||!c.validEnd)return!1;for(let u=a;u<i;u++)if(!this.type.allowsMarks(s.child(u).marks))return!1;return!0}canReplaceWith(e,n,s,a){if(a&&!this.type.allowsMarks(a))return!1;let i=this.contentMatchAt(e).matchType(s),o=i&&i.matchFragment(this.content,n);return o?o.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=Wt.none;for(let n=0;n<this.marks.length;n++){let s=this.marks[n];s.type.checkAttrs(s.attrs),e=s.addToSet(e)}if(!Wt.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(n=>n.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let s;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");s=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,s)}let a=Ne.fromJSON(e,n.content),i=e.nodeType(n.type).create(n.attrs,a,s);return i.type.checkAttrs(i.attrs),i}};Wa.prototype.text=void 0;class ef extends Wa{constructor(e,n,s,a){if(super(e,n,null,a),!s)throw new RangeError("Empty text nodes are not allowed");this.text=s}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):xS(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new ef(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new ef(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function xS(t,e){for(let n=t.length-1;n>=0;n--)e=t[n].type.name+"("+e+")";return e}class qo{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let s=new UR(e,n);if(s.next==null)return qo.empty;let a=yS(s);s.next&&s.err("Unexpected trailing text");let i=XR(QR(a));return ZR(i,s),i}matchType(e){for(let n=0;n<this.next.length;n++)if(this.next[n].type==e)return this.next[n].next;return null}matchFragment(e,n=0,s=e.childCount){let a=this;for(let i=n;a&&i<s;i++)a=a.matchType(e.child(i).type);return a}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:n}=this.next[e];if(!(n.isText||n.hasRequiredAttrs()))return n}return null}compatible(e){for(let n=0;n<this.next.length;n++)for(let s=0;s<e.next.length;s++)if(this.next[n].type==e.next[s].type)return!0;return!1}fillBefore(e,n=!1,s=0){let a=[this];function i(o,c){let u=o.matchFragment(e,s);if(u&&(!n||u.validEnd))return Ne.from(c.map(h=>h.createAndFill()));for(let h=0;h<o.next.length;h++){let{type:f,next:m}=o.next[h];if(!(f.isText||f.hasRequiredAttrs())&&a.indexOf(m)==-1){a.push(m);let g=i(m,c.concat(f));if(g)return g}}return null}return i(this,[])}findWrapping(e){for(let s=0;s<this.wrapCache.length;s+=2)if(this.wrapCache[s]==e)return this.wrapCache[s+1];let n=this.computeWrapping(e);return this.wrapCache.push(e,n),n}computeWrapping(e){let n=Object.create(null),s=[{match:this,type:null,via:null}];for(;s.length;){let a=s.shift(),i=a.match;if(i.matchType(e)){let o=[];for(let c=a;c.type;c=c.via)o.push(c.type);return o.reverse()}for(let o=0;o<i.next.length;o++){let{type:c,next:u}=i.next[o];!c.isLeaf&&!c.hasRequiredAttrs()&&!(c.name in n)&&(!a.type||u.validEnd)&&(s.push({match:c.contentMatch,type:c,via:a}),n[c.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(s){e.push(s);for(let a=0;a<s.next.length;a++)e.indexOf(s.next[a].next)==-1&&n(s.next[a].next)}return n(this),e.map((s,a)=>{let i=a+(s.validEnd?"*":" ")+" ";for(let o=0;o<s.next.length;o++)i+=(o?", ":"")+s.next[o].type.name+"->"+e.indexOf(s.next[o].next);return i}).join(`
`)}}qo.empty=new qo(!0);class UR{constructor(e,n){this.string=e,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function yS(t){let e=[];do e.push(KR(t));while(t.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function KR(t){let e=[];do e.push(qR(t));while(t.next&&t.next!=")"&&t.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function qR(t){let e=YR(t);for(;;)if(t.eat("+"))e={type:"plus",expr:e};else if(t.eat("*"))e={type:"star",expr:e};else if(t.eat("?"))e={type:"opt",expr:e};else if(t.eat("{"))e=GR(t,e);else break;return e}function _1(t){/\D/.test(t.next)&&t.err("Expected number, got '"+t.next+"'");let e=Number(t.next);return t.pos++,e}function GR(t,e){let n=_1(t),s=n;return t.eat(",")&&(t.next!="}"?s=_1(t):s=-1),t.eat("}")||t.err("Unclosed braced range"),{type:"range",min:n,max:s,expr:e}}function JR(t,e){let n=t.nodeTypes,s=n[e];if(s)return[s];let a=[];for(let i in n){let o=n[i];o.isInGroup(e)&&a.push(o)}return a.length==0&&t.err("No node type or group '"+e+"' found"),a}function YR(t){if(t.eat("(")){let e=yS(t);return t.eat(")")||t.err("Missing closing paren"),e}else if(/\W/.test(t.next))t.err("Unexpected token '"+t.next+"'");else{let e=JR(t,t.next).map(n=>(t.inline==null?t.inline=n.isInline:t.inline!=n.isInline&&t.err("Mixing inline and block content"),{type:"name",value:n}));return t.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function QR(t){let e=[[]];return a(i(t,0),n()),e;function n(){return e.push([])-1}function s(o,c,u){let h={term:u,to:c};return e[o].push(h),h}function a(o,c){o.forEach(u=>u.to=c)}function i(o,c){if(o.type=="choice")return o.exprs.reduce((u,h)=>u.concat(i(h,c)),[]);if(o.type=="seq")for(let u=0;;u++){let h=i(o.exprs[u],c);if(u==o.exprs.length-1)return h;a(h,c=n())}else if(o.type=="star"){let u=n();return s(c,u),a(i(o.expr,u),u),[s(u)]}else if(o.type=="plus"){let u=n();return a(i(o.expr,c),u),a(i(o.expr,u),u),[s(u)]}else{if(o.type=="opt")return[s(c)].concat(i(o.expr,c));if(o.type=="range"){let u=c;for(let h=0;h<o.min;h++){let f=n();a(i(o.expr,u),f),u=f}if(o.max==-1)a(i(o.expr,u),u);else for(let h=o.min;h<o.max;h++){let f=n();s(u,f),a(i(o.expr,u),f),u=f}return[s(u)]}else{if(o.type=="name")return[s(c,void 0,o.value)];throw new Error("Unknown expr type")}}}}function bS(t,e){return e-t}function z1(t,e){let n=[];return s(e),n.sort(bS);function s(a){let i=t[a];if(i.length==1&&!i[0].term)return s(i[0].to);n.push(a);for(let o=0;o<i.length;o++){let{term:c,to:u}=i[o];!c&&n.indexOf(u)==-1&&s(u)}}}function XR(t){let e=Object.create(null);return n(z1(t,0));function n(s){let a=[];s.forEach(o=>{t[o].forEach(({term:c,to:u})=>{if(!c)return;let h;for(let f=0;f<a.length;f++)a[f][0]==c&&(h=a[f][1]);z1(t,u).forEach(f=>{h||a.push([c,h=[]]),h.indexOf(f)==-1&&h.push(f)})})});let i=e[s.join(",")]=new qo(s.indexOf(t.length-1)>-1);for(let o=0;o<a.length;o++){let c=a[o][1].sort(bS);i.next.push({type:a[o][0],next:e[c.join(",")]||n(c)})}return i}}function ZR(t,e){for(let n=0,s=[t];n<s.length;n++){let a=s[n],i=!a.validEnd,o=[];for(let c=0;c<a.next.length;c++){let{type:u,next:h}=a.next[c];o.push(u.name),i&&!(u.isText||u.hasRequiredAttrs())&&(i=!1),s.indexOf(h)==-1&&s.push(h)}i&&e.err("Only non-generatable nodes ("+o.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function vS(t){let e=Object.create(null);for(let n in t){let s=t[n];if(!s.hasDefault)return null;e[n]=s.default}return e}function NS(t,e){let n=Object.create(null);for(let s in t){let a=e&&e[s];if(a===void 0){let i=t[s];if(i.hasDefault)a=i.default;else throw new RangeError("No value supplied for attribute "+s)}n[s]=a}return n}function wS(t,e,n,s){for(let a in e)if(!(a in t))throw new RangeError(`Unsupported attribute ${a} for ${n} of type ${a}`);for(let a in t){let i=t[a];i.validate&&i.validate(e[a])}}function jS(t,e){let n=Object.create(null);if(e)for(let s in e)n[s]=new tO(t,s,e[s]);return n}let F1=class kS{constructor(e,n,s){this.name=e,this.schema=n,this.spec=s,this.markSet=null,this.groups=s.group?s.group.split(" "):[],this.attrs=jS(e,s.attrs),this.defaultAttrs=vS(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(s.inline||e=="text"),this.isText=e=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==qo.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:NS(this.attrs,e)}create(e=null,n,s){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Wa(this,this.computeAttrs(e),Ne.from(n),Wt.setFrom(s))}createChecked(e=null,n,s){return n=Ne.from(n),this.checkContent(n),new Wa(this,this.computeAttrs(e),n,Wt.setFrom(s))}createAndFill(e=null,n,s){if(e=this.computeAttrs(e),n=Ne.from(n),n.size){let o=this.contentMatch.fillBefore(n);if(!o)return null;n=o.append(n)}let a=this.contentMatch.matchFragment(n),i=a&&a.fillBefore(Ne.empty,!0);return i?new Wa(this,e,n.append(i),Wt.setFrom(s)):null}validContent(e){let n=this.contentMatch.matchFragment(e);if(!n||!n.validEnd)return!1;for(let s=0;s<e.childCount;s++)if(!this.allowsMarks(e.child(s).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){wS(this.attrs,e,"node",this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let n=0;n<e.length;n++)if(!this.allowsMarkType(e[n].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let n;for(let s=0;s<e.length;s++)this.allowsMarkType(e[s].type)?n&&n.push(e[s]):n||(n=e.slice(0,s));return n?n.length?n:Wt.none:e}static compile(e,n){let s=Object.create(null);e.forEach((i,o)=>s[i]=new kS(i,n,o));let a=n.spec.topNode||"doc";if(!s[a])throw new RangeError("Schema is missing its top node type ('"+a+"')");if(!s.text)throw new RangeError("Every schema needs a 'text' type");for(let i in s.text.attrs)throw new RangeError("The text node type should not have attributes");return s}};function eO(t,e,n){let s=n.split("|");return a=>{let i=a===null?"null":typeof a;if(s.indexOf(i)<0)throw new RangeError(`Expected value of type ${s} for attribute ${e} on type ${t}, got ${i}`)}}class tO{constructor(e,n,s){this.hasDefault=Object.prototype.hasOwnProperty.call(s,"default"),this.default=s.default,this.validate=typeof s.validate=="string"?eO(e,n,s.validate):s.validate}get isRequired(){return!this.hasDefault}}class np{constructor(e,n,s,a){this.name=e,this.rank=n,this.schema=s,this.spec=a,this.attrs=jS(e,a.attrs),this.excluded=null;let i=vS(this.attrs);this.instance=i?new Wt(this,i):null}create(e=null){return!e&&this.instance?this.instance:new Wt(this,NS(this.attrs,e))}static compile(e,n){let s=Object.create(null),a=0;return e.forEach((i,o)=>s[i]=new np(i,a++,n,o)),s}removeFromSet(e){for(var n=0;n<e.length;n++)e[n].type==this&&(e=e.slice(0,n).concat(e.slice(n+1)),n--);return e}isInSet(e){for(let n=0;n<e.length;n++)if(e[n].type==this)return e[n]}checkAttrs(e){wS(this.attrs,e,"mark",this.name)}excludes(e){return this.excluded.indexOf(e)>-1}}class SS{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let a in e)n[a]=e[a];n.nodes=Qn.from(e.nodes),n.marks=Qn.from(e.marks||{}),this.nodes=F1.compile(this.spec.nodes,this),this.marks=np.compile(this.spec.marks,this);let s=Object.create(null);for(let a in this.nodes){if(a in this.marks)throw new RangeError(a+" can not be both a node and a mark");let i=this.nodes[a],o=i.spec.content||"",c=i.spec.marks;if(i.contentMatch=s[o]||(s[o]=qo.parse(o,this.nodes)),i.inlineContent=i.contentMatch.inlineContent,i.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!i.isInline||!i.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=i}i.markSet=c=="_"?null:c?$1(this,c.split(" ")):c==""||!i.inlineContent?[]:null}for(let a in this.marks){let i=this.marks[a],o=i.spec.excludes;i.excluded=o==null?[i]:o==""?[]:$1(this,o.split(" "))}this.nodeFromJSON=a=>Wa.fromJSON(this,a),this.markFromJSON=a=>Wt.fromJSON(this,a),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,n=null,s,a){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof F1){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(n,s,a)}text(e,n){let s=this.nodes.text;return new ef(s,s.defaultAttrs,e,Wt.setFrom(n))}mark(e,n){return typeof e=="string"&&(e=this.marks[e]),e.create(n)}nodeType(e){let n=this.nodes[e];if(!n)throw new RangeError("Unknown node type: "+e);return n}}function $1(t,e){let n=[];for(let s=0;s<e.length;s++){let a=e[s],i=t.marks[a],o=i;if(i)n.push(i);else for(let c in t.marks){let u=t.marks[c];(a=="_"||u.spec.group&&u.spec.group.split(" ").indexOf(a)>-1)&&n.push(o=u)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[s]+"'")}return n}function nO(t){return t.tag!=null}function sO(t){return t.style!=null}class _i{constructor(e,n){this.schema=e,this.rules=n,this.tags=[],this.styles=[];let s=this.matchedStyles=[];n.forEach(a=>{if(nO(a))this.tags.push(a);else if(sO(a)){let i=/[^=]*/.exec(a.style)[0];s.indexOf(i)<0&&s.push(i),this.styles.push(a)}}),this.normalizeLists=!this.tags.some(a=>{if(!/^(ul|ol)\b/.test(a.tag)||!a.node)return!1;let i=e.nodes[a.node];return i.contentMatch.matchType(i)})}parse(e,n={}){let s=new V1(this,n,!1);return s.addAll(e,Wt.none,n.from,n.to),s.finish()}parseSlice(e,n={}){let s=new V1(this,n,!0);return s.addAll(e,Wt.none,n.from,n.to),Le.maxOpen(s.finish())}matchTag(e,n,s){for(let a=s?this.tags.indexOf(s)+1:0;a<this.tags.length;a++){let i=this.tags[a];if(iO(e,i.tag)&&(i.namespace===void 0||e.namespaceURI==i.namespace)&&(!i.context||n.matchesContext(i.context))){if(i.getAttrs){let o=i.getAttrs(e);if(o===!1)continue;i.attrs=o||void 0}return i}}}matchStyle(e,n,s,a){for(let i=a?this.styles.indexOf(a)+1:0;i<this.styles.length;i++){let o=this.styles[i],c=o.style;if(!(c.indexOf(e)!=0||o.context&&!s.matchesContext(o.context)||c.length>e.length&&(c.charCodeAt(e.length)!=61||c.slice(e.length+1)!=n))){if(o.getAttrs){let u=o.getAttrs(n);if(u===!1)continue;o.attrs=u||void 0}return o}}}static schemaRules(e){let n=[];function s(a){let i=a.priority==null?50:a.priority,o=0;for(;o<n.length;o++){let c=n[o];if((c.priority==null?50:c.priority)<i)break}n.splice(o,0,a)}for(let a in e.marks){let i=e.marks[a].spec.parseDOM;i&&i.forEach(o=>{s(o=H1(o)),o.mark||o.ignore||o.clearMark||(o.mark=a)})}for(let a in e.nodes){let i=e.nodes[a].spec.parseDOM;i&&i.forEach(o=>{s(o=H1(o)),o.node||o.ignore||o.mark||(o.node=a)})}return n}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new _i(e,_i.schemaRules(e)))}}const CS={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},rO={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},ES={ol:!0,ul:!0},Od=1,jx=2,bd=4;function B1(t,e,n){return e!=null?(e?Od:0)|(e==="full"?jx:0):t&&t.whitespace=="pre"?Od|jx:n&~bd}class gh{constructor(e,n,s,a,i,o){this.type=e,this.attrs=n,this.marks=s,this.solid=a,this.options=o,this.content=[],this.activeMarks=Wt.none,this.match=i||(o&bd?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(Ne.from(e));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let s=this.type.contentMatch,a;return(a=s.findWrapping(e.type))?(this.match=s,a):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Od)){let s=this.content[this.content.length-1],a;if(s&&s.isText&&(a=/[ \t\r\n\u000c]+$/.exec(s.text))){let i=s;s.text.length==a[0].length?this.content.pop():this.content[this.content.length-1]=i.withText(i.text.slice(0,i.text.length-a[0].length))}}let n=Ne.from(this.content);return!e&&this.match&&(n=n.append(this.match.fillBefore(Ne.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!CS.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class V1{constructor(e,n,s){this.parser=e,this.options=n,this.isOpen=s,this.open=0,this.localPreserveWS=!1;let a=n.topNode,i,o=B1(null,n.preserveWhitespace,0)|(s?bd:0);a?i=new gh(a.type,a.attrs,Wt.none,!0,n.topMatch||a.type.contentMatch,o):s?i=new gh(null,null,Wt.none,!0,null,o):i=new gh(e.schema.topNodeType,null,Wt.none,!0,null,o),this.nodes=[i],this.find=n.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,n){e.nodeType==3?this.addTextNode(e,n):e.nodeType==1&&this.addElement(e,n)}addTextNode(e,n){let s=e.nodeValue,a=this.top,i=a.options&jx?"full":this.localPreserveWS||(a.options&Od)>0,{schema:o}=this.parser;if(i==="full"||a.inlineContext(e)||/[^ \t\r\n\u000c]/.test(s)){if(i)if(i==="full")s=s.replace(/\r\n?/g,`
`);else if(o.linebreakReplacement&&/[\r\n]/.test(s)&&this.top.findWrapping(o.linebreakReplacement.create())){let c=s.split(/\r?\n|\r/);for(let u=0;u<c.length;u++)u&&this.insertNode(o.linebreakReplacement.create(),n,!0),c[u]&&this.insertNode(o.text(c[u]),n,!/\S/.test(c[u]));s=""}else s=s.replace(/\r?\n|\r/g," ");else if(s=s.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(s)&&this.open==this.nodes.length-1){let c=a.content[a.content.length-1],u=e.previousSibling;(!c||u&&u.nodeName=="BR"||c.isText&&/[ \t\r\n\u000c]$/.test(c.text))&&(s=s.slice(1))}s&&this.insertNode(o.text(s),n,!/\S/.test(s)),this.findInText(e)}else this.findInside(e)}addElement(e,n,s){let a=this.localPreserveWS,i=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let o=e.nodeName.toLowerCase(),c;ES.hasOwnProperty(o)&&this.parser.normalizeLists&&aO(e);let u=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(c=this.parser.matchTag(e,this,s));e:if(u?u.ignore:rO.hasOwnProperty(o))this.findInside(e),this.ignoreFallback(e,n);else if(!u||u.skip||u.closeParent){u&&u.closeParent?this.open=Math.max(0,this.open-1):u&&u.skip.nodeType&&(e=u.skip);let h,f=this.needsBlock;if(CS.hasOwnProperty(o))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),h=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,n);break e}let m=u&&u.skip?n:this.readStyles(e,n);m&&this.addAll(e,m),h&&this.sync(i),this.needsBlock=f}else{let h=this.readStyles(e,n);h&&this.addElementByRule(e,u,h,u.consuming===!1?c:void 0)}this.localPreserveWS=a}leafFallback(e,n){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
`),n)}ignoreFallback(e,n){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),n,!0)}readStyles(e,n){let s=e.style;if(s&&s.length)for(let a=0;a<this.parser.matchedStyles.length;a++){let i=this.parser.matchedStyles[a],o=s.getPropertyValue(i);if(o)for(let c=void 0;;){let u=this.parser.matchStyle(i,o,this,c);if(!u)break;if(u.ignore)return null;if(u.clearMark?n=n.filter(h=>!u.clearMark(h)):n=n.concat(this.parser.schema.marks[u.mark].create(u.attrs)),u.consuming===!1)c=u;else break}}return n}addElementByRule(e,n,s,a){let i,o;if(n.node)if(o=this.parser.schema.nodes[n.node],o.isLeaf)this.insertNode(o.create(n.attrs),s,e.nodeName=="BR")||this.leafFallback(e,s);else{let u=this.enter(o,n.attrs||null,s,n.preserveWhitespace);u&&(i=!0,s=u)}else{let u=this.parser.schema.marks[n.mark];s=s.concat(u.create(n.attrs))}let c=this.top;if(o&&o.isLeaf)this.findInside(e);else if(a)this.addElement(e,s,a);else if(n.getContent)this.findInside(e),n.getContent(e,this.parser.schema).forEach(u=>this.insertNode(u,s,!1));else{let u=e;typeof n.contentElement=="string"?u=e.querySelector(n.contentElement):typeof n.contentElement=="function"?u=n.contentElement(e):n.contentElement&&(u=n.contentElement),this.findAround(e,u,!0),this.addAll(u,s),this.findAround(e,u,!1)}i&&this.sync(c)&&this.open--}addAll(e,n,s,a){let i=s||0;for(let o=s?e.childNodes[s]:e.firstChild,c=a==null?null:e.childNodes[a];o!=c;o=o.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(o,n);this.findAtPoint(e,i)}findPlace(e,n,s){let a,i;for(let o=this.open,c=0;o>=0;o--){let u=this.nodes[o],h=u.findWrapping(e);if(h&&(!a||a.length>h.length+c)&&(a=h,i=u,!h.length))break;if(u.solid){if(s)break;c+=2}}if(!a)return null;this.sync(i);for(let o=0;o<a.length;o++)n=this.enterInner(a[o],null,n,!1);return n}insertNode(e,n,s){if(e.isInline&&this.needsBlock&&!this.top.type){let i=this.textblockFromContext();i&&(n=this.enterInner(i,null,n))}let a=this.findPlace(e,n,s);if(a){this.closeExtra();let i=this.top;i.match&&(i.match=i.match.matchType(e.type));let o=Wt.none;for(let c of a.concat(e.marks))(i.type?i.type.allowsMarkType(c.type):W1(c.type,e.type))&&(o=c.addToSet(o));return i.content.push(e.mark(o)),!0}return!1}enter(e,n,s,a){let i=this.findPlace(e.create(n),s,!1);return i&&(i=this.enterInner(e,n,s,!0,a)),i}enterInner(e,n,s,a=!1,i){this.closeExtra();let o=this.top;o.match=o.match&&o.match.matchType(e);let c=B1(e,i,o.options);o.options&bd&&o.content.length==0&&(c|=bd);let u=Wt.none;return s=s.filter(h=>(o.type?o.type.allowsMarkType(h.type):W1(h.type,e))?(u=h.addToSet(u),!1):!0),this.nodes.push(new gh(e,n,u,a,null,c)),this.open++,s}closeExtra(e=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let n=this.open;n>=0;n--){if(this.nodes[n]==e)return this.open=n,!0;this.localPreserveWS&&(this.nodes[n].options|=Od)}return!1}get currentPos(){this.closeExtra();let e=0;for(let n=this.open;n>=0;n--){let s=this.nodes[n].content;for(let a=s.length-1;a>=0;a--)e+=s[a].nodeSize;n&&e++}return e}findAtPoint(e,n){if(this.find)for(let s=0;s<this.find.length;s++)this.find[s].node==e&&this.find[s].offset==n&&(this.find[s].pos=this.currentPos)}findInside(e){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].pos==null&&e.nodeType==1&&e.contains(this.find[n].node)&&(this.find[n].pos=this.currentPos)}findAround(e,n,s){if(e!=n&&this.find)for(let a=0;a<this.find.length;a++)this.find[a].pos==null&&e.nodeType==1&&e.contains(this.find[a].node)&&n.compareDocumentPosition(this.find[a].node)&(s?2:4)&&(this.find[a].pos=this.currentPos)}findInText(e){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&(this.find[n].pos=this.currentPos-(e.nodeValue.length-this.find[n].offset))}matchesContext(e){if(e.indexOf("|")>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let n=e.split("/"),s=this.options.context,a=!this.isOpen&&(!s||s.parent.type==this.nodes[0].type),i=-(s?s.depth+1:0)+(a?0:1),o=(c,u)=>{for(;c>=0;c--){let h=n[c];if(h==""){if(c==n.length-1||c==0)continue;for(;u>=i;u--)if(o(c-1,u))return!0;return!1}else{let f=u>0||u==0&&a?this.nodes[u].type:s&&u>=i?s.node(u-i).type:null;if(!f||f.name!=h&&!f.isInGroup(h))return!1;u--}}return!0};return o(n.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let n=e.depth;n>=0;n--){let s=e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;if(s&&s.isTextblock&&s.defaultAttrs)return s}for(let n in this.parser.schema.nodes){let s=this.parser.schema.nodes[n];if(s.isTextblock&&s.defaultAttrs)return s}}}function aO(t){for(let e=t.firstChild,n=null;e;e=e.nextSibling){let s=e.nodeType==1?e.nodeName.toLowerCase():null;s&&ES.hasOwnProperty(s)&&n?(n.appendChild(e),e=n):s=="li"?n=e:s&&(n=null)}}function iO(t,e){return(t.matches||t.msMatchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector).call(t,e)}function H1(t){let e={};for(let n in t)e[n]=t[n];return e}function W1(t,e){let n=e.schema.nodes;for(let s in n){let a=n[s];if(!a.allowsMarkType(t))continue;let i=[],o=c=>{i.push(c);for(let u=0;u<c.edgeCount;u++){let{type:h,next:f}=c.edge(u);if(h==e||i.indexOf(f)<0&&o(f))return!0}};if(o(a.contentMatch))return!0}}class sl{constructor(e,n){this.nodes=e,this.marks=n}serializeFragment(e,n={},s){s||(s=bg(n).createDocumentFragment());let a=s,i=[];return e.forEach(o=>{if(i.length||o.marks.length){let c=0,u=0;for(;c<i.length&&u<o.marks.length;){let h=o.marks[u];if(!this.marks[h.type.name]){u++;continue}if(!h.eq(i[c][0])||h.type.spec.spanning===!1)break;c++,u++}for(;c<i.length;)a=i.pop()[1];for(;u<o.marks.length;){let h=o.marks[u++],f=this.serializeMark(h,o.isInline,n);f&&(i.push([h,a]),a.appendChild(f.dom),a=f.contentDOM||f.dom)}}a.appendChild(this.serializeNodeInner(o,n))}),s}serializeNodeInner(e,n){let{dom:s,contentDOM:a}=Oh(bg(n),this.nodes[e.type.name](e),null,e.attrs);if(a){if(e.isLeaf)throw new RangeError("Content hole not allowed in a leaf node spec");this.serializeFragment(e.content,n,a)}return s}serializeNode(e,n={}){let s=this.serializeNodeInner(e,n);for(let a=e.marks.length-1;a>=0;a--){let i=this.serializeMark(e.marks[a],e.isInline,n);i&&((i.contentDOM||i.dom).appendChild(s),s=i.dom)}return s}serializeMark(e,n,s={}){let a=this.marks[e.type.name];return a&&Oh(bg(s),a(e,n),null,e.attrs)}static renderSpec(e,n,s=null,a){return Oh(e,n,s,a)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new sl(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let n=U1(e.nodes);return n.text||(n.text=s=>s.text),n}static marksFromSchema(e){return U1(e.marks)}}function U1(t){let e={};for(let n in t){let s=t[n].spec.toDOM;s&&(e[n]=s)}return e}function bg(t){return t.document||window.document}const K1=new WeakMap;function oO(t){let e=K1.get(t);return e===void 0&&K1.set(t,e=lO(t)),e}function lO(t){let e=null;function n(s){if(s&&typeof s=="object")if(Array.isArray(s))if(typeof s[0]=="string")e||(e=[]),e.push(s);else for(let a=0;a<s.length;a++)n(s[a]);else for(let a in s)n(s[a])}return n(t),e}function Oh(t,e,n,s){if(typeof e=="string")return{dom:t.createTextNode(e)};if(e.nodeType!=null)return{dom:e};if(e.dom&&e.dom.nodeType!=null)return e;let a=e[0],i;if(typeof a!="string")throw new RangeError("Invalid array passed to renderSpec");if(s&&(i=oO(s))&&i.indexOf(e)>-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=a.indexOf(" ");o>0&&(n=a.slice(0,o),a=a.slice(o+1));let c,u=n?t.createElementNS(n,a):t.createElement(a),h=e[1],f=1;if(h&&typeof h=="object"&&h.nodeType==null&&!Array.isArray(h)){f=2;for(let m in h)if(h[m]!=null){let g=m.indexOf(" ");g>0?u.setAttributeNS(m.slice(0,g),m.slice(g+1),h[m]):m=="style"&&u.style?u.style.cssText=h[m]:u.setAttribute(m,h[m])}}for(let m=f;m<e.length;m++){let g=e[m];if(g===0){if(m<e.length-1||m>f)throw new RangeError("Content hole must be the only child of its parent node");return{dom:u,contentDOM:u}}else{let{dom:y,contentDOM:N}=Oh(t,g,n,s);if(u.appendChild(y),N){if(c)throw new RangeError("Multiple content holes");c=N}}}return{dom:u,contentDOM:c}}const TS=65535,MS=Math.pow(2,16);function cO(t,e){return t+e*MS}function q1(t){return t&TS}function dO(t){return(t-(t&TS))/MS}const AS=1,IS=2,Dh=4,PS=8;class kx{constructor(e,n,s){this.pos=e,this.delInfo=n,this.recover=s}get deleted(){return(this.delInfo&PS)>0}get deletedBefore(){return(this.delInfo&(AS|Dh))>0}get deletedAfter(){return(this.delInfo&(IS|Dh))>0}get deletedAcross(){return(this.delInfo&Dh)>0}}class rr{constructor(e,n=!1){if(this.ranges=e,this.inverted=n,!e.length&&rr.empty)return rr.empty}recover(e){let n=0,s=q1(e);if(!this.inverted)for(let a=0;a<s;a++)n+=this.ranges[a*3+2]-this.ranges[a*3+1];return this.ranges[s*3]+n+dO(e)}mapResult(e,n=1){return this._map(e,n,!1)}map(e,n=1){return this._map(e,n,!0)}_map(e,n,s){let a=0,i=this.inverted?2:1,o=this.inverted?1:2;for(let c=0;c<this.ranges.length;c+=3){let u=this.ranges[c]-(this.inverted?a:0);if(u>e)break;let h=this.ranges[c+i],f=this.ranges[c+o],m=u+h;if(e<=m){let g=h?e==u?-1:e==m?1:n:n,y=u+a+(g<0?0:f);if(s)return y;let N=e==(n<0?u:m)?null:cO(c/3,e-u),w=e==u?IS:e==m?AS:Dh;return(n<0?e!=u:e!=m)&&(w|=PS),new kx(y,w,N)}a+=f-h}return s?e+a:new kx(e+a,0,null)}touches(e,n){let s=0,a=q1(n),i=this.inverted?2:1,o=this.inverted?1:2;for(let c=0;c<this.ranges.length;c+=3){let u=this.ranges[c]-(this.inverted?s:0);if(u>e)break;let h=this.ranges[c+i],f=u+h;if(e<=f&&c==a*3)return!0;s+=this.ranges[c+o]-h}return!1}forEach(e){let n=this.inverted?2:1,s=this.inverted?1:2;for(let a=0,i=0;a<this.ranges.length;a+=3){let o=this.ranges[a],c=o-(this.inverted?i:0),u=o+(this.inverted?0:i),h=this.ranges[a+n],f=this.ranges[a+s];e(c,c+h,u,u+f),i+=f-h}}invert(){return new rr(this.ranges,!this.inverted)}toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}static offset(e){return e==0?rr.empty:new rr(e<0?[0,-e,0]:[0,0,e])}}rr.empty=new rr([]);class Dd{constructor(e,n,s=0,a=e?e.length:0){this.mirror=n,this.from=s,this.to=a,this._maps=e||[],this.ownData=!(e||n)}get maps(){return this._maps}slice(e=0,n=this.maps.length){return new Dd(this._maps,this.mirror,e,n)}appendMap(e,n){this.ownData||(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),this.ownData=!0),this.to=this._maps.push(e),n!=null&&this.setMirror(this._maps.length-1,n)}appendMapping(e){for(let n=0,s=this._maps.length;n<e._maps.length;n++){let a=e.getMirror(n);this.appendMap(e._maps[n],a!=null&&a<n?s+a:void 0)}}getMirror(e){if(this.mirror){for(let n=0;n<this.mirror.length;n++)if(this.mirror[n]==e)return this.mirror[n+(n%2?-1:1)]}}setMirror(e,n){this.mirror||(this.mirror=[]),this.mirror.push(e,n)}appendMappingInverted(e){for(let n=e.maps.length-1,s=this._maps.length+e._maps.length;n>=0;n--){let a=e.getMirror(n);this.appendMap(e._maps[n].invert(),a!=null&&a>n?s-a-1:void 0)}}invert(){let e=new Dd;return e.appendMappingInverted(this),e}map(e,n=1){if(this.mirror)return this._map(e,n,!0);for(let s=this.from;s<this.to;s++)e=this._maps[s].map(e,n);return e}mapResult(e,n=1){return this._map(e,n,!1)}_map(e,n,s){let a=0;for(let i=this.from;i<this.to;i++){let o=this._maps[i],c=o.mapResult(e,n);if(c.recover!=null){let u=this.getMirror(i);if(u!=null&&u>i&&u<this.to){i=u,e=this._maps[u].recover(c.recover);continue}}a|=c.delInfo,e=c.pos}return s?e:new kx(e,a,null)}}const vg=Object.create(null);class vs{getMap(){return rr.empty}merge(e){return null}static fromJSON(e,n){if(!n||!n.stepType)throw new RangeError("Invalid input for Step.fromJSON");let s=vg[n.stepType];if(!s)throw new RangeError(`No step type ${n.stepType} defined`);return s.fromJSON(e,n)}static jsonID(e,n){if(e in vg)throw new RangeError("Duplicate use of step JSON ID "+e);return vg[e]=n,n.prototype.jsonID=e,n}}class Tn{constructor(e,n){this.doc=e,this.failed=n}static ok(e){return new Tn(e,null)}static fail(e){return new Tn(null,e)}static fromReplace(e,n,s,a){try{return Tn.ok(e.replace(n,s,a))}catch(i){if(i instanceof Qh)return Tn.fail(i.message);throw i}}}function L0(t,e,n){let s=[];for(let a=0;a<t.childCount;a++){let i=t.child(a);i.content.size&&(i=i.copy(L0(i.content,e,i))),i.isInline&&(i=e(i,n,a)),s.push(i)}return Ne.fromArray(s)}class Pi extends vs{constructor(e,n,s){super(),this.from=e,this.to=n,this.mark=s}apply(e){let n=e.slice(this.from,this.to),s=e.resolve(this.from),a=s.node(s.sharedDepth(this.to)),i=new Le(L0(n.content,(o,c)=>!o.isAtom||!c.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),a),n.openStart,n.openEnd);return Tn.fromReplace(e,this.from,this.to,i)}invert(){return new Fr(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),s=e.mapResult(this.to,-1);return n.deleted&&s.deleted||n.pos>=s.pos?null:new Pi(n.pos,s.pos,this.mark)}merge(e){return e instanceof Pi&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Pi(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new Pi(n.from,n.to,e.markFromJSON(n.mark))}}vs.jsonID("addMark",Pi);class Fr extends vs{constructor(e,n,s){super(),this.from=e,this.to=n,this.mark=s}apply(e){let n=e.slice(this.from,this.to),s=new Le(L0(n.content,a=>a.mark(this.mark.removeFromSet(a.marks)),e),n.openStart,n.openEnd);return Tn.fromReplace(e,this.from,this.to,s)}invert(){return new Pi(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),s=e.mapResult(this.to,-1);return n.deleted&&s.deleted||n.pos>=s.pos?null:new Fr(n.pos,s.pos,this.mark)}merge(e){return e instanceof Fr&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Fr(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Fr(n.from,n.to,e.markFromJSON(n.mark))}}vs.jsonID("removeMark",Fr);class Ri extends vs{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return Tn.fail("No node at mark step's position");let s=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return Tn.fromReplace(e,this.pos,this.pos+1,new Le(Ne.from(s),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);if(n){let s=this.mark.addToSet(n.marks);if(s.length==n.marks.length){for(let a=0;a<n.marks.length;a++)if(!n.marks[a].isInSet(s))return new Ri(this.pos,n.marks[a]);return new Ri(this.pos,this.mark)}}return new Go(this.pos,this.mark)}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new Ri(n.pos,this.mark)}toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");return new Ri(n.pos,e.markFromJSON(n.mark))}}vs.jsonID("addNodeMark",Ri);class Go extends vs{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return Tn.fail("No node at mark step's position");let s=n.type.create(n.attrs,null,this.mark.removeFromSet(n.marks));return Tn.fromReplace(e,this.pos,this.pos+1,new Le(Ne.from(s),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);return!n||!this.mark.isInSet(n.marks)?this:new Ri(this.pos,this.mark)}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new Go(n.pos,this.mark)}toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for RemoveNodeMarkStep.fromJSON");return new Go(n.pos,e.markFromJSON(n.mark))}}vs.jsonID("removeNodeMark",Go);class Vn extends vs{constructor(e,n,s,a=!1){super(),this.from=e,this.to=n,this.slice=s,this.structure=a}apply(e){return this.structure&&Sx(e,this.from,this.to)?Tn.fail("Structure replace would overwrite content"):Tn.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new rr([this.from,this.to-this.from,this.slice.size])}invert(e){return new Vn(this.from,this.from+this.slice.size,e.slice(this.from,this.to))}map(e){let n=e.mapResult(this.from,1),s=e.mapResult(this.to,-1);return n.deletedAcross&&s.deletedAcross?null:new Vn(n.pos,Math.max(n.pos,s.pos),this.slice,this.structure)}merge(e){if(!(e instanceof Vn)||e.structure||this.structure)return null;if(this.from+this.slice.size==e.from&&!this.slice.openEnd&&!e.slice.openStart){let n=this.slice.size+e.slice.size==0?Le.empty:new Le(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new Vn(this.from,this.to+(e.to-e.from),n,this.structure)}else if(e.to==this.from&&!this.slice.openStart&&!e.slice.openEnd){let n=this.slice.size+e.slice.size==0?Le.empty:new Le(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new Vn(e.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for ReplaceStep.fromJSON");return new Vn(n.from,n.to,Le.fromJSON(e,n.slice),!!n.structure)}}vs.jsonID("replace",Vn);class Hn extends vs{constructor(e,n,s,a,i,o,c=!1){super(),this.from=e,this.to=n,this.gapFrom=s,this.gapTo=a,this.slice=i,this.insert=o,this.structure=c}apply(e){if(this.structure&&(Sx(e,this.from,this.gapFrom)||Sx(e,this.gapTo,this.to)))return Tn.fail("Structure gap-replace would overwrite content");let n=e.slice(this.gapFrom,this.gapTo);if(n.openStart||n.openEnd)return Tn.fail("Gap is not a flat range");let s=this.slice.insertAt(this.insert,n.content);return s?Tn.fromReplace(e,this.from,this.to,s):Tn.fail("Content does not fit in gap")}getMap(){return new rr([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(e){let n=this.gapTo-this.gapFrom;return new Hn(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,e.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(e){let n=e.mapResult(this.from,1),s=e.mapResult(this.to,-1),a=this.from==this.gapFrom?n.pos:e.map(this.gapFrom,-1),i=this.to==this.gapTo?s.pos:e.map(this.gapTo,1);return n.deletedAcross&&s.deletedAcross||a<n.pos||i>s.pos?null:new Hn(n.pos,s.pos,a,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Hn(n.from,n.to,n.gapFrom,n.gapTo,Le.fromJSON(e,n.slice),n.insert,!!n.structure)}}vs.jsonID("replaceAround",Hn);function Sx(t,e,n){let s=t.resolve(e),a=n-e,i=s.depth;for(;a>0&&i>0&&s.indexAfter(i)==s.node(i).childCount;)i--,a--;if(a>0){let o=s.node(i).maybeChild(s.indexAfter(i));for(;a>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,a--}}return!1}function uO(t,e,n,s){let a=[],i=[],o,c;t.doc.nodesBetween(e,n,(u,h,f)=>{if(!u.isInline)return;let m=u.marks;if(!s.isInSet(m)&&f.type.allowsMarkType(s.type)){let g=Math.max(h,e),y=Math.min(h+u.nodeSize,n),N=s.addToSet(m);for(let w=0;w<m.length;w++)m[w].isInSet(N)||(o&&o.to==g&&o.mark.eq(m[w])?o.to=y:a.push(o=new Fr(g,y,m[w])));c&&c.to==g?c.to=y:i.push(c=new Pi(g,y,s))}}),a.forEach(u=>t.step(u)),i.forEach(u=>t.step(u))}function hO(t,e,n,s){let a=[],i=0;t.doc.nodesBetween(e,n,(o,c)=>{if(!o.isInline)return;i++;let u=null;if(s instanceof np){let h=o.marks,f;for(;f=s.isInSet(h);)(u||(u=[])).push(f),h=f.removeFromSet(h)}else s?s.isInSet(o.marks)&&(u=[s]):u=o.marks;if(u&&u.length){let h=Math.min(c+o.nodeSize,n);for(let f=0;f<u.length;f++){let m=u[f],g;for(let y=0;y<a.length;y++){let N=a[y];N.step==i-1&&m.eq(a[y].style)&&(g=N)}g?(g.to=h,g.step=i):a.push({style:m,from:Math.max(c,e),to:h,step:i})}}}),a.forEach(o=>t.step(new Fr(o.from,o.to,o.style)))}function _0(t,e,n,s=n.contentMatch,a=!0){let i=t.doc.nodeAt(e),o=[],c=e+1;for(let u=0;u<i.childCount;u++){let h=i.child(u),f=c+h.nodeSize,m=s.matchType(h.type);if(!m)o.push(new Vn(c,f,Le.empty));else{s=m;for(let g=0;g<h.marks.length;g++)n.allowsMarkType(h.marks[g].type)||t.step(new Fr(c,f,h.marks[g]));if(a&&h.isText&&n.whitespace!="pre"){let g,y=/\r?\n|\r/g,N;for(;g=y.exec(h.text);)N||(N=new Le(Ne.from(n.schema.text(" ",n.allowedMarks(h.marks))),0,0)),o.push(new Vn(c+g.index,c+g.index+g[0].length,N))}}c=f}if(!s.validEnd){let u=s.fillBefore(Ne.empty,!0);t.replace(c,c,new Le(u,0,0))}for(let u=o.length-1;u>=0;u--)t.step(o[u])}function fO(t,e,n){return(e==0||t.canReplace(e,t.childCount))&&(n==t.childCount||t.canReplace(0,n))}function xc(t){let n=t.parent.content.cutByIndex(t.startIndex,t.endIndex);for(let s=t.depth,a=0,i=0;;--s){let o=t.$from.node(s),c=t.$from.index(s)+a,u=t.$to.indexAfter(s)-i;if(s<t.depth&&o.canReplace(c,u,n))return s;if(s==0||o.type.spec.isolating||!fO(o,c,u))break;c&&(a=1),u<o.childCount&&(i=1)}return null}function pO(t,e,n){let{$from:s,$to:a,depth:i}=e,o=s.before(i+1),c=a.after(i+1),u=o,h=c,f=Ne.empty,m=0;for(let N=i,w=!1;N>n;N--)w||s.index(N)>0?(w=!0,f=Ne.from(s.node(N).copy(f)),m++):u--;let g=Ne.empty,y=0;for(let N=i,w=!1;N>n;N--)w||a.after(N+1)<a.end(N)?(w=!0,g=Ne.from(a.node(N).copy(g)),y++):h++;t.step(new Hn(u,h,o,c,new Le(f.append(g),m,y),f.size-m,!0))}function z0(t,e,n=null,s=t){let a=mO(t,e),i=a&&gO(s,e);return i?a.map(G1).concat({type:e,attrs:n}).concat(i.map(G1)):null}function G1(t){return{type:t,attrs:null}}function mO(t,e){let{parent:n,startIndex:s,endIndex:a}=t,i=n.contentMatchAt(s).findWrapping(e);if(!i)return null;let o=i.length?i[0]:e;return n.canReplaceWith(s,a,o)?i:null}function gO(t,e){let{parent:n,startIndex:s,endIndex:a}=t,i=n.child(s),o=e.contentMatch.findWrapping(i.type);if(!o)return null;let u=(o.length?o[o.length-1]:e).contentMatch;for(let h=s;u&&h<a;h++)u=u.matchType(n.child(h).type);return!u||!u.validEnd?null:o}function xO(t,e,n){let s=Ne.empty;for(let o=n.length-1;o>=0;o--){if(s.size){let c=n[o].type.contentMatch.matchFragment(s);if(!c||!c.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}s=Ne.from(n[o].type.create(n[o].attrs,s))}let a=e.start,i=e.end;t.step(new Hn(a,i,a,i,new Le(s,0,0),n.length,!0))}function yO(t,e,n,s,a){if(!s.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let i=t.steps.length;t.doc.nodesBetween(e,n,(o,c)=>{let u=typeof a=="function"?a(o):a;if(o.isTextblock&&!o.hasMarkup(s,u)&&bO(t.doc,t.mapping.slice(i).map(c),s)){let h=null;if(s.schema.linebreakReplacement){let y=s.whitespace=="pre",N=!!s.contentMatch.matchType(s.schema.linebreakReplacement);y&&!N?h=!1:!y&&N&&(h=!0)}h===!1&&OS(t,o,c,i),_0(t,t.mapping.slice(i).map(c,1),s,void 0,h===null);let f=t.mapping.slice(i),m=f.map(c,1),g=f.map(c+o.nodeSize,1);return t.step(new Hn(m,g,m+1,g-1,new Le(Ne.from(s.create(u,null,o.marks)),0,0),1,!0)),h===!0&&RS(t,o,c,i),!1}})}function RS(t,e,n,s){e.forEach((a,i)=>{if(a.isText){let o,c=/\r?\n|\r/g;for(;o=c.exec(a.text);){let u=t.mapping.slice(s).map(n+1+i+o.index);t.replaceWith(u,u+1,e.type.schema.linebreakReplacement.create())}}})}function OS(t,e,n,s){e.forEach((a,i)=>{if(a.type==a.type.schema.linebreakReplacement){let o=t.mapping.slice(s).map(n+1+i);t.replaceWith(o,o+1,e.type.schema.text(`
`))}})}function bO(t,e,n){let s=t.resolve(e),a=s.index();return s.parent.canReplaceWith(a,a+1,n)}function vO(t,e,n,s,a){let i=t.doc.nodeAt(e);if(!i)throw new RangeError("No node at given position");n||(n=i.type);let o=n.create(s,null,a||i.marks);if(i.isLeaf)return t.replaceWith(e,e+i.nodeSize,o);if(!n.validContent(i.content))throw new RangeError("Invalid content for node type "+n.name);t.step(new Hn(e,e+i.nodeSize,e+1,e+i.nodeSize-1,new Le(Ne.from(o),0,0),1,!0))}function Ua(t,e,n=1,s){let a=t.resolve(e),i=a.depth-n,o=s&&s[s.length-1]||a.parent;if(i<0||a.parent.type.spec.isolating||!a.parent.canReplace(a.index(),a.parent.childCount)||!o.type.validContent(a.parent.content.cutByIndex(a.index(),a.parent.childCount)))return!1;for(let h=a.depth-1,f=n-2;h>i;h--,f--){let m=a.node(h),g=a.index(h);if(m.type.spec.isolating)return!1;let y=m.content.cutByIndex(g,m.childCount),N=s&&s[f+1];N&&(y=y.replaceChild(0,N.type.create(N.attrs)));let w=s&&s[f]||m;if(!m.canReplace(g+1,m.childCount)||!w.type.validContent(y))return!1}let c=a.indexAfter(i),u=s&&s[0];return a.node(i).canReplaceWith(c,c,u?u.type:a.node(i+1).type)}function NO(t,e,n=1,s){let a=t.doc.resolve(e),i=Ne.empty,o=Ne.empty;for(let c=a.depth,u=a.depth-n,h=n-1;c>u;c--,h--){i=Ne.from(a.node(c).copy(i));let f=s&&s[h];o=Ne.from(f?f.type.create(f.attrs,o):a.node(c).copy(o))}t.step(new Vn(e,e,new Le(i.append(o),n,n),!0))}function Qi(t,e){let n=t.resolve(e),s=n.index();return DS(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(s,s+1)}function wO(t,e){e.content.size||t.type.compatibleContent(e.type);let n=t.contentMatchAt(t.childCount),{linebreakReplacement:s}=t.type.schema;for(let a=0;a<e.childCount;a++){let i=e.child(a),o=i.type==s?t.type.schema.nodes.text:i.type;if(n=n.matchType(o),!n||!t.type.allowsMarks(i.marks))return!1}return n.validEnd}function DS(t,e){return!!(t&&e&&!t.isLeaf&&wO(t,e))}function sp(t,e,n=-1){let s=t.resolve(e);for(let a=s.depth;;a--){let i,o,c=s.index(a);if(a==s.depth?(i=s.nodeBefore,o=s.nodeAfter):n>0?(i=s.node(a+1),c++,o=s.node(a).maybeChild(c)):(i=s.node(a).maybeChild(c-1),o=s.node(a+1)),i&&!i.isTextblock&&DS(i,o)&&s.node(a).canReplace(c,c+1))return e;if(a==0)break;e=n<0?s.before(a):s.after(a)}}function jO(t,e,n){let s=null,{linebreakReplacement:a}=t.doc.type.schema,i=t.doc.resolve(e-n),o=i.node().type;if(a&&o.inlineContent){let f=o.whitespace=="pre",m=!!o.contentMatch.matchType(a);f&&!m?s=!1:!f&&m&&(s=!0)}let c=t.steps.length;if(s===!1){let f=t.doc.resolve(e+n);OS(t,f.node(),f.before(),c)}o.inlineContent&&_0(t,e+n-1,o,i.node().contentMatchAt(i.index()),s==null);let u=t.mapping.slice(c),h=u.map(e-n);if(t.step(new Vn(h,u.map(e+n,-1),Le.empty,!0)),s===!0){let f=t.doc.resolve(h);RS(t,f.node(),f.before(),t.steps.length)}return t}function kO(t,e,n){let s=t.resolve(e);if(s.parent.canReplaceWith(s.index(),s.index(),n))return e;if(s.parentOffset==0)for(let a=s.depth-1;a>=0;a--){let i=s.index(a);if(s.node(a).canReplaceWith(i,i,n))return s.before(a+1);if(i>0)return null}if(s.parentOffset==s.parent.content.size)for(let a=s.depth-1;a>=0;a--){let i=s.indexAfter(a);if(s.node(a).canReplaceWith(i,i,n))return s.after(a+1);if(i<s.node(a).childCount)return null}return null}function LS(t,e,n){let s=t.resolve(e);if(!n.content.size)return e;let a=n.content;for(let i=0;i<n.openStart;i++)a=a.firstChild.content;for(let i=1;i<=(n.openStart==0&&n.size?2:1);i++)for(let o=s.depth;o>=0;o--){let c=o==s.depth?0:s.pos<=(s.start(o+1)+s.end(o+1))/2?-1:1,u=s.index(o)+(c>0?1:0),h=s.node(o),f=!1;if(i==1)f=h.canReplace(u,u,a);else{let m=h.contentMatchAt(u).findWrapping(a.firstChild.type);f=m&&h.canReplaceWith(u,u,m[0])}if(f)return c==0?s.pos:c<0?s.before(o+1):s.after(o+1)}return null}function rp(t,e,n=e,s=Le.empty){if(e==n&&!s.size)return null;let a=t.resolve(e),i=t.resolve(n);return _S(a,i,s)?new Vn(e,n,s):new SO(a,i,s).fit()}function _S(t,e,n){return!n.openStart&&!n.openEnd&&t.start()==e.start()&&t.parent.canReplace(t.index(),e.index(),n.content)}class SO{constructor(e,n,s){this.$from=e,this.$to=n,this.unplaced=s,this.frontier=[],this.placed=Ne.empty;for(let a=0;a<=e.depth;a++){let i=e.node(a);this.frontier.push({type:i.type,match:i.contentMatchAt(e.indexAfter(a))})}for(let a=e.depth;a>0;a--)this.placed=Ne.from(e.node(a).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let h=this.findFittable();h?this.placeNodes(h):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,s=this.$from,a=this.close(e<0?this.$to:s.doc.resolve(e));if(!a)return null;let i=this.placed,o=s.depth,c=a.depth;for(;o&&c&&i.childCount==1;)i=i.firstChild.content,o--,c--;let u=new Le(i,o,c);return e>-1?new Hn(s.pos,e,this.$to.pos,this.$to.end(),u,n):u.size||s.pos!=this.$to.pos?new Vn(s.pos,a.pos,u):null}findFittable(){let e=this.unplaced.openStart;for(let n=this.unplaced.content,s=0,a=this.unplaced.openEnd;s<e;s++){let i=n.firstChild;if(n.childCount>1&&(a=0),i.type.spec.isolating&&a<=s){e=s;break}n=i.content}for(let n=1;n<=2;n++)for(let s=n==1?e:this.unplaced.openStart;s>=0;s--){let a,i=null;s?(i=Ng(this.unplaced.content,s-1).firstChild,a=i.content):a=this.unplaced.content;let o=a.firstChild;for(let c=this.depth;c>=0;c--){let{type:u,match:h}=this.frontier[c],f,m=null;if(n==1&&(o?h.matchType(o.type)||(m=h.fillBefore(Ne.from(o),!1)):i&&u.compatibleContent(i.type)))return{sliceDepth:s,frontierDepth:c,parent:i,inject:m};if(n==2&&o&&(f=h.findWrapping(o.type)))return{sliceDepth:s,frontierDepth:c,parent:i,wrap:f};if(i&&h.matchType(i.type))break}}}openMore(){let{content:e,openStart:n,openEnd:s}=this.unplaced,a=Ng(e,n);return!a.childCount||a.firstChild.isLeaf?!1:(this.unplaced=new Le(e,n+1,Math.max(s,a.size+n>=e.size-s?n+1:0)),!0)}dropNode(){let{content:e,openStart:n,openEnd:s}=this.unplaced,a=Ng(e,n);if(a.childCount<=1&&n>0){let i=e.size-n<=n+a.size;this.unplaced=new Le(od(e,n-1,1),n-1,i?n-1:s)}else this.unplaced=new Le(od(e,n,1),n,s)}placeNodes({sliceDepth:e,frontierDepth:n,parent:s,inject:a,wrap:i}){for(;this.depth>n;)this.closeFrontierNode();if(i)for(let w=0;w<i.length;w++)this.openFrontierNode(i[w]);let o=this.unplaced,c=s?s.content:o.content,u=o.openStart-e,h=0,f=[],{match:m,type:g}=this.frontier[n];if(a){for(let w=0;w<a.childCount;w++)f.push(a.child(w));m=m.matchFragment(a)}let y=c.size+e-(o.content.size-o.openEnd);for(;h<c.childCount;){let w=c.child(h),v=m.matchType(w.type);if(!v)break;h++,(h>1||u==0||w.content.size)&&(m=v,f.push(zS(w.mark(g.allowedMarks(w.marks)),h==1?u:0,h==c.childCount?y:-1)))}let N=h==c.childCount;N||(y=-1),this.placed=ld(this.placed,n,Ne.from(f)),this.frontier[n].match=m,N&&y<0&&s&&s.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let w=0,v=c;w<y;w++){let k=v.lastChild;this.frontier.push({type:k.type,match:k.contentMatchAt(k.childCount)}),v=k.content}this.unplaced=N?e==0?Le.empty:new Le(od(o.content,e-1,1),e-1,y<0?o.openEnd:e-1):new Le(od(o.content,e,h),o.openStart,o.openEnd)}mustMoveInline(){if(!this.$to.parent.isTextblock)return-1;let e=this.frontier[this.depth],n;if(!e.type.isTextblock||!wg(this.$to,this.$to.depth,e.type,e.match,!1)||this.$to.depth==this.depth&&(n=this.findCloseLevel(this.$to))&&n.depth==this.depth)return-1;let{depth:s}=this.$to,a=this.$to.after(s);for(;s>1&&a==this.$to.end(--s);)++a;return a}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:s,type:a}=this.frontier[n],i=n<e.depth&&e.end(n+1)==e.pos+(e.depth-(n+1)),o=wg(e,n,a,s,i);if(o){for(let c=n-1;c>=0;c--){let{match:u,type:h}=this.frontier[c],f=wg(e,c,h,u,!0);if(!f||f.childCount)continue e}return{depth:n,fit:o,move:i?e.doc.resolve(e.after(n+1)):e}}}}close(e){let n=this.findCloseLevel(e);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=ld(this.placed,n.depth,n.fit)),e=n.move;for(let s=n.depth+1;s<=e.depth;s++){let a=e.node(s),i=a.type.contentMatch.fillBefore(a.content,!0,e.index(s));this.openFrontierNode(a.type,a.attrs,i)}return e}openFrontierNode(e,n=null,s){let a=this.frontier[this.depth];a.match=a.match.matchType(e),this.placed=ld(this.placed,this.depth,Ne.from(e.create(n,s))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(Ne.empty,!0);n.childCount&&(this.placed=ld(this.placed,this.frontier.length,n))}}function od(t,e,n){return e==0?t.cutByIndex(n,t.childCount):t.replaceChild(0,t.firstChild.copy(od(t.firstChild.content,e-1,n)))}function ld(t,e,n){return e==0?t.append(n):t.replaceChild(t.childCount-1,t.lastChild.copy(ld(t.lastChild.content,e-1,n)))}function Ng(t,e){for(let n=0;n<e;n++)t=t.firstChild.content;return t}function zS(t,e,n){if(e<=0)return t;let s=t.content;return e>1&&(s=s.replaceChild(0,zS(s.firstChild,e-1,s.childCount==1?n-1:0))),e>0&&(s=t.type.contentMatch.fillBefore(s).append(s),n<=0&&(s=s.append(t.type.contentMatch.matchFragment(s).fillBefore(Ne.empty,!0)))),t.copy(s)}function wg(t,e,n,s,a){let i=t.node(e),o=a?t.indexAfter(e):t.index(e);if(o==i.childCount&&!n.compatibleContent(i.type))return null;let c=s.fillBefore(i.content,!0,o);return c&&!CO(n,i.content,o)?c:null}function CO(t,e,n){for(let s=n;s<e.childCount;s++)if(!t.allowsMarks(e.child(s).marks))return!0;return!1}function EO(t){return t.spec.defining||t.spec.definingForContent}function TO(t,e,n,s){if(!s.size)return t.deleteRange(e,n);let a=t.doc.resolve(e),i=t.doc.resolve(n);if(_S(a,i,s))return t.step(new Vn(e,n,s));let o=$S(a,i);o[o.length-1]==0&&o.pop();let c=-(a.depth+1);o.unshift(c);for(let g=a.depth,y=a.pos-1;g>0;g--,y--){let N=a.node(g).type.spec;if(N.defining||N.definingAsContext||N.isolating)break;o.indexOf(g)>-1?c=g:a.before(g)==y&&o.splice(1,0,-g)}let u=o.indexOf(c),h=[],f=s.openStart;for(let g=s.content,y=0;;y++){let N=g.firstChild;if(h.push(N),y==s.openStart)break;g=N.content}for(let g=f-1;g>=0;g--){let y=h[g],N=EO(y.type);if(N&&!y.sameMarkup(a.node(Math.abs(c)-1)))f=g;else if(N||!y.type.isTextblock)break}for(let g=s.openStart;g>=0;g--){let y=(g+f+1)%(s.openStart+1),N=h[y];if(N)for(let w=0;w<o.length;w++){let v=o[(w+u)%o.length],k=!0;v<0&&(k=!1,v=-v);let C=a.node(v-1),E=a.index(v-1);if(C.canReplaceWith(E,E,N.type,N.marks))return t.replace(a.before(v),k?i.after(v):n,new Le(FS(s.content,0,s.openStart,y),y,s.openEnd))}}let m=t.steps.length;for(let g=o.length-1;g>=0&&(t.replace(e,n,s),!(t.steps.length>m));g--){let y=o[g];y<0||(e=a.before(y),n=i.after(y))}}function FS(t,e,n,s,a){if(e<n){let i=t.firstChild;t=t.replaceChild(0,i.copy(FS(i.content,e+1,n,s,i)))}if(e>s){let i=a.contentMatchAt(0),o=i.fillBefore(t).append(t);t=o.append(i.matchFragment(o).fillBefore(Ne.empty,!0))}return t}function MO(t,e,n,s){if(!s.isInline&&e==n&&t.doc.resolve(e).parent.content.size){let a=kO(t.doc,e,s.type);a!=null&&(e=n=a)}t.replaceRange(e,n,new Le(Ne.from(s),0,0))}function AO(t,e,n){let s=t.doc.resolve(e),a=t.doc.resolve(n),i=$S(s,a);for(let o=0;o<i.length;o++){let c=i[o],u=o==i.length-1;if(u&&c==0||s.node(c).type.contentMatch.validEnd)return t.delete(s.start(c),a.end(c));if(c>0&&(u||s.node(c-1).canReplace(s.index(c-1),a.indexAfter(c-1))))return t.delete(s.before(c),a.after(c))}for(let o=1;o<=s.depth&&o<=a.depth;o++)if(e-s.start(o)==s.depth-o&&n>s.end(o)&&a.end(o)-n!=a.depth-o&&s.start(o-1)==a.start(o-1)&&s.node(o-1).canReplace(s.index(o-1),a.index(o-1)))return t.delete(s.before(o),n);t.delete(e,n)}function $S(t,e){let n=[],s=Math.min(t.depth,e.depth);for(let a=s;a>=0;a--){let i=t.start(a);if(i<t.pos-(t.depth-a)||e.end(a)>e.pos+(e.depth-a)||t.node(a).type.spec.isolating||e.node(a).type.spec.isolating)break;(i==e.start(a)||a==t.depth&&a==e.depth&&t.parent.inlineContent&&e.parent.inlineContent&&a&&e.start(a-1)==i-1)&&n.push(a)}return n}class Xl extends vs{constructor(e,n,s){super(),this.pos=e,this.attr=n,this.value=s}apply(e){let n=e.nodeAt(this.pos);if(!n)return Tn.fail("No node at attribute step's position");let s=Object.create(null);for(let i in n.attrs)s[i]=n.attrs[i];s[this.attr]=this.value;let a=n.type.create(s,null,n.marks);return Tn.fromReplace(e,this.pos,this.pos+1,new Le(Ne.from(a),0,n.isLeaf?0:1))}getMap(){return rr.empty}invert(e){return new Xl(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new Xl(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new Xl(n.pos,n.attr,n.value)}}vs.jsonID("attr",Xl);class Ld extends vs{constructor(e,n){super(),this.attr=e,this.value=n}apply(e){let n=Object.create(null);for(let a in e.attrs)n[a]=e.attrs[a];n[this.attr]=this.value;let s=e.type.create(n,e.content,e.marks);return Tn.ok(s)}getMap(){return rr.empty}invert(e){return new Ld(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new Ld(n.attr,n.value)}}vs.jsonID("docAttr",Ld);let nc=class extends Error{};nc=function t(e){let n=Error.call(this,e);return n.__proto__=t.prototype,n};nc.prototype=Object.create(Error.prototype);nc.prototype.constructor=nc;nc.prototype.name="TransformError";class F0{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new Dd}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let n=this.maybeStep(e);if(n.failed)throw new nc(n.failed);return this}maybeStep(e){let n=e.apply(this.doc);return n.failed||this.addStep(e,n.doc),n}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,n=-1e9;for(let s=0;s<this.mapping.maps.length;s++){let a=this.mapping.maps[s];s&&(e=a.map(e,1),n=a.map(n,-1)),a.forEach((i,o,c,u)=>{e=Math.min(e,c),n=Math.max(n,u)})}return e==1e9?null:{from:e,to:n}}addStep(e,n){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=n}replace(e,n=e,s=Le.empty){let a=rp(this.doc,e,n,s);return a&&this.step(a),this}replaceWith(e,n,s){return this.replace(e,n,new Le(Ne.from(s),0,0))}delete(e,n){return this.replace(e,n,Le.empty)}insert(e,n){return this.replaceWith(e,e,n)}replaceRange(e,n,s){return TO(this,e,n,s),this}replaceRangeWith(e,n,s){return MO(this,e,n,s),this}deleteRange(e,n){return AO(this,e,n),this}lift(e,n){return pO(this,e,n),this}join(e,n=1){return jO(this,e,n),this}wrap(e,n){return xO(this,e,n),this}setBlockType(e,n=e,s,a=null){return yO(this,e,n,s,a),this}setNodeMarkup(e,n,s=null,a){return vO(this,e,n,s,a),this}setNodeAttribute(e,n,s){return this.step(new Xl(e,n,s)),this}setDocAttribute(e,n){return this.step(new Ld(e,n)),this}addNodeMark(e,n){return this.step(new Ri(e,n)),this}removeNodeMark(e,n){let s=this.doc.nodeAt(e);if(!s)throw new RangeError("No node at position "+e);if(n instanceof Wt)n.isInSet(s.marks)&&this.step(new Go(e,n));else{let a=s.marks,i,o=[];for(;i=n.isInSet(a);)o.push(new Go(e,i)),a=i.removeFromSet(a);for(let c=o.length-1;c>=0;c--)this.step(o[c])}return this}split(e,n=1,s){return NO(this,e,n,s),this}addMark(e,n,s){return uO(this,e,n,s),this}removeMark(e,n,s){return hO(this,e,n,s),this}clearIncompatible(e,n,s){return _0(this,e,n,s),this}}const jg=Object.create(null);class ot{constructor(e,n,s){this.$anchor=e,this.$head=n,this.ranges=s||[new BS(e.min(n),e.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let n=0;n<e.length;n++)if(e[n].$from.pos!=e[n].$to.pos)return!1;return!0}content(){return this.$from.doc.slice(this.from,this.to,!0)}replace(e,n=Le.empty){let s=n.content.lastChild,a=null;for(let c=0;c<n.openEnd;c++)a=s,s=s.lastChild;let i=e.steps.length,o=this.ranges;for(let c=0;c<o.length;c++){let{$from:u,$to:h}=o[c],f=e.mapping.slice(i);e.replaceRange(f.map(u.pos),f.map(h.pos),c?Le.empty:n),c==0&&Q1(e,i,(s?s.isInline:a&&a.isTextblock)?-1:1)}}replaceWith(e,n){let s=e.steps.length,a=this.ranges;for(let i=0;i<a.length;i++){let{$from:o,$to:c}=a[i],u=e.mapping.slice(s),h=u.map(o.pos),f=u.map(c.pos);i?e.deleteRange(h,f):(e.replaceRangeWith(h,f,n),Q1(e,s,n.isInline?-1:1))}}static findFrom(e,n,s=!1){let a=e.parent.inlineContent?new et(e):Vl(e.node(0),e.parent,e.pos,e.index(),n,s);if(a)return a;for(let i=e.depth-1;i>=0;i--){let o=n<0?Vl(e.node(0),e.node(i),e.before(i+1),e.index(i),n,s):Vl(e.node(0),e.node(i),e.after(i+1),e.index(i)+1,n,s);if(o)return o}return null}static near(e,n=1){return this.findFrom(e,n)||this.findFrom(e,-n)||new or(e.node(0))}static atStart(e){return Vl(e,e,0,0,1)||new or(e)}static atEnd(e){return Vl(e,e,e.content.size,e.childCount,-1)||new or(e)}static fromJSON(e,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let s=jg[n.type];if(!s)throw new RangeError(`No selection type ${n.type} defined`);return s.fromJSON(e,n)}static jsonID(e,n){if(e in jg)throw new RangeError("Duplicate use of selection JSON ID "+e);return jg[e]=n,n.prototype.jsonID=e,n}getBookmark(){return et.between(this.$anchor,this.$head).getBookmark()}}ot.prototype.visible=!0;class BS{constructor(e,n){this.$from=e,this.$to=n}}let J1=!1;function Y1(t){!J1&&!t.parent.inlineContent&&(J1=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+t.parent.type.name+")"))}class et extends ot{constructor(e,n=e){Y1(e),Y1(n),super(e,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,n){let s=e.resolve(n.map(this.head));if(!s.parent.inlineContent)return ot.near(s);let a=e.resolve(n.map(this.anchor));return new et(a.parent.inlineContent?a:s,s)}replace(e,n=Le.empty){if(super.replace(e,n),n==Le.empty){let s=this.$from.marksAcross(this.$to);s&&e.ensureMarks(s)}}eq(e){return e instanceof et&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new ap(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new et(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,s=n){let a=e.resolve(n);return new this(a,s==n?a:e.resolve(s))}static between(e,n,s){let a=e.pos-n.pos;if((!s||a)&&(s=a>=0?1:-1),!n.parent.inlineContent){let i=ot.findFrom(n,s,!0)||ot.findFrom(n,-s,!0);if(i)n=i.$head;else return ot.near(n,s)}return e.parent.inlineContent||(a==0?e=n:(e=(ot.findFrom(e,-s,!0)||ot.findFrom(e,s,!0)).$anchor,e.pos<n.pos!=a<0&&(e=n))),new et(e,n)}}ot.jsonID("text",et);class ap{constructor(e,n){this.anchor=e,this.head=n}map(e){return new ap(e.map(this.anchor),e.map(this.head))}resolve(e){return et.between(e.resolve(this.anchor),e.resolve(this.head))}}class Ze extends ot{constructor(e){let n=e.nodeAfter,s=e.node(0).resolve(e.pos+n.nodeSize);super(e,s),this.node=n}map(e,n){let{deleted:s,pos:a}=n.mapResult(this.anchor),i=e.resolve(a);return s?ot.near(i):new Ze(i)}content(){return new Le(Ne.from(this.node),0,0)}eq(e){return e instanceof Ze&&e.anchor==this.anchor}toJSON(){return{type:"node",anchor:this.anchor}}getBookmark(){return new $0(this.anchor)}static fromJSON(e,n){if(typeof n.anchor!="number")throw new RangeError("Invalid input for NodeSelection.fromJSON");return new Ze(e.resolve(n.anchor))}static create(e,n){return new Ze(e.resolve(n))}static isSelectable(e){return!e.isText&&e.type.spec.selectable!==!1}}Ze.prototype.visible=!1;ot.jsonID("node",Ze);class $0{constructor(e){this.anchor=e}map(e){let{deleted:n,pos:s}=e.mapResult(this.anchor);return n?new ap(s,s):new $0(s)}resolve(e){let n=e.resolve(this.anchor),s=n.nodeAfter;return s&&Ze.isSelectable(s)?new Ze(n):ot.near(n)}}class or extends ot{constructor(e){super(e.resolve(0),e.resolve(e.content.size))}replace(e,n=Le.empty){if(n==Le.empty){e.delete(0,e.doc.content.size);let s=ot.atStart(e.doc);s.eq(e.selection)||e.setSelection(s)}else super.replace(e,n)}toJSON(){return{type:"all"}}static fromJSON(e){return new or(e)}map(e){return new or(e)}eq(e){return e instanceof or}getBookmark(){return IO}}ot.jsonID("all",or);const IO={map(){return this},resolve(t){return new or(t)}};function Vl(t,e,n,s,a,i=!1){if(e.inlineContent)return et.create(t,n);for(let o=s-(a>0?0:1);a>0?o<e.childCount:o>=0;o+=a){let c=e.child(o);if(c.isAtom){if(!i&&Ze.isSelectable(c))return Ze.create(t,n-(a<0?c.nodeSize:0))}else{let u=Vl(t,c,n+a,a<0?c.childCount:0,a,i);if(u)return u}n+=c.nodeSize*a}return null}function Q1(t,e,n){let s=t.steps.length-1;if(s<e)return;let a=t.steps[s];if(!(a instanceof Vn||a instanceof Hn))return;let i=t.mapping.maps[s],o;i.forEach((c,u,h,f)=>{o==null&&(o=f)}),t.setSelection(ot.near(t.doc.resolve(o),n))}const X1=1,xh=2,Z1=4;class PO extends F0{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor<this.steps.length&&(this.curSelection=this.curSelection.map(this.doc,this.mapping.slice(this.curSelectionFor)),this.curSelectionFor=this.steps.length),this.curSelection}setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selection passed to setSelection must point at the current document");return this.curSelection=e,this.curSelectionFor=this.steps.length,this.updated=(this.updated|X1)&~xh,this.storedMarks=null,this}get selectionSet(){return(this.updated&X1)>0}setStoredMarks(e){return this.storedMarks=e,this.updated|=xh,this}ensureMarks(e){return Wt.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&xh)>0}addStep(e,n){super.addStep(e,n),this.updated=this.updated&~xh,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,n=!0){let s=this.selection;return n&&(e=e.mark(this.storedMarks||(s.empty?s.$from.marks():s.$from.marksAcross(s.$to)||Wt.none))),s.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,n,s){let a=this.doc.type.schema;if(n==null)return e?this.replaceSelectionWith(a.text(e),!0):this.deleteSelection();{if(s==null&&(s=n),!e)return this.deleteRange(n,s);let i=this.storedMarks;if(!i){let o=this.doc.resolve(n);i=s==n?o.marks():o.marksAcross(this.doc.resolve(s))}return this.replaceRangeWith(n,s,a.text(e,i)),!this.selection.empty&&this.selection.to==n+e.length&&this.setSelection(ot.near(this.selection.$to)),this}}setMeta(e,n){return this.meta[typeof e=="string"?e:e.key]=n,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=Z1,this}get scrolledIntoView(){return(this.updated&Z1)>0}}function eN(t,e){return!e||!t?t:t.bind(e)}class cd{constructor(e,n,s){this.name=e,this.init=eN(n.init,s),this.apply=eN(n.apply,s)}}const RO=[new cd("doc",{init(t){return t.doc||t.schema.topNodeType.createAndFill()},apply(t){return t.doc}}),new cd("selection",{init(t,e){return t.selection||ot.atStart(e.doc)},apply(t){return t.selection}}),new cd("storedMarks",{init(t){return t.storedMarks||null},apply(t,e,n,s){return s.selection.$cursor?t.storedMarks:null}}),new cd("scrollToSelection",{init(){return 0},apply(t,e){return t.scrolledIntoView?e+1:e}})];class kg{constructor(e,n){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=RO.slice(),n&&n.forEach(s=>{if(this.pluginsByKey[s.key])throw new RangeError("Adding different instances of a keyed plugin ("+s.key+")");this.plugins.push(s),this.pluginsByKey[s.key]=s,s.spec.state&&this.fields.push(new cd(s.key,s.spec.state,s))})}}class Jl{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,n=-1){for(let s=0;s<this.config.plugins.length;s++)if(s!=n){let a=this.config.plugins[s];if(a.spec.filterTransaction&&!a.spec.filterTransaction.call(a,e,this))return!1}return!0}applyTransaction(e){if(!this.filterTransaction(e))return{state:this,transactions:[]};let n=[e],s=this.applyInner(e),a=null;for(;;){let i=!1;for(let o=0;o<this.config.plugins.length;o++){let c=this.config.plugins[o];if(c.spec.appendTransaction){let u=a?a[o].n:0,h=a?a[o].state:this,f=u<n.length&&c.spec.appendTransaction.call(c,u?n.slice(u):n,h,s);if(f&&s.filterTransaction(f,o)){if(f.setMeta("appendedTransaction",e),!a){a=[];for(let m=0;m<this.config.plugins.length;m++)a.push(m<o?{state:s,n:n.length}:{state:this,n:0})}n.push(f),s=s.applyInner(f),i=!0}a&&(a[o]={state:s,n:n.length})}}if(!i)return{state:s,transactions:n}}}applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying a mismatched transaction");let n=new Jl(this.config),s=this.config.fields;for(let a=0;a<s.length;a++){let i=s[a];n[i.name]=i.apply(e,this[i.name],this,n)}return n}get tr(){return new PO(this)}static create(e){let n=new kg(e.doc?e.doc.type.schema:e.schema,e.plugins),s=new Jl(n);for(let a=0;a<n.fields.length;a++)s[n.fields[a].name]=n.fields[a].init(e,s);return s}reconfigure(e){let n=new kg(this.schema,e.plugins),s=n.fields,a=new Jl(n);for(let i=0;i<s.length;i++){let o=s[i].name;a[o]=this.hasOwnProperty(o)?this[o]:s[i].init(e,a)}return a}toJSON(e){let n={doc:this.doc.toJSON(),selection:this.selection.toJSON()};if(this.storedMarks&&(n.storedMarks=this.storedMarks.map(s=>s.toJSON())),e&&typeof e=="object")for(let s in e){if(s=="doc"||s=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let a=e[s],i=a.spec.state;i&&i.toJSON&&(n[s]=i.toJSON.call(a,this[a.key]))}return n}static fromJSON(e,n,s){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let a=new kg(e.schema,e.plugins),i=new Jl(a);return a.fields.forEach(o=>{if(o.name=="doc")i.doc=Wa.fromJSON(e.schema,n.doc);else if(o.name=="selection")i.selection=ot.fromJSON(i.doc,n.selection);else if(o.name=="storedMarks")n.storedMarks&&(i.storedMarks=n.storedMarks.map(e.schema.markFromJSON));else{if(s)for(let c in s){let u=s[c],h=u.spec.state;if(u.key==o.name&&h&&h.fromJSON&&Object.prototype.hasOwnProperty.call(n,c)){i[o.name]=h.fromJSON.call(u,e,n[c],i);return}}i[o.name]=o.init(e,i)}}),i}}function VS(t,e,n){for(let s in t){let a=t[s];a instanceof Function?a=a.bind(e):s=="handleDOMEvents"&&(a=VS(a,e,{})),n[s]=a}return n}class Qt{constructor(e){this.spec=e,this.props={},e.props&&VS(e.props,this,this.props),this.key=e.key?e.key.key:HS("plugin")}getState(e){return e[this.key]}}const Sg=Object.create(null);function HS(t){return t in Sg?t+"$"+ ++Sg[t]:(Sg[t]=0,t+"$")}class ln{constructor(e="key"){this.key=HS(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const B0=(t,e)=>t.selection.empty?!1:(e&&e(t.tr.deleteSelection().scrollIntoView()),!0);function WS(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("backward",t):n.parentOffset>0)?null:n}const US=(t,e,n)=>{let s=WS(t,n);if(!s)return!1;let a=V0(s);if(!a){let o=s.blockRange(),c=o&&xc(o);return c==null?!1:(e&&e(t.tr.lift(o,c).scrollIntoView()),!0)}let i=a.nodeBefore;if(e2(t,a,e,-1))return!0;if(s.parent.content.size==0&&(sc(i,"end")||Ze.isSelectable(i)))for(let o=s.depth;;o--){let c=rp(t.doc,s.before(o),s.after(o),Le.empty);if(c&&c.slice.size<c.to-c.from){if(e){let u=t.tr.step(c);u.setSelection(sc(i,"end")?ot.findFrom(u.doc.resolve(u.mapping.map(a.pos,-1)),-1):Ze.create(u.doc,a.pos-i.nodeSize)),e(u.scrollIntoView())}return!0}if(o==1||s.node(o-1).childCount>1)break}return i.isAtom&&a.depth==s.depth-1?(e&&e(t.tr.delete(a.pos-i.nodeSize,a.pos).scrollIntoView()),!0):!1},OO=(t,e,n)=>{let s=WS(t,n);if(!s)return!1;let a=V0(s);return a?KS(t,a,e):!1},DO=(t,e,n)=>{let s=GS(t,n);if(!s)return!1;let a=H0(s);return a?KS(t,a,e):!1};function KS(t,e,n){let s=e.nodeBefore,a=s,i=e.pos-1;for(;!a.isTextblock;i--){if(a.type.spec.isolating)return!1;let f=a.lastChild;if(!f)return!1;a=f}let o=e.nodeAfter,c=o,u=e.pos+1;for(;!c.isTextblock;u++){if(c.type.spec.isolating)return!1;let f=c.firstChild;if(!f)return!1;c=f}let h=rp(t.doc,i,u,Le.empty);if(!h||h.from!=i||h instanceof Vn&&h.slice.size>=u-i)return!1;if(n){let f=t.tr.step(h);f.setSelection(et.create(f.doc,i)),n(f.scrollIntoView())}return!0}function sc(t,e,n=!1){for(let s=t;s;s=e=="start"?s.firstChild:s.lastChild){if(s.isTextblock)return!0;if(n&&s.childCount!=1)return!1}return!1}const qS=(t,e,n)=>{let{$head:s,empty:a}=t.selection,i=s;if(!a)return!1;if(s.parent.isTextblock){if(n?!n.endOfTextblock("backward",t):s.parentOffset>0)return!1;i=V0(s)}let o=i&&i.nodeBefore;return!o||!Ze.isSelectable(o)?!1:(e&&e(t.tr.setSelection(Ze.create(t.doc,i.pos-o.nodeSize)).scrollIntoView()),!0)};function V0(t){if(!t.parent.type.spec.isolating)for(let e=t.depth-1;e>=0;e--){if(t.index(e)>0)return t.doc.resolve(t.before(e+1));if(t.node(e).type.spec.isolating)break}return null}function GS(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("forward",t):n.parentOffset<n.parent.content.size)?null:n}const JS=(t,e,n)=>{let s=GS(t,n);if(!s)return!1;let a=H0(s);if(!a)return!1;let i=a.nodeAfter;if(e2(t,a,e,1))return!0;if(s.parent.content.size==0&&(sc(i,"start")||Ze.isSelectable(i))){let o=rp(t.doc,s.before(),s.after(),Le.empty);if(o&&o.slice.size<o.to-o.from){if(e){let c=t.tr.step(o);c.setSelection(sc(i,"start")?ot.findFrom(c.doc.resolve(c.mapping.map(a.pos)),1):Ze.create(c.doc,c.mapping.map(a.pos))),e(c.scrollIntoView())}return!0}}return i.isAtom&&a.depth==s.depth-1?(e&&e(t.tr.delete(a.pos,a.pos+i.nodeSize).scrollIntoView()),!0):!1},YS=(t,e,n)=>{let{$head:s,empty:a}=t.selection,i=s;if(!a)return!1;if(s.parent.isTextblock){if(n?!n.endOfTextblock("forward",t):s.parentOffset<s.parent.content.size)return!1;i=H0(s)}let o=i&&i.nodeAfter;return!o||!Ze.isSelectable(o)?!1:(e&&e(t.tr.setSelection(Ze.create(t.doc,i.pos)).scrollIntoView()),!0)};function H0(t){if(!t.parent.type.spec.isolating)for(let e=t.depth-1;e>=0;e--){let n=t.node(e);if(t.index(e)+1<n.childCount)return t.doc.resolve(t.after(e+1));if(n.type.spec.isolating)break}return null}const LO=(t,e)=>{let n=t.selection,s=n instanceof Ze,a;if(s){if(n.node.isTextblock||!Qi(t.doc,n.from))return!1;a=n.from}else if(a=sp(t.doc,n.from,-1),a==null)return!1;if(e){let i=t.tr.join(a);s&&i.setSelection(Ze.create(i.doc,a-t.doc.resolve(a).nodeBefore.nodeSize)),e(i.scrollIntoView())}return!0},_O=(t,e)=>{let n=t.selection,s;if(n instanceof Ze){if(n.node.isTextblock||!Qi(t.doc,n.to))return!1;s=n.to}else if(s=sp(t.doc,n.to,1),s==null)return!1;return e&&e(t.tr.join(s).scrollIntoView()),!0},zO=(t,e)=>{let{$from:n,$to:s}=t.selection,a=n.blockRange(s),i=a&&xc(a);return i==null?!1:(e&&e(t.tr.lift(a,i).scrollIntoView()),!0)},QS=(t,e)=>{let{$head:n,$anchor:s}=t.selection;return!n.parent.type.spec.code||!n.sameParent(s)?!1:(e&&e(t.tr.insertText(`
`).scrollIntoView()),!0)};function W0(t){for(let e=0;e<t.edgeCount;e++){let{type:n}=t.edge(e);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}const FO=(t,e)=>{let{$head:n,$anchor:s}=t.selection;if(!n.parent.type.spec.code||!n.sameParent(s))return!1;let a=n.node(-1),i=n.indexAfter(-1),o=W0(a.contentMatchAt(i));if(!o||!a.canReplaceWith(i,i,o))return!1;if(e){let c=n.after(),u=t.tr.replaceWith(c,c,o.createAndFill());u.setSelection(ot.near(u.doc.resolve(c),1)),e(u.scrollIntoView())}return!0},XS=(t,e)=>{let n=t.selection,{$from:s,$to:a}=n;if(n instanceof or||s.parent.inlineContent||a.parent.inlineContent)return!1;let i=W0(a.parent.contentMatchAt(a.indexAfter()));if(!i||!i.isTextblock)return!1;if(e){let o=(!s.parentOffset&&a.index()<a.parent.childCount?s:a).pos,c=t.tr.insert(o,i.createAndFill());c.setSelection(et.create(c.doc,o+1)),e(c.scrollIntoView())}return!0},ZS=(t,e)=>{let{$cursor:n}=t.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let i=n.before();if(Ua(t.doc,i))return e&&e(t.tr.split(i).scrollIntoView()),!0}let s=n.blockRange(),a=s&&xc(s);return a==null?!1:(e&&e(t.tr.lift(s,a).scrollIntoView()),!0)};function $O(t){return(e,n)=>{let{$from:s,$to:a}=e.selection;if(e.selection instanceof Ze&&e.selection.node.isBlock)return!s.parentOffset||!Ua(e.doc,s.pos)?!1:(n&&n(e.tr.split(s.pos).scrollIntoView()),!0);if(!s.depth)return!1;let i=[],o,c,u=!1,h=!1;for(let y=s.depth;;y--)if(s.node(y).isBlock){u=s.end(y)==s.pos+(s.depth-y),h=s.start(y)==s.pos-(s.depth-y),c=W0(s.node(y-1).contentMatchAt(s.indexAfter(y-1))),i.unshift(u&&c?{type:c}:null),o=y;break}else{if(y==1)return!1;i.unshift(null)}let f=e.tr;(e.selection instanceof et||e.selection instanceof or)&&f.deleteSelection();let m=f.mapping.map(s.pos),g=Ua(f.doc,m,i.length,i);if(g||(i[0]=c?{type:c}:null,g=Ua(f.doc,m,i.length,i)),!g)return!1;if(f.split(m,i.length,i),!u&&h&&s.node(o).type!=c){let y=f.mapping.map(s.before(o)),N=f.doc.resolve(y);c&&s.node(o-1).canReplaceWith(N.index(),N.index()+1,c)&&f.setNodeMarkup(f.mapping.map(s.before(o)),c)}return n&&n(f.scrollIntoView()),!0}}const BO=$O(),VO=(t,e)=>{let{$from:n,to:s}=t.selection,a,i=n.sharedDepth(s);return i==0?!1:(a=n.before(i),e&&e(t.tr.setSelection(Ze.create(t.doc,a))),!0)};function HO(t,e,n){let s=e.nodeBefore,a=e.nodeAfter,i=e.index();return!s||!a||!s.type.compatibleContent(a.type)?!1:!s.content.size&&e.parent.canReplace(i-1,i)?(n&&n(t.tr.delete(e.pos-s.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(i,i+1)||!(a.isTextblock||Qi(t.doc,e.pos))?!1:(n&&n(t.tr.join(e.pos).scrollIntoView()),!0)}function e2(t,e,n,s){let a=e.nodeBefore,i=e.nodeAfter,o,c,u=a.type.spec.isolating||i.type.spec.isolating;if(!u&&HO(t,e,n))return!0;let h=!u&&e.parent.canReplace(e.index(),e.index()+1);if(h&&(o=(c=a.contentMatchAt(a.childCount)).findWrapping(i.type))&&c.matchType(o[0]||i.type).validEnd){if(n){let y=e.pos+i.nodeSize,N=Ne.empty;for(let k=o.length-1;k>=0;k--)N=Ne.from(o[k].create(null,N));N=Ne.from(a.copy(N));let w=t.tr.step(new Hn(e.pos-1,y,e.pos,y,new Le(N,1,0),o.length,!0)),v=w.doc.resolve(y+2*o.length);v.nodeAfter&&v.nodeAfter.type==a.type&&Qi(w.doc,v.pos)&&w.join(v.pos),n(w.scrollIntoView())}return!0}let f=i.type.spec.isolating||s>0&&u?null:ot.findFrom(e,1),m=f&&f.$from.blockRange(f.$to),g=m&&xc(m);if(g!=null&&g>=e.depth)return n&&n(t.tr.lift(m,g).scrollIntoView()),!0;if(h&&sc(i,"start",!0)&&sc(a,"end")){let y=a,N=[];for(;N.push(y),!y.isTextblock;)y=y.lastChild;let w=i,v=1;for(;!w.isTextblock;w=w.firstChild)v++;if(y.canReplace(y.childCount,y.childCount,w.content)){if(n){let k=Ne.empty;for(let E=N.length-1;E>=0;E--)k=Ne.from(N[E].copy(k));let C=t.tr.step(new Hn(e.pos-N.length,e.pos+i.nodeSize,e.pos+v,e.pos+i.nodeSize-v,new Le(k,N.length,0),0,!0));n(C.scrollIntoView())}return!0}}return!1}function t2(t){return function(e,n){let s=e.selection,a=t<0?s.$from:s.$to,i=a.depth;for(;a.node(i).isInline;){if(!i)return!1;i--}return a.node(i).isTextblock?(n&&n(e.tr.setSelection(et.create(e.doc,t<0?a.start(i):a.end(i)))),!0):!1}}const WO=t2(-1),UO=t2(1);function KO(t,e=null){return function(n,s){let{$from:a,$to:i}=n.selection,o=a.blockRange(i),c=o&&z0(o,t,e);return c?(s&&s(n.tr.wrap(o,c).scrollIntoView()),!0):!1}}function tN(t,e=null){return function(n,s){let a=!1;for(let i=0;i<n.selection.ranges.length&&!a;i++){let{$from:{pos:o},$to:{pos:c}}=n.selection.ranges[i];n.doc.nodesBetween(o,c,(u,h)=>{if(a)return!1;if(!(!u.isTextblock||u.hasMarkup(t,e)))if(u.type==t)a=!0;else{let f=n.doc.resolve(h),m=f.index();a=f.parent.canReplaceWith(m,m+1,t)}})}if(!a)return!1;if(s){let i=n.tr;for(let o=0;o<n.selection.ranges.length;o++){let{$from:{pos:c},$to:{pos:u}}=n.selection.ranges[o];i.setBlockType(c,u,t,e)}s(i.scrollIntoView())}return!0}}function U0(...t){return function(e,n,s){for(let a=0;a<t.length;a++)if(t[a](e,n,s))return!0;return!1}}U0(B0,US,qS);U0(B0,JS,YS);U0(QS,XS,ZS,BO);typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<"u"&&os.platform&&os.platform()=="darwin";function qO(t,e=null){return function(n,s){let{$from:a,$to:i}=n.selection,o=a.blockRange(i);if(!o)return!1;let c=s?n.tr:null;return GO(c,o,t,e)?(s&&s(c.scrollIntoView()),!0):!1}}function GO(t,e,n,s=null){let a=!1,i=e,o=e.$from.doc;if(e.depth>=2&&e.$from.node(e.depth-1).type.compatibleContent(n)&&e.startIndex==0){if(e.$from.index(e.depth-1)==0)return!1;let u=o.resolve(e.start-2);i=new Zh(u,u,e.depth),e.endIndex<e.parent.childCount&&(e=new Zh(e.$from,o.resolve(e.$to.end(e.depth)),e.depth)),a=!0}let c=z0(i,n,s,e);return c?(t&&JO(t,e,c,a,n),!0):!1}function JO(t,e,n,s,a){let i=Ne.empty;for(let f=n.length-1;f>=0;f--)i=Ne.from(n[f].type.create(n[f].attrs,i));t.step(new Hn(e.start-(s?2:0),e.end,e.start,e.end,new Le(i,0,0),n.length,!0));let o=0;for(let f=0;f<n.length;f++)n[f].type==a&&(o=f+1);let c=n.length-o,u=e.start+n.length-(s?2:0),h=e.parent;for(let f=e.startIndex,m=e.endIndex,g=!0;f<m;f++,g=!1)!g&&Ua(t.doc,u,c)&&(t.split(u,c),u+=2*c),u+=h.child(f).nodeSize;return t}function YO(t){return function(e,n){let{$from:s,$to:a}=e.selection,i=s.blockRange(a,o=>o.childCount>0&&o.firstChild.type==t);return i?n?s.node(i.depth-1).type==t?QO(e,n,t,i):XO(e,n,i):!0:!1}}function QO(t,e,n,s){let a=t.tr,i=s.end,o=s.$to.end(s.depth);i<o&&(a.step(new Hn(i-1,o,i,o,new Le(Ne.from(n.create(null,s.parent.copy())),1,0),1,!0)),s=new Zh(a.doc.resolve(s.$from.pos),a.doc.resolve(o),s.depth));const c=xc(s);if(c==null)return!1;a.lift(s,c);let u=a.doc.resolve(a.mapping.map(i,-1)-1);return Qi(a.doc,u.pos)&&u.nodeBefore.type==u.nodeAfter.type&&a.join(u.pos),e(a.scrollIntoView()),!0}function XO(t,e,n){let s=t.tr,a=n.parent;for(let y=n.end,N=n.endIndex-1,w=n.startIndex;N>w;N--)y-=a.child(N).nodeSize,s.delete(y-1,y+1);let i=s.doc.resolve(n.start),o=i.nodeAfter;if(s.mapping.map(n.end)!=n.start+i.nodeAfter.nodeSize)return!1;let c=n.startIndex==0,u=n.endIndex==a.childCount,h=i.node(-1),f=i.index(-1);if(!h.canReplace(f+(c?0:1),f+1,o.content.append(u?Ne.empty:Ne.from(a))))return!1;let m=i.pos,g=m+o.nodeSize;return s.step(new Hn(m-(c?1:0),g+(u?1:0),m+1,g-1,new Le((c?Ne.empty:Ne.from(a.copy(Ne.empty))).append(u?Ne.empty:Ne.from(a.copy(Ne.empty))),c?0:1,u?0:1),c?0:1)),e(s.scrollIntoView()),!0}function ZO(t){return function(e,n){let{$from:s,$to:a}=e.selection,i=s.blockRange(a,h=>h.childCount>0&&h.firstChild.type==t);if(!i)return!1;let o=i.startIndex;if(o==0)return!1;let c=i.parent,u=c.child(o-1);if(u.type!=t)return!1;if(n){let h=u.lastChild&&u.lastChild.type==c.type,f=Ne.from(h?t.create():null),m=new Le(Ne.from(t.create(null,Ne.from(c.type.create(null,f)))),h?3:1,0),g=i.start,y=i.end;n(e.tr.step(new Hn(g-(h?3:1),y,g,y,m,1,!0)).scrollIntoView())}return!0}}const Zn=function(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e},rc=function(t){let e=t.assignedSlot||t.parentNode;return e&&e.nodeType==11?e.host:e};let Cx=null;const $a=function(t,e,n){let s=Cx||(Cx=document.createRange());return s.setEnd(t,n??t.nodeValue.length),s.setStart(t,e||0),s},eD=function(){Cx=null},Jo=function(t,e,n,s){return n&&(nN(t,e,n,s,-1)||nN(t,e,n,s,1))},tD=/^(img|br|input|textarea|hr)$/i;function nN(t,e,n,s,a){for(var i;;){if(t==n&&e==s)return!0;if(e==(a<0?0:yr(t))){let o=t.parentNode;if(!o||o.nodeType!=1||Qd(t)||tD.test(t.nodeName)||t.contentEditable=="false")return!1;e=Zn(t)+(a<0?0:1),t=o}else if(t.nodeType==1){let o=t.childNodes[e+(a<0?-1:0)];if(o.nodeType==1&&o.contentEditable=="false")if(!((i=o.pmViewDesc)===null||i===void 0)&&i.ignoreForSelection)e+=a;else return!1;else t=o,e=a<0?yr(t):0}else return!1}}function yr(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function nD(t,e){for(;;){if(t.nodeType==3&&e)return t;if(t.nodeType==1&&e>0){if(t.contentEditable=="false")return null;t=t.childNodes[e-1],e=yr(t)}else if(t.parentNode&&!Qd(t))e=Zn(t),t=t.parentNode;else return null}}function sD(t,e){for(;;){if(t.nodeType==3&&e<t.nodeValue.length)return t;if(t.nodeType==1&&e<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[e],e=0}else if(t.parentNode&&!Qd(t))e=Zn(t)+1,t=t.parentNode;else return null}}function rD(t,e,n){for(let s=e==0,a=e==yr(t);s||a;){if(t==n)return!0;let i=Zn(t);if(t=t.parentNode,!t)return!1;s=s&&i==0,a=a&&i==yr(t)}}function Qd(t){let e;for(let n=t;n&&!(e=n.pmViewDesc);n=n.parentNode);return e&&e.node&&e.node.isBlock&&(e.dom==t||e.contentDOM==t)}const ip=function(t){return t.focusNode&&Jo(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)};function Ao(t,e){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=t,n.key=n.code=e,n}function aD(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function iD(t,e,n){if(t.caretPositionFromPoint)try{let s=t.caretPositionFromPoint(e,n);if(s)return{node:s.offsetNode,offset:Math.min(yr(s.offsetNode),s.offset)}}catch{}if(t.caretRangeFromPoint){let s=t.caretRangeFromPoint(e,n);if(s)return{node:s.startContainer,offset:Math.min(yr(s.startContainer),s.startOffset)}}}const ha=typeof navigator<"u"?navigator:null,sN=typeof document<"u"?document:null,Xi=ha&&ha.userAgent||"",Ex=/Edge\/(\d+)/.exec(Xi),n2=/MSIE \d/.exec(Xi),Tx=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Xi),Ks=!!(n2||Tx||Ex),zi=n2?document.documentMode:Tx?+Tx[1]:Ex?+Ex[1]:0,br=!Ks&&/gecko\/(\d+)/i.test(Xi);br&&+(/Firefox\/(\d+)/.exec(Xi)||[0,0])[1];const Mx=!Ks&&/Chrome\/(\d+)/.exec(Xi),ts=!!Mx,s2=Mx?+Mx[1]:0,ys=!Ks&&!!ha&&/Apple Computer/.test(ha.vendor),ac=ys&&(/Mobile\/\w+/.test(Xi)||!!ha&&ha.maxTouchPoints>2),xr=ac||(ha?/Mac/.test(ha.platform):!1),r2=ha?/Win/.test(ha.platform):!1,Ha=/Android \d/.test(Xi),Xd=!!sN&&"webkitFontSmoothing"in sN.documentElement.style,oD=Xd?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function lD(t){let e=t.defaultView&&t.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.documentElement.clientWidth,top:0,bottom:t.documentElement.clientHeight}}function Da(t,e){return typeof t=="number"?t:t[e]}function cD(t){let e=t.getBoundingClientRect(),n=e.width/t.offsetWidth||1,s=e.height/t.offsetHeight||1;return{left:e.left,right:e.left+t.clientWidth*n,top:e.top,bottom:e.top+t.clientHeight*s}}function rN(t,e,n){let s=t.someProp("scrollThreshold")||0,a=t.someProp("scrollMargin")||5,i=t.dom.ownerDocument;for(let o=n||t.dom;o;){if(o.nodeType!=1){o=rc(o);continue}let c=o,u=c==i.body,h=u?lD(i):cD(c),f=0,m=0;if(e.top<h.top+Da(s,"top")?m=-(h.top-e.top+Da(a,"top")):e.bottom>h.bottom-Da(s,"bottom")&&(m=e.bottom-e.top>h.bottom-h.top?e.top+Da(a,"top")-h.top:e.bottom-h.bottom+Da(a,"bottom")),e.left<h.left+Da(s,"left")?f=-(h.left-e.left+Da(a,"left")):e.right>h.right-Da(s,"right")&&(f=e.right-h.right+Da(a,"right")),f||m)if(u)i.defaultView.scrollBy(f,m);else{let y=c.scrollLeft,N=c.scrollTop;m&&(c.scrollTop+=m),f&&(c.scrollLeft+=f);let w=c.scrollLeft-y,v=c.scrollTop-N;e={left:e.left-w,top:e.top-v,right:e.right-w,bottom:e.bottom-v}}let g=u?"fixed":getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(g))break;o=g=="absolute"?o.offsetParent:rc(o)}}function dD(t){let e=t.dom.getBoundingClientRect(),n=Math.max(0,e.top),s,a;for(let i=(e.left+e.right)/2,o=n+1;o<Math.min(innerHeight,e.bottom);o+=5){let c=t.root.elementFromPoint(i,o);if(!c||c==t.dom||!t.dom.contains(c))continue;let u=c.getBoundingClientRect();if(u.top>=n-20){s=c,a=u.top;break}}return{refDOM:s,refTop:a,stack:a2(t.dom)}}function a2(t){let e=[],n=t.ownerDocument;for(let s=t;s&&(e.push({dom:s,top:s.scrollTop,left:s.scrollLeft}),t!=n);s=rc(s));return e}function uD({refDOM:t,refTop:e,stack:n}){let s=t?t.getBoundingClientRect().top:0;i2(n,s==0?0:s-e)}function i2(t,e){for(let n=0;n<t.length;n++){let{dom:s,top:a,left:i}=t[n];s.scrollTop!=a+e&&(s.scrollTop=a+e),s.scrollLeft!=i&&(s.scrollLeft=i)}}let $l=null;function hD(t){if(t.setActive)return t.setActive();if($l)return t.focus($l);let e=a2(t);t.focus($l==null?{get preventScroll(){return $l={preventScroll:!0},!0}}:void 0),$l||($l=!1,i2(e,0))}function o2(t,e){let n,s=2e8,a,i=0,o=e.top,c=e.top,u,h;for(let f=t.firstChild,m=0;f;f=f.nextSibling,m++){let g;if(f.nodeType==1)g=f.getClientRects();else if(f.nodeType==3)g=$a(f).getClientRects();else continue;for(let y=0;y<g.length;y++){let N=g[y];if(N.top<=o&&N.bottom>=c){o=Math.max(N.bottom,o),c=Math.min(N.top,c);let w=N.left>e.left?N.left-e.left:N.right<e.left?e.left-N.right:0;if(w<s){n=f,s=w,a=w&&n.nodeType==3?{left:N.right<e.left?N.right:N.left,top:e.top}:e,f.nodeType==1&&w&&(i=m+(e.left>=(N.left+N.right)/2?1:0));continue}}else N.top>e.top&&!u&&N.left<=e.left&&N.right>=e.left&&(u=f,h={left:Math.max(N.left,Math.min(N.right,e.left)),top:N.top});!n&&(e.left>=N.right&&e.top>=N.top||e.left>=N.left&&e.top>=N.bottom)&&(i=m+1)}}return!n&&u&&(n=u,a=h,s=0),n&&n.nodeType==3?fD(n,a):!n||s&&n.nodeType==1?{node:t,offset:i}:o2(n,a)}function fD(t,e){let n=t.nodeValue.length,s=document.createRange(),a;for(let i=0;i<n;i++){s.setEnd(t,i+1),s.setStart(t,i);let o=ji(s,1);if(o.top!=o.bottom&&K0(e,o)){a={node:t,offset:i+(e.left>=(o.left+o.right)/2?1:0)};break}}return s.detach(),a||{node:t,offset:0}}function K0(t,e){return t.left>=e.left-1&&t.left<=e.right+1&&t.top>=e.top-1&&t.top<=e.bottom+1}function pD(t,e){let n=t.parentNode;return n&&/^li$/i.test(n.nodeName)&&e.left<t.getBoundingClientRect().left?n:t}function mD(t,e,n){let{node:s,offset:a}=o2(e,n),i=-1;if(s.nodeType==1&&!s.firstChild){let o=s.getBoundingClientRect();i=o.left!=o.right&&n.left>(o.left+o.right)/2?1:-1}return t.docView.posFromDOM(s,a,i)}function gD(t,e,n,s){let a=-1;for(let i=e,o=!1;i!=t.dom;){let c=t.docView.nearestDesc(i,!0),u;if(!c)return null;if(c.dom.nodeType==1&&(c.node.isBlock&&c.parent||!c.contentDOM)&&((u=c.dom.getBoundingClientRect()).width||u.height)&&(c.node.isBlock&&c.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(c.dom.nodeName)&&(!o&&u.left>s.left||u.top>s.top?a=c.posBefore:(!o&&u.right<s.left||u.bottom<s.top)&&(a=c.posAfter),o=!0),!c.contentDOM&&a<0&&!c.node.isText))return(c.node.isBlock?s.top<(u.top+u.bottom)/2:s.left<(u.left+u.right)/2)?c.posBefore:c.posAfter;i=c.dom.parentNode}return a>-1?a:t.docView.posFromDOM(e,n,-1)}function l2(t,e,n){let s=t.childNodes.length;if(s&&n.top<n.bottom)for(let a=Math.max(0,Math.min(s-1,Math.floor(s*(e.top-n.top)/(n.bottom-n.top))-2)),i=a;;){let o=t.childNodes[i];if(o.nodeType==1){let c=o.getClientRects();for(let u=0;u<c.length;u++){let h=c[u];if(K0(e,h))return l2(o,e,h)}}if((i=(i+1)%s)==a)break}return t}function xD(t,e){let n=t.dom.ownerDocument,s,a=0,i=iD(n,e.left,e.top);i&&({node:s,offset:a}=i);let o=(t.root.elementFromPoint?t.root:n).elementFromPoint(e.left,e.top),c;if(!o||!t.dom.contains(o.nodeType!=1?o.parentNode:o)){let h=t.dom.getBoundingClientRect();if(!K0(e,h)||(o=l2(t.dom,e,h),!o))return null}if(ys)for(let h=o;s&&h;h=rc(h))h.draggable&&(s=void 0);if(o=pD(o,e),s){if(br&&s.nodeType==1&&(a=Math.min(a,s.childNodes.length),a<s.childNodes.length)){let f=s.childNodes[a],m;f.nodeName=="IMG"&&(m=f.getBoundingClientRect()).right<=e.left&&m.bottom>e.top&&a++}let h;Xd&&a&&s.nodeType==1&&(h=s.childNodes[a-1]).nodeType==1&&h.contentEditable=="false"&&h.getBoundingClientRect().top>=e.top&&a--,s==t.dom&&a==s.childNodes.length-1&&s.lastChild.nodeType==1&&e.top>s.lastChild.getBoundingClientRect().bottom?c=t.state.doc.content.size:(a==0||s.nodeType!=1||s.childNodes[a-1].nodeName!="BR")&&(c=gD(t,s,a,e))}c==null&&(c=mD(t,o,e));let u=t.docView.nearestDesc(o,!0);return{pos:c,inside:u?u.posAtStart-u.border:-1}}function aN(t){return t.top<t.bottom||t.left<t.right}function ji(t,e){let n=t.getClientRects();if(n.length){let s=n[e<0?0:n.length-1];if(aN(s))return s}return Array.prototype.find.call(n,aN)||t.getBoundingClientRect()}const yD=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;function c2(t,e,n){let{node:s,offset:a,atom:i}=t.docView.domFromPos(e,n<0?-1:1),o=Xd||br;if(s.nodeType==3)if(o&&(yD.test(s.nodeValue)||(n<0?!a:a==s.nodeValue.length))){let u=ji($a(s,a,a),n);if(br&&a&&/\s/.test(s.nodeValue[a-1])&&a<s.nodeValue.length){let h=ji($a(s,a-1,a-1),-1);if(h.top==u.top){let f=ji($a(s,a,a+1),-1);if(f.top!=u.top)return sd(f,f.left<h.left)}}return u}else{let u=a,h=a,f=n<0?1:-1;return n<0&&!a?(h++,f=-1):n>=0&&a==s.nodeValue.length?(u--,f=1):n<0?u--:h++,sd(ji($a(s,u,h),f),f<0)}if(!t.state.doc.resolve(e-(i||0)).parent.inlineContent){if(i==null&&a&&(n<0||a==yr(s))){let u=s.childNodes[a-1];if(u.nodeType==1)return Cg(u.getBoundingClientRect(),!1)}if(i==null&&a<yr(s)){let u=s.childNodes[a];if(u.nodeType==1)return Cg(u.getBoundingClientRect(),!0)}return Cg(s.getBoundingClientRect(),n>=0)}if(i==null&&a&&(n<0||a==yr(s))){let u=s.childNodes[a-1],h=u.nodeType==3?$a(u,yr(u)-(o?0:1)):u.nodeType==1&&(u.nodeName!="BR"||!u.nextSibling)?u:null;if(h)return sd(ji(h,1),!1)}if(i==null&&a<yr(s)){let u=s.childNodes[a];for(;u.pmViewDesc&&u.pmViewDesc.ignoreForCoords;)u=u.nextSibling;let h=u?u.nodeType==3?$a(u,0,o?0:1):u.nodeType==1?u:null:null;if(h)return sd(ji(h,-1),!0)}return sd(ji(s.nodeType==3?$a(s):s,-n),n>=0)}function sd(t,e){if(t.width==0)return t;let n=e?t.left:t.right;return{top:t.top,bottom:t.bottom,left:n,right:n}}function Cg(t,e){if(t.height==0)return t;let n=e?t.top:t.bottom;return{top:n,bottom:n,left:t.left,right:t.right}}function d2(t,e,n){let s=t.state,a=t.root.activeElement;s!=e&&t.updateState(e),a!=t.dom&&t.focus();try{return n()}finally{s!=e&&t.updateState(s),a!=t.dom&&a&&a.focus()}}function bD(t,e,n){let s=e.selection,a=n=="up"?s.$from:s.$to;return d2(t,e,()=>{let{node:i}=t.docView.domFromPos(a.pos,n=="up"?-1:1);for(;;){let c=t.docView.nearestDesc(i,!0);if(!c)break;if(c.node.isBlock){i=c.contentDOM||c.dom;break}i=c.dom.parentNode}let o=c2(t,a.pos,1);for(let c=i.firstChild;c;c=c.nextSibling){let u;if(c.nodeType==1)u=c.getClientRects();else if(c.nodeType==3)u=$a(c,0,c.nodeValue.length).getClientRects();else continue;for(let h=0;h<u.length;h++){let f=u[h];if(f.bottom>f.top+1&&(n=="up"?o.top-f.top>(f.bottom-o.top)*2:f.bottom-o.bottom>(o.bottom-f.top)*2))return!1}}return!0})}const vD=/[\u0590-\u08ac]/;function ND(t,e,n){let{$head:s}=e.selection;if(!s.parent.isTextblock)return!1;let a=s.parentOffset,i=!a,o=a==s.parent.content.size,c=t.domSelection();return c?!vD.test(s.parent.textContent)||!c.modify?n=="left"||n=="backward"?i:o:d2(t,e,()=>{let{focusNode:u,focusOffset:h,anchorNode:f,anchorOffset:m}=t.domSelectionRange(),g=c.caretBidiLevel;c.modify("move",n,"character");let y=s.depth?t.docView.domAfterPos(s.before()):t.dom,{focusNode:N,focusOffset:w}=t.domSelectionRange(),v=N&&!y.contains(N.nodeType==1?N:N.parentNode)||u==N&&h==w;try{c.collapse(f,m),u&&(u!=f||h!=m)&&c.extend&&c.extend(u,h)}catch{}return g!=null&&(c.caretBidiLevel=g),v}):s.pos==s.start()||s.pos==s.end()}let iN=null,oN=null,lN=!1;function wD(t,e,n){return iN==e&&oN==n?lN:(iN=e,oN=n,lN=n=="up"||n=="down"?bD(t,e,n):ND(t,e,n))}const vr=0,cN=1,Ro=2,fa=3;class Zd{constructor(e,n,s,a){this.parent=e,this.children=n,this.dom=s,this.contentDOM=a,this.dirty=vr,s.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,n,s){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let n=0;n<this.children.length;n++)e+=this.children[n].size;return e}get border(){return 0}destroy(){this.parent=void 0,this.dom.pmViewDesc==this&&(this.dom.pmViewDesc=void 0);for(let e=0;e<this.children.length;e++)this.children[e].destroy()}posBeforeChild(e){for(let n=0,s=this.posAtStart;;n++){let a=this.children[n];if(a==e)return s;s+=a.size}}get posBefore(){return this.parent.posBeforeChild(this)}get posAtStart(){return this.parent?this.parent.posBeforeChild(this)+this.border:0}get posAfter(){return this.posBefore+this.size}get posAtEnd(){return this.posAtStart+this.size-2*this.border}localPosFromDOM(e,n,s){if(this.contentDOM&&this.contentDOM.contains(e.nodeType==1?e:e.parentNode))if(s<0){let i,o;if(e==this.contentDOM)i=e.childNodes[n-1];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;i=e.previousSibling}for(;i&&!((o=i.pmViewDesc)&&o.parent==this);)i=i.previousSibling;return i?this.posBeforeChild(o)+o.size:this.posAtStart}else{let i,o;if(e==this.contentDOM)i=e.childNodes[n];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;i=e.nextSibling}for(;i&&!((o=i.pmViewDesc)&&o.parent==this);)i=i.nextSibling;return i?this.posBeforeChild(o):this.posAtEnd}let a;if(e==this.dom&&this.contentDOM)a=n>Zn(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))a=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let i=e;;i=i.parentNode){if(i==this.dom){a=!1;break}if(i.previousSibling)break}if(a==null&&n==e.childNodes.length)for(let i=e;;i=i.parentNode){if(i==this.dom){a=!0;break}if(i.nextSibling)break}}return a??s>0?this.posAtEnd:this.posAtStart}nearestDesc(e,n=!1){for(let s=!0,a=e;a;a=a.parentNode){let i=this.getDesc(a),o;if(i&&(!n||i.node))if(s&&(o=i.nodeDOM)&&!(o.nodeType==1?o.contains(e.nodeType==1?e:e.parentNode):o==e))s=!1;else return i}}getDesc(e){let n=e.pmViewDesc;for(let s=n;s;s=s.parent)if(s==this)return n}posFromDOM(e,n,s){for(let a=e;a;a=a.parentNode){let i=this.getDesc(a);if(i)return i.localPosFromDOM(e,n,s)}return-1}descAt(e){for(let n=0,s=0;n<this.children.length;n++){let a=this.children[n],i=s+a.size;if(s==e&&i!=s){for(;!a.border&&a.children.length;)for(let o=0;o<a.children.length;o++){let c=a.children[o];if(c.size){a=c;break}}return a}if(e<i)return a.descAt(e-s-a.border);s=i}}domFromPos(e,n){if(!this.contentDOM)return{node:this.dom,offset:0,atom:e+1};let s=0,a=0;for(let i=0;s<this.children.length;s++){let o=this.children[s],c=i+o.size;if(c>e||o instanceof h2){a=e-i;break}i=c}if(a)return this.children[s].domFromPos(a-this.children[s].border,n);for(let i;s&&!(i=this.children[s-1]).size&&i instanceof u2&&i.side>=0;s--);if(n<=0){let i,o=!0;for(;i=s?this.children[s-1]:null,!(!i||i.dom.parentNode==this.contentDOM);s--,o=!1);return i&&n&&o&&!i.border&&!i.domAtom?i.domFromPos(i.size,n):{node:this.contentDOM,offset:i?Zn(i.dom)+1:0}}else{let i,o=!0;for(;i=s<this.children.length?this.children[s]:null,!(!i||i.dom.parentNode==this.contentDOM);s++,o=!1);return i&&o&&!i.border&&!i.domAtom?i.domFromPos(0,n):{node:this.contentDOM,offset:i?Zn(i.dom):this.contentDOM.childNodes.length}}}parseRange(e,n,s=0){if(this.children.length==0)return{node:this.contentDOM,from:e,to:n,fromOffset:0,toOffset:this.contentDOM.childNodes.length};let a=-1,i=-1;for(let o=s,c=0;;c++){let u=this.children[c],h=o+u.size;if(a==-1&&e<=h){let f=o+u.border;if(e>=f&&n<=h-u.border&&u.node&&u.contentDOM&&this.contentDOM.contains(u.contentDOM))return u.parseRange(e,n,f);e=o;for(let m=c;m>0;m--){let g=this.children[m-1];if(g.size&&g.dom.parentNode==this.contentDOM&&!g.emptyChildAt(1)){a=Zn(g.dom)+1;break}e-=g.size}a==-1&&(a=0)}if(a>-1&&(h>n||c==this.children.length-1)){n=h;for(let f=c+1;f<this.children.length;f++){let m=this.children[f];if(m.size&&m.dom.parentNode==this.contentDOM&&!m.emptyChildAt(-1)){i=Zn(m.dom);break}n+=m.size}i==-1&&(i=this.contentDOM.childNodes.length);break}o=h}return{node:this.contentDOM,from:e,to:n,fromOffset:a,toOffset:i}}emptyChildAt(e){if(this.border||!this.contentDOM||!this.children.length)return!1;let n=this.children[e<0?0:this.children.length-1];return n.size==0||n.emptyChildAt(e)}domAfterPos(e){let{node:n,offset:s}=this.domFromPos(e,0);if(n.nodeType!=1||s==n.childNodes.length)throw new RangeError("No node after pos "+e);return n.childNodes[s]}setSelection(e,n,s,a=!1){let i=Math.min(e,n),o=Math.max(e,n);for(let y=0,N=0;y<this.children.length;y++){let w=this.children[y],v=N+w.size;if(i>N&&o<v)return w.setSelection(e-N-w.border,n-N-w.border,s,a);N=v}let c=this.domFromPos(e,e?-1:1),u=n==e?c:this.domFromPos(n,n?-1:1),h=s.root.getSelection(),f=s.domSelectionRange(),m=!1;if((br||ys)&&e==n){let{node:y,offset:N}=c;if(y.nodeType==3){if(m=!!(N&&y.nodeValue[N-1]==`
`),m&&N==y.nodeValue.length)for(let w=y,v;w;w=w.parentNode){if(v=w.nextSibling){v.nodeName=="BR"&&(c=u={node:v.parentNode,offset:Zn(v)+1});break}let k=w.pmViewDesc;if(k&&k.node&&k.node.isBlock)break}}else{let w=y.childNodes[N-1];m=w&&(w.nodeName=="BR"||w.contentEditable=="false")}}if(br&&f.focusNode&&f.focusNode!=u.node&&f.focusNode.nodeType==1){let y=f.focusNode.childNodes[f.focusOffset];y&&y.contentEditable=="false"&&(a=!0)}if(!(a||m&&ys)&&Jo(c.node,c.offset,f.anchorNode,f.anchorOffset)&&Jo(u.node,u.offset,f.focusNode,f.focusOffset))return;let g=!1;if((h.extend||e==n)&&!(m&&br)){h.collapse(c.node,c.offset);try{e!=n&&h.extend(u.node,u.offset),g=!0}catch{}}if(!g){if(e>n){let N=c;c=u,u=N}let y=document.createRange();y.setEnd(u.node,u.offset),y.setStart(c.node,c.offset),h.removeAllRanges(),h.addRange(y)}}ignoreMutation(e){return!this.contentDOM&&e.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,n){for(let s=0,a=0;a<this.children.length;a++){let i=this.children[a],o=s+i.size;if(s==o?e<=o&&n>=s:e<o&&n>s){let c=s+i.border,u=o-i.border;if(e>=c&&n<=u){this.dirty=e==s||n==o?Ro:cN,e==c&&n==u&&(i.contentLost||i.dom.parentNode!=this.contentDOM)?i.dirty=fa:i.markDirty(e-c,n-c);return}else i.dirty=i.dom==i.contentDOM&&i.dom.parentNode==this.contentDOM&&!i.children.length?Ro:fa}s=o}this.dirty=Ro}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let s=e==1?Ro:cN;n.dirty<s&&(n.dirty=s)}}get domAtom(){return!1}get ignoreForCoords(){return!1}get ignoreForSelection(){return!1}isText(e){return!1}}class u2 extends Zd{constructor(e,n,s,a){let i,o=n.type.toDOM;if(typeof o=="function"&&(o=o(s,()=>{if(!i)return a;if(i.parent)return i.parent.posBeforeChild(i)})),!n.type.spec.raw){if(o.nodeType!=1){let c=document.createElement("span");c.appendChild(o),o=c}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=n,this.widget=n,i=this}matchesWidget(e){return this.dirty==vr&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let n=this.widget.spec.stopEvent;return n?n(e):!1}ignoreMutation(e){return e.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class jD extends Zd{constructor(e,n,s,a){super(e,[],n,null),this.textDOM=s,this.text=a}get size(){return this.text.length}localPosFromDOM(e,n){return e!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type==="characterData"&&e.target.nodeValue==e.oldValue}}class Yo extends Zd{constructor(e,n,s,a,i){super(e,[],s,a),this.mark=n,this.spec=i}static create(e,n,s,a){let i=a.nodeViews[n.type.name],o=i&&i(n,a,s);return(!o||!o.dom)&&(o=sl.renderSpec(document,n.type.spec.toDOM(n,s),null,n.attrs)),new Yo(e,n,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&fa||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=fa&&this.mark.eq(e)}markDirty(e,n){if(super.markDirty(e,n),this.dirty!=vr){let s=this.parent;for(;!s.node;)s=s.parent;s.dirty<this.dirty&&(s.dirty=this.dirty),this.dirty=vr}}slice(e,n,s){let a=Yo.create(this.parent,this.mark,!0,s),i=this.children,o=this.size;n<o&&(i=Ix(i,n,o,s)),e>0&&(i=Ix(i,0,e,s));for(let c=0;c<i.length;c++)i[c].parent=a;return a.children=i,a}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}}class Fi extends Zd{constructor(e,n,s,a,i,o,c,u,h){super(e,[],i,o),this.node=n,this.outerDeco=s,this.innerDeco=a,this.nodeDOM=c}static create(e,n,s,a,i,o){let c=i.nodeViews[n.type.name],u,h=c&&c(n,i,()=>{if(!u)return o;if(u.parent)return u.parent.posBeforeChild(u)},s,a),f=h&&h.dom,m=h&&h.contentDOM;if(n.isText){if(!f)f=document.createTextNode(n.text);else if(f.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else f||({dom:f,contentDOM:m}=sl.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs));!m&&!n.isText&&f.nodeName!="BR"&&(f.hasAttribute("contenteditable")||(f.contentEditable="false"),n.type.spec.draggable&&(f.draggable=!0));let g=f;return f=m2(f,s,n),h?u=new kD(e,n,s,a,f,m||null,g,h,i,o+1):n.isText?new op(e,n,s,a,f,g,i):new Fi(e,n,s,a,f,m||null,g,i,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(e.preserveWhitespace="full"),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let s=this.children[n];if(this.dom.contains(s.dom.parentNode)){e.contentElement=s.dom.parentNode;break}}e.contentElement||(e.getContent=()=>Ne.empty)}return e}matchesNode(e,n,s){return this.dirty==vr&&e.eq(this.node)&&tf(n,this.outerDeco)&&s.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,n){let s=this.node.inlineContent,a=n,i=e.composing?this.localCompositionInfo(e,n):null,o=i&&i.pos>-1?i:null,c=i&&i.pos<0,u=new CD(this,o&&o.node,e);MD(this.node,this.innerDeco,(h,f,m)=>{h.spec.marks?u.syncToMarks(h.spec.marks,s,e,f):h.type.side>=0&&!m&&u.syncToMarks(f==this.node.childCount?Wt.none:this.node.child(f).marks,s,e,f),u.placeWidget(h,e,a)},(h,f,m,g)=>{u.syncToMarks(h.marks,s,e,g);let y;u.findNodeMatch(h,f,m,g)||c&&e.state.selection.from>a&&e.state.selection.to<a+h.nodeSize&&(y=u.findIndexWithChild(i.node))>-1&&u.updateNodeAt(h,f,m,y,e)||u.updateNextNode(h,f,m,e,g,a)||u.addNode(h,f,m,e,a),a+=h.nodeSize}),u.syncToMarks([],s,e,0),this.node.isTextblock&&u.addTextblockHacks(),u.destroyRest(),(u.changed||this.dirty==Ro)&&(o&&this.protectLocalComposition(e,o),f2(this.contentDOM,this.children,e),ac&&AD(this.dom))}localCompositionInfo(e,n){let{from:s,to:a}=e.state.selection;if(!(e.state.selection instanceof et)||s<n||a>n+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let o=i.nodeValue,c=ID(this.node.content,o,s-n,a-n);return c<0?null:{node:i,pos:c,text:o}}else return{node:i,pos:-1,text:""}}protectLocalComposition(e,{node:n,pos:s,text:a}){if(this.getDesc(n))return;let i=n;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&(i.pmViewDesc=void 0)}let o=new jD(this,i,n,a);e.input.compositionNodes.push(o),this.children=Ix(this.children,s,s+a.length,e,o)}update(e,n,s,a){return this.dirty==fa||!e.sameMarkup(this.node)?!1:(this.updateInner(e,n,s,a),!0)}updateInner(e,n,s,a){this.updateOuterDeco(n),this.node=e,this.innerDeco=s,this.contentDOM&&this.updateChildren(a,this.posAtStart),this.dirty=vr}updateOuterDeco(e){if(tf(e,this.outerDeco))return;let n=this.nodeDOM.nodeType!=1,s=this.dom;this.dom=p2(this.dom,this.nodeDOM,Ax(this.outerDeco,this.node,n),Ax(e,this.node,n)),this.dom!=s&&(s.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function dN(t,e,n,s,a){m2(s,e,t);let i=new Fi(void 0,t,e,n,s,s,s,a,0);return i.contentDOM&&i.updateChildren(a,0),i}class op extends Fi{constructor(e,n,s,a,i,o,c){super(e,n,s,a,i,null,o,c,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,n,s,a){return this.dirty==fa||this.dirty!=vr&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(n),(this.dirty!=vr||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,a.trackWrites==this.nodeDOM&&(a.trackWrites=null)),this.node=e,this.dirty=vr,!0)}inParent(){let e=this.parent.contentDOM;for(let n=this.nodeDOM;n;n=n.parentNode)if(n==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,n,s){return e==this.nodeDOM?this.posAtStart+Math.min(n,this.node.text.length):super.localPosFromDOM(e,n,s)}ignoreMutation(e){return e.type!="characterData"&&e.type!="selection"}slice(e,n,s){let a=this.node.cut(e,n),i=document.createTextNode(a.text);return new op(this.parent,a,this.outerDeco,this.innerDeco,i,i,s)}markDirty(e,n){super.markDirty(e,n),this.dom!=this.nodeDOM&&(e==0||n==this.nodeDOM.nodeValue.length)&&(this.dirty=fa)}get domAtom(){return!1}isText(e){return this.node.text==e}}class h2 extends Zd{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==vr&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class kD extends Fi{constructor(e,n,s,a,i,o,c,u,h,f){super(e,n,s,a,i,o,c,h,f),this.spec=u}update(e,n,s,a){if(this.dirty==fa)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,n,s);return i&&this.updateInner(e,n,s,a),i}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,n,s,a)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,n,s,a){this.spec.setSelection?this.spec.setSelection(e,n,s.root):super.setSelection(e,n,s,a)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function f2(t,e,n){let s=t.firstChild,a=!1;for(let i=0;i<e.length;i++){let o=e[i],c=o.dom;if(c.parentNode==t){for(;c!=s;)s=uN(s),a=!0;s=s.nextSibling}else a=!0,t.insertBefore(c,s);if(o instanceof Yo){let u=s?s.previousSibling:t.lastChild;f2(o.contentDOM,o.children,n),s=u?u.nextSibling:t.firstChild}}for(;s;)s=uN(s),a=!0;a&&n.trackWrites==t&&(n.trackWrites=null)}const vd=function(t){t&&(this.nodeName=t)};vd.prototype=Object.create(null);const Oo=[new vd];function Ax(t,e,n){if(t.length==0)return Oo;let s=n?Oo[0]:new vd,a=[s];for(let i=0;i<t.length;i++){let o=t[i].type.attrs;if(o){o.nodeName&&a.push(s=new vd(o.nodeName));for(let c in o){let u=o[c];u!=null&&(n&&a.length==1&&a.push(s=new vd(e.isInline?"span":"div")),c=="class"?s.class=(s.class?s.class+" ":"")+u:c=="style"?s.style=(s.style?s.style+";":"")+u:c!="nodeName"&&(s[c]=u))}}}return a}function p2(t,e,n,s){if(n==Oo&&s==Oo)return e;let a=e;for(let i=0;i<s.length;i++){let o=s[i],c=n[i];if(i){let u;c&&c.nodeName==o.nodeName&&a!=t&&(u=a.parentNode)&&u.nodeName.toLowerCase()==o.nodeName||(u=document.createElement(o.nodeName),u.pmIsDeco=!0,u.appendChild(a),c=Oo[0]),a=u}SD(a,c||Oo[0],o)}return a}function SD(t,e,n){for(let s in e)s!="class"&&s!="style"&&s!="nodeName"&&!(s in n)&&t.removeAttribute(s);for(let s in n)s!="class"&&s!="style"&&s!="nodeName"&&n[s]!=e[s]&&t.setAttribute(s,n[s]);if(e.class!=n.class){let s=e.class?e.class.split(" ").filter(Boolean):[],a=n.class?n.class.split(" ").filter(Boolean):[];for(let i=0;i<s.length;i++)a.indexOf(s[i])==-1&&t.classList.remove(s[i]);for(let i=0;i<a.length;i++)s.indexOf(a[i])==-1&&t.classList.add(a[i]);t.classList.length==0&&t.removeAttribute("class")}if(e.style!=n.style){if(e.style){let s=/\s*([\w\-\xa1-\uffff]+)\s*:(?:"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|\(.*?\)|[^;])*/g,a;for(;a=s.exec(e.style);)t.style.removeProperty(a[1])}n.style&&(t.style.cssText+=n.style)}}function m2(t,e,n){return p2(t,t,Oo,Ax(e,n,t.nodeType!=1))}function tf(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(!t[n].type.eq(e[n].type))return!1;return!0}function uN(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class CD{constructor(e,n,s){this.lock=n,this.view=s,this.index=0,this.stack=[],this.changed=!1,this.top=e,this.preMatch=ED(e.node.content,e)}destroyBetween(e,n){if(e!=n){for(let s=e;s<n;s++)this.top.children[s].destroy();this.top.children.splice(e,n-e),this.changed=!0}}destroyRest(){this.destroyBetween(this.index,this.top.children.length)}syncToMarks(e,n,s,a){let i=0,o=this.stack.length>>1,c=Math.min(o,e.length);for(;i<c&&(i==o-1?this.top:this.stack[i+1<<1]).matchesMark(e[i])&&e[i].type.spec.spanning!==!1;)i++;for(;i<o;)this.destroyRest(),this.top.dirty=vr,this.index=this.stack.pop(),this.top=this.stack.pop(),o--;for(;o<e.length;){this.stack.push(this.top,this.index+1);let u=-1,h=this.top.children.length;a<this.preMatch.index&&(h=Math.min(this.index+3,h));for(let f=this.index;f<h;f++){let m=this.top.children[f];if(m.matchesMark(e[o])&&!this.isLocked(m.dom)){u=f;break}}if(u>-1)u>this.index&&(this.changed=!0,this.destroyBetween(this.index,u)),this.top=this.top.children[this.index];else{let f=Yo.create(this.top,e[o],n,s);this.top.children.splice(this.index,0,f),this.top=f,this.changed=!0}this.index=0,o++}}findNodeMatch(e,n,s,a){let i=-1,o;if(a>=this.preMatch.index&&(o=this.preMatch.matches[a-this.preMatch.index]).parent==this.top&&o.matchesNode(e,n,s))i=this.top.children.indexOf(o,this.index);else for(let c=this.index,u=Math.min(this.top.children.length,c+5);c<u;c++){let h=this.top.children[c];if(h.matchesNode(e,n,s)&&!this.preMatch.matched.has(h)){i=c;break}}return i<0?!1:(this.destroyBetween(this.index,i),this.index++,!0)}updateNodeAt(e,n,s,a,i){let o=this.top.children[a];return o.dirty==fa&&o.dom==o.contentDOM&&(o.dirty=Ro),o.update(e,n,s,i)?(this.destroyBetween(this.index,a),this.index++,!0):!1}findIndexWithChild(e){for(;;){let n=e.parentNode;if(!n)return-1;if(n==this.top.contentDOM){let s=e.pmViewDesc;if(s){for(let a=this.index;a<this.top.children.length;a++)if(this.top.children[a]==s)return a}return-1}e=n}}updateNextNode(e,n,s,a,i,o){for(let c=this.index;c<this.top.children.length;c++){let u=this.top.children[c];if(u instanceof Fi){let h=this.preMatch.matched.get(u);if(h!=null&&h!=i)return!1;let f=u.dom,m,g=this.isLocked(f)&&!(e.isText&&u.node&&u.node.isText&&u.nodeDOM.nodeValue==e.text&&u.dirty!=fa&&tf(n,u.outerDeco));if(!g&&u.update(e,n,s,a))return this.destroyBetween(this.index,c),u.dom!=f&&(this.changed=!0),this.index++,!0;if(!g&&(m=this.recreateWrapper(u,e,n,s,a,o)))return this.destroyBetween(this.index,c),this.top.children[this.index]=m,m.contentDOM&&(m.dirty=Ro,m.updateChildren(a,o+1),m.dirty=vr),this.changed=!0,this.index++,!0;break}}return!1}recreateWrapper(e,n,s,a,i,o){if(e.dirty||n.isAtom||!e.children.length||!e.node.content.eq(n.content)||!tf(s,e.outerDeco)||!a.eq(e.innerDeco))return null;let c=Fi.create(this.top,n,s,a,i,o);if(c.contentDOM){c.children=e.children,e.children=[];for(let u of c.children)u.parent=c}return e.destroy(),c}addNode(e,n,s,a,i){let o=Fi.create(this.top,e,n,s,a,i);o.contentDOM&&o.updateChildren(a,i+1),this.top.children.splice(this.index++,0,o),this.changed=!0}placeWidget(e,n,s){let a=this.index<this.top.children.length?this.top.children[this.index]:null;if(a&&a.matchesWidget(e)&&(e==a.widget||!a.widget.type.toDOM.parentNode))this.index++;else{let i=new u2(this.top,e,n,s);this.top.children.splice(this.index++,0,i),this.changed=!0}}addTextblockHacks(){let e=this.top.children[this.index-1],n=this.top;for(;e instanceof Yo;)n=e,e=n.children[n.children.length-1];(!e||!(e instanceof op)||/\n$/.test(e.node.text)||this.view.requiresGeckoHackNode&&/\s$/.test(e.node.text))&&((ys||ts)&&e&&e.dom.contentEditable=="false"&&this.addHackNode("IMG",n),this.addHackNode("BR",this.top))}addHackNode(e,n){if(n==this.top&&this.index<n.children.length&&n.children[this.index].matchesHack(e))this.index++;else{let s=document.createElement(e);e=="IMG"&&(s.className="ProseMirror-separator",s.alt=""),e=="BR"&&(s.className="ProseMirror-trailingBreak");let a=new h2(this.top,[],s,null);n!=this.top?n.children.push(a):n.children.splice(this.index++,0,a),this.changed=!0}}isLocked(e){return this.lock&&(e==this.lock||e.nodeType==1&&e.contains(this.lock.parentNode))}}function ED(t,e){let n=e,s=n.children.length,a=t.childCount,i=new Map,o=[];e:for(;a>0;){let c;for(;;)if(s){let h=n.children[s-1];if(h instanceof Yo)n=h,s=h.children.length;else{c=h,s--;break}}else{if(n==e)break e;s=n.parent.children.indexOf(n),n=n.parent}let u=c.node;if(u){if(u!=t.child(a-1))break;--a,i.set(c,a),o.push(c)}}return{index:a,matched:i,matches:o.reverse()}}function TD(t,e){return t.type.side-e.type.side}function MD(t,e,n,s){let a=e.locals(t),i=0;if(a.length==0){for(let h=0;h<t.childCount;h++){let f=t.child(h);s(f,a,e.forChild(i,f),h),i+=f.nodeSize}return}let o=0,c=[],u=null;for(let h=0;;){let f,m;for(;o<a.length&&a[o].to==i;){let v=a[o++];v.widget&&(f?(m||(m=[f])).push(v):f=v)}if(f)if(m){m.sort(TD);for(let v=0;v<m.length;v++)n(m[v],h,!!u)}else n(f,h,!!u);let g,y;if(u)y=-1,g=u,u=null;else if(h<t.childCount)y=h,g=t.child(h++);else break;for(let v=0;v<c.length;v++)c[v].to<=i&&c.splice(v--,1);for(;o<a.length&&a[o].from<=i&&a[o].to>i;)c.push(a[o++]);let N=i+g.nodeSize;if(g.isText){let v=N;o<a.length&&a[o].from<v&&(v=a[o].from);for(let k=0;k<c.length;k++)c[k].to<v&&(v=c[k].to);v<N&&(u=g.cut(v-i),g=g.cut(0,v-i),N=v,y=-1)}else for(;o<a.length&&a[o].to<N;)o++;let w=g.isInline&&!g.isLeaf?c.filter(v=>!v.inline):c.slice();s(g,w,e.forChild(i,g),y),i=N}}function AD(t){if(t.nodeName=="UL"||t.nodeName=="OL"){let e=t.style.cssText;t.style.cssText=e+"; list-style: square !important",window.getComputedStyle(t).listStyle,t.style.cssText=e}}function ID(t,e,n,s){for(let a=0,i=0;a<t.childCount&&i<=s;){let o=t.child(a++),c=i;if(i+=o.nodeSize,!o.isText)continue;let u=o.text;for(;a<t.childCount;){let h=t.child(a++);if(i+=h.nodeSize,!h.isText)break;u+=h.text}if(i>=n){if(i>=s&&u.slice(s-e.length-c,s-c)==e)return s-e.length;let h=c<s?u.lastIndexOf(e,s-c-1):-1;if(h>=0&&h+e.length+c>=n)return c+h;if(n==s&&u.length>=s+e.length-c&&u.slice(s-c,s-c+e.length)==e)return s}}return-1}function Ix(t,e,n,s,a){let i=[];for(let o=0,c=0;o<t.length;o++){let u=t[o],h=c,f=c+=u.size;h>=n||f<=e?i.push(u):(h<e&&i.push(u.slice(0,e-h,s)),a&&(i.push(a),a=void 0),f>n&&i.push(u.slice(n-h,u.size,s)))}return i}function q0(t,e=null){let n=t.domSelectionRange(),s=t.state.doc;if(!n.focusNode)return null;let a=t.docView.nearestDesc(n.focusNode),i=a&&a.size==0,o=t.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let c=s.resolve(o),u,h;if(ip(n)){for(u=o;a&&!a.node;)a=a.parent;let m=a.node;if(a&&m.isAtom&&Ze.isSelectable(m)&&a.parent&&!(m.isInline&&rD(n.focusNode,n.focusOffset,a.dom))){let g=a.posBefore;h=new Ze(o==g?c:s.resolve(g))}}else{if(n instanceof t.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let m=o,g=o;for(let y=0;y<n.rangeCount;y++){let N=n.getRangeAt(y);m=Math.min(m,t.docView.posFromDOM(N.startContainer,N.startOffset,1)),g=Math.max(g,t.docView.posFromDOM(N.endContainer,N.endOffset,-1))}if(m<0)return null;[u,o]=g==t.state.selection.anchor?[g,m]:[m,g],c=s.resolve(o)}else u=t.docView.posFromDOM(n.anchorNode,n.anchorOffset,1);if(u<0)return null}let f=s.resolve(u);if(!h){let m=e=="pointer"||t.state.selection.head<c.pos&&!i?1:-1;h=G0(t,f,c,m)}return h}function g2(t){return t.editable?t.hasFocus():y2(t)&&document.activeElement&&document.activeElement.contains(t.dom)}function Ka(t,e=!1){let n=t.state.selection;if(x2(t,n),!!g2(t)){if(!e&&t.input.mouseDown&&t.input.mouseDown.allowDefault&&ts){let s=t.domSelectionRange(),a=t.domObserver.currentSelection;if(s.anchorNode&&a.anchorNode&&Jo(s.anchorNode,s.anchorOffset,a.anchorNode,a.anchorOffset)){t.input.mouseDown.delayedSelectionSync=!0,t.domObserver.setCurSelection();return}}if(t.domObserver.disconnectSelection(),t.cursorWrapper)RD(t);else{let{anchor:s,head:a}=n,i,o;hN&&!(n instanceof et)&&(n.$from.parent.inlineContent||(i=fN(t,n.from)),!n.empty&&!n.$from.parent.inlineContent&&(o=fN(t,n.to))),t.docView.setSelection(s,a,t,e),hN&&(i&&pN(i),o&&pN(o)),n.visible?t.dom.classList.remove("ProseMirror-hideselection"):(t.dom.classList.add("ProseMirror-hideselection"),"onselectionchange"in document&&PD(t))}t.domObserver.setCurSelection(),t.domObserver.connectSelection()}}const hN=ys||ts&&s2<63;function fN(t,e){let{node:n,offset:s}=t.docView.domFromPos(e,0),a=s<n.childNodes.length?n.childNodes[s]:null,i=s?n.childNodes[s-1]:null;if(ys&&a&&a.contentEditable=="false")return Eg(a);if((!a||a.contentEditable=="false")&&(!i||i.contentEditable=="false")){if(a)return Eg(a);if(i)return Eg(i)}}function Eg(t){return t.contentEditable="true",ys&&t.draggable&&(t.draggable=!1,t.wasDraggable=!0),t}function pN(t){t.contentEditable="false",t.wasDraggable&&(t.draggable=!0,t.wasDraggable=null)}function PD(t){let e=t.dom.ownerDocument;e.removeEventListener("selectionchange",t.input.hideSelectionGuard);let n=t.domSelectionRange(),s=n.anchorNode,a=n.anchorOffset;e.addEventListener("selectionchange",t.input.hideSelectionGuard=()=>{(n.anchorNode!=s||n.anchorOffset!=a)&&(e.removeEventListener("selectionchange",t.input.hideSelectionGuard),setTimeout(()=>{(!g2(t)||t.state.selection.visible)&&t.dom.classList.remove("ProseMirror-hideselection")},20))})}function RD(t){let e=t.domSelection();if(!e)return;let n=t.cursorWrapper.dom,s=n.nodeName=="IMG";s?e.collapse(n.parentNode,Zn(n)+1):e.collapse(n,0),!s&&!t.state.selection.visible&&Ks&&zi<=11&&(n.disabled=!0,n.disabled=!1)}function x2(t,e){if(e instanceof Ze){let n=t.docView.descAt(e.from);n!=t.lastSelectedViewDesc&&(mN(t),n&&n.selectNode(),t.lastSelectedViewDesc=n)}else mN(t)}function mN(t){t.lastSelectedViewDesc&&(t.lastSelectedViewDesc.parent&&t.lastSelectedViewDesc.deselectNode(),t.lastSelectedViewDesc=void 0)}function G0(t,e,n,s){return t.someProp("createSelectionBetween",a=>a(t,e,n))||et.between(e,n,s)}function gN(t){return t.editable&&!t.hasFocus()?!1:y2(t)}function y2(t){let e=t.domSelectionRange();if(!e.anchorNode)return!1;try{return t.dom.contains(e.anchorNode.nodeType==3?e.anchorNode.parentNode:e.anchorNode)&&(t.editable||t.dom.contains(e.focusNode.nodeType==3?e.focusNode.parentNode:e.focusNode))}catch{return!1}}function OD(t){let e=t.docView.domFromPos(t.state.selection.anchor,0),n=t.domSelectionRange();return Jo(e.node,e.offset,n.anchorNode,n.anchorOffset)}function Px(t,e){let{$anchor:n,$head:s}=t.selection,a=e>0?n.max(s):n.min(s),i=a.parent.inlineContent?a.depth?t.doc.resolve(e>0?a.after():a.before()):null:a;return i&&ot.findFrom(i,e)}function ki(t,e){return t.dispatch(t.state.tr.setSelection(e).scrollIntoView()),!0}function xN(t,e,n){let s=t.state.selection;if(s instanceof et)if(n.indexOf("s")>-1){let{$head:a}=s,i=a.textOffset?null:e<0?a.nodeBefore:a.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let o=t.state.doc.resolve(a.pos+i.nodeSize*(e<0?-1:1));return ki(t,new et(s.$anchor,o))}else if(s.empty){if(t.endOfTextblock(e>0?"forward":"backward")){let a=Px(t.state,e);return a&&a instanceof Ze?ki(t,a):!1}else if(!(xr&&n.indexOf("m")>-1)){let a=s.$head,i=a.textOffset?null:e<0?a.nodeBefore:a.nodeAfter,o;if(!i||i.isText)return!1;let c=e<0?a.pos-i.nodeSize:a.pos;return i.isAtom||(o=t.docView.descAt(c))&&!o.contentDOM?Ze.isSelectable(i)?ki(t,new Ze(e<0?t.state.doc.resolve(a.pos-i.nodeSize):a)):Xd?ki(t,new et(t.state.doc.resolve(e<0?c:c+i.nodeSize))):!1:!1}}else return!1;else{if(s instanceof Ze&&s.node.isInline)return ki(t,new et(e>0?s.$to:s.$from));{let a=Px(t.state,e);return a?ki(t,a):!1}}}function nf(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Nd(t,e){let n=t.pmViewDesc;return n&&n.size==0&&(e<0||t.nextSibling||t.nodeName!="BR")}function Bl(t,e){return e<0?DD(t):LD(t)}function DD(t){let e=t.domSelectionRange(),n=e.focusNode,s=e.focusOffset;if(!n)return;let a,i,o=!1;for(br&&n.nodeType==1&&s<nf(n)&&Nd(n.childNodes[s],-1)&&(o=!0);;)if(s>0){if(n.nodeType!=1)break;{let c=n.childNodes[s-1];if(Nd(c,-1))a=n,i=--s;else if(c.nodeType==3)n=c,s=n.nodeValue.length;else break}}else{if(b2(n))break;{let c=n.previousSibling;for(;c&&Nd(c,-1);)a=n.parentNode,i=Zn(c),c=c.previousSibling;if(c)n=c,s=nf(n);else{if(n=n.parentNode,n==t.dom)break;s=0}}}o?Rx(t,n,s):a&&Rx(t,a,i)}function LD(t){let e=t.domSelectionRange(),n=e.focusNode,s=e.focusOffset;if(!n)return;let a=nf(n),i,o;for(;;)if(s<a){if(n.nodeType!=1)break;let c=n.childNodes[s];if(Nd(c,1))i=n,o=++s;else break}else{if(b2(n))break;{let c=n.nextSibling;for(;c&&Nd(c,1);)i=c.parentNode,o=Zn(c)+1,c=c.nextSibling;if(c)n=c,s=0,a=nf(n);else{if(n=n.parentNode,n==t.dom)break;s=a=0}}}i&&Rx(t,i,o)}function b2(t){let e=t.pmViewDesc;return e&&e.node&&e.node.isBlock}function _D(t,e){for(;t&&e==t.childNodes.length&&!Qd(t);)e=Zn(t)+1,t=t.parentNode;for(;t&&e<t.childNodes.length;){let n=t.childNodes[e];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable=="false")break;t=n,e=0}}function zD(t,e){for(;t&&!e&&!Qd(t);)e=Zn(t),t=t.parentNode;for(;t&&e;){let n=t.childNodes[e-1];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable=="false")break;t=n,e=t.childNodes.length}}function Rx(t,e,n){if(e.nodeType!=3){let i,o;(o=_D(e,n))?(e=o,n=0):(i=zD(e,n))&&(e=i,n=i.nodeValue.length)}let s=t.domSelection();if(!s)return;if(ip(s)){let i=document.createRange();i.setEnd(e,n),i.setStart(e,n),s.removeAllRanges(),s.addRange(i)}else s.extend&&s.extend(e,n);t.domObserver.setCurSelection();let{state:a}=t;setTimeout(()=>{t.state==a&&Ka(t)},50)}function yN(t,e){let n=t.state.doc.resolve(e);if(!(ts||r2)&&n.parent.inlineContent){let a=t.coordsAtPos(e);if(e>n.start()){let i=t.coordsAtPos(e-1),o=(i.top+i.bottom)/2;if(o>a.top&&o<a.bottom&&Math.abs(i.left-a.left)>1)return i.left<a.left?"ltr":"rtl"}if(e<n.end()){let i=t.coordsAtPos(e+1),o=(i.top+i.bottom)/2;if(o>a.top&&o<a.bottom&&Math.abs(i.left-a.left)>1)return i.left>a.left?"ltr":"rtl"}}return getComputedStyle(t.dom).direction=="rtl"?"rtl":"ltr"}function bN(t,e,n){let s=t.state.selection;if(s instanceof et&&!s.empty||n.indexOf("s")>-1||xr&&n.indexOf("m")>-1)return!1;let{$from:a,$to:i}=s;if(!a.parent.inlineContent||t.endOfTextblock(e<0?"up":"down")){let o=Px(t.state,e);if(o&&o instanceof Ze)return ki(t,o)}if(!a.parent.inlineContent){let o=e<0?a:i,c=s instanceof or?ot.near(o,e):ot.findFrom(o,e);return c?ki(t,c):!1}return!1}function vN(t,e){if(!(t.state.selection instanceof et))return!0;let{$head:n,$anchor:s,empty:a}=t.state.selection;if(!n.sameParent(s))return!0;if(!a)return!1;if(t.endOfTextblock(e>0?"forward":"backward"))return!0;let i=!n.textOffset&&(e<0?n.nodeBefore:n.nodeAfter);if(i&&!i.isText){let o=t.state.tr;return e<0?o.delete(n.pos-i.nodeSize,n.pos):o.delete(n.pos,n.pos+i.nodeSize),t.dispatch(o),!0}return!1}function NN(t,e,n){t.domObserver.stop(),e.contentEditable=n,t.domObserver.start()}function FD(t){if(!ys||t.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(e&&e.nodeType==1&&n==0&&e.firstChild&&e.firstChild.contentEditable=="false"){let s=e.firstChild;NN(t,s,"true"),setTimeout(()=>NN(t,s,"false"),20)}return!1}function $D(t){let e="";return t.ctrlKey&&(e+="c"),t.metaKey&&(e+="m"),t.altKey&&(e+="a"),t.shiftKey&&(e+="s"),e}function BD(t,e){let n=e.keyCode,s=$D(e);if(n==8||xr&&n==72&&s=="c")return vN(t,-1)||Bl(t,-1);if(n==46&&!e.shiftKey||xr&&n==68&&s=="c")return vN(t,1)||Bl(t,1);if(n==13||n==27)return!0;if(n==37||xr&&n==66&&s=="c"){let a=n==37?yN(t,t.state.selection.from)=="ltr"?-1:1:-1;return xN(t,a,s)||Bl(t,a)}else if(n==39||xr&&n==70&&s=="c"){let a=n==39?yN(t,t.state.selection.from)=="ltr"?1:-1:1;return xN(t,a,s)||Bl(t,a)}else{if(n==38||xr&&n==80&&s=="c")return bN(t,-1,s)||Bl(t,-1);if(n==40||xr&&n==78&&s=="c")return FD(t)||bN(t,1,s)||Bl(t,1);if(s==(xr?"m":"c")&&(n==66||n==73||n==89||n==90))return!0}return!1}function J0(t,e){t.someProp("transformCopied",y=>{e=y(e,t)});let n=[],{content:s,openStart:a,openEnd:i}=e;for(;a>1&&i>1&&s.childCount==1&&s.firstChild.childCount==1;){a--,i--;let y=s.firstChild;n.push(y.type.name,y.attrs!=y.type.defaultAttrs?y.attrs:null),s=y.content}let o=t.someProp("clipboardSerializer")||sl.fromSchema(t.state.schema),c=S2(),u=c.createElement("div");u.appendChild(o.serializeFragment(s,{document:c}));let h=u.firstChild,f,m=0;for(;h&&h.nodeType==1&&(f=k2[h.nodeName.toLowerCase()]);){for(let y=f.length-1;y>=0;y--){let N=c.createElement(f[y]);for(;u.firstChild;)N.appendChild(u.firstChild);u.appendChild(N),m++}h=u.firstChild}h&&h.nodeType==1&&h.setAttribute("data-pm-slice",`${a} ${i}${m?` -${m}`:""} ${JSON.stringify(n)}`);let g=t.someProp("clipboardTextSerializer",y=>y(e,t))||e.content.textBetween(0,e.content.size,`
`);return{dom:u,text:g,slice:e}}function v2(t,e,n,s,a){let i=a.parent.type.spec.code,o,c;if(!n&&!e)return null;let u=!!e&&(s||i||!n);if(u){if(t.someProp("transformPastedText",g=>{e=g(e,i||s,t)}),i)return c=new Le(Ne.from(t.state.schema.text(e.replace(/\r\n?/g,`
`))),0,0),t.someProp("transformPasted",g=>{c=g(c,t,!0)}),c;let m=t.someProp("clipboardTextParser",g=>g(e,a,s,t));if(m)c=m;else{let g=a.marks(),{schema:y}=t.state,N=sl.fromSchema(y);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(w=>{let v=o.appendChild(document.createElement("p"));w&&v.appendChild(N.serializeNode(y.text(w,g)))})}}else t.someProp("transformPastedHTML",m=>{n=m(n,t)}),o=UD(n),Xd&&KD(o);let h=o&&o.querySelector("[data-pm-slice]"),f=h&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(h.getAttribute("data-pm-slice")||"");if(f&&f[3])for(let m=+f[3];m>0;m--){let g=o.firstChild;for(;g&&g.nodeType!=1;)g=g.nextSibling;if(!g)break;o=g}if(c||(c=(t.someProp("clipboardParser")||t.someProp("domParser")||_i.fromSchema(t.state.schema)).parseSlice(o,{preserveWhitespace:!!(u||f),context:a,ruleFromNode(g){return g.nodeName=="BR"&&!g.nextSibling&&g.parentNode&&!VD.test(g.parentNode.nodeName)?{ignore:!0}:null}})),f)c=qD(wN(c,+f[1],+f[2]),f[4]);else if(c=Le.maxOpen(HD(c.content,a),!0),c.openStart||c.openEnd){let m=0,g=0;for(let y=c.content.firstChild;m<c.openStart&&!y.type.spec.isolating;m++,y=y.firstChild);for(let y=c.content.lastChild;g<c.openEnd&&!y.type.spec.isolating;g++,y=y.lastChild);c=wN(c,m,g)}return t.someProp("transformPasted",m=>{c=m(c,t,u)}),c}const VD=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function HD(t,e){if(t.childCount<2)return t;for(let n=e.depth;n>=0;n--){let a=e.node(n).contentMatchAt(e.index(n)),i,o=[];if(t.forEach(c=>{if(!o)return;let u=a.findWrapping(c.type),h;if(!u)return o=null;if(h=o.length&&i.length&&w2(u,i,c,o[o.length-1],0))o[o.length-1]=h;else{o.length&&(o[o.length-1]=j2(o[o.length-1],i.length));let f=N2(c,u);o.push(f),a=a.matchType(f.type),i=u}}),o)return Ne.from(o)}return t}function N2(t,e,n=0){for(let s=e.length-1;s>=n;s--)t=e[s].create(null,Ne.from(t));return t}function w2(t,e,n,s,a){if(a<t.length&&a<e.length&&t[a]==e[a]){let i=w2(t,e,n,s.lastChild,a+1);if(i)return s.copy(s.content.replaceChild(s.childCount-1,i));if(s.contentMatchAt(s.childCount).matchType(a==t.length-1?n.type:t[a+1]))return s.copy(s.content.append(Ne.from(N2(n,t,a+1))))}}function j2(t,e){if(e==0)return t;let n=t.content.replaceChild(t.childCount-1,j2(t.lastChild,e-1)),s=t.contentMatchAt(t.childCount).fillBefore(Ne.empty,!0);return t.copy(n.append(s))}function Ox(t,e,n,s,a,i){let o=e<0?t.firstChild:t.lastChild,c=o.content;return t.childCount>1&&(i=0),a<s-1&&(c=Ox(c,e,n,s,a+1,i)),a>=n&&(c=e<0?o.contentMatchAt(0).fillBefore(c,i<=a).append(c):c.append(o.contentMatchAt(o.childCount).fillBefore(Ne.empty,!0))),t.replaceChild(e<0?0:t.childCount-1,o.copy(c))}function wN(t,e,n){return e<t.openStart&&(t=new Le(Ox(t.content,-1,e,t.openStart,0,t.openEnd),e,t.openEnd)),n<t.openEnd&&(t=new Le(Ox(t.content,1,n,t.openEnd,0,0),t.openStart,n)),t}const k2={thead:["table"],tbody:["table"],tfoot:["table"],caption:["table"],colgroup:["table"],col:["table","colgroup"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","tbody","tr"]};let jN=null;function S2(){return jN||(jN=document.implementation.createHTMLDocument("title"))}let Tg=null;function WD(t){let e=window.trustedTypes;return e?(Tg||(Tg=e.defaultPolicy||e.createPolicy("ProseMirrorClipboard",{createHTML:n=>n})),Tg.createHTML(t)):t}function UD(t){let e=/^(\s*<meta [^>]*>)*/.exec(t);e&&(t=t.slice(e[0].length));let n=S2().createElement("div"),s=/<([a-z][^>\s]+)/i.exec(t),a;if((a=s&&k2[s[1].toLowerCase()])&&(t=a.map(i=>"<"+i+">").join("")+t+a.map(i=>"</"+i+">").reverse().join("")),n.innerHTML=WD(t),a)for(let i=0;i<a.length;i++)n=n.querySelector(a[i])||n;return n}function KD(t){let e=t.querySelectorAll(ts?"span:not([class]):not([style])":"span.Apple-converted-space");for(let n=0;n<e.length;n++){let s=e[n];s.childNodes.length==1&&s.textContent==" "&&s.parentNode&&s.parentNode.replaceChild(t.ownerDocument.createTextNode(" "),s)}}function qD(t,e){if(!t.size)return t;let n=t.content.firstChild.type.schema,s;try{s=JSON.parse(e)}catch{return t}let{content:a,openStart:i,openEnd:o}=t;for(let c=s.length-2;c>=0;c-=2){let u=n.nodes[s[c]];if(!u||u.hasRequiredAttrs())break;a=Ne.from(u.create(s[c+1],a)),i++,o++}return new Le(a,i,o)}const Os={},Ds={},GD={touchstart:!0,touchmove:!0};class JD{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function YD(t){for(let e in Os){let n=Os[e];t.dom.addEventListener(e,t.input.eventHandlers[e]=s=>{XD(t,s)&&!Y0(t,s)&&(t.editable||!(s.type in Ds))&&n(t,s)},GD[e]?{passive:!0}:void 0)}ys&&t.dom.addEventListener("input",()=>null),Dx(t)}function Oi(t,e){t.input.lastSelectionOrigin=e,t.input.lastSelectionTime=Date.now()}function QD(t){t.domObserver.stop();for(let e in t.input.eventHandlers)t.dom.removeEventListener(e,t.input.eventHandlers[e]);clearTimeout(t.input.composingTimeout),clearTimeout(t.input.lastIOSEnterFallbackTimeout)}function Dx(t){t.someProp("handleDOMEvents",e=>{for(let n in e)t.input.eventHandlers[n]||t.dom.addEventListener(n,t.input.eventHandlers[n]=s=>Y0(t,s))})}function Y0(t,e){return t.someProp("handleDOMEvents",n=>{let s=n[e.type];return s?s(t,e)||e.defaultPrevented:!1})}function XD(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target;n!=t.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(e))return!1;return!0}function ZD(t,e){!Y0(t,e)&&Os[e.type]&&(t.editable||!(e.type in Ds))&&Os[e.type](t,e)}Ds.keydown=(t,e)=>{let n=e;if(t.input.shiftKey=n.keyCode==16||n.shiftKey,!E2(t,n)&&(t.input.lastKeyCode=n.keyCode,t.input.lastKeyCodeTime=Date.now(),!(Ha&&ts&&n.keyCode==13)))if(n.keyCode!=229&&t.domObserver.forceFlush(),ac&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let s=Date.now();t.input.lastIOSEnter=s,t.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{t.input.lastIOSEnter==s&&(t.someProp("handleKeyDown",a=>a(t,Ao(13,"Enter"))),t.input.lastIOSEnter=0)},200)}else t.someProp("handleKeyDown",s=>s(t,n))||BD(t,n)?n.preventDefault():Oi(t,"key")};Ds.keyup=(t,e)=>{e.keyCode==16&&(t.input.shiftKey=!1)};Ds.keypress=(t,e)=>{let n=e;if(E2(t,n)||!n.charCode||n.ctrlKey&&!n.altKey||xr&&n.metaKey)return;if(t.someProp("handleKeyPress",a=>a(t,n))){n.preventDefault();return}let s=t.state.selection;if(!(s instanceof et)||!s.$from.sameParent(s.$to)){let a=String.fromCharCode(n.charCode),i=()=>t.state.tr.insertText(a).scrollIntoView();!/[\r\n]/.test(a)&&!t.someProp("handleTextInput",o=>o(t,s.$from.pos,s.$to.pos,a,i))&&t.dispatch(i()),n.preventDefault()}};function lp(t){return{left:t.clientX,top:t.clientY}}function eL(t,e){let n=e.x-t.clientX,s=e.y-t.clientY;return n*n+s*s<100}function Q0(t,e,n,s,a){if(s==-1)return!1;let i=t.state.doc.resolve(s);for(let o=i.depth+1;o>0;o--)if(t.someProp(e,c=>o>i.depth?c(t,n,i.nodeAfter,i.before(o),a,!0):c(t,n,i.node(o),i.before(o),a,!1)))return!0;return!1}function Zl(t,e,n){if(t.focused||t.focus(),t.state.selection.eq(e))return;let s=t.state.tr.setSelection(e);s.setMeta("pointer",!0),t.dispatch(s)}function tL(t,e){if(e==-1)return!1;let n=t.state.doc.resolve(e),s=n.nodeAfter;return s&&s.isAtom&&Ze.isSelectable(s)?(Zl(t,new Ze(n)),!0):!1}function nL(t,e){if(e==-1)return!1;let n=t.state.selection,s,a;n instanceof Ze&&(s=n.node);let i=t.state.doc.resolve(e);for(let o=i.depth+1;o>0;o--){let c=o>i.depth?i.nodeAfter:i.node(o);if(Ze.isSelectable(c)){s&&n.$from.depth>0&&o>=n.$from.depth&&i.before(n.$from.depth+1)==n.$from.pos?a=i.before(n.$from.depth):a=i.before(o);break}}return a!=null?(Zl(t,Ze.create(t.state.doc,a)),!0):!1}function sL(t,e,n,s,a){return Q0(t,"handleClickOn",e,n,s)||t.someProp("handleClick",i=>i(t,e,s))||(a?nL(t,n):tL(t,n))}function rL(t,e,n,s){return Q0(t,"handleDoubleClickOn",e,n,s)||t.someProp("handleDoubleClick",a=>a(t,e,s))}function aL(t,e,n,s){return Q0(t,"handleTripleClickOn",e,n,s)||t.someProp("handleTripleClick",a=>a(t,e,s))||iL(t,n,s)}function iL(t,e,n){if(n.button!=0)return!1;let s=t.state.doc;if(e==-1)return s.inlineContent?(Zl(t,et.create(s,0,s.content.size)),!0):!1;let a=s.resolve(e);for(let i=a.depth+1;i>0;i--){let o=i>a.depth?a.nodeAfter:a.node(i),c=a.before(i);if(o.inlineContent)Zl(t,et.create(s,c+1,c+1+o.content.size));else if(Ze.isSelectable(o))Zl(t,Ze.create(s,c));else continue;return!0}}function X0(t){return sf(t)}const C2=xr?"metaKey":"ctrlKey";Os.mousedown=(t,e)=>{let n=e;t.input.shiftKey=n.shiftKey;let s=X0(t),a=Date.now(),i="singleClick";a-t.input.lastClick.time<500&&eL(n,t.input.lastClick)&&!n[C2]&&t.input.lastClick.button==n.button&&(t.input.lastClick.type=="singleClick"?i="doubleClick":t.input.lastClick.type=="doubleClick"&&(i="tripleClick")),t.input.lastClick={time:a,x:n.clientX,y:n.clientY,type:i,button:n.button};let o=t.posAtCoords(lp(n));o&&(i=="singleClick"?(t.input.mouseDown&&t.input.mouseDown.done(),t.input.mouseDown=new oL(t,o,n,!!s)):(i=="doubleClick"?rL:aL)(t,o.pos,o.inside,n)?n.preventDefault():Oi(t,"pointer"))};class oL{constructor(e,n,s,a){this.view=e,this.pos=n,this.event=s,this.flushed=a,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!s[C2],this.allowDefault=s.shiftKey;let i,o;if(n.inside>-1)i=e.state.doc.nodeAt(n.inside),o=n.inside;else{let f=e.state.doc.resolve(n.pos);i=f.parent,o=f.depth?f.before():0}const c=a?null:s.target,u=c?e.docView.nearestDesc(c,!0):null;this.target=u&&u.nodeDOM.nodeType==1?u.nodeDOM:null;let{selection:h}=e.state;(s.button==0&&i.type.spec.draggable&&i.type.spec.selectable!==!1||h instanceof Ze&&h.from<=o&&h.to>o)&&(this.mightDrag={node:i,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&br&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),Oi(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>Ka(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let n=this.pos;this.view.state.doc!=this.startDoc&&(n=this.view.posAtCoords(lp(e))),this.updateAllowDefault(e),this.allowDefault||!n?Oi(this.view,"pointer"):sL(this.view,n.pos,n.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||ys&&this.mightDrag&&!this.mightDrag.node.isAtom||ts&&!this.view.state.selection.visible&&Math.min(Math.abs(n.pos-this.view.state.selection.from),Math.abs(n.pos-this.view.state.selection.to))<=2)?(Zl(this.view,ot.near(this.view.state.doc.resolve(n.pos))),e.preventDefault()):Oi(this.view,"pointer")}move(e){this.updateAllowDefault(e),Oi(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}Os.touchstart=t=>{t.input.lastTouch=Date.now(),X0(t),Oi(t,"pointer")};Os.touchmove=t=>{t.input.lastTouch=Date.now(),Oi(t,"pointer")};Os.contextmenu=t=>X0(t);function E2(t,e){return t.composing?!0:ys&&Math.abs(e.timeStamp-t.input.compositionEndedAt)<500?(t.input.compositionEndedAt=-2e8,!0):!1}const lL=Ha?5e3:-1;Ds.compositionstart=Ds.compositionupdate=t=>{if(!t.composing){t.domObserver.flush();let{state:e}=t,n=e.selection.$to;if(e.selection instanceof et&&(e.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(s=>s.type.spec.inclusive===!1)||ts&&r2&&cL(t)))t.markCursor=t.state.storedMarks||n.marks(),sf(t,!0),t.markCursor=null;else if(sf(t,!e.selection.empty),br&&e.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let s=t.domSelectionRange();for(let a=s.focusNode,i=s.focusOffset;a&&a.nodeType==1&&i!=0;){let o=i<0?a.lastChild:a.childNodes[i-1];if(!o)break;if(o.nodeType==3){let c=t.domSelection();c&&c.collapse(o,o.nodeValue.length);break}else a=o,i=-1}}t.input.composing=!0}T2(t,lL)};function cL(t){let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(!e||e.nodeType!=1||n>=e.childNodes.length)return!1;let s=e.childNodes[n];return s.nodeType==1&&s.contentEditable=="false"}Ds.compositionend=(t,e)=>{t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=e.timeStamp,t.input.compositionPendingChanges=t.domObserver.pendingRecords().length?t.input.compositionID:0,t.input.compositionNode=null,t.input.badSafariComposition?t.domObserver.forceFlush():t.input.compositionPendingChanges&&Promise.resolve().then(()=>t.domObserver.flush()),t.input.compositionID++,T2(t,20))};function T2(t,e){clearTimeout(t.input.composingTimeout),e>-1&&(t.input.composingTimeout=setTimeout(()=>sf(t),e))}function M2(t){for(t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=uL());t.input.compositionNodes.length>0;)t.input.compositionNodes.pop().markParentsDirty()}function dL(t){let e=t.domSelectionRange();if(!e.focusNode)return null;let n=nD(e.focusNode,e.focusOffset),s=sD(e.focusNode,e.focusOffset);if(n&&s&&n!=s){let a=s.pmViewDesc,i=t.domObserver.lastChangedTextNode;if(n==i||s==i)return i;if(!a||!a.isText(s.nodeValue))return s;if(t.input.compositionNode==s){let o=n.pmViewDesc;if(!(!o||!o.isText(n.nodeValue)))return s}}return n||s}function uL(){let t=document.createEvent("Event");return t.initEvent("event",!0,!0),t.timeStamp}function sf(t,e=!1){if(!(Ha&&t.domObserver.flushingSoon>=0)){if(t.domObserver.forceFlush(),M2(t),e||t.docView&&t.docView.dirty){let n=q0(t),s=t.state.selection;return n&&!n.eq(s)?t.dispatch(t.state.tr.setSelection(n)):(t.markCursor||e)&&!s.$from.node(s.$from.sharedDepth(s.to)).inlineContent?t.dispatch(t.state.tr.deleteSelection()):t.updateState(t.state),!0}return!1}}function hL(t,e){if(!t.dom.parentNode)return;let n=t.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(e),n.style.cssText="position: fixed; left: -10000px; top: 10px";let s=getSelection(),a=document.createRange();a.selectNodeContents(e),t.dom.blur(),s.removeAllRanges(),s.addRange(a),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),t.focus()},50)}const _d=Ks&&zi<15||ac&&oD<604;Os.copy=Ds.cut=(t,e)=>{let n=e,s=t.state.selection,a=n.type=="cut";if(s.empty)return;let i=_d?null:n.clipboardData,o=s.content(),{dom:c,text:u}=J0(t,o);i?(n.preventDefault(),i.clearData(),i.setData("text/html",c.innerHTML),i.setData("text/plain",u)):hL(t,c),a&&t.dispatch(t.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function fL(t){return t.openStart==0&&t.openEnd==0&&t.content.childCount==1?t.content.firstChild:null}function pL(t,e){if(!t.dom.parentNode)return;let n=t.input.shiftKey||t.state.selection.$from.parent.type.spec.code,s=t.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(s.contentEditable="true"),s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus();let a=t.input.shiftKey&&t.input.lastKeyCode!=45;setTimeout(()=>{t.focus(),s.parentNode&&s.parentNode.removeChild(s),n?zd(t,s.value,null,a,e):zd(t,s.textContent,s.innerHTML,a,e)},50)}function zd(t,e,n,s,a){let i=v2(t,e,n,s,t.state.selection.$from);if(t.someProp("handlePaste",u=>u(t,a,i||Le.empty)))return!0;if(!i)return!1;let o=fL(i),c=o?t.state.tr.replaceSelectionWith(o,s):t.state.tr.replaceSelection(i);return t.dispatch(c.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function A2(t){let e=t.getData("text/plain")||t.getData("Text");if(e)return e;let n=t.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}Ds.paste=(t,e)=>{let n=e;if(t.composing&&!Ha)return;let s=_d?null:n.clipboardData,a=t.input.shiftKey&&t.input.lastKeyCode!=45;s&&zd(t,A2(s),s.getData("text/html"),a,n)?n.preventDefault():pL(t,n)};class I2{constructor(e,n,s){this.slice=e,this.move=n,this.node=s}}const mL=xr?"altKey":"ctrlKey";function P2(t,e){let n=t.someProp("dragCopies",s=>!s(e));return n??!e[mL]}Os.dragstart=(t,e)=>{let n=e,s=t.input.mouseDown;if(s&&s.done(),!n.dataTransfer)return;let a=t.state.selection,i=a.empty?null:t.posAtCoords(lp(n)),o;if(!(i&&i.pos>=a.from&&i.pos<=(a instanceof Ze?a.to-1:a.to))){if(s&&s.mightDrag)o=Ze.create(t.state.doc,s.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let m=t.docView.nearestDesc(n.target,!0);m&&m.node.type.spec.draggable&&m!=t.docView&&(o=Ze.create(t.state.doc,m.posBefore))}}let c=(o||t.state.selection).content(),{dom:u,text:h,slice:f}=J0(t,c);(!n.dataTransfer.files.length||!ts||s2>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(_d?"Text":"text/html",u.innerHTML),n.dataTransfer.effectAllowed="copyMove",_d||n.dataTransfer.setData("text/plain",h),t.dragging=new I2(f,P2(t,n),o)};Os.dragend=t=>{let e=t.dragging;window.setTimeout(()=>{t.dragging==e&&(t.dragging=null)},50)};Ds.dragover=Ds.dragenter=(t,e)=>e.preventDefault();Ds.drop=(t,e)=>{try{gL(t,e,t.dragging)}finally{t.dragging=null}};function gL(t,e,n){if(!e.dataTransfer)return;let s=t.posAtCoords(lp(e));if(!s)return;let a=t.state.doc.resolve(s.pos),i=n&&n.slice;i?t.someProp("transformPasted",y=>{i=y(i,t,!1)}):i=v2(t,A2(e.dataTransfer),_d?null:e.dataTransfer.getData("text/html"),!1,a);let o=!!(n&&P2(t,e));if(t.someProp("handleDrop",y=>y(t,e,i||Le.empty,o))){e.preventDefault();return}if(!i)return;e.preventDefault();let c=i?LS(t.state.doc,a.pos,i):a.pos;c==null&&(c=a.pos);let u=t.state.tr;if(o){let{node:y}=n;y?y.replace(u):u.deleteSelection()}let h=u.mapping.map(c),f=i.openStart==0&&i.openEnd==0&&i.content.childCount==1,m=u.doc;if(f?u.replaceRangeWith(h,h,i.content.firstChild):u.replaceRange(h,h,i),u.doc.eq(m))return;let g=u.doc.resolve(h);if(f&&Ze.isSelectable(i.content.firstChild)&&g.nodeAfter&&g.nodeAfter.sameMarkup(i.content.firstChild))u.setSelection(new Ze(g));else{let y=u.mapping.map(c);u.mapping.maps[u.mapping.maps.length-1].forEach((N,w,v,k)=>y=k),u.setSelection(G0(t,g,u.doc.resolve(y)))}t.focus(),t.dispatch(u.setMeta("uiEvent","drop"))}Os.focus=t=>{t.input.lastFocus=Date.now(),t.focused||(t.domObserver.stop(),t.dom.classList.add("ProseMirror-focused"),t.domObserver.start(),t.focused=!0,setTimeout(()=>{t.docView&&t.hasFocus()&&!t.domObserver.currentSelection.eq(t.domSelectionRange())&&Ka(t)},20))};Os.blur=(t,e)=>{let n=e;t.focused&&(t.domObserver.stop(),t.dom.classList.remove("ProseMirror-focused"),t.domObserver.start(),n.relatedTarget&&t.dom.contains(n.relatedTarget)&&t.domObserver.currentSelection.clear(),t.focused=!1)};Os.beforeinput=(t,e)=>{if(ts&&Ha&&e.inputType=="deleteContentBackward"){t.domObserver.flushSoon();let{domChangeCount:s}=t.input;setTimeout(()=>{if(t.input.domChangeCount!=s||(t.dom.blur(),t.focus(),t.someProp("handleKeyDown",i=>i(t,Ao(8,"Backspace")))))return;let{$cursor:a}=t.state.selection;a&&a.pos>0&&t.dispatch(t.state.tr.delete(a.pos-1,a.pos).scrollIntoView())},50)}};for(let t in Ds)Os[t]=Ds[t];function Fd(t,e){if(t==e)return!0;for(let n in t)if(t[n]!==e[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}class rf{constructor(e,n){this.toDOM=e,this.spec=n||Bo,this.side=this.spec.side||0}map(e,n,s,a){let{pos:i,deleted:o}=e.mapResult(n.from+a,this.side<0?-1:1);return o?null:new _n(i-s,i-s,this)}valid(){return!0}eq(e){return this==e||e instanceof rf&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&Fd(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class $i{constructor(e,n){this.attrs=e,this.spec=n||Bo}map(e,n,s,a){let i=e.map(n.from+a,this.spec.inclusiveStart?-1:1)-s,o=e.map(n.to+a,this.spec.inclusiveEnd?1:-1)-s;return i>=o?null:new _n(i,o,this)}valid(e,n){return n.from<n.to}eq(e){return this==e||e instanceof $i&&Fd(this.attrs,e.attrs)&&Fd(this.spec,e.spec)}static is(e){return e.type instanceof $i}destroy(){}}class Z0{constructor(e,n){this.attrs=e,this.spec=n||Bo}map(e,n,s,a){let i=e.mapResult(n.from+a,1);if(i.deleted)return null;let o=e.mapResult(n.to+a,-1);return o.deleted||o.pos<=i.pos?null:new _n(i.pos-s,o.pos-s,this)}valid(e,n){let{index:s,offset:a}=e.content.findIndex(n.from),i;return a==n.from&&!(i=e.child(s)).isText&&a+i.nodeSize==n.to}eq(e){return this==e||e instanceof Z0&&Fd(this.attrs,e.attrs)&&Fd(this.spec,e.spec)}destroy(){}}class _n{constructor(e,n,s){this.from=e,this.to=n,this.type=s}copy(e,n){return new _n(e,n,this.type)}eq(e,n=0){return this.type.eq(e.type)&&this.from+n==e.from&&this.to+n==e.to}map(e,n,s){return this.type.map(e,this,n,s)}static widget(e,n,s){return new _n(e,e,new rf(n,s))}static inline(e,n,s,a){return new _n(e,n,new $i(s,a))}static node(e,n,s,a){return new _n(e,n,new Z0(s,a))}get spec(){return this.type.spec}get inline(){return this.type instanceof $i}get widget(){return this.type instanceof rf}}const Hl=[],Bo={};class Ht{constructor(e,n){this.local=e.length?e:Hl,this.children=n.length?n:Hl}static create(e,n){return n.length?af(n,e,0,Bo):ms}find(e,n,s){let a=[];return this.findInner(e??0,n??1e9,a,0,s),a}findInner(e,n,s,a,i){for(let o=0;o<this.local.length;o++){let c=this.local[o];c.from<=n&&c.to>=e&&(!i||i(c.spec))&&s.push(c.copy(c.from+a,c.to+a))}for(let o=0;o<this.children.length;o+=3)if(this.children[o]<n&&this.children[o+1]>e){let c=this.children[o]+1;this.children[o+2].findInner(e-c,n-c,s,a+c,i)}}map(e,n,s){return this==ms||e.maps.length==0?this:this.mapInner(e,n,0,0,s||Bo)}mapInner(e,n,s,a,i){let o;for(let c=0;c<this.local.length;c++){let u=this.local[c].map(e,s,a);u&&u.type.valid(n,u)?(o||(o=[])).push(u):i.onRemove&&i.onRemove(this.local[c].spec)}return this.children.length?xL(this.children,o||[],e,n,s,a,i):o?new Ht(o.sort(Vo),Hl):ms}add(e,n){return n.length?this==ms?Ht.create(e,n):this.addInner(e,n,0):this}addInner(e,n,s){let a,i=0;e.forEach((c,u)=>{let h=u+s,f;if(f=O2(n,c,h)){for(a||(a=this.children.slice());i<a.length&&a[i]<u;)i+=3;a[i]==u?a[i+2]=a[i+2].addInner(c,f,h+1):a.splice(i,0,u,u+c.nodeSize,af(f,c,h+1,Bo)),i+=3}});let o=R2(i?D2(n):n,-s);for(let c=0;c<o.length;c++)o[c].type.valid(e,o[c])||o.splice(c--,1);return new Ht(o.length?this.local.concat(o).sort(Vo):this.local,a||this.children)}remove(e){return e.length==0||this==ms?this:this.removeInner(e,0)}removeInner(e,n){let s=this.children,a=this.local;for(let i=0;i<s.length;i+=3){let o,c=s[i]+n,u=s[i+1]+n;for(let f=0,m;f<e.length;f++)(m=e[f])&&m.from>c&&m.to<u&&(e[f]=null,(o||(o=[])).push(m));if(!o)continue;s==this.children&&(s=this.children.slice());let h=s[i+2].removeInner(o,c+1);h!=ms?s[i+2]=h:(s.splice(i,3),i-=3)}if(a.length){for(let i=0,o;i<e.length;i++)if(o=e[i])for(let c=0;c<a.length;c++)a[c].eq(o,n)&&(a==this.local&&(a=this.local.slice()),a.splice(c--,1))}return s==this.children&&a==this.local?this:a.length||s.length?new Ht(a,s):ms}forChild(e,n){if(this==ms)return this;if(n.isLeaf)return Ht.empty;let s,a;for(let c=0;c<this.children.length;c+=3)if(this.children[c]>=e){this.children[c]==e&&(s=this.children[c+2]);break}let i=e+1,o=i+n.content.size;for(let c=0;c<this.local.length;c++){let u=this.local[c];if(u.from<o&&u.to>i&&u.type instanceof $i){let h=Math.max(i,u.from)-i,f=Math.min(o,u.to)-i;h<f&&(a||(a=[])).push(u.copy(h,f))}}if(a){let c=new Ht(a.sort(Vo),Hl);return s?new Ei([c,s]):c}return s||ms}eq(e){if(this==e)return!0;if(!(e instanceof Ht)||this.local.length!=e.local.length||this.children.length!=e.children.length)return!1;for(let n=0;n<this.local.length;n++)if(!this.local[n].eq(e.local[n]))return!1;for(let n=0;n<this.children.length;n+=3)if(this.children[n]!=e.children[n]||this.children[n+1]!=e.children[n+1]||!this.children[n+2].eq(e.children[n+2]))return!1;return!0}locals(e){return ey(this.localsInner(e))}localsInner(e){if(this==ms)return Hl;if(e.inlineContent||!this.local.some($i.is))return this.local;let n=[];for(let s=0;s<this.local.length;s++)this.local[s].type instanceof $i||n.push(this.local[s]);return n}forEachSet(e){e(this)}}Ht.empty=new Ht([],[]);Ht.removeOverlap=ey;const ms=Ht.empty;class Ei{constructor(e){this.members=e}map(e,n){const s=this.members.map(a=>a.map(e,n,Bo));return Ei.from(s)}forChild(e,n){if(n.isLeaf)return Ht.empty;let s=[];for(let a=0;a<this.members.length;a++){let i=this.members[a].forChild(e,n);i!=ms&&(i instanceof Ei?s=s.concat(i.members):s.push(i))}return Ei.from(s)}eq(e){if(!(e instanceof Ei)||e.members.length!=this.members.length)return!1;for(let n=0;n<this.members.length;n++)if(!this.members[n].eq(e.members[n]))return!1;return!0}locals(e){let n,s=!0;for(let a=0;a<this.members.length;a++){let i=this.members[a].localsInner(e);if(i.length)if(!n)n=i;else{s&&(n=n.slice(),s=!1);for(let o=0;o<i.length;o++)n.push(i[o])}}return n?ey(s?n:n.sort(Vo)):Hl}static from(e){switch(e.length){case 0:return ms;case 1:return e[0];default:return new Ei(e.every(n=>n instanceof Ht)?e:e.reduce((n,s)=>n.concat(s instanceof Ht?s:s.members),[]))}}forEachSet(e){for(let n=0;n<this.members.length;n++)this.members[n].forEachSet(e)}}function xL(t,e,n,s,a,i,o){let c=t.slice();for(let h=0,f=i;h<n.maps.length;h++){let m=0;n.maps[h].forEach((g,y,N,w)=>{let v=w-N-(y-g);for(let k=0;k<c.length;k+=3){let C=c[k+1];if(C<0||g>C+f-m)continue;let E=c[k]+f-m;y>=E?c[k+1]=g<=E?-2:-1:g>=f&&v&&(c[k]+=v,c[k+1]+=v)}m+=v}),f=n.maps[h].map(f,-1)}let u=!1;for(let h=0;h<c.length;h+=3)if(c[h+1]<0){if(c[h+1]==-2){u=!0,c[h+1]=-1;continue}let f=n.map(t[h]+i),m=f-a;if(m<0||m>=s.content.size){u=!0;continue}let g=n.map(t[h+1]+i,-1),y=g-a,{index:N,offset:w}=s.content.findIndex(m),v=s.maybeChild(N);if(v&&w==m&&w+v.nodeSize==y){let k=c[h+2].mapInner(n,v,f+1,t[h]+i+1,o);k!=ms?(c[h]=m,c[h+1]=y,c[h+2]=k):(c[h+1]=-2,u=!0)}else u=!0}if(u){let h=yL(c,t,e,n,a,i,o),f=af(h,s,0,o);e=f.local;for(let m=0;m<c.length;m+=3)c[m+1]<0&&(c.splice(m,3),m-=3);for(let m=0,g=0;m<f.children.length;m+=3){let y=f.children[m];for(;g<c.length&&c[g]<y;)g+=3;c.splice(g,0,f.children[m],f.children[m+1],f.children[m+2])}}return new Ht(e.sort(Vo),c)}function R2(t,e){if(!e||!t.length)return t;let n=[];for(let s=0;s<t.length;s++){let a=t[s];n.push(new _n(a.from+e,a.to+e,a.type))}return n}function yL(t,e,n,s,a,i,o){function c(u,h){for(let f=0;f<u.local.length;f++){let m=u.local[f].map(s,a,h);m?n.push(m):o.onRemove&&o.onRemove(u.local[f].spec)}for(let f=0;f<u.children.length;f+=3)c(u.children[f+2],u.children[f]+h+1)}for(let u=0;u<t.length;u+=3)t[u+1]==-1&&c(t[u+2],e[u]+i+1);return n}function O2(t,e,n){if(e.isLeaf)return null;let s=n+e.nodeSize,a=null;for(let i=0,o;i<t.length;i++)(o=t[i])&&o.from>n&&o.to<s&&((a||(a=[])).push(o),t[i]=null);return a}function D2(t){let e=[];for(let n=0;n<t.length;n++)t[n]!=null&&e.push(t[n]);return e}function af(t,e,n,s){let a=[],i=!1;e.forEach((c,u)=>{let h=O2(t,c,u+n);if(h){i=!0;let f=af(h,c,n+u+1,s);f!=ms&&a.push(u,u+c.nodeSize,f)}});let o=R2(i?D2(t):t,-n).sort(Vo);for(let c=0;c<o.length;c++)o[c].type.valid(e,o[c])||(s.onRemove&&s.onRemove(o[c].spec),o.splice(c--,1));return o.length||a.length?new Ht(o,a):ms}function Vo(t,e){return t.from-e.from||t.to-e.to}function ey(t){let e=t;for(let n=0;n<e.length-1;n++){let s=e[n];if(s.from!=s.to)for(let a=n+1;a<e.length;a++){let i=e[a];if(i.from==s.from){i.to!=s.to&&(e==t&&(e=t.slice()),e[a]=i.copy(i.from,s.to),kN(e,a+1,i.copy(s.to,i.to)));continue}else{i.from<s.to&&(e==t&&(e=t.slice()),e[n]=s.copy(s.from,i.from),kN(e,a,s.copy(i.from,s.to)));break}}}return e}function kN(t,e,n){for(;e<t.length&&Vo(n,t[e])>0;)e++;t.splice(e,0,n)}function Mg(t){let e=[];return t.someProp("decorations",n=>{let s=n(t.state);s&&s!=ms&&e.push(s)}),t.cursorWrapper&&e.push(Ht.create(t.state.doc,[t.cursorWrapper.deco])),Ei.from(e)}const bL={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},vL=Ks&&zi<=11;class NL{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class wL{constructor(e,n){this.view=e,this.handleDOMChange=n,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new NL,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(s=>{for(let a=0;a<s.length;a++)this.queue.push(s[a]);Ks&&zi<=11&&s.some(a=>a.type=="childList"&&a.removedNodes.length||a.type=="characterData"&&a.oldValue.length>a.target.nodeValue.length)?this.flushSoon():ys&&e.composing&&s.some(a=>a.type=="childList"&&a.target.nodeName=="TR")?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),vL&&(this.onCharData=s=>{this.queue.push({target:s.target,type:"characterData",oldValue:s.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,bL)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let n=0;n<e.length;n++)this.queue.push(e[n]);window.setTimeout(()=>this.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(gN(this.view)){if(this.suppressingSelectionUpdates)return Ka(this.view);if(Ks&&zi<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Jo(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let n=new Set,s;for(let i=e.focusNode;i;i=rc(i))n.add(i);for(let i=e.anchorNode;i;i=rc(i))if(n.has(i)){s=i;break}let a=s&&this.view.docView.nearestDesc(s);if(a&&a.ignoreMutation({type:"selection",target:s.nodeType==3?s.parentNode:s}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let n=this.pendingRecords();n.length&&(this.queue=[]);let s=e.domSelectionRange(),a=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(s)&&gN(e)&&!this.ignoreSelectionChange(s),i=-1,o=-1,c=!1,u=[];if(e.editable)for(let f=0;f<n.length;f++){let m=this.registerMutation(n[f],u);m&&(i=i<0?m.from:Math.min(m.from,i),o=o<0?m.to:Math.max(m.to,o),m.typeOver&&(c=!0))}if(u.some(f=>f.nodeName=="BR")&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46)){for(let f of u)if(f.nodeName=="BR"&&f.parentNode){let m=f.nextSibling;m&&m.nodeType==1&&m.contentEditable=="false"&&f.parentNode.removeChild(f)}}else if(br&&u.length){let f=u.filter(m=>m.nodeName=="BR");if(f.length==2){let[m,g]=f;m.parentNode&&m.parentNode.parentNode==g.parentNode?g.remove():m.remove()}else{let{focusNode:m}=this.currentSelection;for(let g of f){let y=g.parentNode;y&&y.nodeName=="LI"&&(!m||SL(e,m)!=y)&&g.remove()}}}let h=null;i<0&&a&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)<Date.now()-300&&ip(s)&&(h=q0(e))&&h.eq(ot.near(e.state.doc.resolve(0),1))?(e.input.lastFocus=0,Ka(e),this.currentSelection.set(s),e.scrollToSelection()):(i>-1||a)&&(i>-1&&(e.docView.markDirty(i,o),jL(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,CL(e,u)),this.handleDOMChange(i,o,c,u),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(s)||Ka(e),this.currentSelection.set(s))}registerMutation(e,n){if(n.indexOf(e.target)>-1)return null;let s=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(s==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!s||s.ignoreMutation(e))return null;if(e.type=="childList"){for(let f=0;f<e.addedNodes.length;f++){let m=e.addedNodes[f];n.push(m),m.nodeType==3&&(this.lastChangedTextNode=m)}if(s.contentDOM&&s.contentDOM!=s.dom&&!s.contentDOM.contains(e.target))return{from:s.posBefore,to:s.posAfter};let a=e.previousSibling,i=e.nextSibling;if(Ks&&zi<=11&&e.addedNodes.length)for(let f=0;f<e.addedNodes.length;f++){let{previousSibling:m,nextSibling:g}=e.addedNodes[f];(!m||Array.prototype.indexOf.call(e.addedNodes,m)<0)&&(a=m),(!g||Array.prototype.indexOf.call(e.addedNodes,g)<0)&&(i=g)}let o=a&&a.parentNode==e.target?Zn(a)+1:0,c=s.localPosFromDOM(e.target,o,-1),u=i&&i.parentNode==e.target?Zn(i):e.target.childNodes.length,h=s.localPosFromDOM(e.target,u,1);return{from:c,to:h}}else return e.type=="attributes"?{from:s.posAtStart-s.border,to:s.posAtEnd+s.border}:(this.lastChangedTextNode=e.target,{from:s.posAtStart,to:s.posAtEnd,typeOver:e.target.nodeValue==e.oldValue})}}let SN=new WeakMap,CN=!1;function jL(t){if(!SN.has(t)&&(SN.set(t,null),["normal","nowrap","pre-line"].indexOf(getComputedStyle(t.dom).whiteSpace)!==-1)){if(t.requiresGeckoHackNode=br,CN)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),CN=!0}}function EN(t,e){let n=e.startContainer,s=e.startOffset,a=e.endContainer,i=e.endOffset,o=t.domAtPos(t.state.selection.anchor);return Jo(o.node,o.offset,a,i)&&([n,s,a,i]=[a,i,n,s]),{anchorNode:n,anchorOffset:s,focusNode:a,focusOffset:i}}function kL(t,e){if(e.getComposedRanges){let a=e.getComposedRanges(t.root)[0];if(a)return EN(t,a)}let n;function s(a){a.preventDefault(),a.stopImmediatePropagation(),n=a.getTargetRanges()[0]}return t.dom.addEventListener("beforeinput",s,!0),document.execCommand("indent"),t.dom.removeEventListener("beforeinput",s,!0),n?EN(t,n):null}function SL(t,e){for(let n=e.parentNode;n&&n!=t.dom;n=n.parentNode){let s=t.docView.nearestDesc(n,!0);if(s&&s.node.isBlock)return n}return null}function CL(t,e){var n;let{focusNode:s,focusOffset:a}=t.domSelectionRange();for(let i of e)if(((n=i.parentNode)===null||n===void 0?void 0:n.nodeName)=="TR"){let o=i.nextSibling;for(;o&&o.nodeName!="TD"&&o.nodeName!="TH";)o=o.nextSibling;if(o){let c=o;for(;;){let u=c.firstChild;if(!u||u.nodeType!=1||u.contentEditable=="false"||/^(BR|IMG)$/.test(u.nodeName))break;c=u}c.insertBefore(i,c.firstChild),s==i&&t.domSelection().collapse(i,a)}else i.parentNode.removeChild(i)}}function EL(t,e,n){let{node:s,fromOffset:a,toOffset:i,from:o,to:c}=t.docView.parseRange(e,n),u=t.domSelectionRange(),h,f=u.anchorNode;if(f&&t.dom.contains(f.nodeType==1?f:f.parentNode)&&(h=[{node:f,offset:u.anchorOffset}],ip(u)||h.push({node:u.focusNode,offset:u.focusOffset})),ts&&t.input.lastKeyCode===8)for(let v=i;v>a;v--){let k=s.childNodes[v-1],C=k.pmViewDesc;if(k.nodeName=="BR"&&!C){i=v;break}if(!C||C.size)break}let m=t.state.doc,g=t.someProp("domParser")||_i.fromSchema(t.state.schema),y=m.resolve(o),N=null,w=g.parse(s,{topNode:y.parent,topMatch:y.parent.contentMatchAt(y.index()),topOpen:!0,from:a,to:i,preserveWhitespace:y.parent.type.whitespace=="pre"?"full":!0,findPositions:h,ruleFromNode:TL,context:y});if(h&&h[0].pos!=null){let v=h[0].pos,k=h[1]&&h[1].pos;k==null&&(k=v),N={anchor:v+o,head:k+o}}return{doc:w,sel:N,from:o,to:c}}function TL(t){let e=t.pmViewDesc;if(e)return e.parseRule();if(t.nodeName=="BR"&&t.parentNode){if(ys&&/^(ul|ol)$/i.test(t.parentNode.nodeName)){let n=document.createElement("div");return n.appendChild(document.createElement("li")),{skip:n}}else if(t.parentNode.lastChild==t||ys&&/^(tr|table)$/i.test(t.parentNode.nodeName))return{ignore:!0}}else if(t.nodeName=="IMG"&&t.getAttribute("mark-placeholder"))return{ignore:!0};return null}const ML=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function AL(t,e,n,s,a){let i=t.input.compositionPendingChanges||(t.composing?t.input.compositionID:0);if(t.input.compositionPendingChanges=0,e<0){let D=t.input.lastSelectionTime>Date.now()-50?t.input.lastSelectionOrigin:null,P=q0(t,D);if(P&&!t.state.selection.eq(P)){if(ts&&Ha&&t.input.lastKeyCode===13&&Date.now()-100<t.input.lastKeyCodeTime&&t.someProp("handleKeyDown",K=>K(t,Ao(13,"Enter"))))return;let R=t.state.tr.setSelection(P);D=="pointer"?R.setMeta("pointer",!0):D=="key"&&R.scrollIntoView(),i&&R.setMeta("composition",i),t.dispatch(R)}return}let o=t.state.doc.resolve(e),c=o.sharedDepth(n);e=o.before(c+1),n=t.state.doc.resolve(n).after(c+1);let u=t.state.selection,h=EL(t,e,n),f=t.state.doc,m=f.slice(h.from,h.to),g,y;t.input.lastKeyCode===8&&Date.now()-100<t.input.lastKeyCodeTime?(g=t.state.selection.to,y="end"):(g=t.state.selection.from,y="start"),t.input.lastKeyCode=null;let N=RL(m.content,h.doc.content,h.from,g,y);if(N&&t.input.domChangeCount++,(ac&&t.input.lastIOSEnter>Date.now()-225||Ha)&&a.some(D=>D.nodeType==1&&!ML.test(D.nodeName))&&(!N||N.endA>=N.endB)&&t.someProp("handleKeyDown",D=>D(t,Ao(13,"Enter")))){t.input.lastIOSEnter=0;return}if(!N)if(s&&u instanceof et&&!u.empty&&u.$head.sameParent(u.$anchor)&&!t.composing&&!(h.sel&&h.sel.anchor!=h.sel.head))N={start:u.from,endA:u.to,endB:u.to};else{if(h.sel){let D=TN(t,t.state.doc,h.sel);if(D&&!D.eq(t.state.selection)){let P=t.state.tr.setSelection(D);i&&P.setMeta("composition",i),t.dispatch(P)}}return}t.state.selection.from<t.state.selection.to&&N.start==N.endB&&t.state.selection instanceof et&&(N.start>t.state.selection.from&&N.start<=t.state.selection.from+2&&t.state.selection.from>=h.from?N.start=t.state.selection.from:N.endA<t.state.selection.to&&N.endA>=t.state.selection.to-2&&t.state.selection.to<=h.to&&(N.endB+=t.state.selection.to-N.endA,N.endA=t.state.selection.to)),Ks&&zi<=11&&N.endB==N.start+1&&N.endA==N.start&&N.start>h.from&&h.doc.textBetween(N.start-h.from-1,N.start-h.from+1)=="  "&&(N.start--,N.endA--,N.endB--);let w=h.doc.resolveNoCache(N.start-h.from),v=h.doc.resolveNoCache(N.endB-h.from),k=f.resolve(N.start),C=w.sameParent(v)&&w.parent.inlineContent&&k.end()>=N.endA;if((ac&&t.input.lastIOSEnter>Date.now()-225&&(!C||a.some(D=>D.nodeName=="DIV"||D.nodeName=="P"))||!C&&w.pos<h.doc.content.size&&(!w.sameParent(v)||!w.parent.inlineContent)&&w.pos<v.pos&&!/\S/.test(h.doc.textBetween(w.pos,v.pos,"","")))&&t.someProp("handleKeyDown",D=>D(t,Ao(13,"Enter")))){t.input.lastIOSEnter=0;return}if(t.state.selection.anchor>N.start&&PL(f,N.start,N.endA,w,v)&&t.someProp("handleKeyDown",D=>D(t,Ao(8,"Backspace")))){Ha&&ts&&t.domObserver.suppressSelectionUpdates();return}ts&&N.endB==N.start&&(t.input.lastChromeDelete=Date.now()),Ha&&!C&&w.start()!=v.start()&&v.parentOffset==0&&w.depth==v.depth&&h.sel&&h.sel.anchor==h.sel.head&&h.sel.head==N.endA&&(N.endB-=2,v=h.doc.resolveNoCache(N.endB-h.from),setTimeout(()=>{t.someProp("handleKeyDown",function(D){return D(t,Ao(13,"Enter"))})},20));let E=N.start,I=N.endA,L=D=>{let P=D||t.state.tr.replace(E,I,h.doc.slice(N.start-h.from,N.endB-h.from));if(h.sel){let R=TN(t,P.doc,h.sel);R&&!(ts&&t.composing&&R.empty&&(N.start!=N.endB||t.input.lastChromeDelete<Date.now()-100)&&(R.head==E||R.head==P.mapping.map(I)-1)||Ks&&R.empty&&R.head==E)&&P.setSelection(R)}return i&&P.setMeta("composition",i),P.scrollIntoView()},W;if(C)if(w.pos==v.pos){Ks&&zi<=11&&w.parentOffset==0&&(t.domObserver.suppressSelectionUpdates(),setTimeout(()=>Ka(t),20));let D=L(t.state.tr.delete(E,I)),P=f.resolve(N.start).marksAcross(f.resolve(N.endA));P&&D.ensureMarks(P),t.dispatch(D)}else if(N.endA==N.endB&&(W=IL(w.parent.content.cut(w.parentOffset,v.parentOffset),k.parent.content.cut(k.parentOffset,N.endA-k.start())))){let D=L(t.state.tr);W.type=="add"?D.addMark(E,I,W.mark):D.removeMark(E,I,W.mark),t.dispatch(D)}else if(w.parent.child(w.index()).isText&&w.index()==v.index()-(v.textOffset?0:1)){let D=w.parent.textBetween(w.parentOffset,v.parentOffset),P=()=>L(t.state.tr.insertText(D,E,I));t.someProp("handleTextInput",R=>R(t,E,I,D,P))||t.dispatch(P())}else t.dispatch(L());else t.dispatch(L())}function TN(t,e,n){return Math.max(n.anchor,n.head)>e.content.size?null:G0(t,e.resolve(n.anchor),e.resolve(n.head))}function IL(t,e){let n=t.firstChild.marks,s=e.firstChild.marks,a=n,i=s,o,c,u;for(let f=0;f<s.length;f++)a=s[f].removeFromSet(a);for(let f=0;f<n.length;f++)i=n[f].removeFromSet(i);if(a.length==1&&i.length==0)c=a[0],o="add",u=f=>f.mark(c.addToSet(f.marks));else if(a.length==0&&i.length==1)c=i[0],o="remove",u=f=>f.mark(c.removeFromSet(f.marks));else return null;let h=[];for(let f=0;f<e.childCount;f++)h.push(u(e.child(f)));if(Ne.from(h).eq(t))return{mark:c,type:o}}function PL(t,e,n,s,a){if(n-e<=a.pos-s.pos||Ag(s,!0,!1)<a.pos)return!1;let i=t.resolve(e);if(!s.parent.isTextblock){let c=i.nodeAfter;return c!=null&&n==e+c.nodeSize}if(i.parentOffset<i.parent.content.size||!i.parent.isTextblock)return!1;let o=t.resolve(Ag(i,!0,!0));return!o.parent.isTextblock||o.pos>n||Ag(o,!0,!1)<n?!1:s.parent.content.cut(s.parentOffset).eq(o.parent.content)}function Ag(t,e,n){let s=t.depth,a=e?t.end():t.pos;for(;s>0&&(e||t.indexAfter(s)==t.node(s).childCount);)s--,a++,e=!1;if(n){let i=t.node(s).maybeChild(t.indexAfter(s));for(;i&&!i.isLeaf;)i=i.firstChild,a++}return a}function RL(t,e,n,s,a){let i=t.findDiffStart(e,n);if(i==null)return null;let{a:o,b:c}=t.findDiffEnd(e,n+t.size,n+e.size);if(a=="end"){let u=Math.max(0,i-Math.min(o,c));s-=o+u-i}if(o<i&&t.size<e.size){let u=s<=i&&s>=o?i-s:0;i-=u,i&&i<e.size&&MN(e.textBetween(i-1,i+1))&&(i+=u?1:-1),c=i+(c-o),o=i}else if(c<i){let u=s<=i&&s>=c?i-s:0;i-=u,i&&i<t.size&&MN(t.textBetween(i-1,i+1))&&(i+=u?1:-1),o=i+(o-c),c=i}return{start:i,endA:o,endB:c}}function MN(t){if(t.length!=2)return!1;let e=t.charCodeAt(0),n=t.charCodeAt(1);return e>=56320&&e<=57343&&n>=55296&&n<=56319}class L2{constructor(e,n){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new JD,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=n,this.state=n.state,this.directPlugins=n.plugins||[],this.directPlugins.forEach(ON),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=PN(this),IN(this),this.nodeViews=RN(this),this.docView=dN(this.state.doc,AN(this),Mg(this),this.dom,this),this.domObserver=new wL(this,(s,a,i,o)=>AL(this,s,a,i,o)),this.domObserver.start(),YD(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&Dx(this);let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(ON),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let s in this._props)n[s]=this._props[s];n.state=this.state;for(let s in e)n[s]=e[s];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){var s;let a=this.state,i=!1,o=!1;e.storedMarks&&this.composing&&(M2(this),o=!0),this.state=e;let c=a.plugins!=e.plugins||this._props.plugins!=n.plugins;if(c||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let y=RN(this);DL(y,this.nodeViews)&&(this.nodeViews=y,i=!0)}(c||n.handleDOMEvents!=this._props.handleDOMEvents)&&Dx(this),this.editable=PN(this),IN(this);let u=Mg(this),h=AN(this),f=a.plugins!=e.plugins&&!a.doc.eq(e.doc)?"reset":e.scrollToSelection>a.scrollToSelection?"to selection":"preserve",m=i||!this.docView.matchesNode(e.doc,h,u);(m||!e.selection.eq(a.selection))&&(o=!0);let g=f=="preserve"&&o&&this.dom.style.overflowAnchor==null&&dD(this);if(o){this.domObserver.stop();let y=m&&(Ks||ts)&&!this.composing&&!a.selection.empty&&!e.selection.empty&&OL(a.selection,e.selection);if(m){let N=ts?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=dL(this)),(i||!this.docView.update(e.doc,h,u,this))&&(this.docView.updateOuterDeco(h),this.docView.destroy(),this.docView=dN(e.doc,h,u,this.dom,this)),N&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(y=!0)}y||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&OD(this))?Ka(this,y):(x2(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(a),!((s=this.dragging)===null||s===void 0)&&s.node&&!a.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,a),f=="reset"?this.dom.scrollTop=0:f=="to selection"?this.scrollToSelection():g&&uD(g)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))){if(!this.someProp("handleScrollToSelection",n=>n(this)))if(this.state.selection instanceof Ze){let n=this.docView.domAfterPos(this.state.selection.from);n.nodeType==1&&rN(this,n.getBoundingClientRect(),e)}else rN(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n<this.directPlugins.length;n++){let s=this.directPlugins[n];s.spec.view&&this.pluginViews.push(s.spec.view(this))}for(let n=0;n<this.state.plugins.length;n++){let s=this.state.plugins[n];s.spec.view&&this.pluginViews.push(s.spec.view(this))}}else for(let n=0;n<this.pluginViews.length;n++){let s=this.pluginViews[n];s.update&&s.update(this,e)}}updateDraggedNode(e,n){let s=e.node,a=-1;if(this.state.doc.nodeAt(s.from)==s.node)a=s.from;else{let i=s.from+(this.state.doc.content.size-n.doc.content.size);(i>0&&this.state.doc.nodeAt(i))==s.node&&(a=i)}this.dragging=new I2(e.slice,e.move,a<0?void 0:Ze.create(this.state.doc,a))}someProp(e,n){let s=this._props&&this._props[e],a;if(s!=null&&(a=n?n(s):s))return a;for(let o=0;o<this.directPlugins.length;o++){let c=this.directPlugins[o].props[e];if(c!=null&&(a=n?n(c):c))return a}let i=this.state.plugins;if(i)for(let o=0;o<i.length;o++){let c=i[o].props[e];if(c!=null&&(a=n?n(c):c))return a}}hasFocus(){if(Ks){let e=this.root.activeElement;if(e==this.dom)return!0;if(!e||!this.dom.contains(e))return!1;for(;e&&this.dom!=e&&this.dom.contains(e);){if(e.contentEditable=="false")return!1;e=e.parentElement}return!0}return this.root.activeElement==this.dom}focus(){this.domObserver.stop(),this.editable&&hD(this.dom),Ka(this),this.domObserver.start()}get root(){let e=this._root;if(e==null){for(let n=this.dom.parentNode;n;n=n.parentNode)if(n.nodeType==9||n.nodeType==11&&n.host)return n.getSelection||(Object.getPrototypeOf(n).getSelection=()=>n.ownerDocument.getSelection()),this._root=n}return e||document}updateRoot(){this._root=null}posAtCoords(e){return xD(this,e)}coordsAtPos(e,n=1){return c2(this,e,n)}domAtPos(e,n=0){return this.docView.domFromPos(e,n)}nodeDOM(e){let n=this.docView.descAt(e);return n?n.nodeDOM:null}posAtDOM(e,n,s=-1){let a=this.docView.posFromDOM(e,n,s);if(a==null)throw new RangeError("DOM position not inside the editor");return a}endOfTextblock(e,n){return wD(this,n||this.state,e)}pasteHTML(e,n){return zd(this,"",e,!1,n||new ClipboardEvent("paste"))}pasteText(e,n){return zd(this,e,null,!0,n||new ClipboardEvent("paste"))}serializeForClipboard(e){return J0(this,e)}destroy(){this.docView&&(QD(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],Mg(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,eD())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return ZD(this,e)}domSelectionRange(){let e=this.domSelection();return e?ys&&this.root.nodeType===11&&aD(this.dom.ownerDocument)==this.dom&&kL(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}L2.prototype.dispatch=function(t){let e=this._props.dispatchTransaction;e?e.call(this,t):this.updateState(this.state.apply(t))};function AN(t){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(t.editable),t.someProp("attributes",n=>{if(typeof n=="function"&&(n=n(t.state)),n)for(let s in n)s=="class"?e.class+=" "+n[s]:s=="style"?e.style=(e.style?e.style+";":"")+n[s]:!e[s]&&s!="contenteditable"&&s!="nodeName"&&(e[s]=String(n[s]))}),e.translate||(e.translate="no"),[_n.node(0,t.state.doc.content.size,e)]}function IN(t){if(t.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),t.cursorWrapper={dom:e,deco:_n.widget(t.state.selection.from,e,{raw:!0,marks:t.markCursor})}}else t.cursorWrapper=null}function PN(t){return!t.someProp("editable",e=>e(t.state)===!1)}function OL(t,e){let n=Math.min(t.$anchor.sharedDepth(t.head),e.$anchor.sharedDepth(e.head));return t.$anchor.start(n)!=e.$anchor.start(n)}function RN(t){let e=Object.create(null);function n(s){for(let a in s)Object.prototype.hasOwnProperty.call(e,a)||(e[a]=s[a])}return t.someProp("nodeViews",n),t.someProp("markViews",n),e}function DL(t,e){let n=0,s=0;for(let a in t){if(t[a]!=e[a])return!0;n++}for(let a in e)s++;return n!=s}function ON(t){if(t.spec.state||t.spec.filterTransaction||t.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var Hi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},of={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},LL=typeof navigator<"u"&&/Mac/.test(navigator.platform),_L=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var es=0;es<10;es++)Hi[48+es]=Hi[96+es]=String(es);for(var es=1;es<=24;es++)Hi[es+111]="F"+es;for(var es=65;es<=90;es++)Hi[es]=String.fromCharCode(es+32),of[es]=String.fromCharCode(es);for(var Ig in Hi)of.hasOwnProperty(Ig)||(of[Ig]=Hi[Ig]);function zL(t){var e=LL&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||_L&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?of:Hi)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}const FL=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),$L=typeof navigator<"u"&&/Win/.test(navigator.platform);function BL(t){let e=t.split(/-(?!$)/),n=e[e.length-1];n=="Space"&&(n=" ");let s,a,i,o;for(let c=0;c<e.length-1;c++){let u=e[c];if(/^(cmd|meta|m)$/i.test(u))o=!0;else if(/^a(lt)?$/i.test(u))s=!0;else if(/^(c|ctrl|control)$/i.test(u))a=!0;else if(/^s(hift)?$/i.test(u))i=!0;else if(/^mod$/i.test(u))FL?o=!0:a=!0;else throw new Error("Unrecognized modifier name: "+u)}return s&&(n="Alt-"+n),a&&(n="Ctrl-"+n),o&&(n="Meta-"+n),i&&(n="Shift-"+n),n}function VL(t){let e=Object.create(null);for(let n in t)e[BL(n)]=t[n];return e}function Pg(t,e,n=!0){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),n&&e.shiftKey&&(t="Shift-"+t),t}function HL(t){return new Qt({props:{handleKeyDown:ty(t)}})}function ty(t){let e=VL(t);return function(n,s){let a=zL(s),i,o=e[Pg(a,s)];if(o&&o(n.state,n.dispatch,n))return!0;if(a.length==1&&a!=" "){if(s.shiftKey){let c=e[Pg(a,s,!1)];if(c&&c(n.state,n.dispatch,n))return!0}if((s.altKey||s.metaKey||s.ctrlKey)&&!($L&&s.ctrlKey&&s.altKey)&&(i=Hi[s.keyCode])&&i!=a){let c=e[Pg(i,s)];if(c&&c(n.state,n.dispatch,n))return!0}}return!1}}var WL=Object.defineProperty,ny=(t,e)=>{for(var n in e)WL(t,n,{get:e[n],enumerable:!0})};function cp(t){const{state:e,transaction:n}=t;let{selection:s}=n,{doc:a}=n,{storedMarks:i}=n;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return i},get selection(){return s},get doc(){return a},get tr(){return s=n.selection,a=n.doc,i=n.storedMarks,n}}}var dp=class{constructor(t){this.editor=t.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=t.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:t,editor:e,state:n}=this,{view:s}=e,{tr:a}=n,i=this.buildProps(a);return Object.fromEntries(Object.entries(t).map(([o,c])=>[o,(...h)=>{const f=c(...h)(i);return!a.getMeta("preventDispatch")&&!this.hasCustomState&&s.dispatch(a),f}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(t,e=!0){const{rawCommands:n,editor:s,state:a}=this,{view:i}=s,o=[],c=!!t,u=t||a.tr,h=()=>(!c&&e&&!u.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(u),o.every(m=>m===!0)),f={...Object.fromEntries(Object.entries(n).map(([m,g])=>[m,(...N)=>{const w=this.buildProps(u,e),v=g(...N)(w);return o.push(v),f}])),run:h};return f}createCan(t){const{rawCommands:e,state:n}=this,s=!1,a=t||n.tr,i=this.buildProps(a,s);return{...Object.fromEntries(Object.entries(e).map(([c,u])=>[c,(...h)=>u(...h)({...i,dispatch:void 0})])),chain:()=>this.createChain(a,s)}}buildProps(t,e=!0){const{rawCommands:n,editor:s,state:a}=this,{view:i}=s,o={tr:t,editor:s,view:i,state:cp({state:a,transaction:t}),dispatch:e?()=>{}:void 0,chain:()=>this.createChain(t,e),can:()=>this.createCan(t),get commands(){return Object.fromEntries(Object.entries(n).map(([c,u])=>[c,(...h)=>u(...h)(o)]))}};return o}},_2={};ny(_2,{blur:()=>UL,clearContent:()=>KL,clearNodes:()=>qL,command:()=>GL,createParagraphNear:()=>JL,cut:()=>YL,deleteCurrentNode:()=>QL,deleteNode:()=>XL,deleteRange:()=>ZL,deleteSelection:()=>e8,enter:()=>t8,exitCode:()=>n8,extendMarkRange:()=>s8,first:()=>r8,focus:()=>i8,forEach:()=>o8,insertContent:()=>l8,insertContentAt:()=>u8,joinBackward:()=>p8,joinDown:()=>f8,joinForward:()=>m8,joinItemBackward:()=>g8,joinItemForward:()=>x8,joinTextblockBackward:()=>y8,joinTextblockForward:()=>b8,joinUp:()=>h8,keyboardShortcut:()=>N8,lift:()=>w8,liftEmptyBlock:()=>j8,liftListItem:()=>k8,newlineInCode:()=>S8,resetAttributes:()=>C8,scrollIntoView:()=>E8,selectAll:()=>T8,selectNodeBackward:()=>M8,selectNodeForward:()=>A8,selectParentNode:()=>I8,selectTextblockEnd:()=>P8,selectTextblockStart:()=>R8,setContent:()=>O8,setMark:()=>e6,setMeta:()=>t6,setNode:()=>n6,setNodeSelection:()=>s6,setTextDirection:()=>r6,setTextSelection:()=>a6,sinkListItem:()=>i6,splitBlock:()=>o6,splitListItem:()=>l6,toggleList:()=>c6,toggleMark:()=>d6,toggleNode:()=>u6,toggleWrap:()=>h6,undoInputRule:()=>f6,unsetAllMarks:()=>p6,unsetMark:()=>m6,unsetTextDirection:()=>g6,updateAttributes:()=>x6,wrapIn:()=>y6,wrapInList:()=>b6});var UL=()=>({editor:t,view:e})=>(requestAnimationFrame(()=>{var n;t.isDestroyed||(e.dom.blur(),(n=window==null?void 0:window.getSelection())==null||n.removeAllRanges())}),!0),KL=(t=!0)=>({commands:e})=>e.setContent("",{emitUpdate:t}),qL=()=>({state:t,tr:e,dispatch:n})=>{const{selection:s}=e,{ranges:a}=s;return n&&a.forEach(({$from:i,$to:o})=>{t.doc.nodesBetween(i.pos,o.pos,(c,u)=>{if(c.type.isText)return;const{doc:h,mapping:f}=e,m=h.resolve(f.map(u)),g=h.resolve(f.map(u+c.nodeSize)),y=m.blockRange(g);if(!y)return;const N=xc(y);if(c.type.isTextblock){const{defaultType:w}=m.parent.contentMatchAt(m.index());e.setNodeMarkup(y.start,w)}(N||N===0)&&e.lift(y,N)})}),!0},GL=t=>e=>t(e),JL=()=>({state:t,dispatch:e})=>XS(t,e),YL=(t,e)=>({editor:n,tr:s})=>{const{state:a}=n,i=a.doc.slice(t.from,t.to);s.deleteRange(t.from,t.to);const o=s.mapping.map(e);return s.insert(o,i.content),s.setSelection(new et(s.doc.resolve(Math.max(o-1,0)))),!0},QL=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,s=n.$anchor.node();if(s.content.size>0)return!1;const a=t.selection.$anchor;for(let i=a.depth;i>0;i-=1)if(a.node(i).type===s.type){if(e){const c=a.before(i),u=a.after(i);t.delete(c,u).scrollIntoView()}return!0}return!1};function Mn(t,e){if(typeof t=="string"){if(!e.nodes[t])throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);return e.nodes[t]}return t}var XL=t=>({tr:e,state:n,dispatch:s})=>{const a=Mn(t,n.schema),i=e.selection.$anchor;for(let o=i.depth;o>0;o-=1)if(i.node(o).type===a){if(s){const u=i.before(o),h=i.after(o);e.delete(u,h).scrollIntoView()}return!0}return!1},ZL=t=>({tr:e,dispatch:n})=>{const{from:s,to:a}=t;return n&&e.delete(s,a),!0},e8=()=>({state:t,dispatch:e})=>B0(t,e),t8=()=>({commands:t})=>t.keyboardShortcut("Enter"),n8=()=>({state:t,dispatch:e})=>FO(t,e);function sy(t){return Object.prototype.toString.call(t)==="[object RegExp]"}function lf(t,e,n={strict:!0}){const s=Object.keys(e);return s.length?s.every(a=>n.strict?e[a]===t[a]:sy(e[a])?e[a].test(t[a]):e[a]===t[a]):!0}function z2(t,e,n={}){return t.find(s=>s.type===e&&lf(Object.fromEntries(Object.keys(n).map(a=>[a,s.attrs[a]])),n))}function DN(t,e,n={}){return!!z2(t,e,n)}function ry(t,e,n){var s;if(!t||!e)return;let a=t.parent.childAfter(t.parentOffset);if((!a.node||!a.node.marks.some(f=>f.type===e))&&(a=t.parent.childBefore(t.parentOffset)),!a.node||!a.node.marks.some(f=>f.type===e)||(n=n||((s=a.node.marks[0])==null?void 0:s.attrs),!z2([...a.node.marks],e,n)))return;let o=a.index,c=t.start()+a.offset,u=o+1,h=c+a.node.nodeSize;for(;o>0&&DN([...t.parent.child(o-1).marks],e,n);)o-=1,c-=t.parent.child(o).nodeSize;for(;u<t.parent.childCount&&DN([...t.parent.child(u).marks],e,n);)h+=t.parent.child(u).nodeSize,u+=1;return{from:c,to:h}}function Qa(t,e){if(typeof t=="string"){if(!e.marks[t])throw Error(`There is no mark type named '${t}'. Maybe you forgot to add the extension?`);return e.marks[t]}return t}var s8=(t,e={})=>({tr:n,state:s,dispatch:a})=>{const i=Qa(t,s.schema),{doc:o,selection:c}=n,{$from:u,from:h,to:f}=c;if(a){const m=ry(u,i,e);if(m&&m.from<=h&&m.to>=f){const g=et.create(o,m.from,m.to);n.setSelection(g)}}return!0},r8=t=>e=>{const n=typeof t=="function"?t(e):t;for(let s=0;s<n.length;s+=1)if(n[s](e))return!0;return!1};function F2(t){return t instanceof et}function Do(t=0,e=0,n=0){return Math.min(Math.max(t,e),n)}function $2(t,e=null){if(!e)return null;const n=ot.atStart(t),s=ot.atEnd(t);if(e==="start"||e===!0)return n;if(e==="end")return s;const a=n.from,i=s.to;return e==="all"?et.create(t,Do(0,a,i),Do(t.content.size,a,i)):et.create(t,Do(e,a,i),Do(e,a,i))}function LN(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function cf(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}function a8(){return typeof navigator<"u"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var i8=(t=null,e={})=>({editor:n,view:s,tr:a,dispatch:i})=>{e={scrollIntoView:!0,...e};const o=()=>{(cf()||LN())&&s.dom.focus(),a8()&&!cf()&&!LN()&&s.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(s.focus(),e!=null&&e.scrollIntoView&&n.commands.scrollIntoView())})};try{if(s.hasFocus()&&t===null||t===!1)return!0}catch{return!1}if(i&&t===null&&!F2(n.state.selection))return o(),!0;const c=$2(a.doc,t)||n.state.selection,u=n.state.selection.eq(c);return i&&(u||a.setSelection(c),u&&a.storedMarks&&a.setStoredMarks(a.storedMarks),o()),!0},o8=(t,e)=>n=>t.every((s,a)=>e(s,{...n,index:a})),l8=(t,e)=>({tr:n,commands:s})=>s.insertContentAt({from:n.selection.from,to:n.selection.to},t,e),B2=t=>{const e=t.childNodes;for(let n=e.length-1;n>=0;n-=1){const s=e[n];s.nodeType===3&&s.nodeValue&&/^(\n\s\s|\n)$/.test(s.nodeValue)?t.removeChild(s):s.nodeType===1&&B2(s)}return t};function yh(t){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");const e=`<body>${t}</body>`,n=new window.DOMParser().parseFromString(e,"text/html").body;return B2(n)}function $d(t,e,n){if(t instanceof Wa||t instanceof Ne)return t;n={slice:!0,parseOptions:{},...n};const s=typeof t=="object"&&t!==null,a=typeof t=="string";if(s)try{if(Array.isArray(t)&&t.length>0)return Ne.fromArray(t.map(c=>e.nodeFromJSON(c)));const o=e.nodeFromJSON(t);return n.errorOnInvalidContent&&o.check(),o}catch(i){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:i});return console.warn("[tiptap warn]: Invalid content.","Passed value:",t,"Error:",i),$d("",e,n)}if(a){if(n.errorOnInvalidContent){let o=!1,c="";const u=new SS({topNode:e.spec.topNode,marks:e.spec.marks,nodes:e.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:h=>(o=!0,c=typeof h=="string"?h:h.outerHTML,null)}]}})});if(n.slice?_i.fromSchema(u).parseSlice(yh(t),n.parseOptions):_i.fromSchema(u).parse(yh(t),n.parseOptions),n.errorOnInvalidContent&&o)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${c}`)})}const i=_i.fromSchema(e);return n.slice?i.parseSlice(yh(t),n.parseOptions).content:i.parse(yh(t),n.parseOptions)}return $d("",e,n)}function c8(t,e,n){const s=t.steps.length-1;if(s<e)return;const a=t.steps[s];if(!(a instanceof Vn||a instanceof Hn))return;const i=t.mapping.maps[s];let o=0;i.forEach((c,u,h,f)=>{o===0&&(o=f)}),t.setSelection(ot.near(t.doc.resolve(o),n))}var d8=t=>!("type"in t),u8=(t,e,n)=>({tr:s,dispatch:a,editor:i})=>{var o;if(a){n={parseOptions:i.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let c;const u=v=>{i.emit("contentError",{editor:i,error:v,disableCollaboration:()=>{"collaboration"in i.storage&&typeof i.storage.collaboration=="object"&&i.storage.collaboration&&(i.storage.collaboration.isDisabled=!0)}})},h={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!i.options.enableContentCheck&&i.options.emitContentError)try{$d(e,i.schema,{parseOptions:h,errorOnInvalidContent:!0})}catch(v){u(v)}try{c=$d(e,i.schema,{parseOptions:h,errorOnInvalidContent:(o=n.errorOnInvalidContent)!=null?o:i.options.enableContentCheck})}catch(v){return u(v),!1}let{from:f,to:m}=typeof t=="number"?{from:t,to:t}:{from:t.from,to:t.to},g=!0,y=!0;if((d8(c)?c:[c]).forEach(v=>{v.check(),g=g?v.isText&&v.marks.length===0:!1,y=y?v.isBlock:!1}),f===m&&y){const{parent:v}=s.doc.resolve(f);v.isTextblock&&!v.type.spec.code&&!v.childCount&&(f-=1,m+=1)}let w;if(g){if(Array.isArray(e))w=e.map(v=>v.text||"").join("");else if(e instanceof Ne){let v="";e.forEach(k=>{k.text&&(v+=k.text)}),w=v}else typeof e=="object"&&e&&e.text?w=e.text:w=e;s.insertText(w,f,m)}else{w=c;const v=s.doc.resolve(f),k=v.node(),C=v.parentOffset===0,E=k.isText||k.isTextblock,I=k.content.size>0;C&&E&&I&&(f=Math.max(0,f-1)),s.replaceWith(f,m,w)}n.updateSelection&&c8(s,s.steps.length-1,-1),n.applyInputRules&&s.setMeta("applyInputRules",{from:f,text:w}),n.applyPasteRules&&s.setMeta("applyPasteRules",{from:f,text:w})}return!0},h8=()=>({state:t,dispatch:e})=>LO(t,e),f8=()=>({state:t,dispatch:e})=>_O(t,e),p8=()=>({state:t,dispatch:e})=>US(t,e),m8=()=>({state:t,dispatch:e})=>JS(t,e),g8=()=>({state:t,dispatch:e,tr:n})=>{try{const s=sp(t.doc,t.selection.$from.pos,-1);return s==null?!1:(n.join(s,2),e&&e(n),!0)}catch{return!1}},x8=()=>({state:t,dispatch:e,tr:n})=>{try{const s=sp(t.doc,t.selection.$from.pos,1);return s==null?!1:(n.join(s,2),e&&e(n),!0)}catch{return!1}},y8=()=>({state:t,dispatch:e})=>OO(t,e),b8=()=>({state:t,dispatch:e})=>DO(t,e);function V2(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function v8(t){const e=t.split(/-(?!$)/);let n=e[e.length-1];n==="Space"&&(n=" ");let s,a,i,o;for(let c=0;c<e.length-1;c+=1){const u=e[c];if(/^(cmd|meta|m)$/i.test(u))o=!0;else if(/^a(lt)?$/i.test(u))s=!0;else if(/^(c|ctrl|control)$/i.test(u))a=!0;else if(/^s(hift)?$/i.test(u))i=!0;else if(/^mod$/i.test(u))cf()||V2()?o=!0:a=!0;else throw new Error(`Unrecognized modifier name: ${u}`)}return s&&(n=`Alt-${n}`),a&&(n=`Ctrl-${n}`),o&&(n=`Meta-${n}`),i&&(n=`Shift-${n}`),n}var N8=t=>({editor:e,view:n,tr:s,dispatch:a})=>{const i=v8(t).split(/-(?!$)/),o=i.find(h=>!["Alt","Ctrl","Meta","Shift"].includes(h)),c=new KeyboardEvent("keydown",{key:o==="Space"?" ":o,altKey:i.includes("Alt"),ctrlKey:i.includes("Ctrl"),metaKey:i.includes("Meta"),shiftKey:i.includes("Shift"),bubbles:!0,cancelable:!0}),u=e.captureTransaction(()=>{n.someProp("handleKeyDown",h=>h(n,c))});return u==null||u.steps.forEach(h=>{const f=h.map(s.mapping);f&&a&&s.maybeStep(f)}),!0};function Wi(t,e,n={}){const{from:s,to:a,empty:i}=t.selection,o=e?Mn(e,t.schema):null,c=[];t.doc.nodesBetween(s,a,(m,g)=>{if(m.isText)return;const y=Math.max(s,g),N=Math.min(a,g+m.nodeSize);c.push({node:m,from:y,to:N})});const u=a-s,h=c.filter(m=>o?o.name===m.node.type.name:!0).filter(m=>lf(m.node.attrs,n,{strict:!1}));return i?!!h.length:h.reduce((m,g)=>m+g.to-g.from,0)>=u}var w8=(t,e={})=>({state:n,dispatch:s})=>{const a=Mn(t,n.schema);return Wi(n,a,e)?zO(n,s):!1},j8=()=>({state:t,dispatch:e})=>ZS(t,e),k8=t=>({state:e,dispatch:n})=>{const s=Mn(t,e.schema);return YO(s)(e,n)},S8=()=>({state:t,dispatch:e})=>QS(t,e);function up(t,e){return e.nodes[t]?"node":e.marks[t]?"mark":null}function _N(t,e){const n=typeof e=="string"?[e]:e;return Object.keys(t).reduce((s,a)=>(n.includes(a)||(s[a]=t[a]),s),{})}var C8=(t,e)=>({tr:n,state:s,dispatch:a})=>{let i=null,o=null;const c=up(typeof t=="string"?t:t.name,s.schema);if(!c)return!1;c==="node"&&(i=Mn(t,s.schema)),c==="mark"&&(o=Qa(t,s.schema));let u=!1;return n.selection.ranges.forEach(h=>{s.doc.nodesBetween(h.$from.pos,h.$to.pos,(f,m)=>{i&&i===f.type&&(u=!0,a&&n.setNodeMarkup(m,void 0,_N(f.attrs,e))),o&&f.marks.length&&f.marks.forEach(g=>{o===g.type&&(u=!0,a&&n.addMark(m,m+f.nodeSize,o.create(_N(g.attrs,e))))})})}),u},E8=()=>({tr:t,dispatch:e})=>(e&&t.scrollIntoView(),!0),T8=()=>({tr:t,dispatch:e})=>{if(e){const n=new or(t.doc);t.setSelection(n)}return!0},M8=()=>({state:t,dispatch:e})=>qS(t,e),A8=()=>({state:t,dispatch:e})=>YS(t,e),I8=()=>({state:t,dispatch:e})=>VO(t,e),P8=()=>({state:t,dispatch:e})=>UO(t,e),R8=()=>({state:t,dispatch:e})=>WO(t,e);function Lx(t,e,n={},s={}){return $d(t,e,{slice:!1,parseOptions:n,errorOnInvalidContent:s.errorOnInvalidContent})}var O8=(t,{errorOnInvalidContent:e,emitUpdate:n=!0,parseOptions:s={}}={})=>({editor:a,tr:i,dispatch:o,commands:c})=>{const{doc:u}=i;if(s.preserveWhitespace!=="full"){const h=Lx(t,a.schema,s,{errorOnInvalidContent:e??a.options.enableContentCheck});return o&&i.replaceWith(0,u.content.size,h).setMeta("preventUpdate",!n),!0}return o&&i.setMeta("preventUpdate",!n),c.insertContentAt({from:0,to:u.content.size},t,{parseOptions:s,errorOnInvalidContent:e??a.options.enableContentCheck})};function H2(t,e){const n=Qa(e,t.schema),{from:s,to:a,empty:i}=t.selection,o=[];i?(t.storedMarks&&o.push(...t.storedMarks),o.push(...t.selection.$head.marks())):t.doc.nodesBetween(s,a,u=>{o.push(...u.marks)});const c=o.find(u=>u.type.name===n.name);return c?{...c.attrs}:{}}function W2(t,e){const n=new F0(t);return e.forEach(s=>{s.steps.forEach(a=>{n.step(a)})}),n}function D8(t){for(let e=0;e<t.edgeCount;e+=1){const{type:n}=t.edge(e);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function L8(t,e,n){const s=[];return t.nodesBetween(e.from,e.to,(a,i)=>{n(a)&&s.push({node:a,pos:i})}),s}function U2(t,e){for(let n=t.depth;n>0;n-=1){const s=t.node(n);if(e(s))return{pos:n>0?t.before(n):0,start:t.start(n),depth:n,node:s}}}function hp(t){return e=>U2(e.$from,t)}function Ye(t,e,n){return t.config[e]===void 0&&t.parent?Ye(t.parent,e,n):typeof t.config[e]=="function"?t.config[e].bind({...n,parent:t.parent?Ye(t.parent,e,n):null}):t.config[e]}function ay(t){return t.map(e=>{const n={name:e.name,options:e.options,storage:e.storage},s=Ye(e,"addExtensions",n);return s?[e,...ay(s())]:e}).flat(10)}function iy(t,e){const n=sl.fromSchema(e).serializeFragment(t),a=document.implementation.createHTMLDocument().createElement("div");return a.appendChild(n),a.innerHTML}function K2(t){return typeof t=="function"}function At(t,e=void 0,...n){return K2(t)?e?t.bind(e)(...n):t(...n):t}function _8(t={}){return Object.keys(t).length===0&&t.constructor===Object}function ic(t){const e=t.filter(a=>a.type==="extension"),n=t.filter(a=>a.type==="node"),s=t.filter(a=>a.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:s}}function q2(t){const e=[],{nodeExtensions:n,markExtensions:s}=ic(t),a=[...n,...s],i={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},o=n.filter(h=>h.name!=="text").map(h=>h.name),c=s.map(h=>h.name),u=[...o,...c];return t.forEach(h=>{const f={name:h.name,options:h.options,storage:h.storage,extensions:a},m=Ye(h,"addGlobalAttributes",f);if(!m)return;m().forEach(y=>{let N;Array.isArray(y.types)?N=y.types:y.types==="*"?N=u:y.types==="nodes"?N=o:y.types==="marks"?N=c:N=[],N.forEach(w=>{Object.entries(y.attributes).forEach(([v,k])=>{e.push({type:w,name:v,attribute:{...i,...k}})})})})}),a.forEach(h=>{const f={name:h.name,options:h.options,storage:h.storage},m=Ye(h,"addAttributes",f);if(!m)return;const g=m();Object.entries(g).forEach(([y,N])=>{const w={...i,...N};typeof(w==null?void 0:w.default)=="function"&&(w.default=w.default()),w!=null&&w.isRequired&&(w==null?void 0:w.default)===void 0&&delete w.default,e.push({type:h.name,name:y,attribute:w})})}),e}function z8(t){const e=[];let n="",s=!1,a=!1,i=0;const o=t.length;for(let c=0;c<o;c+=1){const u=t[c];if(u==="'"&&!a){s=!s,n+=u;continue}if(u==='"'&&!s){a=!a,n+=u;continue}if(!s&&!a){if(u==="("){i+=1,n+=u;continue}if(u===")"&&i>0){i-=1,n+=u;continue}if(u===";"&&i===0){e.push(n),n="";continue}}n+=u}return n&&e.push(n),e}function zN(t){const e=[],n=z8(t||""),s=n.length;for(let a=0;a<s;a+=1){const i=n[a],o=i.indexOf(":");if(o===-1)continue;const c=i.slice(0,o).trim(),u=i.slice(o+1).trim();c&&u&&e.push([c,u])}return e}function Rt(...t){return t.filter(e=>!!e).reduce((e,n)=>{const s={...e};return Object.entries(n).forEach(([a,i])=>{if(!s[a]){s[a]=i;return}if(a==="class"){const c=i?String(i).split(" "):[],u=s[a]?s[a].split(" "):[],h=c.filter(f=>!u.includes(f));s[a]=[...u,...h].join(" ")}else if(a==="style"){const c=new Map([...zN(s[a]),...zN(i)]);s[a]=Array.from(c.entries()).map(([u,h])=>`${u}: ${h}`).join("; ")}else s[a]=i}),s},{})}function Bd(t,e){return e.filter(n=>n.type===t.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(t.attrs)||{}:{[n.name]:t.attrs[n.name]}).reduce((n,s)=>Rt(n,s),{})}function F8(t){return typeof t!="string"?t:t.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(t):t==="true"?!0:t==="false"?!1:t}function FN(t,e){return"style"in t?t:{...t,getAttrs:n=>{const s=t.getAttrs?t.getAttrs(n):t.attrs;if(s===!1)return!1;const a=e.reduce((i,o)=>{const c=o.attribute.parseHTML?o.attribute.parseHTML(n):F8(n.getAttribute(o.name));return c==null?i:{...i,[o.name]:c}},{});return{...s,...a}}}}function $N(t){return Object.fromEntries(Object.entries(t).filter(([e,n])=>e==="attrs"&&_8(n)?!1:n!=null))}function BN(t){var e,n;const s={};return!((e=t==null?void 0:t.attribute)!=null&&e.isRequired)&&"default"in((t==null?void 0:t.attribute)||{})&&(s.default=t.attribute.default),((n=t==null?void 0:t.attribute)==null?void 0:n.validate)!==void 0&&(s.validate=t.attribute.validate),[t.name,s]}function $8(t,e){var n;const s=q2(t),{nodeExtensions:a,markExtensions:i}=ic(t),o=(n=a.find(h=>Ye(h,"topNode")))==null?void 0:n.name,c=Object.fromEntries(a.map(h=>{const f=s.filter(k=>k.type===h.name),m={name:h.name,options:h.options,storage:h.storage,editor:e},g=t.reduce((k,C)=>{const E=Ye(C,"extendNodeSchema",m);return{...k,...E?E(h):{}}},{}),y=$N({...g,content:At(Ye(h,"content",m)),marks:At(Ye(h,"marks",m)),group:At(Ye(h,"group",m)),inline:At(Ye(h,"inline",m)),atom:At(Ye(h,"atom",m)),selectable:At(Ye(h,"selectable",m)),draggable:At(Ye(h,"draggable",m)),code:At(Ye(h,"code",m)),whitespace:At(Ye(h,"whitespace",m)),linebreakReplacement:At(Ye(h,"linebreakReplacement",m)),defining:At(Ye(h,"defining",m)),isolating:At(Ye(h,"isolating",m)),attrs:Object.fromEntries(f.map(BN))}),N=At(Ye(h,"parseHTML",m));N&&(y.parseDOM=N.map(k=>FN(k,f)));const w=Ye(h,"renderHTML",m);w&&(y.toDOM=k=>w({node:k,HTMLAttributes:Bd(k,f)}));const v=Ye(h,"renderText",m);return v&&(y.toText=v),[h.name,y]})),u=Object.fromEntries(i.map(h=>{const f=s.filter(v=>v.type===h.name),m={name:h.name,options:h.options,storage:h.storage,editor:e},g=t.reduce((v,k)=>{const C=Ye(k,"extendMarkSchema",m);return{...v,...C?C(h):{}}},{}),y=$N({...g,inclusive:At(Ye(h,"inclusive",m)),excludes:At(Ye(h,"excludes",m)),group:At(Ye(h,"group",m)),spanning:At(Ye(h,"spanning",m)),code:At(Ye(h,"code",m)),attrs:Object.fromEntries(f.map(BN))}),N=At(Ye(h,"parseHTML",m));N&&(y.parseDOM=N.map(v=>FN(v,f)));const w=Ye(h,"renderHTML",m);return w&&(y.toDOM=v=>w({mark:v,HTMLAttributes:Bd(v,f)})),[h.name,y]}));return new SS({topNode:o,nodes:c,marks:u})}function B8(t){const e=t.filter((n,s)=>t.indexOf(n)!==s);return Array.from(new Set(e))}function wd(t){return t.sort((n,s)=>{const a=Ye(n,"priority")||100,i=Ye(s,"priority")||100;return a>i?-1:a<i?1:0})}function G2(t){const e=wd(ay(t)),n=B8(e.map(s=>s.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(s=>`'${s}'`).join(", ")}]. This can lead to issues.`),e}function J2(t,e,n){const{from:s,to:a}=e,{blockSeparator:i=`
`,textSerializers:o={}}=n||{};let c="";return t.nodesBetween(s,a,(u,h,f,m)=>{var g;u.isBlock&&h>s&&(c+=i);const y=o==null?void 0:o[u.type.name];if(y)return f&&(c+=y({node:u,pos:h,parent:f,index:m,range:e})),!1;u.isText&&(c+=(g=u==null?void 0:u.text)==null?void 0:g.slice(Math.max(s,h)-h,a-h))}),c}function V8(t,e){const n={from:0,to:t.content.size};return J2(t,n,e)}function Y2(t){return Object.fromEntries(Object.entries(t.nodes).filter(([,e])=>e.spec.toText).map(([e,n])=>[e,n.spec.toText]))}function H8(t,e){const n=Mn(e,t.schema),{from:s,to:a}=t.selection,i=[];t.doc.nodesBetween(s,a,c=>{i.push(c)});const o=i.reverse().find(c=>c.type.name===n.name);return o?{...o.attrs}:{}}function Q2(t,e){const n=up(typeof e=="string"?e:e.name,t.schema);return n==="node"?H8(t,e):n==="mark"?H2(t,e):{}}function W8(t,e=JSON.stringify){const n={};return t.filter(s=>{const a=e(s);return Object.prototype.hasOwnProperty.call(n,a)?!1:n[a]=!0})}function U8(t){const e=W8(t);return e.length===1?e:e.filter((n,s)=>!e.filter((i,o)=>o!==s).some(i=>n.oldRange.from>=i.oldRange.from&&n.oldRange.to<=i.oldRange.to&&n.newRange.from>=i.newRange.from&&n.newRange.to<=i.newRange.to))}function X2(t){const{mapping:e,steps:n}=t,s=[];return e.maps.forEach((a,i)=>{const o=[];if(a.ranges.length)a.forEach((c,u)=>{o.push({from:c,to:u})});else{const{from:c,to:u}=n[i];if(c===void 0||u===void 0)return;o.push({from:c,to:u})}o.forEach(({from:c,to:u})=>{const h=e.slice(i).map(c,-1),f=e.slice(i).map(u),m=e.invert().map(h,-1),g=e.invert().map(f);s.push({oldRange:{from:m,to:g},newRange:{from:h,to:f}})})}),U8(s)}function oy(t,e,n){const s=[];return t===e?n.resolve(t).marks().forEach(a=>{const i=n.resolve(t),o=ry(i,a.type);o&&s.push({mark:a,...o})}):n.nodesBetween(t,e,(a,i)=>{!a||(a==null?void 0:a.nodeSize)===void 0||s.push(...a.marks.map(o=>({from:i,to:i+a.nodeSize,mark:o})))}),s}var K8=(t,e,n,s=20)=>{const a=t.doc.resolve(n);let i=s,o=null;for(;i>0&&o===null;){const c=a.node(i);(c==null?void 0:c.type.name)===e?o=c:i-=1}return[o,i]};function rd(t,e){return e.nodes[t]||e.marks[t]||null}function Lh(t,e,n){return Object.fromEntries(Object.entries(n).filter(([s])=>{const a=t.find(i=>i.type===e&&i.name===s);return a?a.attribute.keepOnSplit:!1}))}var q8=(t,e=500)=>{let n="";const s=t.parentOffset;return t.parent.nodesBetween(Math.max(0,s-e),s,(a,i,o,c)=>{var u,h;const f=((h=(u=a.type.spec).toText)==null?void 0:h.call(u,{node:a,pos:i,parent:o,index:c}))||a.textContent||"%leaf%";n+=a.isAtom&&!a.isText?f:f.slice(0,Math.max(0,s-i))}),n};function _x(t,e,n={}){const{empty:s,ranges:a}=t.selection,i=e?Qa(e,t.schema):null;if(s)return!!(t.storedMarks||t.selection.$from.marks()).filter(m=>i?i.name===m.type.name:!0).find(m=>lf(m.attrs,n,{strict:!1}));let o=0;const c=[];if(a.forEach(({$from:m,$to:g})=>{const y=m.pos,N=g.pos;t.doc.nodesBetween(y,N,(w,v)=>{if(i&&w.inlineContent&&!w.type.allowsMarkType(i))return!1;if(!w.isText&&!w.marks.length)return;const k=Math.max(y,v),C=Math.min(N,v+w.nodeSize),E=C-k;o+=E,c.push(...w.marks.map(I=>({mark:I,from:k,to:C})))})}),o===0)return!1;const u=c.filter(m=>i?i.name===m.mark.type.name:!0).filter(m=>lf(m.mark.attrs,n,{strict:!1})).reduce((m,g)=>m+g.to-g.from,0),h=c.filter(m=>i?m.mark.type!==i&&m.mark.type.excludes(i):!0).reduce((m,g)=>m+g.to-g.from,0);return(u>0?u+h:u)>=o}function G8(t,e,n={}){if(!e)return Wi(t,null,n)||_x(t,null,n);const s=up(e,t.schema);return s==="node"?Wi(t,e,n):s==="mark"?_x(t,e,n):!1}var J8=(t,e)=>{const{$from:n,$to:s,$anchor:a}=t.selection;if(e){const i=hp(c=>c.type.name===e)(t.selection);if(!i)return!1;const o=t.doc.resolve(i.pos+1);return a.pos+1===o.end()}return!(s.parentOffset<s.parent.nodeSize-2||n.pos!==s.pos)},Y8=t=>{const{$from:e,$to:n}=t.selection;return!(e.parentOffset>0||e.pos!==n.pos)};function VN(t,e){return Array.isArray(e)?e.some(n=>(typeof n=="string"?n:n.name)===t.name):e}function HN(t,e){const{nodeExtensions:n}=ic(e),s=n.find(o=>o.name===t);if(!s)return!1;const a={name:s.name,options:s.options,storage:s.storage},i=At(Ye(s,"group",a));return typeof i!="string"?!1:i.split(" ").includes("list")}function fp(t,{checkChildren:e=!0,ignoreWhitespace:n=!1}={}){var s;if(n){if(t.type.name==="hardBreak")return!0;if(t.isText)return/^\s*$/m.test((s=t.text)!=null?s:"")}if(t.isText)return!t.text;if(t.isAtom||t.isLeaf)return!1;if(t.content.childCount===0)return!0;if(e){let a=!0;return t.content.forEach(i=>{a!==!1&&(fp(i,{ignoreWhitespace:n,checkChildren:e})||(a=!1))}),a}return!1}function Z2(t){return t instanceof Ze}var eC=class tC{constructor(e){this.position=e}static fromJSON(e){return new tC(e.position)}toJSON(){return{position:this.position}}};function Q8(t,e){const n=e.mapping.mapResult(t.position);return{position:new eC(n.pos),mapResult:n}}function X8(t){return new eC(t)}function Z8(t,e,n){var s;const{selection:a}=e;let i=null;if(F2(a)&&(i=a.$cursor),i){const c=(s=t.storedMarks)!=null?s:i.marks();return i.parent.type.allowsMarkType(n)&&(!!n.isInSet(c)||!c.some(h=>h.type.excludes(n)))}const{ranges:o}=a;return o.some(({$from:c,$to:u})=>{let h=c.depth===0?t.doc.inlineContent&&t.doc.type.allowsMarkType(n):!1;return t.doc.nodesBetween(c.pos,u.pos,(f,m,g)=>{if(h)return!1;if(f.isInline){const y=!g||g.type.allowsMarkType(n),N=!!n.isInSet(f.marks)||!f.marks.some(w=>w.type.excludes(n));h=y&&N}return!h}),h})}var e6=(t,e={})=>({tr:n,state:s,dispatch:a})=>{const{selection:i}=n,{empty:o,ranges:c}=i,u=Qa(t,s.schema);if(a)if(o){const h=H2(s,u);n.addStoredMark(u.create({...h,...e}))}else c.forEach(h=>{const f=h.$from.pos,m=h.$to.pos;s.doc.nodesBetween(f,m,(g,y)=>{const N=Math.max(y,f),w=Math.min(y+g.nodeSize,m);g.marks.find(k=>k.type===u)?g.marks.forEach(k=>{u===k.type&&n.addMark(N,w,u.create({...k.attrs,...e}))}):n.addMark(N,w,u.create(e))})});return Z8(s,n,u)},t6=(t,e)=>({tr:n})=>(n.setMeta(t,e),!0),n6=(t,e={})=>({state:n,dispatch:s,chain:a})=>{const i=Mn(t,n.schema);let o;return n.selection.$anchor.sameParent(n.selection.$head)&&(o=n.selection.$anchor.parent.attrs),i.isTextblock?a().command(({commands:c})=>tN(i,{...o,...e})(n)?!0:c.clearNodes()).command(({state:c})=>tN(i,{...o,...e})(c,s)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},s6=t=>({tr:e,dispatch:n})=>{if(n){const{doc:s}=e,a=Do(t,0,s.content.size),i=Ze.create(s,a);e.setSelection(i)}return!0},r6=(t,e)=>({tr:n,state:s,dispatch:a})=>{const{selection:i}=s;let o,c;return typeof e=="number"?(o=e,c=e):e&&"from"in e&&"to"in e?(o=e.from,c=e.to):(o=i.from,c=i.to),a&&n.doc.nodesBetween(o,c,(u,h)=>{u.isText||n.setNodeMarkup(h,void 0,{...u.attrs,dir:t})}),!0},a6=t=>({tr:e,dispatch:n})=>{if(n){const{doc:s}=e,{from:a,to:i}=typeof t=="number"?{from:t,to:t}:t,o=et.atStart(s).from,c=et.atEnd(s).to,u=Do(a,o,c),h=Do(i,o,c),f=et.create(s,u,h);e.setSelection(f)}return!0},i6=t=>({state:e,dispatch:n})=>{const s=Mn(t,e.schema);return ZO(s)(e,n)};function WN(t,e){const n=t.storedMarks||t.selection.$to.parentOffset&&t.selection.$from.marks();if(n){const s=n.filter(a=>e==null?void 0:e.includes(a.type.name));t.tr.ensureMarks(s)}}var o6=({keepMarks:t=!0}={})=>({tr:e,state:n,dispatch:s,editor:a})=>{const{selection:i,doc:o}=e,{$from:c,$to:u}=i,h=a.extensionManager.attributes,f=Lh(h,c.node().type.name,c.node().attrs);if(i instanceof Ze&&i.node.isBlock)return!c.parentOffset||!Ua(o,c.pos)?!1:(s&&(t&&WN(n,a.extensionManager.splittableMarks),e.split(c.pos).scrollIntoView()),!0);if(!c.parent.isBlock)return!1;const m=u.parentOffset===u.parent.content.size,g=c.depth===0?void 0:D8(c.node(-1).contentMatchAt(c.indexAfter(-1)));let y=m&&g?[{type:g,attrs:f}]:void 0,N=Ua(e.doc,e.mapping.map(c.pos),1,y);if(!y&&!N&&Ua(e.doc,e.mapping.map(c.pos),1,g?[{type:g}]:void 0)&&(N=!0,y=g?[{type:g,attrs:f}]:void 0),s){if(N&&(i instanceof et&&e.deleteSelection(),e.split(e.mapping.map(c.pos),1,y),g&&!m&&!c.parentOffset&&c.parent.type!==g)){const w=e.mapping.map(c.before()),v=e.doc.resolve(w);c.node(-1).canReplaceWith(v.index(),v.index()+1,g)&&e.setNodeMarkup(e.mapping.map(c.before()),g)}t&&WN(n,a.extensionManager.splittableMarks),e.scrollIntoView()}return N},l6=(t,e={})=>({tr:n,state:s,dispatch:a,editor:i})=>{var o;const c=Mn(t,s.schema),{$from:u,$to:h}=s.selection,f=s.selection.node;if(f&&f.isBlock||u.depth<2||!u.sameParent(h))return!1;const m=u.node(-1);if(m.type!==c)return!1;const g=i.extensionManager.attributes;if(u.parent.content.size===0&&u.node(-1).childCount===u.indexAfter(-1)){if(u.depth===2||u.node(-3).type!==c||u.index(-2)!==u.node(-2).childCount-1)return!1;if(a){let k=Ne.empty;const C=u.index(-1)?1:u.index(-2)?2:3;for(let P=u.depth-C;P>=u.depth-3;P-=1)k=Ne.from(u.node(P).copy(k));const E=u.indexAfter(-1)<u.node(-2).childCount?1:u.indexAfter(-2)<u.node(-3).childCount?2:3,I={...Lh(g,u.node().type.name,u.node().attrs),...e},L=((o=c.contentMatch.defaultType)==null?void 0:o.createAndFill(I))||void 0;k=k.append(Ne.from(c.createAndFill(null,L)||void 0));const W=u.before(u.depth-(C-1));n.replace(W,u.after(-E),new Le(k,4-C,0));let D=-1;n.doc.nodesBetween(W,n.doc.content.size,(P,R)=>{if(D>-1)return!1;P.isTextblock&&P.content.size===0&&(D=R+1)}),D>-1&&n.setSelection(et.near(n.doc.resolve(D))),n.scrollIntoView()}return!0}const y=h.pos===u.end()?m.contentMatchAt(0).defaultType:null,N={...Lh(g,m.type.name,m.attrs),...e},w={...Lh(g,u.node().type.name,u.node().attrs),...e};n.delete(u.pos,h.pos);const v=y?[{type:c,attrs:N},{type:y,attrs:w}]:[{type:c,attrs:N}];if(!Ua(n.doc,u.pos,2))return!1;if(a){const{selection:k,storedMarks:C}=s,{splittableMarks:E}=i.extensionManager,I=C||k.$to.parentOffset&&k.$from.marks();if(n.split(u.pos,2,v).scrollIntoView(),!I||!a)return!0;const L=I.filter(W=>E.includes(W.type.name));n.ensureMarks(L)}return!0},Rg=(t,e)=>{const n=hp(o=>o.type===e)(t.selection);if(!n)return!0;const s=t.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(s===void 0)return!0;const a=t.doc.nodeAt(s);return n.node.type===(a==null?void 0:a.type)&&Qi(t.doc,n.pos)&&t.join(n.pos),!0},Og=(t,e)=>{const n=hp(o=>o.type===e)(t.selection);if(!n)return!0;const s=t.doc.resolve(n.start).after(n.depth);if(s===void 0)return!0;const a=t.doc.nodeAt(s);return n.node.type===(a==null?void 0:a.type)&&Qi(t.doc,s)&&t.join(s),!0},c6=(t,e,n,s={})=>({editor:a,tr:i,state:o,dispatch:c,chain:u,commands:h,can:f})=>{const{extensions:m,splittableMarks:g}=a.extensionManager,y=Mn(t,o.schema),N=Mn(e,o.schema),{selection:w,storedMarks:v}=o,{$from:k,$to:C}=w,E=k.blockRange(C),I=v||w.$to.parentOffset&&w.$from.marks();if(!E)return!1;const L=hp(W=>HN(W.type.name,m))(w);if(E.depth>=1&&L&&E.depth-L.depth<=1){if(L.node.type===y)return h.liftListItem(N);if(HN(L.node.type.name,m)&&y.validContent(L.node.content)&&c)return u().command(()=>(i.setNodeMarkup(L.pos,y),!0)).command(()=>Rg(i,y)).command(()=>Og(i,y)).run()}return!n||!I||!c?u().command(()=>f().wrapInList(y,s)?!0:h.clearNodes()).wrapInList(y,s).command(()=>Rg(i,y)).command(()=>Og(i,y)).run():u().command(()=>{const W=f().wrapInList(y,s),D=I.filter(P=>g.includes(P.type.name));return i.ensureMarks(D),W?!0:h.clearNodes()}).wrapInList(y,s).command(()=>Rg(i,y)).command(()=>Og(i,y)).run()},d6=(t,e={},n={})=>({state:s,commands:a})=>{const{extendEmptyMarkRange:i=!1}=n,o=Qa(t,s.schema);return _x(s,o,e)?a.unsetMark(o,{extendEmptyMarkRange:i}):a.setMark(o,e)},u6=(t,e,n={})=>({state:s,commands:a})=>{const i=Mn(t,s.schema),o=Mn(e,s.schema),c=Wi(s,i,n);let u;return s.selection.$anchor.sameParent(s.selection.$head)&&(u=s.selection.$anchor.parent.attrs),c?a.setNode(o,u):a.setNode(i,{...u,...n})},h6=(t,e={})=>({state:n,commands:s})=>{const a=Mn(t,n.schema);return Wi(n,a,e)?s.lift(a):s.wrapIn(a,e)},f6=()=>({state:t,dispatch:e})=>{const n=t.plugins;for(let s=0;s<n.length;s+=1){const a=n[s];let i;if(a.spec.isInputRules&&(i=a.getState(t))){if(e){const o=t.tr,c=i.transform;for(let u=c.steps.length-1;u>=0;u-=1)o.step(c.steps[u].invert(c.docs[u]));if(i.text){const u=o.doc.resolve(i.from).marks();o.replaceWith(i.from,i.to,t.schema.text(i.text,u))}else o.delete(i.from,i.to)}return!0}}return!1},p6=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,{empty:s,ranges:a}=n;return s||e&&a.forEach(i=>{t.removeMark(i.$from.pos,i.$to.pos)}),!0},m6=(t,e={})=>({tr:n,state:s,dispatch:a})=>{var i;const{extendEmptyMarkRange:o=!1}=e,{selection:c}=n,u=Qa(t,s.schema),{$from:h,empty:f,ranges:m}=c;if(!a)return!0;if(f&&o){let{from:g,to:y}=c;const N=(i=h.marks().find(v=>v.type===u))==null?void 0:i.attrs,w=ry(h,u,N);w&&(g=w.from,y=w.to),n.removeMark(g,y,u)}else m.forEach(g=>{n.removeMark(g.$from.pos,g.$to.pos,u)});return n.removeStoredMark(u),!0},g6=t=>({tr:e,state:n,dispatch:s})=>{const{selection:a}=n;let i,o;return typeof t=="number"?(i=t,o=t):t&&"from"in t&&"to"in t?(i=t.from,o=t.to):(i=a.from,o=a.to),s&&e.doc.nodesBetween(i,o,(c,u)=>{if(c.isText)return;const h={...c.attrs};delete h.dir,e.setNodeMarkup(u,void 0,h)}),!0},x6=(t,e={})=>({tr:n,state:s,dispatch:a})=>{let i=null,o=null;const c=up(typeof t=="string"?t:t.name,s.schema);if(!c)return!1;c==="node"&&(i=Mn(t,s.schema)),c==="mark"&&(o=Qa(t,s.schema));let u=!1;return n.selection.ranges.forEach(h=>{const f=h.$from.pos,m=h.$to.pos;let g,y,N,w;n.selection.empty?s.doc.nodesBetween(f,m,(v,k)=>{i&&i===v.type&&(u=!0,N=Math.max(k,f),w=Math.min(k+v.nodeSize,m),g=k,y=v)}):s.doc.nodesBetween(f,m,(v,k)=>{k<f&&i&&i===v.type&&(u=!0,N=Math.max(k,f),w=Math.min(k+v.nodeSize,m),g=k,y=v),k>=f&&k<=m&&(i&&i===v.type&&(u=!0,a&&n.setNodeMarkup(k,void 0,{...v.attrs,...e})),o&&v.marks.length&&v.marks.forEach(C=>{if(o===C.type&&(u=!0,a)){const E=Math.max(k,f),I=Math.min(k+v.nodeSize,m);n.addMark(E,I,o.create({...C.attrs,...e}))}}))}),y&&(g!==void 0&&a&&n.setNodeMarkup(g,void 0,{...y.attrs,...e}),o&&y.marks.length&&y.marks.forEach(v=>{o===v.type&&a&&n.addMark(N,w,o.create({...v.attrs,...e}))}))}),u},y6=(t,e={})=>({state:n,dispatch:s})=>{const a=Mn(t,n.schema);return KO(a,e)(n,s)},b6=(t,e={})=>({state:n,dispatch:s})=>{const a=Mn(t,n.schema);return qO(a,e)(n,s)},v6=class{constructor(){this.callbacks={}}on(t,e){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(e),this}emit(t,...e){const n=this.callbacks[t];return n&&n.forEach(s=>s.apply(this,e)),this}off(t,e){const n=this.callbacks[t];return n&&(e?this.callbacks[t]=n.filter(s=>s!==e):delete this.callbacks[t]),this}once(t,e){const n=(...s)=>{this.off(t,n),e.apply(this,s)};return this.on(t,n)}removeAllListeners(){this.callbacks={}}},pp=class{constructor(t){var e;this.find=t.find,this.handler=t.handler,this.undoable=(e=t.undoable)!=null?e:!0}},N6=(t,e)=>{if(sy(e))return e.exec(t);const n=e(t);if(!n)return null;const s=[n.text];return s.index=n.index,s.input=t,s.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),s.push(n.replaceWith)),s};function bh(t){var e;const{editor:n,from:s,to:a,text:i,rules:o,plugin:c}=t,{view:u}=n;if(u.composing)return!1;const h=u.state.doc.resolve(s);if(h.parent.type.spec.code||(e=h.nodeBefore||h.nodeAfter)!=null&&e.marks.find(g=>g.type.spec.code))return!1;let f=!1;const m=q8(h)+i;return o.forEach(g=>{if(f)return;const y=N6(m,g.find);if(!y)return;const N=u.state.tr,w=cp({state:u.state,transaction:N}),v={from:s-(y[0].length-i.length),to:a},{commands:k,chain:C,can:E}=new dp({editor:n,state:w});g.handler({state:w,range:v,match:y,commands:k,chain:C,can:E})===null||!N.steps.length||(g.undoable&&N.setMeta(c,{transform:N,from:s,to:a,text:i}),u.dispatch(N),f=!0)}),f}function w6(t){const{editor:e,rules:n}=t,s=new Qt({state:{init(){return null},apply(a,i,o){const c=a.getMeta(s);if(c)return c;const u=a.getMeta("applyInputRules");return!!u&&setTimeout(()=>{let{text:f}=u;typeof f=="string"?f=f:f=iy(Ne.from(f),o.schema);const{from:m}=u,g=m+f.length;bh({editor:e,from:m,to:g,text:f,rules:n,plugin:s})}),a.selectionSet||a.docChanged?null:i}},props:{handleTextInput(a,i,o,c){return bh({editor:e,from:i,to:o,text:c,rules:n,plugin:s})},handleDOMEvents:{compositionend:a=>(setTimeout(()=>{const{$cursor:i}=a.state.selection;i&&bh({editor:e,from:i.pos,to:i.pos,text:"",rules:n,plugin:s})}),!1)},handleKeyDown(a,i){if(i.key!=="Enter")return!1;const{$cursor:o}=a.state.selection;return o?bh({editor:e,from:o.pos,to:o.pos,text:`
`,rules:n,plugin:s}):!1}},isInputRules:!0});return s}function j6(t){return Object.prototype.toString.call(t).slice(8,-1)}function vh(t){return j6(t)!=="Object"?!1:t.constructor===Object&&Object.getPrototypeOf(t)===Object.prototype}function nC(t,e){const n={...t};return vh(t)&&vh(e)&&Object.keys(e).forEach(s=>{vh(e[s])&&vh(t[s])?n[s]=nC(t[s],e[s]):n[s]=e[s]}),n}var ly=class{constructor(t={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...t},this.name=this.config.name}get options(){return{...At(Ye(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...At(Ye(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(t={}){const e=this.extend({...this.config,addOptions:()=>nC(this.options,t)});return e.name=this.name,e.parent=this.parent,e}extend(t={}){const e=new this.constructor({...this.config,...t});return e.parent=this,this.child=e,e.name="name"in t?t.name:e.parent.name,e}},rl=class sC extends ly{constructor(){super(...arguments),this.type="mark"}static create(e={}){const n=typeof e=="function"?e():e;return new sC(n)}static handleExit({editor:e,mark:n}){const{tr:s}=e.state,a=e.state.selection.$from;if(a.pos===a.end()){const o=a.marks();if(!!!o.find(h=>(h==null?void 0:h.type.name)===n.name))return!1;const u=o.find(h=>(h==null?void 0:h.type.name)===n.name);return u&&s.removeStoredMark(u),s.insertText(" ",a.pos),e.view.dispatch(s),!0}return!1}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function k6(t){return typeof t=="number"}var S6=class{constructor(t){this.find=t.find,this.handler=t.handler}},C6=(t,e,n)=>{if(sy(e))return[...t.matchAll(e)];const s=e(t,n);return s?s.map(a=>{const i=[a.text];return i.index=a.index,i.input=t,i.data=a.data,a.replaceWith&&(a.text.includes(a.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),i.push(a.replaceWith)),i}):[]};function E6(t){const{editor:e,state:n,from:s,to:a,rule:i,pasteEvent:o,dropEvent:c}=t,{commands:u,chain:h,can:f}=new dp({editor:e,state:n}),m=[];return n.doc.nodesBetween(s,a,(y,N)=>{var w,v,k,C,E;if((v=(w=y.type)==null?void 0:w.spec)!=null&&v.code||!(y.isText||y.isTextblock||y.isInline))return;const I=(E=(C=(k=y.content)==null?void 0:k.size)!=null?C:y.nodeSize)!=null?E:0,L=Math.max(s,N),W=Math.min(a,N+I);if(L>=W)return;const D=y.isText?y.text||"":y.textBetween(L-N,W-N,void 0,"");C6(D,i.find,o).forEach(R=>{if(R.index===void 0)return;const K=L+R.index+1,re=K+R[0].length,ue={from:n.tr.mapping.map(K),to:n.tr.mapping.map(re)},xe=i.handler({state:n,range:ue,match:R,commands:u,chain:h,can:f,pasteEvent:o,dropEvent:c});m.push(xe)})}),m.every(y=>y!==null)}var Nh=null,T6=t=>{var e;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(e=n.clipboardData)==null||e.setData("text/html",t),n};function M6(t){const{editor:e,rules:n}=t;let s=null,a=!1,i=!1,o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,c;try{c=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{c=null}const u=({state:f,from:m,to:g,rule:y,pasteEvt:N})=>{const w=f.tr,v=cp({state:f,transaction:w});if(!(!E6({editor:e,state:v,from:Math.max(m-1,0),to:g.b-1,rule:y,pasteEvent:N,dropEvent:c})||!w.steps.length)){try{c=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{c=null}return o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,w}};return n.map(f=>new Qt({view(m){const g=N=>{var w;s=(w=m.dom.parentElement)!=null&&w.contains(N.target)?m.dom.parentElement:null,s&&(Nh=e)},y=()=>{Nh&&(Nh=null)};return window.addEventListener("dragstart",g),window.addEventListener("dragend",y),{destroy(){window.removeEventListener("dragstart",g),window.removeEventListener("dragend",y)}}},props:{handleDOMEvents:{drop:(m,g)=>{if(i=s===m.dom.parentElement,c=g,!i){const y=Nh;y!=null&&y.isEditable&&setTimeout(()=>{const N=y.state.selection;N&&y.commands.deleteRange({from:N.from,to:N.to})},10)}return!1},paste:(m,g)=>{var y;const N=(y=g.clipboardData)==null?void 0:y.getData("text/html");return o=g,a=!!(N!=null&&N.includes("data-pm-slice")),!1}}},appendTransaction:(m,g,y)=>{const N=m[0],w=N.getMeta("uiEvent")==="paste"&&!a,v=N.getMeta("uiEvent")==="drop"&&!i,k=N.getMeta("applyPasteRules"),C=!!k;if(!w&&!v&&!C)return;if(C){let{text:L}=k;typeof L=="string"?L=L:L=iy(Ne.from(L),y.schema);const{from:W}=k,D=W+L.length,P=T6(L);return u({rule:f,state:y,from:W,to:{b:D},pasteEvt:P})}const E=g.doc.content.findDiffStart(y.doc.content),I=g.doc.content.findDiffEnd(y.doc.content);if(!(!k6(E)||!I||E===I.b))return u({rule:f,state:y,from:E,to:I,pasteEvt:o})}}))}var mp=class{constructor(t,e){this.splittableMarks=[],this.editor=e,this.baseExtensions=t,this.extensions=G2(t),this.schema=$8(this.extensions,e),this.setupExtensions()}get commands(){return this.extensions.reduce((t,e)=>{const n={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:rd(e.name,this.schema)},s=Ye(e,"addCommands",n);return s?{...t,...s()}:t},{})}get plugins(){const{editor:t}=this;return wd([...this.extensions].reverse()).flatMap(s=>{const a={name:s.name,options:s.options,storage:this.editor.extensionStorage[s.name],editor:t,type:rd(s.name,this.schema)},i=[],o=Ye(s,"addKeyboardShortcuts",a);let c={};if(s.type==="mark"&&Ye(s,"exitable",a)&&(c.ArrowRight=()=>rl.handleExit({editor:t,mark:s})),o){const g=Object.fromEntries(Object.entries(o()).map(([y,N])=>[y,()=>N({editor:t})]));c={...c,...g}}const u=HL(c);i.push(u);const h=Ye(s,"addInputRules",a);if(VN(s,t.options.enableInputRules)&&h){const g=h();if(g&&g.length){const y=w6({editor:t,rules:g}),N=Array.isArray(y)?y:[y];i.push(...N)}}const f=Ye(s,"addPasteRules",a);if(VN(s,t.options.enablePasteRules)&&f){const g=f();if(g&&g.length){const y=M6({editor:t,rules:g});i.push(...y)}}const m=Ye(s,"addProseMirrorPlugins",a);if(m){const g=m();i.push(...g)}return i})}get attributes(){return q2(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:e}=ic(this.extensions);return Object.fromEntries(e.filter(n=>!!Ye(n,"addNodeView")).map(n=>{const s=this.attributes.filter(u=>u.type===n.name),a={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:Mn(n.name,this.schema)},i=Ye(n,"addNodeView",a);if(!i)return[];const o=i();if(!o)return[];const c=(u,h,f,m,g)=>{const y=Bd(u,s);return o({node:u,view:h,getPos:f,decorations:m,innerDecorations:g,editor:t,extension:n,HTMLAttributes:y})};return[n.name,c]}))}dispatchTransaction(t){const{editor:e}=this;return wd([...this.extensions].reverse()).reduceRight((s,a)=>{const i={name:a.name,options:a.options,storage:this.editor.extensionStorage[a.name],editor:e,type:rd(a.name,this.schema)},o=Ye(a,"dispatchTransaction",i);return o?c=>{o.call(i,{transaction:c,next:s})}:s},t)}transformPastedHTML(t){const{editor:e}=this;return wd([...this.extensions]).reduce((s,a)=>{const i={name:a.name,options:a.options,storage:this.editor.extensionStorage[a.name],editor:e,type:rd(a.name,this.schema)},o=Ye(a,"transformPastedHTML",i);return o?(c,u)=>{const h=s(c,u);return o.call(i,h)}:s},t||(s=>s))}get markViews(){const{editor:t}=this,{markExtensions:e}=ic(this.extensions);return Object.fromEntries(e.filter(n=>!!Ye(n,"addMarkView")).map(n=>{const s=this.attributes.filter(c=>c.type===n.name),a={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:Qa(n.name,this.schema)},i=Ye(n,"addMarkView",a);if(!i)return[];const o=(c,u,h)=>{const f=Bd(c,s);return i()({mark:c,view:u,inline:h,editor:t,extension:n,HTMLAttributes:f,updateAttributes:m=>{W6(c,t,m)}})};return[n.name,o]}))}setupExtensions(){const t=this.extensions;this.editor.extensionStorage=Object.fromEntries(t.map(e=>[e.name,e.storage])),t.forEach(e=>{var n;const s={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:rd(e.name,this.schema)};e.type==="mark"&&((n=At(Ye(e,"keepOnSplit",s)))==null||n)&&this.splittableMarks.push(e.name);const a=Ye(e,"onBeforeCreate",s),i=Ye(e,"onCreate",s),o=Ye(e,"onUpdate",s),c=Ye(e,"onSelectionUpdate",s),u=Ye(e,"onTransaction",s),h=Ye(e,"onFocus",s),f=Ye(e,"onBlur",s),m=Ye(e,"onDestroy",s);a&&this.editor.on("beforeCreate",a),i&&this.editor.on("create",i),o&&this.editor.on("update",o),c&&this.editor.on("selectionUpdate",c),u&&this.editor.on("transaction",u),h&&this.editor.on("focus",h),f&&this.editor.on("blur",f),m&&this.editor.on("destroy",m)})}};mp.resolve=G2;mp.sort=wd;mp.flatten=ay;var A6={};ny(A6,{ClipboardTextSerializer:()=>aC,Commands:()=>iC,Delete:()=>oC,Drop:()=>lC,Editable:()=>cC,FocusEvents:()=>uC,Keymap:()=>hC,Paste:()=>fC,Tabindex:()=>pC,TextDirection:()=>mC,focusEventsPluginKey:()=>dC});var vn=class rC extends ly{constructor(){super(...arguments),this.type="extension"}static create(e={}){const n=typeof e=="function"?e():e;return new rC(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}},aC=vn.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Qt({key:new ln("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:t}=this,{state:e,schema:n}=t,{doc:s,selection:a}=e,{ranges:i}=a,o=Math.min(...i.map(f=>f.$from.pos)),c=Math.max(...i.map(f=>f.$to.pos)),u=Y2(n);return J2(s,{from:o,to:c},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:u})}}})]}}),iC=vn.create({name:"commands",addCommands(){return{..._2}}}),oC=vn.create({name:"delete",onUpdate({transaction:t,appendedTransactions:e}){var n,s,a;const i=()=>{var o,c,u,h;if((h=(u=(c=(o=this.editor.options.coreExtensionOptions)==null?void 0:o.delete)==null?void 0:c.filterTransaction)==null?void 0:u.call(c,t))!=null?h:t.getMeta("y-sync$"))return;const f=W2(t.before,[t,...e]);X2(f).forEach(y=>{f.mapping.mapResult(y.oldRange.from).deletedAfter&&f.mapping.mapResult(y.oldRange.to).deletedBefore&&f.before.nodesBetween(y.oldRange.from,y.oldRange.to,(N,w)=>{const v=w+N.nodeSize-2,k=y.oldRange.from<=w&&v<=y.oldRange.to;this.editor.emit("delete",{type:"node",node:N,from:w,to:v,newFrom:f.mapping.map(w),newTo:f.mapping.map(v),deletedRange:y.oldRange,newRange:y.newRange,partial:!k,editor:this.editor,transaction:t,combinedTransform:f})})});const g=f.mapping;f.steps.forEach((y,N)=>{var w,v;if(y instanceof Fr){const k=g.slice(N).map(y.from,-1),C=g.slice(N).map(y.to),E=g.invert().map(k,-1),I=g.invert().map(C),L=(w=f.doc.nodeAt(k-1))==null?void 0:w.marks.some(D=>D.eq(y.mark)),W=(v=f.doc.nodeAt(C))==null?void 0:v.marks.some(D=>D.eq(y.mark));this.editor.emit("delete",{type:"mark",mark:y.mark,from:y.from,to:y.to,deletedRange:{from:E,to:I},newRange:{from:k,to:C},partial:!!(W||L),editor:this.editor,transaction:t,combinedTransform:f})}})};(a=(s=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:s.async)==null||a?setTimeout(i,0):i()}}),lC=vn.create({name:"drop",addProseMirrorPlugins(){return[new Qt({key:new ln("tiptapDrop"),props:{handleDrop:(t,e,n,s)=>{this.editor.emit("drop",{editor:this.editor,event:e,slice:n,moved:s})}}})]}}),cC=vn.create({name:"editable",addProseMirrorPlugins(){return[new Qt({key:new ln("editable"),props:{editable:()=>this.editor.options.editable}})]}}),dC=new ln("focusEvents"),uC=vn.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:t}=this;return[new Qt({key:dC,props:{handleDOMEvents:{focus:(e,n)=>{t.isFocused=!0;const s=t.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return e.dispatch(s),!1},blur:(e,n)=>{t.isFocused=!1;const s=t.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return e.dispatch(s),!1}}}})]}}),hC=vn.create({name:"keymap",addKeyboardShortcuts(){const t=()=>this.editor.commands.first(({commands:o})=>[()=>o.undoInputRule(),()=>o.command(({tr:c})=>{const{selection:u,doc:h}=c,{empty:f,$anchor:m}=u,{pos:g,parent:y}=m,N=m.parent.isTextblock&&g>0?c.doc.resolve(g-1):m,w=N.parent.type.spec.isolating,v=m.pos-m.parentOffset,k=w&&N.parent.childCount===1?v===m.pos:ot.atStart(h).from===g;return!f||!y.type.isTextblock||y.textContent.length||!k||k&&m.parent.type.name==="paragraph"?!1:o.clearNodes()}),()=>o.deleteSelection(),()=>o.joinBackward(),()=>o.selectNodeBackward()]),e=()=>this.editor.commands.first(({commands:o})=>[()=>o.deleteSelection(),()=>o.deleteCurrentNode(),()=>o.joinForward(),()=>o.selectNodeForward()]),s={Enter:()=>this.editor.commands.first(({commands:o})=>[()=>o.newlineInCode(),()=>o.createParagraphNear(),()=>o.liftEmptyBlock(),()=>o.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:t,"Mod-Backspace":t,"Shift-Backspace":t,Delete:e,"Mod-Delete":e,"Mod-a":()=>this.editor.commands.selectAll()},a={...s},i={...s,"Ctrl-h":t,"Alt-Backspace":t,"Ctrl-d":e,"Ctrl-Alt-Backspace":e,"Alt-Delete":e,"Alt-d":e,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return cf()||V2()?i:a},addProseMirrorPlugins(){return[new Qt({key:new ln("clearDocument"),appendTransaction:(t,e,n)=>{if(t.some(w=>w.getMeta("composition")))return;const s=t.some(w=>w.docChanged)&&!e.doc.eq(n.doc),a=t.some(w=>w.getMeta("preventClearDocument"));if(!s||a)return;const{empty:i,from:o,to:c}=e.selection,u=ot.atStart(e.doc).from,h=ot.atEnd(e.doc).to;if(i||!(o===u&&c===h)||!fp(n.doc))return;const g=n.tr,y=cp({state:n,transaction:g}),{commands:N}=new dp({editor:this.editor,state:y});if(N.clearNodes(),!!g.steps.length)return g}})]}}),fC=vn.create({name:"paste",addProseMirrorPlugins(){return[new Qt({key:new ln("tiptapPaste"),props:{handlePaste:(t,e,n)=>{this.editor.emit("paste",{editor:this.editor,event:e,slice:n})}}})]}}),pC=vn.create({name:"tabindex",addProseMirrorPlugins(){return[new Qt({key:new ln("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}}),mC=vn.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];const{nodeExtensions:t}=ic(this.extensions);return[{types:t.filter(e=>e.name!=="text").map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{const n=e.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new Qt({key:new ln("textDirection"),props:{attributes:()=>{const t=this.options.direction;return t?{dir:t}:{}}}})]}}),I6=class dd{constructor(e,n,s=!1,a=null){this.currentNode=null,this.actualDepth=null,this.isBlock=s,this.resolvedPos=e,this.editor=n,this.currentNode=a}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var e;return(e=this.actualDepth)!=null?e:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let n=this.from,s=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You cant set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}n=this.from+1,s=this.to-1}this.editor.commands.insertContentAt({from:n,to:s},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;const e=this.resolvedPos.start(this.resolvedPos.depth-1),n=this.resolvedPos.doc.resolve(e);return new dd(n,this.editor)}get before(){let e=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.from-3)),new dd(e,this.editor)}get after(){let e=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.to+3)),new dd(e,this.editor)}get children(){const e=[];return this.node.content.forEach((n,s)=>{const a=n.isBlock&&!n.isTextblock,i=n.isAtom&&!n.isText,o=n.isInline,c=this.pos+s+(i?0:1);if(c<0||c>this.resolvedPos.doc.nodeSize-2)return;const u=this.resolvedPos.doc.resolve(c);if(!a&&!o&&u.depth<=this.depth)return;const h=new dd(u,this.editor,a,a||o?n:null);a&&(h.actualDepth=this.depth+1),e.push(h)}),e}get firstChild(){return this.children[0]||null}get lastChild(){const e=this.children;return e[e.length-1]||null}closest(e,n={}){let s=null,a=this.parent;for(;a&&!s;){if(a.node.type.name===e)if(Object.keys(n).length>0){const i=a.node.attrs,o=Object.keys(n);for(let c=0;c<o.length;c+=1){const u=o[c];if(i[u]!==n[u])break}}else s=a;a=a.parent}return s}querySelector(e,n={}){return this.querySelectorAll(e,n,!0)[0]||null}querySelectorAll(e,n={},s=!1){let a=[];if(!this.children||this.children.length===0)return a;const i=Object.keys(n);return this.children.forEach(o=>{s&&a.length>0||(o.node.type.name===e&&i.every(u=>n[u]===o.node.attrs[u])&&a.push(o),!(s&&a.length>0)&&(a=a.concat(o.querySelectorAll(e,n,s))))}),a}setAttribute(e){const{tr:n}=this.editor.state;n.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(n)}},P6=`.ProseMirror {
position: relative;
}
.ProseMirror {
word-wrap: break-word;
white-space: pre-wrap;
white-space: break-spaces;
-webkit-font-variant-ligatures: none;
font-variant-ligatures: none;
font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
}
.ProseMirror [contenteditable="false"] {
white-space: normal;
}
.ProseMirror [contenteditable="false"] [contenteditable="true"] {
white-space: pre-wrap;
}
.ProseMirror pre {
white-space: pre-wrap;
}
img.ProseMirror-separator {
display: inline !important;
border: none !important;
margin: 0 !important;
width: 0 !important;
height: 0 !important;
}
.ProseMirror-gapcursor {
display: none;
pointer-events: none;
position: absolute;
margin: 0;
}
.ProseMirror-gapcursor:after {
content: "";
display: block;
position: absolute;
top: -2px;
width: 20px;
border-top: 1px solid black;
animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}
@keyframes ProseMirror-cursor-blink {
to {
visibility: hidden;
}
}
.ProseMirror-hideselection *::selection {
background: transparent;
}
.ProseMirror-hideselection *::-moz-selection {
background: transparent;
}
.ProseMirror-hideselection * {
caret-color: transparent;
}
.ProseMirror-focused .ProseMirror-gapcursor {
display: block;
}`;function R6(t,e,n){const s=document.querySelector("style[data-tiptap-style]");if(s!==null)return s;const a=document.createElement("style");return e&&a.setAttribute("nonce",e),a.setAttribute("data-tiptap-style",""),a.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(a),a}var O6=class extends v6{constructor(t={}){super(),this.css=null,this.className="tiptap",this.editorView=null,this.isFocused=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.options={element:typeof document<"u"?document.createElement("div"):null,content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:s})=>{throw s},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:Q8,createMappablePosition:X8},this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("mount",this.options.onMount),this.on("unmount",this.options.onUnmount),this.on("contentError",this.options.onContentError),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),this.on("drop",({event:s,slice:a,moved:i})=>this.options.onDrop(s,a,i)),this.on("paste",({event:s,slice:a})=>this.options.onPaste(s,a)),this.on("delete",this.options.onDelete);const e=this.createDoc(),n=$2(e,this.options.autofocus);this.editorState=Jl.create({doc:e,schema:this.schema,selection:n||void 0}),this.options.element&&this.mount(this.options.element)}mount(t){if(typeof document>"u")throw new Error("[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.");this.createView(t),this.emit("mount",{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){const t=this.editorView.dom;t!=null&&t.editor&&delete t.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove=="function"?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(t){console.warn("Failed to remove CSS element:",t)}this.css=null,this.emit("unmount",{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&typeof document<"u"&&(this.css=R6(P6,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,e=!0){this.setOptions({editable:t}),e&&this.emit("update",{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:t=>{this.editorState=t},dispatch:t=>{this.dispatchTransaction(t)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(t,e)=>{if(this.editorView)return this.editorView[e];if(e==="state")return this.editorState;if(e in t)return Reflect.get(t,e);throw new Error(`[tiptap error]: The editor view is not available. Cannot access view['${e}']. The editor may not be mounted yet.`)}})}get state(){return this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(t,e){const n=K2(e)?e(t,[...this.state.plugins]):[...this.state.plugins,t],s=this.state.reconfigure({plugins:n});return this.view.updateState(s),s}unregisterPlugin(t){if(this.isDestroyed)return;const e=this.state.plugins;let n=e;if([].concat(t).forEach(a=>{const i=typeof a=="string"?`${a}$`:a.key;n=n.filter(o=>!o.key.startsWith(i))}),e.length===n.length)return;const s=this.state.reconfigure({plugins:n});return this.view.updateState(s),s}createExtensionManager(){var t,e;const s=[...this.options.enableCoreExtensions?[cC,aC.configure({blockSeparator:(e=(t=this.options.coreExtensionOptions)==null?void 0:t.clipboardTextSerializer)==null?void 0:e.blockSeparator}),iC,uC,hC,pC,lC,fC,oC,mC.configure({direction:this.options.textDirection})].filter(a=>typeof this.options.enableCoreExtensions=="object"?this.options.enableCoreExtensions[a.name]!==!1:!0):[],...this.options.extensions].filter(a=>["extension","node","mark"].includes(a==null?void 0:a.type));this.extensionManager=new mp(s,this)}createCommandManager(){this.commandManager=new dp({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let t;try{t=Lx(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(e.message))throw e;this.emit("contentError",{editor:this,error:e,disableCollaboration:()=>{"collaboration"in this.storage&&typeof this.storage.collaboration=="object"&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(n=>n.name!=="collaboration"),this.createExtensionManager()}}),t=Lx(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}return t}createView(t){const{editorProps:e,enableExtensionDispatchTransaction:n}=this.options,s=e.dispatchTransaction||this.dispatchTransaction.bind(this),a=n?this.extensionManager.dispatchTransaction(s):s,i=e.transformPastedHTML,o=this.extensionManager.transformPastedHTML(i);this.editorView=new L2(t,{...e,attributes:{role:"textbox",...e==null?void 0:e.attributes},dispatchTransaction:a,transformPastedHTML:o,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});const c=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(c),this.prependClass(),this.injectCSS();const u=this.view.dom;u.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const e=this.capturedTransaction;return this.capturedTransaction=null,e}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(h=>{var f;return(f=this.capturedTransaction)==null?void 0:f.step(h)});return}const{state:e,transactions:n}=this.state.applyTransaction(t),s=!this.state.selection.eq(e.selection),a=n.includes(t),i=this.state;if(this.emit("beforeTransaction",{editor:this,transaction:t,nextState:e}),!a)return;this.view.updateState(e),this.emit("transaction",{editor:this,transaction:t,appendedTransactions:n.slice(1)}),s&&this.emit("selectionUpdate",{editor:this,transaction:t});const o=n.findLast(h=>h.getMeta("focus")||h.getMeta("blur")),c=o==null?void 0:o.getMeta("focus"),u=o==null?void 0:o.getMeta("blur");c&&this.emit("focus",{editor:this,event:c.event,transaction:o}),u&&this.emit("blur",{editor:this,event:u.event,transaction:o}),!(t.getMeta("preventUpdate")||!n.some(h=>h.docChanged)||i.doc.eq(e.doc))&&this.emit("update",{editor:this,transaction:t,appendedTransactions:n.slice(1)})}getAttributes(t){return Q2(this.state,t)}isActive(t,e){const n=typeof t=="string"?t:null,s=typeof t=="string"?e:t;return G8(this.state,n,s)}getJSON(){return this.state.doc.toJSON()}getHTML(){return iy(this.state.doc.content,this.schema)}getText(t){const{blockSeparator:e=`
`,textSerializers:n={}}=t||{};return V8(this.state.doc,{blockSeparator:e,textSerializers:{...Y2(this.schema),...n}})}get isEmpty(){return fp(this.state.doc)}destroy(){this.emit("destroy"),this.unmount(),this.removeAllListeners()}get isDestroyed(){var t,e;return(e=(t=this.editorView)==null?void 0:t.isDestroyed)!=null?e:!0}$node(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelector(t,e))||null}$nodes(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelectorAll(t,e))||null}$pos(t){const e=this.state.doc.resolve(t);return new I6(e,this)}get $doc(){return this.$pos(0)}};function oc(t){return new pp({find:t.find,handler:({state:e,range:n,match:s})=>{const a=At(t.getAttributes,void 0,s);if(a===!1||a===null)return null;const{tr:i}=e,o=s[s.length-1],c=s[0];if(o){const u=c.search(/\S/),h=n.from+c.indexOf(o),f=h+o.length;if(oy(n.from,n.to,e.doc).filter(y=>y.mark.type.excluded.find(w=>w===t.type&&w!==y.mark.type)).filter(y=>y.to>h).length)return null;f<n.to&&i.delete(f,n.to),h>n.from&&i.delete(n.from+u,h);const g=n.from+u+o.length;i.addMark(n.from+u,g,t.type.create(a||{})),i.removeStoredMark(t.type)}},undoable:t.undoable})}function gC(t){return new pp({find:t.find,handler:({state:e,range:n,match:s})=>{const a=At(t.getAttributes,void 0,s)||{},{tr:i}=e,o=n.from;let c=n.to;const u=t.type.create(a);if(s[1]){const h=s[0].lastIndexOf(s[1]);let f=o+h;f>c?f=c:c=f+s[1].length;const m=s[0][s[0].length-1];i.insertText(m,o+s[0].length-1),i.replaceWith(f,c,u)}else if(s[0]){const h=t.type.isInline?o:o-1;i.insert(h,t.type.create(a)).delete(i.mapping.map(o),i.mapping.map(c))}i.scrollIntoView()},undoable:t.undoable})}function zx(t){return new pp({find:t.find,handler:({state:e,range:n,match:s})=>{const a=e.doc.resolve(n.from),i=At(t.getAttributes,void 0,s)||{};if(!a.node(-1).canReplaceWith(a.index(-1),a.indexAfter(-1),t.type))return null;e.tr.delete(n.from,n.to).setBlockType(n.from,n.from,t.type,i)},undoable:t.undoable})}function lc(t){return new pp({find:t.find,handler:({state:e,range:n,match:s,chain:a})=>{const i=At(t.getAttributes,void 0,s)||{},o=e.tr.delete(n.from,n.to),u=o.doc.resolve(n.from).blockRange(),h=u&&z0(u,t.type,i);if(!h)return null;if(o.wrap(u,h),t.keepMarks&&t.editor){const{selection:m,storedMarks:g}=e,{splittableMarks:y}=t.editor.extensionManager,N=g||m.$to.parentOffset&&m.$from.marks();if(N){const w=N.filter(v=>y.includes(v.type.name));o.ensureMarks(w)}}if(t.keepAttributes){const m=t.type.name==="bulletList"||t.type.name==="orderedList"?"listItem":"taskList";a().updateAttributes(m,i).run()}const f=o.doc.resolve(n.from-1).nodeBefore;f&&f.type===t.type&&Qi(o.doc,n.from-1)&&(!t.joinPredicate||t.joinPredicate(s,f))&&o.join(n.from-1)},undoable:t.undoable})}var D6=t=>"touches"in t,L6=class{constructor(t){this.directions=["bottom-left","bottom-right","top-left","top-right"],this.minSize={height:8,width:8},this.preserveAspectRatio=!1,this.classNames={container:"",wrapper:"",handle:"",resizing:""},this.initialWidth=0,this.initialHeight=0,this.aspectRatio=1,this.isResizing=!1,this.activeHandle=null,this.startX=0,this.startY=0,this.startWidth=0,this.startHeight=0,this.isShiftKeyPressed=!1,this.lastEditableState=void 0,this.handleMap=new Map,this.handleMouseMove=c=>{if(!this.isResizing||!this.activeHandle)return;const u=c.clientX-this.startX,h=c.clientY-this.startY;this.handleResize(u,h)},this.handleTouchMove=c=>{if(!this.isResizing||!this.activeHandle)return;const u=c.touches[0];if(!u)return;const h=u.clientX-this.startX,f=u.clientY-this.startY;this.handleResize(h,f)},this.handleMouseUp=()=>{if(!this.isResizing)return;const c=this.element.offsetWidth,u=this.element.offsetHeight;this.onCommit(c,u),this.isResizing=!1,this.activeHandle=null,this.container.dataset.resizeState="false",this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("keyup",this.handleKeyUp)},this.handleKeyDown=c=>{c.key==="Shift"&&(this.isShiftKeyPressed=!0)},this.handleKeyUp=c=>{c.key==="Shift"&&(this.isShiftKeyPressed=!1)};var e,n,s,a,i,o;this.node=t.node,this.editor=t.editor,this.element=t.element,this.contentElement=t.contentElement,this.getPos=t.getPos,this.onResize=t.onResize,this.onCommit=t.onCommit,this.onUpdate=t.onUpdate,(e=t.options)!=null&&e.min&&(this.minSize={...this.minSize,...t.options.min}),(n=t.options)!=null&&n.max&&(this.maxSize=t.options.max),(s=t==null?void 0:t.options)!=null&&s.directions&&(this.directions=t.options.directions),(a=t.options)!=null&&a.preserveAspectRatio&&(this.preserveAspectRatio=t.options.preserveAspectRatio),(i=t.options)!=null&&i.className&&(this.classNames={container:t.options.className.container||"",wrapper:t.options.className.wrapper||"",handle:t.options.className.handle||"",resizing:t.options.className.resizing||""}),(o=t.options)!=null&&o.createCustomHandle&&(this.createCustomHandle=t.options.createCustomHandle),this.wrapper=this.createWrapper(),this.container=this.createContainer(),this.applyInitialSize(),this.attachHandles(),this.editor.on("update",this.handleEditorUpdate.bind(this))}get dom(){return this.container}get contentDOM(){var t;return(t=this.contentElement)!=null?t:null}handleEditorUpdate(){const t=this.editor.isEditable;t!==this.lastEditableState&&(this.lastEditableState=t,t?t&&this.handleMap.size===0&&this.attachHandles():this.removeHandles())}update(t,e,n){return t.type!==this.node.type?!1:(this.node=t,this.onUpdate?this.onUpdate(t,e,n):!0)}destroy(){this.isResizing&&(this.container.dataset.resizeState="false",this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("keyup",this.handleKeyUp),this.isResizing=!1,this.activeHandle=null),this.editor.off("update",this.handleEditorUpdate.bind(this)),this.container.remove()}createContainer(){const t=document.createElement("div");return t.dataset.resizeContainer="",t.dataset.node=this.node.type.name,t.style.display="flex",this.classNames.container&&(t.className=this.classNames.container),t.appendChild(this.wrapper),t}createWrapper(){const t=document.createElement("div");return t.style.position="relative",t.style.display="block",t.dataset.resizeWrapper="",this.classNames.wrapper&&(t.className=this.classNames.wrapper),t.appendChild(this.element),t}createHandle(t){const e=document.createElement("div");return e.dataset.resizeHandle=t,e.style.position="absolute",this.classNames.handle&&(e.className=this.classNames.handle),e}positionHandle(t,e){const n=e.includes("top"),s=e.includes("bottom"),a=e.includes("left"),i=e.includes("right");n&&(t.style.top="0"),s&&(t.style.bottom="0"),a&&(t.style.left="0"),i&&(t.style.right="0"),(e==="top"||e==="bottom")&&(t.style.left="0",t.style.right="0"),(e==="left"||e==="right")&&(t.style.top="0",t.style.bottom="0")}attachHandles(){this.directions.forEach(t=>{let e;this.createCustomHandle?e=this.createCustomHandle(t):e=this.createHandle(t),e instanceof HTMLElement||(console.warn(`[ResizableNodeView] createCustomHandle("${t}") did not return an HTMLElement. Falling back to default handle.`),e=this.createHandle(t)),this.createCustomHandle||this.positionHandle(e,t),e.addEventListener("mousedown",n=>this.handleResizeStart(n,t)),e.addEventListener("touchstart",n=>this.handleResizeStart(n,t)),this.handleMap.set(t,e),this.wrapper.appendChild(e)})}removeHandles(){this.handleMap.forEach(t=>t.remove()),this.handleMap.clear()}applyInitialSize(){const t=this.node.attrs.width,e=this.node.attrs.height;t?(this.element.style.width=`${t}px`,this.initialWidth=t):this.initialWidth=this.element.offsetWidth,e?(this.element.style.height=`${e}px`,this.initialHeight=e):this.initialHeight=this.element.offsetHeight,this.initialWidth>0&&this.initialHeight>0&&(this.aspectRatio=this.initialWidth/this.initialHeight)}handleResizeStart(t,e){t.preventDefault(),t.stopPropagation(),this.isResizing=!0,this.activeHandle=e,D6(t)?(this.startX=t.touches[0].clientX,this.startY=t.touches[0].clientY):(this.startX=t.clientX,this.startY=t.clientY),this.startWidth=this.element.offsetWidth,this.startHeight=this.element.offsetHeight,this.startWidth>0&&this.startHeight>0&&(this.aspectRatio=this.startWidth/this.startHeight),this.getPos(),this.container.dataset.resizeState="true",this.classNames.resizing&&this.container.classList.add(this.classNames.resizing),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("touchmove",this.handleTouchMove),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("keyup",this.handleKeyUp)}handleResize(t,e){if(!this.activeHandle)return;const n=this.preserveAspectRatio||this.isShiftKeyPressed,{width:s,height:a}=this.calculateNewDimensions(this.activeHandle,t,e),i=this.applyConstraints(s,a,n);this.element.style.width=`${i.width}px`,this.element.style.height=`${i.height}px`,this.onResize&&this.onResize(i.width,i.height)}calculateNewDimensions(t,e,n){let s=this.startWidth,a=this.startHeight;const i=t.includes("right"),o=t.includes("left"),c=t.includes("bottom"),u=t.includes("top");return i?s=this.startWidth+e:o&&(s=this.startWidth-e),c?a=this.startHeight+n:u&&(a=this.startHeight-n),(t==="right"||t==="left")&&(s=this.startWidth+(i?e:-e)),(t==="top"||t==="bottom")&&(a=this.startHeight+(c?n:-n)),this.preserveAspectRatio||this.isShiftKeyPressed?this.applyAspectRatio(s,a,t):{width:s,height:a}}applyConstraints(t,e,n){var s,a,i,o;if(!n){let h=Math.max(this.minSize.width,t),f=Math.max(this.minSize.height,e);return(s=this.maxSize)!=null&&s.width&&(h=Math.min(this.maxSize.width,h)),(a=this.maxSize)!=null&&a.height&&(f=Math.min(this.maxSize.height,f)),{width:h,height:f}}let c=t,u=e;return c<this.minSize.width&&(c=this.minSize.width,u=c/this.aspectRatio),u<this.minSize.height&&(u=this.minSize.height,c=u*this.aspectRatio),(i=this.maxSize)!=null&&i.width&&c>this.maxSize.width&&(c=this.maxSize.width,u=c/this.aspectRatio),(o=this.maxSize)!=null&&o.height&&u>this.maxSize.height&&(u=this.maxSize.height,c=u*this.aspectRatio),{width:c,height:u}}applyAspectRatio(t,e,n){const s=n==="left"||n==="right",a=n==="top"||n==="bottom";return s?{width:t,height:t/this.aspectRatio}:a?{width:e*this.aspectRatio,height:e}:{width:t,height:t/this.aspectRatio}}};function _6(t,e){const{selection:n}=t,{$from:s}=n;if(n instanceof Ze){const i=s.index();return s.parent.canReplaceWith(i,i+1,e)}let a=s.depth;for(;a>=0;){const i=s.index(a);if(s.node(a).contentMatchAt(i).matchType(e))return!0;a-=1}return!1}function z6(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}var F6={};ny(F6,{createAtomBlockMarkdownSpec:()=>$6,createBlockMarkdownSpec:()=>B6,createInlineMarkdownSpec:()=>xC,parseAttributes:()=>cy,parseIndentedBlocks:()=>Fx,renderNestedMarkdownContent:()=>uy,serializeAttributes:()=>dy});function cy(t){if(!(t!=null&&t.trim()))return{};const e={},n=[],s=t.replace(/["']([^"']*)["']/g,h=>(n.push(h),`__QUOTED_${n.length-1}__`)),a=s.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(a){const h=a.map(f=>f.trim().slice(1));e.class=h.join(" ")}const i=s.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);i&&(e.id=i[1]);const o=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(s.matchAll(o)).forEach(([,h,f])=>{var m;const g=parseInt(((m=f.match(/__QUOTED_(\d+)__/))==null?void 0:m[1])||"0",10),y=n[g];y&&(e[h]=y.slice(1,-1))});const u=s.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return u&&u.split(/\s+/).filter(Boolean).forEach(f=>{f.match(/^[a-zA-Z][\w-]*$/)&&(e[f]=!0)}),e}function dy(t){if(!t||Object.keys(t).length===0)return"";const e=[];return t.class&&String(t.class).split(/\s+/).filter(Boolean).forEach(s=>e.push(`.${s}`)),t.id&&e.push(`#${t.id}`),Object.entries(t).forEach(([n,s])=>{n==="class"||n==="id"||(s===!0?e.push(n):s!==!1&&s!=null&&e.push(`${n}="${String(s)}"`))}),e.join(" ")}function $6(t){const{nodeName:e,name:n,parseAttributes:s=cy,serializeAttributes:a=dy,defaultAttributes:i={},requiredAttributes:o=[],allowedAttributes:c}=t,u=n||e,h=f=>{if(!c)return f;const m={};return c.forEach(g=>{g in f&&(m[g]=f[g])}),m};return{parseMarkdown:(f,m)=>{const g={...i,...f.attributes};return m.createNode(e,g,[])},markdownTokenizer:{name:e,level:"block",start(f){var m;const g=new RegExp(`^:::${u}(?:\\s|$)`,"m"),y=(m=f.match(g))==null?void 0:m.index;return y!==void 0?y:-1},tokenize(f,m,g){const y=new RegExp(`^:::${u}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),N=f.match(y);if(!N)return;const w=N[1]||"",v=s(w);if(!o.find(C=>!(C in v)))return{type:e,raw:N[0],attributes:v}}},renderMarkdown:f=>{const m=h(f.attrs||{}),g=a(m),y=g?` {${g}}`:"";return`:::${u}${y} :::`}}}function B6(t){const{nodeName:e,name:n,getContent:s,parseAttributes:a=cy,serializeAttributes:i=dy,defaultAttributes:o={},content:c="block",allowedAttributes:u}=t,h=n||e,f=m=>{if(!u)return m;const g={};return u.forEach(y=>{y in m&&(g[y]=m[y])}),g};return{parseMarkdown:(m,g)=>{let y;if(s){const w=s(m);y=typeof w=="string"?[{type:"text",text:w}]:w}else c==="block"?y=g.parseChildren(m.tokens||[]):y=g.parseInline(m.tokens||[]);const N={...o,...m.attributes};return g.createNode(e,N,y)},markdownTokenizer:{name:e,level:"block",start(m){var g;const y=new RegExp(`^:::${h}`,"m"),N=(g=m.match(y))==null?void 0:g.index;return N!==void 0?N:-1},tokenize(m,g,y){var N;const w=new RegExp(`^:::${h}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),v=m.match(w);if(!v)return;const[k,C=""]=v,E=a(C);let I=1;const L=k.length;let W="";const D=/^:::([\w-]*)(\s.*)?/gm,P=m.slice(L);for(D.lastIndex=0;;){const R=D.exec(P);if(R===null)break;const K=R.index,re=R[1];if(!((N=R[2])!=null&&N.endsWith(":::"))){if(re)I+=1;else if(I-=1,I===0){const ue=P.slice(0,K);W=ue.trim();const xe=m.slice(0,L+K+R[0].length);let H=[];if(W)if(c==="block")for(H=y.blockTokens(ue),H.forEach(O=>{O.text&&(!O.tokens||O.tokens.length===0)&&(O.tokens=y.inlineTokens(O.text))});H.length>0;){const O=H[H.length-1];if(O.type==="paragraph"&&(!O.text||O.text.trim()===""))H.pop();else break}else H=y.inlineTokens(W);return{type:e,raw:xe,attributes:E,content:W,tokens:H}}}}}},renderMarkdown:(m,g)=>{const y=f(m.attrs||{}),N=i(y),w=N?` {${N}}`:"",v=g.renderChildren(m.content||[],`
`);return`:::${h}${w}
${v}
:::`}}}function V6(t){if(!t.trim())return{};const e={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g;let s=n.exec(t);for(;s!==null;){const[,a,i,o]=s;e[a]=i||o,s=n.exec(t)}return e}function H6(t){return Object.entries(t).filter(([,e])=>e!=null).map(([e,n])=>`${e}="${n}"`).join(" ")}function xC(t){const{nodeName:e,name:n,getContent:s,parseAttributes:a=V6,serializeAttributes:i=H6,defaultAttributes:o={},selfClosing:c=!1,allowedAttributes:u}=t,h=n||e,f=g=>{if(!u)return g;const y={};return u.forEach(N=>{const w=typeof N=="string"?N:N.name,v=typeof N=="string"?void 0:N.skipIfDefault;if(w in g){const k=g[w];if(v!==void 0&&k===v)return;y[w]=k}}),y},m=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return{parseMarkdown:(g,y)=>{const N={...o,...g.attributes};if(c)return y.createNode(e,N);const w=s?s(g):g.content||"";return w?y.createNode(e,N,[y.createTextNode(w)]):y.createNode(e,N,[])},markdownTokenizer:{name:e,level:"inline",start(g){const y=c?new RegExp(`\\[${m}\\s*[^\\]]*\\]`):new RegExp(`\\[${m}\\s*[^\\]]*\\][\\s\\S]*?\\[\\/${m}\\]`),N=g.match(y),w=N==null?void 0:N.index;return w!==void 0?w:-1},tokenize(g,y,N){const w=c?new RegExp(`^\\[${m}\\s*([^\\]]*)\\]`):new RegExp(`^\\[${m}\\s*([^\\]]*)\\]([\\s\\S]*?)\\[\\/${m}\\]`),v=g.match(w);if(!v)return;let k="",C="";if(c){const[,I]=v;C=I}else{const[,I,L]=v;C=I,k=L||""}const E=a(C.trim());return{type:e,raw:v[0],content:k.trim(),attributes:E}}},renderMarkdown:g=>{let y="";s?y=s(g):g.content&&g.content.length>0&&(y=g.content.filter(k=>k.type==="text").map(k=>k.text).join(""));const N=f(g.attrs||{}),w=i(N),v=w?` ${w}`:"";return c?`[${h}${v}]`:`[${h}${v}]${y}[/${h}]`}}}function Fx(t,e,n){var s,a,i,o;const c=t.split(`
`),u=[];let h="",f=0;const m=e.baseIndentSize||2;for(;f<c.length;){const g=c[f],y=g.match(e.itemPattern);if(!y){if(u.length>0)break;if(g.trim()===""){f+=1,h=`${h}${g}
`;continue}else return}const N=e.extractItemData(y),{indentLevel:w,mainContent:v}=N;h=`${h}${g}
`;const k=[v];for(f+=1;f<c.length;){const L=c[f];if(L.trim()===""){const D=c.slice(f+1).findIndex(K=>K.trim()!=="");if(D===-1)break;if((((a=(s=c[f+1+D].match(/^(\s*)/))==null?void 0:s[1])==null?void 0:a.length)||0)>w){k.push(L),h=`${h}${L}
`,f+=1;continue}else break}if((((o=(i=L.match(/^(\s*)/))==null?void 0:i[1])==null?void 0:o.length)||0)>w)k.push(L),h=`${h}${L}
`,f+=1;else break}let C;const E=k.slice(1);if(E.length>0){const L=E.map(W=>W.slice(w+m)).join(`
`);L.trim()&&(e.customNestedParser?C=e.customNestedParser(L):C=n.blockTokens(L))}const I=e.createToken(N,C);u.push(I)}if(u.length!==0)return{items:u,raw:h}}function uy(t,e,n,s){if(!t||!Array.isArray(t.content))return"";const a=typeof n=="function"?n(s):n,[i,...o]=t.content,c=e.renderChildren([i]),u=[`${a}${c}`];return o&&o.length>0&&o.forEach(h=>{const f=e.renderChildren([h]);if(f){const m=f.split(`
`).map(g=>g?e.indent(g):"").join(`
`);u.push(m)}}),u.join(`
`)}function W6(t,e,n={}){const{state:s}=e,{doc:a,tr:i}=s,o=t;a.descendants((c,u)=>{const h=i.mapping.map(u),f=i.mapping.map(u)+c.nodeSize;let m=null;if(c.marks.forEach(y=>{if(y!==o)return!1;m=y}),!m)return;let g=!1;if(Object.keys(n).forEach(y=>{n[y]!==m.attrs[y]&&(g=!0)}),g){const y=t.type.create({...t.attrs,...n});i.removeMark(h,f,t.type),i.addMark(h,f,y)}}),i.docChanged&&e.view.dispatch(i)}var An=class yC extends ly{constructor(){super(...arguments),this.type="node"}static create(e={}){const n=typeof e=="function"?e():e;return new yC(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function Qo(t){return new S6({find:t.find,handler:({state:e,range:n,match:s,pasteEvent:a})=>{const i=At(t.getAttributes,void 0,s,a);if(i===!1||i===null)return null;const{tr:o}=e,c=s[s.length-1],u=s[0];let h=n.to;if(c){const f=u.search(/\S/),m=n.from+u.indexOf(c),g=m+c.length;if(oy(n.from,n.to,e.doc).filter(N=>N.mark.type.excluded.find(v=>v===t.type&&v!==N.mark.type)).filter(N=>N.to>m).length)return null;g<n.to&&o.delete(g,n.to),m>n.from&&o.delete(n.from+f,m),h=n.from+f+c.length,o.addMark(n.from+f,h,t.type.create(i||{})),o.removeStoredMark(t.type)}}})}const{getOwnPropertyNames:U6,getOwnPropertySymbols:K6}=Object,{hasOwnProperty:q6}=Object.prototype;function Dg(t,e){return function(s,a,i){return t(s,a,i)&&e(s,a,i)}}function wh(t){return function(n,s,a){if(!n||!s||typeof n!="object"||typeof s!="object")return t(n,s,a);const{cache:i}=a,o=i.get(n),c=i.get(s);if(o&&c)return o===s&&c===n;i.set(n,s),i.set(s,n);const u=t(n,s,a);return i.delete(n),i.delete(s),u}}function G6(t){return t!=null?t[Symbol.toStringTag]:void 0}function UN(t){return U6(t).concat(K6(t))}const J6=Object.hasOwn||((t,e)=>q6.call(t,e));function al(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const Y6="__v",Q6="__o",X6="_owner",{getOwnPropertyDescriptor:KN,keys:qN}=Object;function Z6(t,e){return t.byteLength===e.byteLength&&df(new Uint8Array(t),new Uint8Array(e))}function e_(t,e,n){let s=t.length;if(e.length!==s)return!1;for(;s-- >0;)if(!n.equals(t[s],e[s],s,s,t,e,n))return!1;return!0}function t_(t,e){return t.byteLength===e.byteLength&&df(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function n_(t,e){return al(t.getTime(),e.getTime())}function s_(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function r_(t,e){return t===e}function GN(t,e,n){const s=t.size;if(s!==e.size)return!1;if(!s)return!0;const a=new Array(s),i=t.entries();let o,c,u=0;for(;(o=i.next())&&!o.done;){const h=e.entries();let f=!1,m=0;for(;(c=h.next())&&!c.done;){if(a[m]){m++;continue}const g=o.value,y=c.value;if(n.equals(g[0],y[0],u,m,t,e,n)&&n.equals(g[1],y[1],g[0],y[0],t,e,n)){f=a[m]=!0;break}m++}if(!f)return!1;u++}return!0}const a_=al;function i_(t,e,n){const s=qN(t);let a=s.length;if(qN(e).length!==a)return!1;for(;a-- >0;)if(!bC(t,e,n,s[a]))return!1;return!0}function ad(t,e,n){const s=UN(t);let a=s.length;if(UN(e).length!==a)return!1;let i,o,c;for(;a-- >0;)if(i=s[a],!bC(t,e,n,i)||(o=KN(t,i),c=KN(e,i),(o||c)&&(!o||!c||o.configurable!==c.configurable||o.enumerable!==c.enumerable||o.writable!==c.writable)))return!1;return!0}function o_(t,e){return al(t.valueOf(),e.valueOf())}function l_(t,e){return t.source===e.source&&t.flags===e.flags}function JN(t,e,n){const s=t.size;if(s!==e.size)return!1;if(!s)return!0;const a=new Array(s),i=t.values();let o,c;for(;(o=i.next())&&!o.done;){const u=e.values();let h=!1,f=0;for(;(c=u.next())&&!c.done;){if(!a[f]&&n.equals(o.value,c.value,o.value,c.value,t,e,n)){h=a[f]=!0;break}f++}if(!h)return!1}return!0}function df(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function c_(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function bC(t,e,n,s){return(s===X6||s===Q6||s===Y6)&&(t.$$typeof||e.$$typeof)?!0:J6(e,s)&&n.equals(t[s],e[s],s,s,t,e,n)}const d_="[object ArrayBuffer]",u_="[object Arguments]",h_="[object Boolean]",f_="[object DataView]",p_="[object Date]",m_="[object Error]",g_="[object Map]",x_="[object Number]",y_="[object Object]",b_="[object RegExp]",v_="[object Set]",N_="[object String]",w_={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},j_="[object URL]",k_=Object.prototype.toString;function S_({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:s,areErrorsEqual:a,areFunctionsEqual:i,areMapsEqual:o,areNumbersEqual:c,areObjectsEqual:u,arePrimitiveWrappersEqual:h,areRegExpsEqual:f,areSetsEqual:m,areTypedArraysEqual:g,areUrlsEqual:y,unknownTagComparators:N}){return function(v,k,C){if(v===k)return!0;if(v==null||k==null)return!1;const E=typeof v;if(E!==typeof k)return!1;if(E!=="object")return E==="number"?c(v,k,C):E==="function"?i(v,k,C):!1;const I=v.constructor;if(I!==k.constructor)return!1;if(I===Object)return u(v,k,C);if(Array.isArray(v))return e(v,k,C);if(I===Date)return s(v,k,C);if(I===RegExp)return f(v,k,C);if(I===Map)return o(v,k,C);if(I===Set)return m(v,k,C);const L=k_.call(v);if(L===p_)return s(v,k,C);if(L===b_)return f(v,k,C);if(L===g_)return o(v,k,C);if(L===v_)return m(v,k,C);if(L===y_)return typeof v.then!="function"&&typeof k.then!="function"&&u(v,k,C);if(L===j_)return y(v,k,C);if(L===m_)return a(v,k,C);if(L===u_)return u(v,k,C);if(w_[L])return g(v,k,C);if(L===d_)return t(v,k,C);if(L===f_)return n(v,k,C);if(L===h_||L===x_||L===N_)return h(v,k,C);if(N){let W=N[L];if(!W){const D=G6(v);D&&(W=N[D])}if(W)return W(v,k,C)}return!1}}function C_({circular:t,createCustomConfig:e,strict:n}){let s={areArrayBuffersEqual:Z6,areArraysEqual:n?ad:e_,areDataViewsEqual:t_,areDatesEqual:n_,areErrorsEqual:s_,areFunctionsEqual:r_,areMapsEqual:n?Dg(GN,ad):GN,areNumbersEqual:a_,areObjectsEqual:n?ad:i_,arePrimitiveWrappersEqual:o_,areRegExpsEqual:l_,areSetsEqual:n?Dg(JN,ad):JN,areTypedArraysEqual:n?Dg(df,ad):df,areUrlsEqual:c_,unknownTagComparators:void 0};if(e&&(s=Object.assign({},s,e(s))),t){const a=wh(s.areArraysEqual),i=wh(s.areMapsEqual),o=wh(s.areObjectsEqual),c=wh(s.areSetsEqual);s=Object.assign({},s,{areArraysEqual:a,areMapsEqual:i,areObjectsEqual:o,areSetsEqual:c})}return s}function E_(t){return function(e,n,s,a,i,o,c){return t(e,n,c)}}function T_({circular:t,comparator:e,createState:n,equals:s,strict:a}){if(n)return function(c,u){const{cache:h=t?new WeakMap:void 0,meta:f}=n();return e(c,u,{cache:h,equals:s,meta:f,strict:a})};if(t)return function(c,u){return e(c,u,{cache:new WeakMap,equals:s,meta:void 0,strict:a})};const i={cache:void 0,equals:s,meta:void 0,strict:a};return function(c,u){return e(c,u,i)}}const M_=Zi();Zi({strict:!0});Zi({circular:!0});Zi({circular:!0,strict:!0});Zi({createInternalComparator:()=>al});Zi({strict:!0,createInternalComparator:()=>al});Zi({circular:!0,createInternalComparator:()=>al});Zi({circular:!0,createInternalComparator:()=>al,strict:!0});function Zi(t={}){const{circular:e=!1,createInternalComparator:n,createState:s,strict:a=!1}=t,i=C_(t),o=S_(i),c=n?n(o):E_(o);return T_({circular:e,comparator:o,createState:s,equals:c,strict:a})}var Lg={exports:{}},_g={};/**
* @license React
* use-sync-external-store-shim/with-selector.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var YN;function A_(){if(YN)return _g;YN=1;var t=Kd(),e=lS();function n(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var s=typeof Object.is=="function"?Object.is:n,a=e.useSyncExternalStore,i=t.useRef,o=t.useEffect,c=t.useMemo,u=t.useDebugValue;return _g.useSyncExternalStoreWithSelector=function(h,f,m,g,y){var N=i(null);if(N.current===null){var w={hasValue:!1,value:null};N.current=w}else w=N.current;N=c(function(){function k(W){if(!C){if(C=!0,E=W,W=g(W),y!==void 0&&w.hasValue){var D=w.value;if(y(D,W))return I=D}return I=W}if(D=I,s(E,W))return D;var P=g(W);return y!==void 0&&y(D,P)?(E=W,D):(E=W,I=P)}var C=!1,E,I,L=m===void 0?null:m;return[function(){return k(f())},L===null?void 0:function(){return k(L())}]},[f,m,g,y]);var v=a(h,N[0],N[1]);return o(function(){w.hasValue=!0,w.value=v},[v]),u(v),v},_g}var QN;function I_(){return QN||(QN=1,Lg.exports=A_()),Lg.exports}var P_=I_(),R_=(...t)=>e=>{t.forEach(n=>{typeof n=="function"?n(e):n&&(n.current=e)})},O_=({contentComponent:t})=>{const e=cS.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getServerSnapshot);return r.jsx(r.Fragment,{children:Object.values(e)})};function D_(){const t=new Set;let e={};return{subscribe(n){return t.add(n),()=>{t.delete(n)}},getSnapshot(){return e},getServerSnapshot(){return e},setRenderer(n,s){e={...e,[n]:aj.createPortal(s.reactElement,s.element,n)},t.forEach(a=>a())},removeRenderer(n){const s={...e};delete s[n],e=s,t.forEach(a=>a())}}}var L_=class extends Rs.Component{constructor(t){var e;super(t),this.editorContentRef=Rs.createRef(),this.initialized=!1,this.state={hasContentComponentInitialized:!!((e=t.editor)!=null&&e.contentComponent)}}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){var t;const e=this.props.editor;if(e&&!e.isDestroyed&&((t=e.view.dom)!=null&&t.parentNode)){if(e.contentComponent)return;const n=this.editorContentRef.current;n.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:n}),e.contentComponent=D_(),this.state.hasContentComponentInitialized||(this.unsubscribeToContentComponent=e.contentComponent.subscribe(()=>{this.setState(s=>s.hasContentComponentInitialized?s:{hasContentComponentInitialized:!0}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent()})),e.createNodeViews(),this.initialized=!0}}componentWillUnmount(){var t;const e=this.props.editor;if(e){this.initialized=!1,e.isDestroyed||e.view.setProps({nodeViews:{}}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent(),e.contentComponent=null;try{if(!((t=e.view.dom)!=null&&t.parentNode))return;const n=document.createElement("div");n.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:n})}catch{}}}render(){const{editor:t,innerRef:e,...n}=this.props;return r.jsxs(r.Fragment,{children:[r.jsx("div",{ref:R_(e,this.editorContentRef),...n}),(t==null?void 0:t.contentComponent)&&r.jsx(O_,{contentComponent:t.contentComponent})]})}},__=b.forwardRef((t,e)=>{const n=Rs.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[t.editor]);return Rs.createElement(L_,{key:n,innerRef:e,...t})}),vC=Rs.memo(__),z_=typeof window<"u"?b.useLayoutEffect:b.useEffect,F_=class{constructor(t){this.transactionNumber=0,this.lastTransactionNumber=0,this.subscribers=new Set,this.editor=t,this.lastSnapshot={editor:t,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}watch(t){if(this.editor=t,this.editor){const e=()=>{this.transactionNumber+=1,this.subscribers.forEach(s=>s())},n=this.editor;return n.on("transaction",e),()=>{n.off("transaction",e)}}}};function $_(t){var e;const[n]=b.useState(()=>new F_(t.editor)),s=P_.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getServerSnapshot,t.selector,(e=t.equalityFn)!=null?e:M_);return z_(()=>n.watch(t.editor),[t.editor,n]),b.useDebugValue(s),s}var B_=!1,$x=typeof window>"u",V_=$x||!!(typeof window<"u"&&window.next),H_=class NC{constructor(e){this.editor=null,this.subscriptions=new Set,this.isComponentMounted=!1,this.previousDeps=null,this.instanceId="",this.options=e,this.subscriptions=new Set,this.setEditor(this.getInitialEditor()),this.scheduleDestroy(),this.getEditor=this.getEditor.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.subscribe=this.subscribe.bind(this),this.refreshEditorInstance=this.refreshEditorInstance.bind(this),this.scheduleDestroy=this.scheduleDestroy.bind(this),this.onRender=this.onRender.bind(this),this.createEditor=this.createEditor.bind(this)}setEditor(e){this.editor=e,this.instanceId=Math.random().toString(36).slice(2,9),this.subscriptions.forEach(n=>n())}getInitialEditor(){return this.options.current.immediatelyRender===void 0?$x||V_?null:this.createEditor():(this.options.current.immediatelyRender,this.options.current.immediatelyRender?this.createEditor():null)}createEditor(){const e={...this.options.current,onBeforeCreate:(...s)=>{var a,i;return(i=(a=this.options.current).onBeforeCreate)==null?void 0:i.call(a,...s)},onBlur:(...s)=>{var a,i;return(i=(a=this.options.current).onBlur)==null?void 0:i.call(a,...s)},onCreate:(...s)=>{var a,i;return(i=(a=this.options.current).onCreate)==null?void 0:i.call(a,...s)},onDestroy:(...s)=>{var a,i;return(i=(a=this.options.current).onDestroy)==null?void 0:i.call(a,...s)},onFocus:(...s)=>{var a,i;return(i=(a=this.options.current).onFocus)==null?void 0:i.call(a,...s)},onSelectionUpdate:(...s)=>{var a,i;return(i=(a=this.options.current).onSelectionUpdate)==null?void 0:i.call(a,...s)},onTransaction:(...s)=>{var a,i;return(i=(a=this.options.current).onTransaction)==null?void 0:i.call(a,...s)},onUpdate:(...s)=>{var a,i;return(i=(a=this.options.current).onUpdate)==null?void 0:i.call(a,...s)},onContentError:(...s)=>{var a,i;return(i=(a=this.options.current).onContentError)==null?void 0:i.call(a,...s)},onDrop:(...s)=>{var a,i;return(i=(a=this.options.current).onDrop)==null?void 0:i.call(a,...s)},onPaste:(...s)=>{var a,i;return(i=(a=this.options.current).onPaste)==null?void 0:i.call(a,...s)},onDelete:(...s)=>{var a,i;return(i=(a=this.options.current).onDelete)==null?void 0:i.call(a,...s)}};return new O6(e)}getEditor(){return this.editor}getServerSnapshot(){return null}subscribe(e){return this.subscriptions.add(e),()=>{this.subscriptions.delete(e)}}static compareOptions(e,n){return Object.keys(e).every(s=>["onCreate","onBeforeCreate","onDestroy","onUpdate","onTransaction","onFocus","onBlur","onSelectionUpdate","onContentError","onDrop","onPaste"].includes(s)?!0:s==="extensions"&&e.extensions&&n.extensions?e.extensions.length!==n.extensions.length?!1:e.extensions.every((a,i)=>{var o;return a===((o=n.extensions)==null?void 0:o[i])}):e[s]===n[s])}onRender(e){return()=>(this.isComponentMounted=!0,clearTimeout(this.scheduledDestructionTimeout),this.editor&&!this.editor.isDestroyed&&e.length===0?NC.compareOptions(this.options.current,this.editor.options)||this.editor.setOptions({...this.options.current,editable:this.editor.isEditable}):this.refreshEditorInstance(e),()=>{this.isComponentMounted=!1,this.scheduleDestroy()})}refreshEditorInstance(e){if(this.editor&&!this.editor.isDestroyed){if(this.previousDeps===null){this.previousDeps=e;return}if(this.previousDeps.length===e.length&&this.previousDeps.every((s,a)=>s===e[a]))return}this.editor&&!this.editor.isDestroyed&&this.editor.destroy(),this.setEditor(this.createEditor()),this.previousDeps=e}scheduleDestroy(){const e=this.instanceId,n=this.editor;this.scheduledDestructionTimeout=setTimeout(()=>{if(this.isComponentMounted&&this.instanceId===e){n&&n.setOptions(this.options.current);return}n&&!n.isDestroyed&&(n.destroy(),this.instanceId===e&&this.setEditor(null))},1)}};function W_(t={},e=[]){const n=b.useRef(t);n.current=t;const[s]=b.useState(()=>new H_(n)),a=cS.useSyncExternalStore(s.subscribe,s.getEditor,s.getServerSnapshot);return b.useDebugValue(a),b.useEffect(s.onRender(e)),$_({editor:a,selector:({transactionNumber:i})=>t.shouldRerenderOnTransaction===!1||t.shouldRerenderOnTransaction===void 0?null:t.immediatelyRender&&i===0?0:i+1}),a}var wC=b.createContext({editor:null});wC.Consumer;var U_=b.createContext({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),K_=()=>b.useContext(U_);Rs.forwardRef((t,e)=>{const{onDragStart:n}=K_(),s=t.as||"div";return r.jsx(s,{...t,ref:e,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...t.style}})});Rs.createContext({markViewContentRef:()=>{}});var hy=b.createContext({get editor(){throw new Error("useTiptap must be used within a <Tiptap> provider")}});hy.displayName="TiptapContext";var q_=()=>b.useContext(hy);function jC({editor:t,instance:e,children:n}){const s=t??e;if(!s)throw new Error("Tiptap: An editor instance is required. Pass a non-null `editor` prop.");const a=b.useMemo(()=>({editor:s}),[s]),i=b.useMemo(()=>({editor:s}),[s]);return r.jsx(wC.Provider,{value:i,children:r.jsx(hy.Provider,{value:a,children:n})})}jC.displayName="Tiptap";function kC({...t}){const{editor:e}=q_();return r.jsx(vC,{editor:e,...t})}kC.displayName="Tiptap.Content";Object.assign(jC,{Content:kC});var uf=(t,e)=>{if(t==="slot")return 0;if(t instanceof Function)return t(e);const{children:n,...s}=e??{};if(t==="svg")throw new Error("SVG elements are not supported in the JSX syntax, use the array syntax instead");return[t,s,n]},G_=/^\s*>\s$/,J_=An.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:t}){return uf("blockquote",{...Rt(this.options.HTMLAttributes,t),children:uf("slot",{})})},parseMarkdown:(t,e)=>e.createNode("blockquote",void 0,e.parseChildren(t.tokens||[])),renderMarkdown:(t,e)=>{if(!t.content)return"";const n=">",s=[];return t.content.forEach(a=>{const c=e.renderChildren([a]).split(`
`).map(u=>u.trim()===""?n:`${n} ${u}`);s.push(c.join(`
`))}),s.join(`
${n}
`)},addCommands(){return{setBlockquote:()=>({commands:t})=>t.wrapIn(this.name),toggleBlockquote:()=>({commands:t})=>t.toggleWrap(this.name),unsetBlockquote:()=>({commands:t})=>t.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[lc({find:G_,type:this.type})]}}),Y_=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,Q_=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,X_=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,Z_=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,e7=rl.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:t=>t.style.fontWeight!=="normal"&&null},{style:"font-weight=400",clearMark:t=>t.type.name===this.name},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}]},renderHTML({HTMLAttributes:t}){return uf("strong",{...Rt(this.options.HTMLAttributes,t),children:uf("slot",{})})},markdownTokenName:"strong",parseMarkdown:(t,e)=>e.applyMark("bold",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`**${e.renderChildren(t)}**`,addCommands(){return{setBold:()=>({commands:t})=>t.setMark(this.name),toggleBold:()=>({commands:t})=>t.toggleMark(this.name),unsetBold:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[oc({find:Y_,type:this.type}),oc({find:X_,type:this.type})]},addPasteRules(){return[Qo({find:Q_,type:this.type}),Qo({find:Z_,type:this.type})]}}),t7=/(^|[^`])`([^`]+)`(?!`)$/,n7=/(^|[^`])`([^`]+)`(?!`)/g,s7=rl.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:t}){return["code",Rt(this.options.HTMLAttributes,t),0]},markdownTokenName:"codespan",parseMarkdown:(t,e)=>e.applyMark("code",[{type:"text",text:t.text||""}]),renderMarkdown:(t,e)=>t.content?`\`${e.renderChildren(t.content)}\``:"",addCommands(){return{setCode:()=>({commands:t})=>t.setMark(this.name),toggleCode:()=>({commands:t})=>t.toggleMark(this.name),unsetCode:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[oc({find:t7,type:this.type})]},addPasteRules(){return[Qo({find:n7,type:this.type})]}}),zg=4,r7=/^```([a-z]+)?[\s\n]$/,a7=/^~~~([a-z]+)?[\s\n]$/,i7=An.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:zg,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:t=>{var e;const{languageClassPrefix:n}=this.options;if(!n)return null;const i=[...((e=t.firstElementChild)==null?void 0:e.classList)||[]].filter(o=>o.startsWith(n)).map(o=>o.replace(n,""))[0];return i||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:t,HTMLAttributes:e}){return["pre",Rt(this.options.HTMLAttributes,e),["code",{class:t.attrs.language?this.options.languageClassPrefix+t.attrs.language:null},0]]},markdownTokenName:"code",parseMarkdown:(t,e)=>{var n,s;return((n=t.raw)==null?void 0:n.startsWith("```"))===!1&&((s=t.raw)==null?void 0:s.startsWith("~~~"))===!1&&t.codeBlockStyle!=="indented"?[]:e.createNode("codeBlock",{language:t.lang||null},t.text?[e.createTextNode(t.text)]:[])},renderMarkdown:(t,e)=>{var n;let s="";const a=((n=t.attrs)==null?void 0:n.language)||"";return t.content?s=[`\`\`\`${a}`,e.renderChildren(t.content),"```"].join(`
`):s=`\`\`\`${a}
\`\`\``,s},addCommands(){return{setCodeBlock:t=>({commands:e})=>e.setNode(this.name,t),toggleCodeBlock:t=>({commands:e})=>e.toggleNode(this.name,"paragraph",t)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:t,$anchor:e}=this.editor.state.selection,n=e.pos===1;return!t||e.parent.type.name!==this.name?!1:n||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:zg,{state:s}=t,{selection:a}=s,{$from:i,empty:o}=a;if(i.parent.type!==this.type)return!1;const c=" ".repeat(n);return o?t.commands.insertContent(c):t.commands.command(({tr:u})=>{const{from:h,to:f}=a,y=s.doc.textBetween(h,f,`
`,`
`).split(`
`).map(N=>c+N).join(`
`);return u.replaceWith(h,f,s.schema.text(y)),!0})},"Shift-Tab":({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:zg,{state:s}=t,{selection:a}=s,{$from:i,empty:o}=a;return i.parent.type!==this.type?!1:o?t.commands.command(({tr:c})=>{var u;const{pos:h}=i,f=i.start(),m=i.end(),y=s.doc.textBetween(f,m,`
`,`
`).split(`
`);let N=0,w=0;const v=h-f;for(let W=0;W<y.length;W+=1){if(w+y[W].length>=v){N=W;break}w+=y[W].length+1}const C=((u=y[N].match(/^ */))==null?void 0:u[0])||"",E=Math.min(C.length,n);if(E===0)return!0;let I=f;for(let W=0;W<N;W+=1)I+=y[W].length+1;return c.delete(I,I+E),h-I<=E&&c.setSelection(et.create(c.doc,I)),!0}):t.commands.command(({tr:c})=>{const{from:u,to:h}=a,g=s.doc.textBetween(u,h,`
`,`
`).split(`
`).map(y=>{var N;const w=((N=y.match(/^ */))==null?void 0:N[0])||"",v=Math.min(w.length,n);return y.slice(v)}).join(`
`);return c.replaceWith(u,h,s.schema.text(g)),!0})},Enter:({editor:t})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:e}=t,{selection:n}=e,{$from:s,empty:a}=n;if(!a||s.parent.type!==this.type)return!1;const i=s.parentOffset===s.parent.nodeSize-2,o=s.parent.textContent.endsWith(`
`);return!i||!o?!1:t.chain().command(({tr:c})=>(c.delete(s.pos-2,s.pos),!0)).exitCode().run()},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown)return!1;const{state:e}=t,{selection:n,doc:s}=e,{$from:a,empty:i}=n;if(!i||a.parent.type!==this.type||!(a.parentOffset===a.parent.nodeSize-2))return!1;const c=a.after();return c===void 0?!1:s.nodeAt(c)?t.commands.command(({tr:h})=>(h.setSelection(ot.near(s.resolve(c))),!0)):t.commands.exitCode()}}},addInputRules(){return[zx({find:r7,type:this.type,getAttributes:t=>({language:t[1]})}),zx({find:a7,type:this.type,getAttributes:t=>({language:t[1]})})]},addProseMirrorPlugins(){return[new Qt({key:new ln("codeBlockVSCodeHandler"),props:{handlePaste:(t,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;const n=e.clipboardData.getData("text/plain"),s=e.clipboardData.getData("vscode-editor-data"),a=s?JSON.parse(s):void 0,i=a==null?void 0:a.mode;if(!n||!i)return!1;const{tr:o,schema:c}=t.state,u=c.text(n.replace(/\r\n?/g,`
`));return o.replaceSelectionWith(this.type.create({language:i},u)),o.selection.$from.parent.type!==this.type&&o.setSelection(et.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.setMeta("paste",!0),t.dispatch(o),!0}}})]}}),o7=An.create({name:"doc",topNode:!0,content:"block+",renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
`):""}),l7=An.create({name:"hardBreak",markdownTokenName:"br",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:t}){return["br",Rt(this.options.HTMLAttributes,t)]},renderText(){return`
`},renderMarkdown:()=>`
`,parseMarkdown:()=>({type:"hardBreak"}),addCommands(){return{setHardBreak:()=>({commands:t,chain:e,state:n,editor:s})=>t.first([()=>t.exitCode(),()=>t.command(()=>{const{selection:a,storedMarks:i}=n;if(a.$from.parent.type.spec.isolating)return!1;const{keepMarks:o}=this.options,{splittableMarks:c}=s.extensionManager,u=i||a.$to.parentOffset&&a.$from.marks();return e().insertContent({type:this.name}).command(({tr:h,dispatch:f})=>{if(f&&u&&o){const m=u.filter(g=>c.includes(g.type.name));h.ensureMarks(m)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),c7=An.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}}))},renderHTML({node:t,HTMLAttributes:e}){return[`h${this.options.levels.includes(t.attrs.level)?t.attrs.level:this.options.levels[0]}`,Rt(this.options.HTMLAttributes,e),0]},parseMarkdown:(t,e)=>e.createNode("heading",{level:t.depth||1},e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>{var n;const s=(n=t.attrs)!=null&&n.level?parseInt(t.attrs.level,10):1,a="#".repeat(s);return t.content?`${a} ${e.renderChildren(t.content)}`:""},addCommands(){return{setHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.setNode(this.name,t):!1,toggleHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.toggleNode(this.name,"paragraph",t):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((t,e)=>({...t,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(t=>zx({find:new RegExp(`^(#{${Math.min(...this.options.levels)},${t}})\\s$`),type:this.type,getAttributes:{level:t}}))}}),d7=An.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{},nextNodeType:"paragraph"}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:t}){return["hr",Rt(this.options.HTMLAttributes,t)]},markdownTokenName:"hr",parseMarkdown:(t,e)=>e.createNode("horizontalRule"),renderMarkdown:()=>"---",addCommands(){return{setHorizontalRule:()=>({chain:t,state:e})=>{if(!_6(e,e.schema.nodes[this.name]))return!1;const{selection:n}=e,{$to:s}=n,a=t();return Z2(n)?a.insertContentAt(s.pos,{type:this.name}):a.insertContent({type:this.name}),a.command(({state:i,tr:o,dispatch:c})=>{if(c){const{$to:u}=o.selection,h=u.end();if(u.nodeAfter)u.nodeAfter.isTextblock?o.setSelection(et.create(o.doc,u.pos+1)):u.nodeAfter.isBlock?o.setSelection(Ze.create(o.doc,u.pos)):o.setSelection(et.create(o.doc,u.pos));else{const f=i.schema.nodes[this.options.nextNodeType]||u.parent.type.contentMatch.defaultType,m=f==null?void 0:f.create();m&&(o.insert(h,m),o.setSelection(et.create(o.doc,h+1)))}o.scrollIntoView()}return!0}).run()}}},addInputRules(){return[gC({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),u7=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,h7=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,f7=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,p7=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,m7=rl.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:t=>t.style.fontStyle!=="normal"&&null},{style:"font-style=normal",clearMark:t=>t.type.name===this.name},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:t}){return["em",Rt(this.options.HTMLAttributes,t),0]},addCommands(){return{setItalic:()=>({commands:t})=>t.setMark(this.name),toggleItalic:()=>({commands:t})=>t.toggleMark(this.name),unsetItalic:()=>({commands:t})=>t.unsetMark(this.name)}},markdownTokenName:"em",parseMarkdown:(t,e)=>e.applyMark("italic",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`*${e.renderChildren(t)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[oc({find:u7,type:this.type}),oc({find:f7,type:this.type})]},addPasteRules(){return[Qo({find:h7,type:this.type}),Qo({find:p7,type:this.type})]}});const g7="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",x7="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3украз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراهاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരത5ලකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",Bx="numeric",Vx="ascii",Hx="alpha",jd="asciinumeric",ud="alphanumeric",Wx="domain",SC="emoji",y7="scheme",b7="slashscheme",Fg="whitespace";function v7(t,e){return t in e||(e[t]=[]),e[t]}function Lo(t,e,n){e[Bx]&&(e[jd]=!0,e[ud]=!0),e[Vx]&&(e[jd]=!0,e[Hx]=!0),e[jd]&&(e[ud]=!0),e[Hx]&&(e[ud]=!0),e[ud]&&(e[Wx]=!0),e[SC]&&(e[Wx]=!0);for(const s in e){const a=v7(s,n);a.indexOf(t)<0&&a.push(t)}}function N7(t,e){const n={};for(const s in e)e[s].indexOf(t)>=0&&(n[s]=!0);return n}function Ws(t=null){this.j={},this.jr=[],this.jd=null,this.t=t}Ws.groups={};Ws.prototype={accepts(){return!!this.t},go(t){const e=this,n=e.j[t];if(n)return n;for(let s=0;s<e.jr.length;s++){const a=e.jr[s][0],i=e.jr[s][1];if(i&&a.test(t))return i}return e.jd},has(t,e=!1){return e?t in this.j:!!this.go(t)},ta(t,e,n,s){for(let a=0;a<t.length;a++)this.tt(t[a],e,n,s)},tr(t,e,n,s){s=s||Ws.groups;let a;return e&&e.j?a=e:(a=new Ws(e),n&&s&&Lo(e,n,s)),this.jr.push([t,a]),a},ts(t,e,n,s){let a=this;const i=t.length;if(!i)return a;for(let o=0;o<i-1;o++)a=a.tt(t[o]);return a.tt(t[i-1],e,n,s)},tt(t,e,n,s){s=s||Ws.groups;const a=this;if(e&&e.j)return a.j[t]=e,e;const i=e;let o,c=a.go(t);if(c?(o=new Ws,Object.assign(o.j,c.j),o.jr.push.apply(o.jr,c.jr),o.jd=c.jd,o.t=c.t):o=new Ws,i){if(s)if(o.t&&typeof o.t=="string"){const u=Object.assign(N7(o.t,s),n);Lo(i,u,s)}else n&&Lo(i,n,s);o.t=i}return a.j[t]=o,o}};const pt=(t,e,n,s,a)=>t.ta(e,n,s,a),gn=(t,e,n,s,a)=>t.tr(e,n,s,a),XN=(t,e,n,s,a)=>t.ts(e,n,s,a),Me=(t,e,n,s,a)=>t.tt(e,n,s,a),za="WORD",Ux="UWORD",CC="ASCIINUMERICAL",EC="ALPHANUMERICAL",Vd="LOCALHOST",Kx="TLD",qx="UTLD",_h="SCHEME",Wl="SLASH_SCHEME",fy="NUM",Gx="WS",py="NL",kd="OPENBRACE",Sd="CLOSEBRACE",hf="OPENBRACKET",ff="CLOSEBRACKET",pf="OPENPAREN",mf="CLOSEPAREN",gf="OPENANGLEBRACKET",xf="CLOSEANGLEBRACKET",yf="FULLWIDTHLEFTPAREN",bf="FULLWIDTHRIGHTPAREN",vf="LEFTCORNERBRACKET",Nf="RIGHTCORNERBRACKET",wf="LEFTWHITECORNERBRACKET",jf="RIGHTWHITECORNERBRACKET",kf="FULLWIDTHLESSTHAN",Sf="FULLWIDTHGREATERTHAN",Cf="AMPERSAND",Ef="APOSTROPHE",Tf="ASTERISK",Si="AT",Mf="BACKSLASH",Af="BACKTICK",If="CARET",Ti="COLON",my="COMMA",Pf="DOLLAR",aa="DOT",Rf="EQUALS",gy="EXCLAMATION",gr="HYPHEN",Cd="PERCENT",Of="PIPE",Df="PLUS",Lf="POUND",Ed="QUERY",xy="QUOTE",TC="FULLWIDTHMIDDLEDOT",yy="SEMI",ia="SLASH",Td="TILDE",_f="UNDERSCORE",MC="EMOJI",zf="SYM";var AC=Object.freeze({__proto__:null,ALPHANUMERICAL:EC,AMPERSAND:Cf,APOSTROPHE:Ef,ASCIINUMERICAL:CC,ASTERISK:Tf,AT:Si,BACKSLASH:Mf,BACKTICK:Af,CARET:If,CLOSEANGLEBRACKET:xf,CLOSEBRACE:Sd,CLOSEBRACKET:ff,CLOSEPAREN:mf,COLON:Ti,COMMA:my,DOLLAR:Pf,DOT:aa,EMOJI:MC,EQUALS:Rf,EXCLAMATION:gy,FULLWIDTHGREATERTHAN:Sf,FULLWIDTHLEFTPAREN:yf,FULLWIDTHLESSTHAN:kf,FULLWIDTHMIDDLEDOT:TC,FULLWIDTHRIGHTPAREN:bf,HYPHEN:gr,LEFTCORNERBRACKET:vf,LEFTWHITECORNERBRACKET:wf,LOCALHOST:Vd,NL:py,NUM:fy,OPENANGLEBRACKET:gf,OPENBRACE:kd,OPENBRACKET:hf,OPENPAREN:pf,PERCENT:Cd,PIPE:Of,PLUS:Df,POUND:Lf,QUERY:Ed,QUOTE:xy,RIGHTCORNERBRACKET:Nf,RIGHTWHITECORNERBRACKET:jf,SCHEME:_h,SEMI:yy,SLASH:ia,SLASH_SCHEME:Wl,SYM:zf,TILDE:Td,TLD:Kx,UNDERSCORE:_f,UTLD:qx,UWORD:Ux,WORD:za,WS:Gx});const La=/[a-z]/,id=new RegExp("\\p{L}","u"),$g=new RegExp("\\p{Emoji}","u"),_a=/\d/,Bg=/\s/,ZN="\r",Vg=`
`,w7="",j7="",Hg="";let jh=null,kh=null;function k7(t=[]){const e={};Ws.groups=e;const n=new Ws;jh==null&&(jh=ew(g7)),kh==null&&(kh=ew(x7)),Me(n,"'",Ef),Me(n,"{",kd),Me(n,"}",Sd),Me(n,"[",hf),Me(n,"]",ff),Me(n,"(",pf),Me(n,")",mf),Me(n,"<",gf),Me(n,">",xf),Me(n,"",yf),Me(n,"",bf),Me(n,"「",vf),Me(n,"」",Nf),Me(n,"『",wf),Me(n,"』",jf),Me(n,"",kf),Me(n,"",Sf),Me(n,"&",Cf),Me(n,"*",Tf),Me(n,"@",Si),Me(n,"`",Af),Me(n,"^",If),Me(n,":",Ti),Me(n,",",my),Me(n,"$",Pf),Me(n,".",aa),Me(n,"=",Rf),Me(n,"!",gy),Me(n,"-",gr),Me(n,"%",Cd),Me(n,"|",Of),Me(n,"+",Df),Me(n,"#",Lf),Me(n,"?",Ed),Me(n,'"',xy),Me(n,"/",ia),Me(n,";",yy),Me(n,"~",Td),Me(n,"_",_f),Me(n,"\\",Mf),Me(n,"・",TC);const s=gn(n,_a,fy,{[Bx]:!0});gn(s,_a,s);const a=gn(s,La,CC,{[jd]:!0}),i=gn(s,id,EC,{[ud]:!0}),o=gn(n,La,za,{[Vx]:!0});gn(o,_a,a),gn(o,La,o),gn(a,_a,a),gn(a,La,a);const c=gn(n,id,Ux,{[Hx]:!0});gn(c,La),gn(c,_a,i),gn(c,id,c),gn(i,_a,i),gn(i,La),gn(i,id,i);const u=Me(n,Vg,py,{[Fg]:!0}),h=Me(n,ZN,Gx,{[Fg]:!0}),f=gn(n,Bg,Gx,{[Fg]:!0});Me(n,Hg,f),Me(h,Vg,u),Me(h,Hg,f),gn(h,Bg,f),Me(f,ZN),Me(f,Vg),gn(f,Bg,f),Me(f,Hg,f);const m=gn(n,$g,MC,{[SC]:!0});Me(m,"#"),gn(m,$g,m),Me(m,w7,m);const g=Me(m,j7);Me(g,"#"),gn(g,$g,m);const y=[[La,o],[_a,a]],N=[[La,null],[id,c],[_a,i]];for(let w=0;w<jh.length;w++)vi(n,jh[w],Kx,za,y);for(let w=0;w<kh.length;w++)vi(n,kh[w],qx,Ux,N);Lo(Kx,{tld:!0,ascii:!0},e),Lo(qx,{utld:!0,alpha:!0},e),vi(n,"file",_h,za,y),vi(n,"mailto",_h,za,y),vi(n,"http",Wl,za,y),vi(n,"https",Wl,za,y),vi(n,"ftp",Wl,za,y),vi(n,"ftps",Wl,za,y),Lo(_h,{scheme:!0,ascii:!0},e),Lo(Wl,{slashscheme:!0,ascii:!0},e),t=t.sort((w,v)=>w[0]>v[0]?1:-1);for(let w=0;w<t.length;w++){const v=t[w][0],C=t[w][1]?{[y7]:!0}:{[b7]:!0};v.indexOf("-")>=0?C[Wx]=!0:La.test(v)?_a.test(v)?C[jd]=!0:C[Vx]=!0:C[Bx]=!0,XN(n,v,v,C)}return XN(n,"localhost",Vd,{ascii:!0}),n.jd=new Ws(zf),{start:n,tokens:Object.assign({groups:e},AC)}}function IC(t,e){const n=S7(e.replace(/[A-Z]/g,c=>c.toLowerCase())),s=n.length,a=[];let i=0,o=0;for(;o<s;){let c=t,u=null,h=0,f=null,m=-1,g=-1;for(;o<s&&(u=c.go(n[o]));)c=u,c.accepts()?(m=0,g=0,f=c):m>=0&&(m+=n[o].length,g++),h+=n[o].length,i+=n[o].length,o++;i-=m,o-=g,h-=m,a.push({t:f.t,v:e.slice(i-h,i),s:i-h,e:i})}return a}function S7(t){const e=[],n=t.length;let s=0;for(;s<n;){let a=t.charCodeAt(s),i,o=a<55296||a>56319||s+1===n||(i=t.charCodeAt(s+1))<56320||i>57343?t[s]:t.slice(s,s+2);e.push(o),s+=o.length}return e}function vi(t,e,n,s,a){let i;const o=e.length;for(let c=0;c<o-1;c++){const u=e[c];t.j[u]?i=t.j[u]:(i=new Ws(s),i.jr=a.slice(),t.j[u]=i),t=i}return i=new Ws(n),i.jr=a.slice(),t.j[e[o-1]]=i,i}function ew(t){const e=[],n=[];let s=0,a="0123456789";for(;s<t.length;){let i=0;for(;a.indexOf(t[s+i])>=0;)i++;if(i>0){e.push(n.join(""));for(let o=parseInt(t.substring(s,s+i),10);o>0;o--)n.pop();s+=i}else n.push(t[s]),s++}return e}const Hd={defaultProtocol:"http",events:null,format:tw,formatHref:tw,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function by(t,e=null){let n=Object.assign({},Hd);t&&(n=Object.assign(n,t instanceof by?t.o:t));const s=n.ignoreTags,a=[];for(let i=0;i<s.length;i++)a.push(s[i].toUpperCase());this.o=n,e&&(this.defaultRender=e),this.ignoreTags=a}by.prototype={o:Hd,ignoreTags:[],defaultRender(t){return t},check(t){return this.get("validate",t.toString(),t)},get(t,e,n){const s=e!=null;let a=this.o[t];return a&&(typeof a=="object"?(a=n.t in a?a[n.t]:Hd[t],typeof a=="function"&&s&&(a=a(e,n))):typeof a=="function"&&s&&(a=a(e,n.t,n)),a)},getObj(t,e,n){let s=this.o[t];return typeof s=="function"&&e!=null&&(s=s(e,n.t,n)),s},render(t){const e=t.render(this);return(this.get("render",null,t)||this.defaultRender)(e,t.t,t)}};function tw(t){return t}function PC(t,e){this.t="token",this.v=t,this.tk=e}PC.prototype={isLink:!1,toString(){return this.v},toHref(t){return this.toString()},toFormattedString(t){const e=this.toString(),n=t.get("truncate",e,this),s=t.get("format",e,this);return n&&s.length>n?s.substring(0,n)+"…":s},toFormattedHref(t){return t.get("formatHref",this.toHref(t.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(t=Hd.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(t),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(t){return{type:this.t,value:this.toFormattedString(t),isLink:this.isLink,href:this.toFormattedHref(t),start:this.startIndex(),end:this.endIndex()}},validate(t){return t.get("validate",this.toString(),this)},render(t){const e=this,n=this.toHref(t.get("defaultProtocol")),s=t.get("formatHref",n,this),a=t.get("tagName",n,e),i=this.toFormattedString(t),o={},c=t.get("className",n,e),u=t.get("target",n,e),h=t.get("rel",n,e),f=t.getObj("attributes",n,e),m=t.getObj("events",n,e);return o.href=s,c&&(o.class=c),u&&(o.target=u),h&&(o.rel=h),f&&Object.assign(o,f),{tagName:a,attributes:o,content:i,eventListeners:m}}};function gp(t,e){class n extends PC{constructor(a,i){super(a,i),this.t=t}}for(const s in e)n.prototype[s]=e[s];return n.t=t,n}const nw=gp("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),sw=gp("text"),C7=gp("nl"),Sh=gp("url",{isLink:!0,toHref(t=Hd.defaultProtocol){return this.hasProtocol()?this.v:`${t}://${this.v}`},hasProtocol(){const t=this.tk;return t.length>=2&&t[0].t!==Vd&&t[1].t===Ti}}),mr=t=>new Ws(t);function E7({groups:t}){const e=t.domain.concat([Cf,Tf,Si,Mf,Af,If,Pf,Rf,gr,fy,Cd,Of,Df,Lf,ia,zf,Td,_f]),n=[Ef,Ti,my,aa,gy,Cd,Ed,xy,yy,gf,xf,kd,Sd,ff,hf,pf,mf,yf,bf,vf,Nf,wf,jf,kf,Sf],s=[Cf,Ef,Tf,Mf,Af,If,Pf,Rf,gr,kd,Sd,Cd,Of,Df,Lf,Ed,ia,zf,Td,_f],a=mr(),i=Me(a,Td);pt(i,s,i),pt(i,t.domain,i);const o=mr(),c=mr(),u=mr();pt(a,t.domain,o),pt(a,t.scheme,c),pt(a,t.slashscheme,u),pt(o,s,i),pt(o,t.domain,o);const h=Me(o,Si);Me(i,Si,h),Me(c,Si,h),Me(u,Si,h);const f=Me(i,aa);pt(f,s,i),pt(f,t.domain,i);const m=mr();pt(h,t.domain,m),pt(m,t.domain,m);const g=Me(m,aa);pt(g,t.domain,m);const y=mr(nw);pt(g,t.tld,y),pt(g,t.utld,y),Me(h,Vd,y);const N=Me(m,gr);Me(N,gr,N),pt(N,t.domain,m),pt(y,t.domain,m),Me(y,aa,g),Me(y,gr,N);const w=Me(y,Ti);pt(w,t.numeric,nw);const v=Me(o,gr),k=Me(o,aa);Me(v,gr,v),pt(v,t.domain,o),pt(k,s,i),pt(k,t.domain,o);const C=mr(Sh);pt(k,t.tld,C),pt(k,t.utld,C),pt(C,t.domain,o),pt(C,s,i),Me(C,aa,k),Me(C,gr,v),Me(C,Si,h);const E=Me(C,Ti),I=mr(Sh);pt(E,t.numeric,I);const L=mr(Sh),W=mr();pt(L,e,L),pt(L,n,W),pt(W,e,L),pt(W,n,W),Me(C,ia,L),Me(I,ia,L);const D=Me(c,Ti),P=Me(u,Ti),R=Me(P,ia),K=Me(R,ia);pt(c,t.domain,o),Me(c,aa,k),Me(c,gr,v),pt(u,t.domain,o),Me(u,aa,k),Me(u,gr,v),pt(D,t.domain,L),Me(D,ia,L),Me(D,Ed,L),pt(K,t.domain,L),pt(K,e,L),Me(K,ia,L);const re=[[kd,Sd],[hf,ff],[pf,mf],[gf,xf],[yf,bf],[vf,Nf],[wf,jf],[kf,Sf]];for(let ue=0;ue<re.length;ue++){const[xe,H]=re[ue],O=Me(L,xe);Me(W,xe,O),Me(O,H,L);const J=mr(Sh);pt(O,e,J);const $=mr();pt(O,n),pt(J,e,J),pt(J,n,$),pt($,e,J),pt($,n,$),Me(J,H,L),Me($,H,L)}return Me(a,Vd,C),Me(a,py,C7),{start:a,tokens:AC}}function T7(t,e,n){let s=n.length,a=0,i=[],o=[];for(;a<s;){let c=t,u=null,h=null,f=0,m=null,g=-1;for(;a<s&&!(u=c.go(n[a].t));)o.push(n[a++]);for(;a<s&&(h=u||c.go(n[a].t));)u=null,c=h,c.accepts()?(g=0,m=c):g>=0&&g++,a++,f++;if(g<0)a-=f,a<s&&(o.push(n[a]),a++);else{o.length>0&&(i.push(Wg(sw,e,o)),o=[]),a-=g,f-=g;const y=m.t,N=n.slice(a-f,a);i.push(Wg(y,e,N))}}return o.length>0&&i.push(Wg(sw,e,o)),i}function Wg(t,e,n){const s=n[0].s,a=n[n.length-1].e,i=e.slice(s,a);return new t(i,n)}const M7=typeof console<"u"&&console&&console.warn||(()=>{}),A7="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",en={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function I7(){return Ws.groups={},en.scanner=null,en.parser=null,en.tokenQueue=[],en.pluginQueue=[],en.customSchemes=[],en.initialized=!1,en}function rw(t,e=!1){if(en.initialized&&M7(`linkifyjs: already initialized - will not register custom scheme "${t}" ${A7}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(t))throw new Error(`linkifyjs: incorrect scheme format.
1. Must only contain digits, lowercase ASCII letters or "-"
2. Cannot start or end with "-"
3. "-" cannot repeat`);en.customSchemes.push([t,e])}function P7(){en.scanner=k7(en.customSchemes);for(let t=0;t<en.tokenQueue.length;t++)en.tokenQueue[t][1]({scanner:en.scanner});en.parser=E7(en.scanner.tokens);for(let t=0;t<en.pluginQueue.length;t++)en.pluginQueue[t][1]({scanner:en.scanner,parser:en.parser});return en.initialized=!0,en}function vy(t){return en.initialized||P7(),T7(en.parser.start,t,IC(en.scanner.start,t))}vy.scan=IC;function RC(t,e=null,n=null){if(e&&typeof e=="object"){if(n)throw Error(`linkifyjs: Invalid link type ${e}; must be a string`);n=e,e=null}const s=new by(n),a=vy(t),i=[];for(let o=0;o<a.length;o++){const c=a[o];c.isLink&&(!e||c.t===e)&&s.check(c)&&i.push(c.toFormattedObject(s))}return i}var Ny="[\0-   -\u2029 ]",R7=new RegExp(Ny),O7=new RegExp(`${Ny}$`),D7=new RegExp(Ny,"g");function L7(t){return t.length===1?t[0].isLink:t.length===3&&t[1].isLink?["()","[]"].includes(t[0].value+t[2].value):!1}function _7(t){return new Qt({key:new ln("autolink"),appendTransaction:(e,n,s)=>{const a=e.some(h=>h.docChanged)&&!n.doc.eq(s.doc),i=e.some(h=>h.getMeta("preventAutolink"));if(!a||i)return;const{tr:o}=s,c=W2(n.doc,[...e]);if(X2(c).forEach(({newRange:h})=>{const f=L8(s.doc,h,y=>y.isTextblock);let m,g;if(f.length>1)m=f[0],g=s.doc.textBetween(m.pos,m.pos+m.node.nodeSize,void 0," ");else if(f.length){const y=s.doc.textBetween(h.from,h.to," "," ");if(!O7.test(y))return;m=f[0],g=s.doc.textBetween(m.pos,h.to,void 0," ")}if(m&&g){const y=g.split(R7).filter(Boolean);if(y.length<=0)return!1;const N=y[y.length-1],w=m.pos+g.lastIndexOf(N);if(!N)return!1;const v=vy(N).map(k=>k.toObject(t.defaultProtocol));if(!L7(v))return!1;v.filter(k=>k.isLink).map(k=>({...k,from:w+k.start+1,to:w+k.end+1})).filter(k=>s.schema.marks.code?!s.doc.rangeHasMark(k.from,k.to,s.schema.marks.code):!0).filter(k=>t.validate(k.value)).filter(k=>t.shouldAutoLink(k.value)).forEach(k=>{oy(k.from,k.to,s.doc).some(C=>C.mark.type===t.type)||o.addMark(k.from,k.to,t.type.create({href:k.href}))})}}),!!o.steps.length)return o}})}function z7(t){return new Qt({key:new ln("handleClickLink"),props:{handleClick:(e,n,s)=>{var a,i;if(s.button!==0||!e.editable)return!1;let o=null;if(s.target instanceof HTMLAnchorElement)o=s.target;else{const u=s.target;if(!u)return!1;const h=t.editor.view.dom;o=u.closest("a"),o&&!h.contains(o)&&(o=null)}if(!o)return!1;let c=!1;if(t.enableClickSelection&&(c=t.editor.commands.extendMarkRange(t.type.name)),t.openOnClick){const u=Q2(e.state,t.type.name),h=(a=o.href)!=null?a:u.href,f=(i=o.target)!=null?i:u.target;h&&(window.open(h,f),c=!0)}return c}}})}function F7(t){return new Qt({key:new ln("handlePasteLink"),props:{handlePaste:(e,n,s)=>{const{shouldAutoLink:a}=t,{state:i}=e,{selection:o}=i,{empty:c}=o;if(c)return!1;let u="";s.content.forEach(f=>{u+=f.textContent});const h=RC(u,{defaultProtocol:t.defaultProtocol}).find(f=>f.isLink&&f.value===u);return!u||!h||a!==void 0&&!a(h.value)?!1:t.editor.commands.setMark(t.type,{href:h.href})}}})}function Mo(t,e){const n=["http","https","ftp","ftps","mailto","tel","callto","sms","cid","xmpp"];return e&&e.forEach(s=>{const a=typeof s=="string"?s:s.scheme;a&&n.push(a)}),!t||t.replace(D7,"").match(new RegExp(`^(?:(?:${n.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,"i"))}var $7=rl.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(t=>{if(typeof t=="string"){rw(t);return}rw(t.scheme,t.optionalSlashes)})},onDestroy(){I7()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},isAllowedUri:(t,e)=>!!Mo(t,e.protocols),validate:t=>!!t,shouldAutoLink:t=>{const e=/^[a-z][a-z0-9+.-]*:\/\//i.test(t),n=/^[a-z][a-z0-9+.-]*:/i.test(t);if(e||n&&!t.includes("@"))return!0;const a=(t.includes("@")?t.split("@").pop():t).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(a)||!/\./.test(a))}}},addAttributes(){return{href:{default:null,parseHTML(t){return t.getAttribute("href")}},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class},title:{default:null}}},parseHTML(){return[{tag:"a[href]",getAttrs:t=>{const e=t.getAttribute("href");return!e||!this.options.isAllowedUri(e,{defaultValidate:n=>!!Mo(n,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:t}){return this.options.isAllowedUri(t.href,{defaultValidate:e=>!!Mo(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?["a",Rt(this.options.HTMLAttributes,t),0]:["a",Rt(this.options.HTMLAttributes,{...t,href:""}),0]},markdownTokenName:"link",parseMarkdown:(t,e)=>e.applyMark("link",e.parseInline(t.tokens||[]),{href:t.href,title:t.title||null}),renderMarkdown:(t,e)=>{var n,s,a,i;const o=(s=(n=t.attrs)==null?void 0:n.href)!=null?s:"",c=(i=(a=t.attrs)==null?void 0:a.title)!=null?i:"",u=e.renderChildren(t);return c?`[${u}](${o} "${c}")`:`[${u}](${o})`},addCommands(){return{setLink:t=>({chain:e})=>{const{href:n}=t;return this.options.isAllowedUri(n,{defaultValidate:s=>!!Mo(s,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?e().setMark(this.name,t).setMeta("preventAutolink",!0).run():!1},toggleLink:t=>({chain:e})=>{const{href:n}=t||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:s=>!!Mo(s,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:e().toggleMark(this.name,t,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()},unsetLink:()=>({chain:t})=>t().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[Qo({find:t=>{const e=[];if(t){const{protocols:n,defaultProtocol:s}=this.options,a=RC(t).filter(i=>i.isLink&&this.options.isAllowedUri(i.value,{defaultValidate:o=>!!Mo(o,n),protocols:n,defaultProtocol:s}));a.length&&a.forEach(i=>{this.options.shouldAutoLink(i.value)&&e.push({text:i.value,data:{href:i.href},index:i.start})})}return e},type:this.type,getAttributes:t=>{var e;return{href:(e=t.data)==null?void 0:e.href}}})]},addProseMirrorPlugins(){const t=[],{protocols:e,defaultProtocol:n}=this.options;return this.options.autolink&&t.push(_7({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:s=>this.options.isAllowedUri(s,{defaultValidate:a=>!!Mo(a,e),protocols:e,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),t.push(z7({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick==="whenNotEditable"?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&t.push(F7({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),t}}),B7=Object.defineProperty,V7=(t,e)=>{for(var n in e)B7(t,n,{get:e[n],enumerable:!0})},H7="listItem",aw="textStyle",iw=/^\s*([-+*])\s$/,OC=An.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:t}){return["ul",Rt(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>t.type!=="list"||t.ordered?[]:{type:"bulletList",content:t.items?e.parseChildren(t.items):[]},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
`):"",markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(H7,this.editor.getAttributes(aw)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let t=lc({find:iw,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(t=lc({find:iw,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(aw),editor:this.editor})),[t]}}),DC=An.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:t}){return["li",Rt(this.options.HTMLAttributes,t),0]},markdownTokenName:"list_item",parseMarkdown:(t,e)=>{if(t.type!=="list_item")return[];let n=[];if(t.tokens&&t.tokens.length>0)if(t.tokens.some(a=>a.type==="paragraph"))n=e.parseChildren(t.tokens);else{const a=t.tokens[0];if(a&&a.type==="text"&&a.tokens&&a.tokens.length>0){if(n=[{type:"paragraph",content:e.parseInline(a.tokens)}],t.tokens.length>1){const o=t.tokens.slice(1),c=e.parseChildren(o);n.push(...c)}}else n=e.parseChildren(t.tokens)}return n.length===0&&(n=[{type:"paragraph",content:[]}]),{type:"listItem",content:n}},renderMarkdown:(t,e,n)=>uy(t,e,s=>{var a,i;return s.parentType==="bulletList"?"- ":s.parentType==="orderedList"?`${(((i=(a=s.meta)==null?void 0:a.parentAttrs)==null?void 0:i.start)||1)+s.index}. `:"- "},n),addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),W7={};V7(W7,{findListItemPos:()=>eu,getNextListDepth:()=>wy,handleBackspace:()=>Jx,handleDelete:()=>Yx,hasListBefore:()=>LC,hasListItemAfter:()=>U7,hasListItemBefore:()=>_C,listItemHasSubList:()=>zC,nextListIsDeeper:()=>FC,nextListIsHigher:()=>$C});var eu=(t,e)=>{const{$from:n}=e.selection,s=Mn(t,e.schema);let a=null,i=n.depth,o=n.pos,c=null;for(;i>0&&c===null;)a=n.node(i),a.type===s?c=i:(i-=1,o-=1);return c===null?null:{$pos:e.doc.resolve(o),depth:c}},wy=(t,e)=>{const n=eu(t,e);if(!n)return!1;const[,s]=K8(e,t,n.$pos.pos+4);return s},LC=(t,e,n)=>{const{$anchor:s}=t.selection,a=Math.max(0,s.pos-2),i=t.doc.resolve(a).node();return!(!i||!n.includes(i.type.name))},_C=(t,e)=>{var n;const{$anchor:s}=e.selection,a=e.doc.resolve(s.pos-2);return!(a.index()===0||((n=a.nodeBefore)==null?void 0:n.type.name)!==t)},zC=(t,e,n)=>{if(!n)return!1;const s=Mn(t,e.schema);let a=!1;return n.descendants(i=>{i.type===s&&(a=!0)}),a},Jx=(t,e,n)=>{if(t.commands.undoInputRule())return!0;if(t.state.selection.from!==t.state.selection.to)return!1;if(!Wi(t.state,e)&&LC(t.state,e,n)){const{$anchor:c}=t.state.selection,u=t.state.doc.resolve(c.before()-1),h=[];u.node().descendants((g,y)=>{g.type.name===e&&h.push({node:g,pos:y})});const f=h.at(-1);if(!f)return!1;const m=t.state.doc.resolve(u.start()+f.pos+1);return t.chain().cut({from:c.start()-1,to:c.end()+1},m.end()).joinForward().run()}if(!Wi(t.state,e)||!Y8(t.state))return!1;const s=eu(e,t.state);if(!s)return!1;const i=t.state.doc.resolve(s.$pos.pos-2).node(s.depth),o=zC(e,t.state,i);return _C(e,t.state)&&!o?t.commands.joinItemBackward():t.chain().liftListItem(e).run()},FC=(t,e)=>{const n=wy(t,e),s=eu(t,e);return!s||!n?!1:n>s.depth},$C=(t,e)=>{const n=wy(t,e),s=eu(t,e);return!s||!n?!1:n<s.depth},Yx=(t,e)=>{if(!Wi(t.state,e)||!J8(t.state,e))return!1;const{selection:n}=t.state,{$from:s,$to:a}=n;return!n.empty&&s.sameParent(a)?!1:FC(e,t.state)?t.chain().focus(t.state.selection.from+4).lift(e).joinBackward().run():$C(e,t.state)?t.chain().joinForward().joinBackward().run():t.commands.joinItemForward()},U7=(t,e)=>{var n;const{$anchor:s}=e.selection,a=e.doc.resolve(s.pos-s.parentOffset-2);return!(a.index()===a.parent.childCount-1||((n=a.nodeAfter)==null?void 0:n.type.name)!==t)},BC=vn.create({name:"listKeymap",addOptions(){return{listTypes:[{itemName:"listItem",wrapperNames:["bulletList","orderedList"]},{itemName:"taskItem",wrapperNames:["taskList"]}]}},addKeyboardShortcuts(){return{Delete:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&Yx(t,n)&&(e=!0)}),e},"Mod-Delete":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&Yx(t,n)&&(e=!0)}),e},Backspace:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:s})=>{t.state.schema.nodes[n]!==void 0&&Jx(t,n,s)&&(e=!0)}),e},"Mod-Backspace":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:s})=>{t.state.schema.nodes[n]!==void 0&&Jx(t,n,s)&&(e=!0)}),e}}}}),ow=/^(\s*)(\d+)\.\s+(.*)$/,K7=/^\s/;function q7(t){const e=[];let n=0,s=0;for(;n<t.length;){const a=t[n],i=a.match(ow);if(!i)break;const[,o,c,u]=i,h=o.length;let f=u,m=n+1;const g=[a];for(;m<t.length;){const y=t[m];if(y.match(ow))break;if(y.trim()==="")g.push(y),f+=`
`,m+=1;else if(y.match(K7))g.push(y),f+=`
${y.slice(h+2)}`,m+=1;else break}e.push({indent:h,number:parseInt(c,10),content:f.trim(),raw:g.join(`
`)}),s=m,n=m}return[e,s]}function VC(t,e,n){var s;const a=[];let i=0;for(;i<t.length;){const o=t[i];if(o.indent===e){const c=o.content.split(`
`),u=((s=c[0])==null?void 0:s.trim())||"",h=[];u&&h.push({type:"paragraph",raw:u,tokens:n.inlineTokens(u)});const f=c.slice(1).join(`
`).trim();if(f){const y=n.blockTokens(f);h.push(...y)}let m=i+1;const g=[];for(;m<t.length&&t[m].indent>e;)g.push(t[m]),m+=1;if(g.length>0){const y=Math.min(...g.map(w=>w.indent)),N=VC(g,y,n);h.push({type:"list",ordered:!0,start:g[0].number,items:N,raw:g.map(w=>w.raw).join(`
`)})}a.push({type:"list_item",raw:o.raw,tokens:h}),i=m}else i+=1}return a}function G7(t,e){return t.map(n=>{if(n.type!=="list_item")return e.parseChildren([n])[0];const s=[];return n.tokens&&n.tokens.length>0&&n.tokens.forEach(a=>{if(a.type==="paragraph"||a.type==="list"||a.type==="blockquote"||a.type==="code")s.push(...e.parseChildren([a]));else if(a.type==="text"&&a.tokens){const i=e.parseChildren([a]);s.push({type:"paragraph",content:i})}else{const i=e.parseChildren([a]);i.length>0&&s.push(...i)}}),{type:"listItem",content:s}})}var J7="listItem",lw="textStyle",cw=/^(\d+)\.\s$/,HC=An.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:t=>t.hasAttribute("start")?parseInt(t.getAttribute("start")||"",10):1},type:{default:null,parseHTML:t=>t.getAttribute("type")}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:t}){const{start:e,...n}=t;return e===1?["ol",Rt(this.options.HTMLAttributes,n),0]:["ol",Rt(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>{if(t.type!=="list"||!t.ordered)return[];const n=t.start||1,s=t.items?G7(t.items,e):[];return n!==1?{type:"orderedList",attrs:{start:n},content:s}:{type:"orderedList",content:s}},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
`):"",markdownTokenizer:{name:"orderedList",level:"block",start:t=>{const e=t.match(/^(\s*)(\d+)\.\s+/),n=e==null?void 0:e.index;return n!==void 0?n:-1},tokenize:(t,e,n)=>{var s;const a=t.split(`
`),[i,o]=q7(a);if(i.length===0)return;const c=VC(i,0,n);return c.length===0?void 0:{type:"list",ordered:!0,start:((s=i[0])==null?void 0:s.number)||1,items:c,raw:a.slice(0,o).join(`
`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(J7,this.editor.getAttributes(lw)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let t=lc({find:cw,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(t=lc({find:cw,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(lw)}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1],editor:this.editor})),[t]}}),Y7=/^\s*(\[([( |x])?\])\s$/,Q7=An.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList",a11y:void 0}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:t=>{const e=t.getAttribute("data-checked");return e===""||e==="true"},renderHTML:t=>({"data-checked":t.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:t,HTMLAttributes:e}){return["li",Rt(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:t.attrs.checked?"checked":null}],["span"]],["div",0]]},parseMarkdown:(t,e)=>{const n=[];if(t.tokens&&t.tokens.length>0?n.push(e.createNode("paragraph",{},e.parseInline(t.tokens))):t.text?n.push(e.createNode("paragraph",{},[e.createNode("text",{text:t.text})])):n.push(e.createNode("paragraph",{},[])),t.nestedTokens&&t.nestedTokens.length>0){const s=e.parseChildren(t.nestedTokens);n.push(...s)}return e.createNode("taskItem",{checked:t.checked||!1},n)},renderMarkdown:(t,e)=>{var n;const a=`- [${(n=t.attrs)!=null&&n.checked?"x":" "}] `;return uy(t,e,a)},addKeyboardShortcuts(){const t={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...t,Tab:()=>this.editor.commands.sinkListItem(this.name)}:t},addNodeView(){return({node:t,HTMLAttributes:e,getPos:n,editor:s})=>{const a=document.createElement("li"),i=document.createElement("label"),o=document.createElement("span"),c=document.createElement("input"),u=document.createElement("div"),h=m=>{var g,y;c.ariaLabel=((y=(g=this.options.a11y)==null?void 0:g.checkboxLabel)==null?void 0:y.call(g,m,c.checked))||`Task item checkbox for ${m.textContent||"empty task item"}`};h(t),i.contentEditable="false",c.type="checkbox",c.addEventListener("mousedown",m=>m.preventDefault()),c.addEventListener("change",m=>{if(!s.isEditable&&!this.options.onReadOnlyChecked){c.checked=!c.checked;return}const{checked:g}=m.target;s.isEditable&&typeof n=="function"&&s.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:y})=>{const N=n();if(typeof N!="number")return!1;const w=y.doc.nodeAt(N);return y.setNodeMarkup(N,void 0,{...w==null?void 0:w.attrs,checked:g}),!0}).run(),!s.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(t,g)||(c.checked=!c.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([m,g])=>{a.setAttribute(m,g)}),a.dataset.checked=t.attrs.checked,c.checked=t.attrs.checked,i.append(c,o),a.append(i,u),Object.entries(e).forEach(([m,g])=>{a.setAttribute(m,g)});let f=new Set(Object.keys(e));return{dom:a,contentDOM:u,update:m=>{if(m.type!==this.type)return!1;a.dataset.checked=m.attrs.checked,c.checked=m.attrs.checked,h(m);const g=s.extensionManager.attributes,y=Bd(m,g),N=new Set(Object.keys(y)),w=this.options.HTMLAttributes;return f.forEach(v=>{N.has(v)||(v in w?a.setAttribute(v,w[v]):a.removeAttribute(v))}),Object.entries(y).forEach(([v,k])=>{k==null?v in w?a.setAttribute(v,w[v]):a.removeAttribute(v):a.setAttribute(v,k)}),f=N,!0}}}},addInputRules(){return[lc({find:Y7,type:this.type,getAttributes:t=>({checked:t[t.length-1]==="x"})})]}}),X7=An.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:t}){return["ul",Rt(this.options.HTMLAttributes,t,{"data-type":this.name}),0]},parseMarkdown:(t,e)=>e.createNode("taskList",{},e.parseChildren(t.items||[])),renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
`):"",markdownTokenizer:{name:"taskList",level:"block",start(t){var e;const n=(e=t.match(/^\s*[-+*]\s+\[([ xX])\]\s+/))==null?void 0:e.index;return n!==void 0?n:-1},tokenize(t,e,n){const s=i=>{const o=Fx(i,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:c=>({indentLevel:c[1].length,mainContent:c[4],checked:c[3].toLowerCase()==="x"}),createToken:(c,u)=>({type:"taskItem",raw:"",mainContent:c.mainContent,indentLevel:c.indentLevel,checked:c.checked,text:c.mainContent,tokens:n.inlineTokens(c.mainContent),nestedTokens:u}),customNestedParser:s},n);return o?[{type:"taskList",raw:o.raw,items:o.items}]:n.blockTokens(i)},a=Fx(t,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:i=>({indentLevel:i[1].length,mainContent:i[4],checked:i[3].toLowerCase()==="x"}),createToken:(i,o)=>({type:"taskItem",raw:"",mainContent:i.mainContent,indentLevel:i.indentLevel,checked:i.checked,text:i.mainContent,tokens:n.inlineTokens(i.mainContent),nestedTokens:o}),customNestedParser:s},n);if(a)return{type:"taskList",raw:a.raw,items:a.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:t})=>t.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});vn.create({name:"listKit",addExtensions(){const t=[];return this.options.bulletList!==!1&&t.push(OC.configure(this.options.bulletList)),this.options.listItem!==!1&&t.push(DC.configure(this.options.listItem)),this.options.listKeymap!==!1&&t.push(BC.configure(this.options.listKeymap)),this.options.orderedList!==!1&&t.push(HC.configure(this.options.orderedList)),this.options.taskItem!==!1&&t.push(Q7.configure(this.options.taskItem)),this.options.taskList!==!1&&t.push(X7.configure(this.options.taskList)),t}});var dw="&nbsp;",Z7=" ",ez=An.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:t}){return["p",Rt(this.options.HTMLAttributes,t),0]},parseMarkdown:(t,e)=>{const n=t.tokens||[];if(n.length===1&&n[0].type==="image")return e.parseChildren([n[0]]);const s=e.parseInline(n);return s.length===1&&s[0].type==="text"&&(s[0].text===dw||s[0].text===Z7)?e.createNode("paragraph",void 0,[]):e.createNode("paragraph",void 0,s)},renderMarkdown:(t,e)=>{if(!t)return"";const n=Array.isArray(t.content)?t.content:[];return n.length===0?dw:e.renderChildren(n)},addCommands(){return{setParagraph:()=>({commands:t})=>t.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),tz=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,nz=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,sz=rl.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["s",Rt(this.options.HTMLAttributes,t),0]},markdownTokenName:"del",parseMarkdown:(t,e)=>e.applyMark("strike",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`~~${e.renderChildren(t)}~~`,addCommands(){return{setStrike:()=>({commands:t})=>t.setMark(this.name),toggleStrike:()=>({commands:t})=>t.toggleMark(this.name),unsetStrike:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[oc({find:tz,type:this.type})]},addPasteRules(){return[Qo({find:nz,type:this.type})]}}),rz=An.create({name:"text",group:"inline",parseMarkdown:t=>({type:"text",text:t.text||""}),renderMarkdown:t=>t.text||""}),az=rl.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["u",Rt(this.options.HTMLAttributes,t),0]},parseMarkdown(t,e){return e.applyMark(this.name||"underline",e.parseInline(t.tokens||[]))},renderMarkdown(t,e){return`++${e.renderChildren(t)}++`},markdownTokenizer:{name:"underline",level:"inline",start(t){return t.indexOf("++")},tokenize(t,e,n){const a=/^(\+\+)([\s\S]+?)(\+\+)/.exec(t);if(!a)return;const i=a[2].trim();return{type:"underline",raw:a[0],text:i,tokens:n.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:t})=>t.setMark(this.name),toggleUnderline:()=>({commands:t})=>t.toggleMark(this.name),unsetUnderline:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}});function iz(t={}){return new Qt({view(e){return new oz(e,t)}})}class oz{constructor(e,n){var s;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(s=n.width)!==null&&s!==void 0?s:1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(a=>{let i=o=>{this[a](o)};return e.dom.addEventListener(a,i),{name:a,handler:i}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,s,a=this.editorView.dom,i=a.getBoundingClientRect(),o=i.width/a.offsetWidth,c=i.height/a.offsetHeight;if(n){let m=e.nodeBefore,g=e.nodeAfter;if(m||g){let y=this.editorView.nodeDOM(this.cursorPos-(m?m.nodeSize:0));if(y){let N=y.getBoundingClientRect(),w=m?N.bottom:N.top;m&&g&&(w=(w+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let v=this.width/2*c;s={left:N.left,right:N.right,top:w-v,bottom:w+v}}}}if(!s){let m=this.editorView.coordsAtPos(this.cursorPos),g=this.width/2*o;s={left:m.left-g,right:m.left+g,top:m.top,bottom:m.bottom}}let u=this.editorView.dom.offsetParent;this.element||(this.element=u.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let h,f;if(!u||u==document.body&&getComputedStyle(u).position=="static")h=-pageXOffset,f=-pageYOffset;else{let m=u.getBoundingClientRect(),g=m.width/u.offsetWidth,y=m.height/u.offsetHeight;h=m.left-u.scrollLeft*g,f=m.top-u.scrollTop*y}this.element.style.left=(s.left-h)/o+"px",this.element.style.top=(s.top-f)/c+"px",this.element.style.width=(s.right-s.left)/o+"px",this.element.style.height=(s.bottom-s.top)/c+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),s=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),a=s&&s.type.spec.disableDropCursor,i=typeof a=="function"?a(this.editorView,n,e):a;if(n&&!i){let o=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let c=LS(this.editorView.state.doc,o,this.editorView.dragging.slice);c!=null&&(o=c)}this.setCursor(o),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class yn extends ot{constructor(e){super(e,e)}map(e,n){let s=e.resolve(n.map(this.head));return yn.valid(s)?new yn(s):ot.near(s)}content(){return Le.empty}eq(e){return e instanceof yn&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new yn(e.resolve(n.pos))}getBookmark(){return new jy(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!lz(e)||!cz(e))return!1;let s=n.type.spec.allowGapCursor;if(s!=null)return s;let a=n.contentMatchAt(e.index()).defaultType;return a&&a.isTextblock}static findGapCursorFrom(e,n,s=!1){e:for(;;){if(!s&&yn.valid(e))return e;let a=e.pos,i=null;for(let o=e.depth;;o--){let c=e.node(o);if(n>0?e.indexAfter(o)<c.childCount:e.index(o)>0){i=c.child(n>0?e.indexAfter(o):e.index(o)-1);break}else if(o==0)return null;a+=n;let u=e.doc.resolve(a);if(yn.valid(u))return u}for(;;){let o=n>0?i.firstChild:i.lastChild;if(!o){if(i.isAtom&&!i.isText&&!Ze.isSelectable(i)){e=e.doc.resolve(a+i.nodeSize*n),s=!1;continue e}break}i=o,a+=n;let c=e.doc.resolve(a);if(yn.valid(c))return c}return null}}}yn.prototype.visible=!1;yn.findFrom=yn.findGapCursorFrom;ot.jsonID("gapcursor",yn);class jy{constructor(e){this.pos=e}map(e){return new jy(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return yn.valid(n)?new yn(n):ot.near(n)}}function WC(t){return t.isAtom||t.spec.isolating||t.spec.createGapCursor}function lz(t){for(let e=t.depth;e>=0;e--){let n=t.index(e),s=t.node(e);if(n==0){if(s.type.spec.isolating)return!0;continue}for(let a=s.child(n-1);;a=a.lastChild){if(a.childCount==0&&!a.inlineContent||WC(a.type))return!0;if(a.inlineContent)return!1}}return!0}function cz(t){for(let e=t.depth;e>=0;e--){let n=t.indexAfter(e),s=t.node(e);if(n==s.childCount){if(s.type.spec.isolating)return!0;continue}for(let a=s.child(n);;a=a.firstChild){if(a.childCount==0&&!a.inlineContent||WC(a.type))return!0;if(a.inlineContent)return!1}}return!0}function dz(){return new Qt({props:{decorations:pz,createSelectionBetween(t,e,n){return e.pos==n.pos&&yn.valid(n)?new yn(n):null},handleClick:hz,handleKeyDown:uz,handleDOMEvents:{beforeinput:fz}}})}const uz=ty({ArrowLeft:Ch("horiz",-1),ArrowRight:Ch("horiz",1),ArrowUp:Ch("vert",-1),ArrowDown:Ch("vert",1)});function Ch(t,e){const n=t=="vert"?e>0?"down":"up":e>0?"right":"left";return function(s,a,i){let o=s.selection,c=e>0?o.$to:o.$from,u=o.empty;if(o instanceof et){if(!i.endOfTextblock(n)||c.depth==0)return!1;u=!1,c=s.doc.resolve(e>0?c.after():c.before())}let h=yn.findGapCursorFrom(c,e,u);return h?(a&&a(s.tr.setSelection(new yn(h))),!0):!1}}function hz(t,e,n){if(!t||!t.editable)return!1;let s=t.state.doc.resolve(e);if(!yn.valid(s))return!1;let a=t.posAtCoords({left:n.clientX,top:n.clientY});return a&&a.inside>-1&&Ze.isSelectable(t.state.doc.nodeAt(a.inside))?!1:(t.dispatch(t.state.tr.setSelection(new yn(s))),!0)}function fz(t,e){if(e.inputType!="insertCompositionText"||!(t.state.selection instanceof yn))return!1;let{$from:n}=t.state.selection,s=n.parent.contentMatchAt(n.index()).findWrapping(t.state.schema.nodes.text);if(!s)return!1;let a=Ne.empty;for(let o=s.length-1;o>=0;o--)a=Ne.from(s[o].createAndFill(null,a));let i=t.state.tr.replace(n.pos,n.pos,new Le(a,0,0));return i.setSelection(et.near(i.doc.resolve(n.pos+1))),t.dispatch(i),!1}function pz(t){if(!(t.selection instanceof yn))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Ht.create(t.doc,[_n.widget(t.selection.head,e,{key:"gapcursor"})])}var Ff=200,Wn=function(){};Wn.prototype.append=function(e){return e.length?(e=Wn.from(e),!this.length&&e||e.length<Ff&&this.leafAppend(e)||this.length<Ff&&e.leafPrepend(this)||this.appendInner(e)):this};Wn.prototype.prepend=function(e){return e.length?Wn.from(e).append(this):this};Wn.prototype.appendInner=function(e){return new mz(this,e)};Wn.prototype.slice=function(e,n){return e===void 0&&(e=0),n===void 0&&(n=this.length),e>=n?Wn.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,n))};Wn.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};Wn.prototype.forEach=function(e,n,s){n===void 0&&(n=0),s===void 0&&(s=this.length),n<=s?this.forEachInner(e,n,s,0):this.forEachInvertedInner(e,n,s,0)};Wn.prototype.map=function(e,n,s){n===void 0&&(n=0),s===void 0&&(s=this.length);var a=[];return this.forEach(function(i,o){return a.push(e(i,o))},n,s),a};Wn.from=function(e){return e instanceof Wn?e:e&&e.length?new UC(e):Wn.empty};var UC=(function(t){function e(s){t.call(this),this.values=s}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(a,i){return a==0&&i==this.length?this:new e(this.values.slice(a,i))},e.prototype.getInner=function(a){return this.values[a]},e.prototype.forEachInner=function(a,i,o,c){for(var u=i;u<o;u++)if(a(this.values[u],c+u)===!1)return!1},e.prototype.forEachInvertedInner=function(a,i,o,c){for(var u=i-1;u>=o;u--)if(a(this.values[u],c+u)===!1)return!1},e.prototype.leafAppend=function(a){if(this.length+a.length<=Ff)return new e(this.values.concat(a.flatten()))},e.prototype.leafPrepend=function(a){if(this.length+a.length<=Ff)return new e(a.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e})(Wn);Wn.empty=new UC([]);var mz=(function(t){function e(n,s){t.call(this),this.left=n,this.right=s,this.length=n.length+s.length,this.depth=Math.max(n.depth,s.depth)+1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(s){return s<this.left.length?this.left.get(s):this.right.get(s-this.left.length)},e.prototype.forEachInner=function(s,a,i,o){var c=this.left.length;if(a<c&&this.left.forEachInner(s,a,Math.min(i,c),o)===!1||i>c&&this.right.forEachInner(s,Math.max(a-c,0),Math.min(this.length,i)-c,o+c)===!1)return!1},e.prototype.forEachInvertedInner=function(s,a,i,o){var c=this.left.length;if(a>c&&this.right.forEachInvertedInner(s,a-c,Math.max(i,c)-c,o+c)===!1||i<c&&this.left.forEachInvertedInner(s,Math.min(a,c),i,o)===!1)return!1},e.prototype.sliceInner=function(s,a){if(s==0&&a==this.length)return this;var i=this.left.length;return a<=i?this.left.slice(s,a):s>=i?this.right.slice(s-i,a-i):this.left.slice(s,i).append(this.right.slice(0,a-i))},e.prototype.leafAppend=function(s){var a=this.right.leafAppend(s);if(a)return new e(this.left,a)},e.prototype.leafPrepend=function(s){var a=this.left.leafPrepend(s);if(a)return new e(a,this.right)},e.prototype.appendInner=function(s){return this.left.depth>=Math.max(this.right.depth,s.depth)+1?new e(this.left,new e(this.right,s)):new e(this,s)},e})(Wn);const gz=500;class zr{constructor(e,n){this.items=e,this.eventCount=n}popEvent(e,n){if(this.eventCount==0)return null;let s=this.items.length;for(;;s--)if(this.items.get(s-1).selection){--s;break}let a,i;n&&(a=this.remapping(s,this.items.length),i=a.maps.length);let o=e.tr,c,u,h=[],f=[];return this.items.forEach((m,g)=>{if(!m.step){a||(a=this.remapping(s,g+1),i=a.maps.length),i--,f.push(m);return}if(a){f.push(new Ni(m.map));let y=m.step.map(a.slice(i)),N;y&&o.maybeStep(y).doc&&(N=o.mapping.maps[o.mapping.maps.length-1],h.push(new Ni(N,void 0,void 0,h.length+f.length))),i--,N&&a.appendMap(N,i)}else o.maybeStep(m.step);if(m.selection)return c=a?m.selection.map(a.slice(i)):m.selection,u=new zr(this.items.slice(0,s).append(f.reverse().concat(h)),this.eventCount-1),!1},this.items.length,0),{remaining:u,transform:o,selection:c}}addTransform(e,n,s,a){let i=[],o=this.eventCount,c=this.items,u=!a&&c.length?c.get(c.length-1):null;for(let f=0;f<e.steps.length;f++){let m=e.steps[f].invert(e.docs[f]),g=new Ni(e.mapping.maps[f],m,n),y;(y=u&&u.merge(g))&&(g=y,f?i.pop():c=c.slice(0,c.length-1)),i.push(g),n&&(o++,n=void 0),a||(u=g)}let h=o-s.depth;return h>yz&&(c=xz(c,h),o-=h),new zr(c.append(i),o)}remapping(e,n){let s=new Dd;return this.items.forEach((a,i)=>{let o=a.mirrorOffset!=null&&i-a.mirrorOffset>=e?s.maps.length-a.mirrorOffset:void 0;s.appendMap(a.map,o)},e,n),s}addMaps(e){return this.eventCount==0?this:new zr(this.items.append(e.map(n=>new Ni(n))),this.eventCount)}rebased(e,n){if(!this.eventCount)return this;let s=[],a=Math.max(0,this.items.length-n),i=e.mapping,o=e.steps.length,c=this.eventCount;this.items.forEach(g=>{g.selection&&c--},a);let u=n;this.items.forEach(g=>{let y=i.getMirror(--u);if(y==null)return;o=Math.min(o,y);let N=i.maps[y];if(g.step){let w=e.steps[y].invert(e.docs[y]),v=g.selection&&g.selection.map(i.slice(u+1,y));v&&c++,s.push(new Ni(N,w,v))}else s.push(new Ni(N))},a);let h=[];for(let g=n;g<o;g++)h.push(new Ni(i.maps[g]));let f=this.items.slice(0,a).append(h).append(s),m=new zr(f,c);return m.emptyItemCount()>gz&&(m=m.compress(this.items.length-s.length)),m}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),s=n.maps.length,a=[],i=0;return this.items.forEach((o,c)=>{if(c>=e)a.push(o),o.selection&&i++;else if(o.step){let u=o.step.map(n.slice(s)),h=u&&u.getMap();if(s--,h&&n.appendMap(h,s),u){let f=o.selection&&o.selection.map(n.slice(s));f&&i++;let m=new Ni(h.invert(),u,f),g,y=a.length-1;(g=a.length&&a[y].merge(m))?a[y]=g:a.push(m)}}else o.map&&s--},this.items.length,0),new zr(Wn.from(a.reverse()),i)}}zr.empty=new zr(Wn.empty,0);function xz(t,e){let n;return t.forEach((s,a)=>{if(s.selection&&e--==0)return n=a,!1}),t.slice(n)}let Ni=class KC{constructor(e,n,s,a){this.map=e,this.step=n,this.selection=s,this.mirrorOffset=a}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new KC(n.getMap().invert(),n,this.selection)}}};class Ci{constructor(e,n,s,a,i){this.done=e,this.undone=n,this.prevRanges=s,this.prevTime=a,this.prevComposition=i}}const yz=20;function bz(t,e,n,s){let a=n.getMeta(Ho),i;if(a)return a.historyState;n.getMeta(wz)&&(t=new Ci(t.done,t.undone,null,0,-1));let o=n.getMeta("appendedTransaction");if(n.steps.length==0)return t;if(o&&o.getMeta(Ho))return o.getMeta(Ho).redo?new Ci(t.done.addTransform(n,void 0,s,zh(e)),t.undone,uw(n.mapping.maps),t.prevTime,t.prevComposition):new Ci(t.done,t.undone.addTransform(n,void 0,s,zh(e)),null,t.prevTime,t.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let c=n.getMeta("composition"),u=t.prevTime==0||!o&&t.prevComposition!=c&&(t.prevTime<(n.time||0)-s.newGroupDelay||!vz(n,t.prevRanges)),h=o?Ug(t.prevRanges,n.mapping):uw(n.mapping.maps);return new Ci(t.done.addTransform(n,u?e.selection.getBookmark():void 0,s,zh(e)),zr.empty,h,n.time,c??t.prevComposition)}else return(i=n.getMeta("rebased"))?new Ci(t.done.rebased(n,i),t.undone.rebased(n,i),Ug(t.prevRanges,n.mapping),t.prevTime,t.prevComposition):new Ci(t.done.addMaps(n.mapping.maps),t.undone.addMaps(n.mapping.maps),Ug(t.prevRanges,n.mapping),t.prevTime,t.prevComposition)}function vz(t,e){if(!e)return!1;if(!t.docChanged)return!0;let n=!1;return t.mapping.maps[0].forEach((s,a)=>{for(let i=0;i<e.length;i+=2)s<=e[i+1]&&a>=e[i]&&(n=!0)}),n}function uw(t){let e=[];for(let n=t.length-1;n>=0&&e.length==0;n--)t[n].forEach((s,a,i,o)=>e.push(i,o));return e}function Ug(t,e){if(!t)return null;let n=[];for(let s=0;s<t.length;s+=2){let a=e.map(t[s],1),i=e.map(t[s+1],-1);a<=i&&n.push(a,i)}return n}function Nz(t,e,n){let s=zh(e),a=Ho.get(e).spec.config,i=(n?t.undone:t.done).popEvent(e,s);if(!i)return null;let o=i.selection.resolve(i.transform.doc),c=(n?t.done:t.undone).addTransform(i.transform,e.selection.getBookmark(),a,s),u=new Ci(n?c:i.remaining,n?i.remaining:c,null,0,-1);return i.transform.setSelection(o).setMeta(Ho,{redo:n,historyState:u})}let Kg=!1,hw=null;function zh(t){let e=t.plugins;if(hw!=e){Kg=!1,hw=e;for(let n=0;n<e.length;n++)if(e[n].spec.historyPreserveItems){Kg=!0;break}}return Kg}const Ho=new ln("history"),wz=new ln("closeHistory");function jz(t={}){return t={depth:t.depth||100,newGroupDelay:t.newGroupDelay||500},new Qt({key:Ho,state:{init(){return new Ci(zr.empty,zr.empty,null,0,-1)},apply(e,n,s){return bz(n,s,e,t)}},config:t,props:{handleDOMEvents:{beforeinput(e,n){let s=n.inputType,a=s=="historyUndo"?GC:s=="historyRedo"?JC:null;return!a||!e.editable?!1:(n.preventDefault(),a(e.state,e.dispatch))}}}})}function qC(t,e){return(n,s)=>{let a=Ho.getState(n);if(!a||(t?a.undone:a.done).eventCount==0)return!1;if(s){let i=Nz(a,n,t);i&&s(e?i.scrollIntoView():i)}return!0}}const GC=qC(!1,!0),JC=qC(!0,!0);vn.create({name:"characterCount",addOptions(){return{limit:null,mode:"textSize",textCounter:t=>t.length,wordCounter:t=>t.split(" ").filter(e=>e!=="").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=t=>{const e=(t==null?void 0:t.node)||this.editor.state.doc;if(((t==null?void 0:t.mode)||this.options.mode)==="textSize"){const s=e.textBetween(0,e.content.size,void 0," ");return this.options.textCounter(s)}return e.nodeSize},this.storage.words=t=>{const e=(t==null?void 0:t.node)||this.editor.state.doc,n=e.textBetween(0,e.content.size," "," ");return this.options.wordCounter(n)}},addProseMirrorPlugins(){let t=!1;return[new Qt({key:new ln("characterCount"),appendTransaction:(e,n,s)=>{if(t)return;const a=this.options.limit;if(a==null||a===0){t=!0;return}const i=this.storage.characters({node:s.doc});if(i>a){const o=i-a,c=0,u=o;console.warn(`[CharacterCount] Initial content exceeded limit of ${a} characters. Content was automatically trimmed.`);const h=s.tr.deleteRange(c,u);return t=!0,h}t=!0},filterTransaction:(e,n)=>{const s=this.options.limit;if(!e.docChanged||s===0||s===null||s===void 0)return!0;const a=this.storage.characters({node:n.doc}),i=this.storage.characters({node:e.doc});if(i<=s||a>s&&i>s&&i<=a)return!0;if(a>s&&i>s&&i>a||!e.getMeta("paste"))return!1;const c=e.selection.$head.pos,u=i-s,h=c-u,f=c;return e.deleteRange(h,f),!(this.storage.characters({node:e.doc})>s)}})]}});var kz=vn.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[iz(this.options)]}});vn.create({name:"focus",addOptions(){return{className:"has-focus",mode:"all"}},addProseMirrorPlugins(){return[new Qt({key:new ln("focus"),props:{decorations:({doc:t,selection:e})=>{const{isEditable:n,isFocused:s}=this.editor,{anchor:a}=e,i=[];if(!n||!s)return Ht.create(t,[]);let o=0;this.options.mode==="deepest"&&t.descendants((u,h)=>{if(u.isText)return;if(!(a>=h&&a<=h+u.nodeSize-1))return!1;o+=1});let c=0;return t.descendants((u,h)=>{if(u.isText||!(a>=h&&a<=h+u.nodeSize-1))return!1;if(c+=1,this.options.mode==="deepest"&&o-c>0||this.options.mode==="shallowest"&&c>1)return this.options.mode==="deepest";i.push(_n.node(h,h+u.nodeSize,{class:this.options.className}))}),Ht.create(t,i)}}})]}});var Sz=vn.create({name:"gapCursor",addProseMirrorPlugins(){return[dz()]},extendNodeSchema(t){var e;const n={name:t.name,options:t.options,storage:t.storage};return{allowGapCursor:(e=At(Ye(t,"allowGapCursor",n)))!=null?e:null}}}),fw="placeholder";function Cz(t){return t.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/^[0-9-]+/,"").replace(/^-+/,"").toLowerCase()}var Ez=vn.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",dataAttribute:fw,placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){const t=this.options.dataAttribute?`data-${Cz(this.options.dataAttribute)}`:`data-${fw}`;return[new Qt({key:new ln("placeholder"),props:{decorations:({doc:e,selection:n})=>{const s=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:a}=n,i=[];if(!s)return null;const o=this.editor.isEmpty;return e.descendants((c,u)=>{const h=a>=u&&a<=u+c.nodeSize,f=!c.isLeaf&&fp(c);if((h||!this.options.showOnlyCurrent)&&f){const m=[this.options.emptyNodeClass];o&&m.push(this.options.emptyEditorClass);const g=_n.node(u,u+c.nodeSize,{class:m.join(" "),[t]:typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:c,pos:u,hasAnchor:h}):this.options.placeholder});i.push(g)}return this.options.includeChildren}),Ht.create(e,i)}}})]}});vn.create({name:"selection",addOptions(){return{className:"selection"}},addProseMirrorPlugins(){const{editor:t,options:e}=this;return[new Qt({key:new ln("selection"),props:{decorations(n){return n.selection.empty||t.isFocused||!t.isEditable||Z2(n.selection)||t.view.dragging?null:Ht.create(n.doc,[_n.inline(n.selection.from,n.selection.to,{class:e.className})])}}})]}});function pw({types:t,node:e}){return e&&Array.isArray(t)&&t.includes(e.type)||(e==null?void 0:e.type)===t}var Tz=vn.create({name:"trailingNode",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var t;const e=new ln(this.name),n=this.options.node||((t=this.editor.schema.topNodeType.contentMatch.defaultType)==null?void 0:t.name)||"paragraph",s=Object.entries(this.editor.schema.nodes).map(([,a])=>a).filter(a=>(this.options.notAfter||[]).concat(n).includes(a.name));return[new Qt({key:e,appendTransaction:(a,i,o)=>{const{doc:c,tr:u,schema:h}=o,f=e.getState(o),m=c.content.size,g=h.nodes[n];if(f)return u.insert(m,g.create())},state:{init:(a,i)=>{const o=i.tr.doc.lastChild;return!pw({node:o,types:s})},apply:(a,i)=>{if(!a.docChanged||a.getMeta("__uniqueIDTransaction"))return i;const o=a.doc.lastChild;return!pw({node:o,types:s})}}})]}}),Mz=vn.create({name:"undoRedo",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:t,dispatch:e})=>GC(t,e),redo:()=>({state:t,dispatch:e})=>JC(t,e)}},addProseMirrorPlugins(){return[jz(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),Az=vn.create({name:"starterKit",addExtensions(){var t,e,n,s;const a=[];return this.options.bold!==!1&&a.push(e7.configure(this.options.bold)),this.options.blockquote!==!1&&a.push(J_.configure(this.options.blockquote)),this.options.bulletList!==!1&&a.push(OC.configure(this.options.bulletList)),this.options.code!==!1&&a.push(s7.configure(this.options.code)),this.options.codeBlock!==!1&&a.push(i7.configure(this.options.codeBlock)),this.options.document!==!1&&a.push(o7.configure(this.options.document)),this.options.dropcursor!==!1&&a.push(kz.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&a.push(Sz.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&a.push(l7.configure(this.options.hardBreak)),this.options.heading!==!1&&a.push(c7.configure(this.options.heading)),this.options.undoRedo!==!1&&a.push(Mz.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&a.push(d7.configure(this.options.horizontalRule)),this.options.italic!==!1&&a.push(m7.configure(this.options.italic)),this.options.listItem!==!1&&a.push(DC.configure(this.options.listItem)),this.options.listKeymap!==!1&&a.push(BC.configure((t=this.options)==null?void 0:t.listKeymap)),this.options.link!==!1&&a.push($7.configure((e=this.options)==null?void 0:e.link)),this.options.orderedList!==!1&&a.push(HC.configure(this.options.orderedList)),this.options.paragraph!==!1&&a.push(ez.configure(this.options.paragraph)),this.options.strike!==!1&&a.push(sz.configure(this.options.strike)),this.options.text!==!1&&a.push(rz.configure(this.options.text)),this.options.underline!==!1&&a.push(az.configure((n=this.options)==null?void 0:n.underline)),this.options.trailingNode!==!1&&a.push(Tz.configure((s=this.options)==null?void 0:s.trailingNode)),a}}),Iz=Az,Pz=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,Rz=An.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:t}){return["img",Rt(this.options.HTMLAttributes,t)]},parseMarkdown:(t,e)=>e.createNode("image",{src:t.href,title:t.title,alt:t.text}),renderMarkdown:t=>{var e,n,s,a,i,o;const c=(n=(e=t.attrs)==null?void 0:e.src)!=null?n:"",u=(a=(s=t.attrs)==null?void 0:s.alt)!=null?a:"",h=(o=(i=t.attrs)==null?void 0:i.title)!=null?o:"";return h?`![${u}](${c} "${h}")`:`![${u}](${c})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>"u")return null;const{directions:t,minWidth:e,minHeight:n,alwaysPreserveAspectRatio:s}=this.options.resize;return({node:a,getPos:i,HTMLAttributes:o,editor:c})=>{const u=document.createElement("img");Object.entries(o).forEach(([m,g])=>{if(g!=null)switch(m){case"width":case"height":break;default:u.setAttribute(m,g);break}}),u.src=o.src;const h=new L6({element:u,editor:c,node:a,getPos:i,onResize:(m,g)=>{u.style.width=`${m}px`,u.style.height=`${g}px`},onCommit:(m,g)=>{const y=i();y!==void 0&&this.editor.chain().setNodeSelection(y).updateAttributes(this.name,{width:m,height:g}).run()},onUpdate:(m,g,y)=>m.type===a.type,options:{directions:t,min:{width:e,height:n},preserveAspectRatio:s===!0}}),f=h.dom;return f.style.visibility="hidden",f.style.pointerEvents="none",u.onload=()=>{f.style.visibility="",f.style.pointerEvents=""},h}},addCommands(){return{setImage:t=>({commands:e})=>e.insertContent({type:this.name,attrs:t})}},addInputRules(){return[gC({find:Pz,type:this.type,getAttributes:t=>{const[,,e,n,s]=t;return{src:n,alt:e,title:s}}})]}}),Oz=Rz;function Dz(t){var e;const{char:n,allowSpaces:s,allowToIncludeChar:a,allowedPrefixes:i,startOfLine:o,$position:c}=t,u=s&&!a,h=z6(n),f=new RegExp(`\\s${h}$`),m=o?"^":"",g=a?"":h,y=u?new RegExp(`${m}${h}.*?(?=\\s${g}|$)`,"gm"):new RegExp(`${m}(?:^)?${h}[^\\s${g}]*`,"gm"),N=((e=c.nodeBefore)==null?void 0:e.isText)&&c.nodeBefore.text;if(!N)return null;const w=c.pos-N.length,v=Array.from(N.matchAll(y)).pop();if(!v||v.input===void 0||v.index===void 0)return null;const k=v.input.slice(Math.max(0,v.index-1),v.index),C=new RegExp(`^[${i==null?void 0:i.join("")}\0]?$`).test(k);if(i!==null&&!C)return null;const E=w+v.index;let I=E+v[0].length;return u&&f.test(N.slice(I-1,I+1))&&(v[0]+=" ",I+=1),E<c.pos&&I>=c.pos?{range:{from:E,to:I},query:v[0].slice(n.length),text:v[0]}:null}var Lz=new ln("suggestion");function _z({pluginKey:t=Lz,editor:e,char:n="@",allowSpaces:s=!1,allowToIncludeChar:a=!1,allowedPrefixes:i=[" "],startOfLine:o=!1,decorationTag:c="span",decorationClass:u="suggestion",decorationContent:h="",decorationEmptyClass:f="is-empty",command:m=()=>null,items:g=()=>[],render:y=()=>({}),allow:N=()=>!0,findSuggestionMatch:w=Dz,shouldShow:v}){let k;const C=y==null?void 0:y(),E=()=>{const D=e.state.selection.$anchor.pos,P=e.view.coordsAtPos(D),{top:R,right:K,bottom:re,left:ue}=P;try{return new DOMRect(ue,R,K-ue,re-R)}catch{return null}},I=(D,P)=>P?()=>{const R=t.getState(e.state),K=R==null?void 0:R.decorationId,re=D.dom.querySelector(`[data-decoration-id="${K}"]`);return(re==null?void 0:re.getBoundingClientRect())||null}:E;function L(D,P){var R;try{const re=t.getState(D.state),ue=re!=null&&re.decorationId?D.dom.querySelector(`[data-decoration-id="${re.decorationId}"]`):null,xe={editor:e,range:(re==null?void 0:re.range)||{from:0,to:0},query:(re==null?void 0:re.query)||null,text:(re==null?void 0:re.text)||null,items:[],command:H=>m({editor:e,range:(re==null?void 0:re.range)||{from:0,to:0},props:H}),decorationNode:ue,clientRect:I(D,ue)};(R=C==null?void 0:C.onExit)==null||R.call(C,xe)}catch{}const K=D.state.tr.setMeta(P,{exit:!0});D.dispatch(K)}const W=new Qt({key:t,view(){return{update:async(D,P)=>{var R,K,re,ue,xe,H,O;const J=(R=this.key)==null?void 0:R.getState(P),$=(K=this.key)==null?void 0:K.getState(D.state),M=J.active&&$.active&&J.range.from!==$.range.from,q=!J.active&&$.active,B=J.active&&!$.active,z=!q&&!B&&J.query!==$.query,G=q||M&&z,oe=z||M,ye=B||M&&z;if(!G&&!oe&&!ye)return;const Ae=ye&&!G?J:$,ke=D.dom.querySelector(`[data-decoration-id="${Ae.decorationId}"]`);k={editor:e,range:Ae.range,query:Ae.query,text:Ae.text,items:[],command:ee=>m({editor:e,range:Ae.range,props:ee}),decorationNode:ke,clientRect:I(D,ke)},G&&((re=C==null?void 0:C.onBeforeStart)==null||re.call(C,k)),oe&&((ue=C==null?void 0:C.onBeforeUpdate)==null||ue.call(C,k)),(oe||G)&&(k.items=await g({editor:e,query:Ae.query})),ye&&((xe=C==null?void 0:C.onExit)==null||xe.call(C,k)),oe&&((H=C==null?void 0:C.onUpdate)==null||H.call(C,k)),G&&((O=C==null?void 0:C.onStart)==null||O.call(C,k))},destroy:()=>{var D;k&&((D=C==null?void 0:C.onExit)==null||D.call(C,k))}}},state:{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}},apply(D,P,R,K){const{isEditable:re}=e,{composing:ue}=e.view,{selection:xe}=D,{empty:H,from:O}=xe,J={...P},$=D.getMeta(t);if($&&$.exit)return J.active=!1,J.decorationId=null,J.range={from:0,to:0},J.query=null,J.text=null,J;if(J.composing=ue,re&&(H||e.view.composing)){(O<P.range.from||O>P.range.to)&&!ue&&!P.composing&&(J.active=!1);const M=w({char:n,allowSpaces:s,allowToIncludeChar:a,allowedPrefixes:i,startOfLine:o,$position:xe.$from}),q=`id_${Math.floor(Math.random()*4294967295)}`;M&&N({editor:e,state:K,range:M.range,isActive:P.active})&&(!v||v({editor:e,range:M.range,query:M.query,text:M.text,transaction:D}))?(J.active=!0,J.decorationId=P.decorationId?P.decorationId:q,J.range=M.range,J.query=M.query,J.text=M.text):J.active=!1}else J.active=!1;return J.active||(J.decorationId=null,J.range={from:0,to:0},J.query=null,J.text=null),J}},props:{handleKeyDown(D,P){var R,K,re,ue;const{active:xe,range:H}=W.getState(D.state);if(!xe)return!1;if(P.key==="Escape"||P.key==="Esc"){const J=W.getState(D.state),$=(R=k==null?void 0:k.decorationNode)!=null?R:null,M=$??(J!=null&&J.decorationId?D.dom.querySelector(`[data-decoration-id="${J.decorationId}"]`):null);if(((K=C==null?void 0:C.onKeyDown)==null?void 0:K.call(C,{view:D,event:P,range:J.range}))||!1)return!0;const B={editor:e,range:J.range,query:J.query,text:J.text,items:[],command:z=>m({editor:e,range:J.range,props:z}),decorationNode:M,clientRect:M?()=>M.getBoundingClientRect()||null:null};return(re=C==null?void 0:C.onExit)==null||re.call(C,B),L(D,t),!0}return((ue=C==null?void 0:C.onKeyDown)==null?void 0:ue.call(C,{view:D,event:P,range:H}))||!1},decorations(D){const{active:P,range:R,decorationId:K,query:re}=W.getState(D);if(!P)return null;const ue=!(re!=null&&re.length),xe=[u];return ue&&xe.push(f),Ht.create(D.doc,[_n.inline(R.from,R.to,{nodeName:c,class:xe.join(" "),"data-decoration-id":K,"data-decoration-content":h})])}}});return W}function zz({editor:t,overrideSuggestionOptions:e,extensionName:n,char:s="@"}){const a=new ln;return{editor:t,char:s,pluginKey:a,command:({editor:i,range:o,props:c})=>{var u,h,f;const m=i.view.state.selection.$to.nodeAfter;((u=m==null?void 0:m.text)==null?void 0:u.startsWith(" "))&&(o.to+=1),i.chain().focus().insertContentAt(o,[{type:n,attrs:{...c,mentionSuggestionChar:s}},{type:"text",text:" "}]).run(),(f=(h=i.view.dom.ownerDocument.defaultView)==null?void 0:h.getSelection())==null||f.collapseToEnd()},allow:({state:i,range:o})=>{const c=i.doc.resolve(o.from),u=i.schema.nodes[n];return!!c.parent.type.contentMatch.matchType(u)},...e}}function YC(t){return(t.options.suggestions.length?t.options.suggestions:[t.options.suggestion]).map(e=>zz({editor:t.editor,overrideSuggestionOptions:e,extensionName:t.name,char:e.char}))}function mw(t,e){const n=YC(t),s=n.find(a=>a.char===e);return s||(n.length?n[0]:null)}var Fz=An.create({name:"mention",priority:101,addOptions(){return{HTMLAttributes:{},renderText({node:t,suggestion:e}){var n,s;return`${(n=e==null?void 0:e.char)!=null?n:"@"}${(s=t.attrs.label)!=null?s:t.attrs.id}`},deleteTriggerWithBackspace:!1,renderHTML({options:t,node:e,suggestion:n}){var s,a;return["span",Rt(this.HTMLAttributes,t.HTMLAttributes),`${(s=n==null?void 0:n.char)!=null?s:"@"}${(a=e.attrs.label)!=null?a:e.attrs.id}`]},suggestions:[],suggestion:{}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:t=>t.getAttribute("data-id"),renderHTML:t=>t.id?{"data-id":t.id}:{}},label:{default:null,parseHTML:t=>t.getAttribute("data-label"),renderHTML:t=>t.label?{"data-label":t.label}:{}},mentionSuggestionChar:{default:"@",parseHTML:t=>t.getAttribute("data-mention-suggestion-char"),renderHTML:t=>({"data-mention-suggestion-char":t.mentionSuggestionChar})}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:t,HTMLAttributes:e}){const n=mw(this,t.attrs.mentionSuggestionChar);if(this.options.renderLabel!==void 0)return console.warn("renderLabel is deprecated use renderText and renderHTML instead"),["span",Rt({"data-type":this.name},this.options.HTMLAttributes,e),this.options.renderLabel({options:this.options,node:t,suggestion:n})];const s={...this.options};s.HTMLAttributes=Rt({"data-type":this.name},this.options.HTMLAttributes,e);const a=this.options.renderHTML({options:s,node:t,suggestion:n});return typeof a=="string"?["span",Rt({"data-type":this.name},this.options.HTMLAttributes,e),a]:a},...xC({nodeName:"mention",name:"@",selfClosing:!0,allowedAttributes:["id","label",{name:"mentionSuggestionChar",skipIfDefault:"@"}],parseAttributes:t=>{const e={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g;let s=n.exec(t);for(;s!==null;){const[,a,i,o]=s,c=i??o;e[a==="char"?"mentionSuggestionChar":a]=c,s=n.exec(t)}return e},serializeAttributes:t=>Object.entries(t).filter(([,e])=>e!=null).map(([e,n])=>`${e==="mentionSuggestionChar"?"char":e}="${n}"`).join(" ")}),renderText({node:t}){const e={options:this.options,node:t,suggestion:mw(this,t.attrs.mentionSuggestionChar)};return this.options.renderLabel!==void 0?(console.warn("renderLabel is deprecated use renderText and renderHTML instead"),this.options.renderLabel(e)):this.options.renderText(e)},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:t,state:e})=>{let n=!1;const{selection:s}=e,{empty:a,anchor:i}=s;if(!a)return!1;let o=new Wa,c=0;return e.doc.nodesBetween(i-1,i,(u,h)=>{if(u.type.name===this.name)return n=!0,o=u,c=h,!1}),n&&t.insertText(this.options.deleteTriggerWithBackspace?"":o.attrs.mentionSuggestionChar,c,c+o.nodeSize),n})}},addProseMirrorPlugins(){return YC(this).map(_z)}}),$z=Fz,Bz=Ez;let Qx,Xx;if(typeof WeakMap<"u"){let t=new WeakMap;Qx=e=>t.get(e),Xx=(e,n)=>(t.set(e,n),n)}else{const t=[];let n=0;Qx=s=>{for(let a=0;a<t.length;a+=2)if(t[a]==s)return t[a+1]},Xx=(s,a)=>(n==10&&(n=0),t[n++]=s,t[n++]=a)}var bn=class{constructor(t,e,n,s){this.width=t,this.height=e,this.map=n,this.problems=s}findCell(t){for(let e=0;e<this.map.length;e++){const n=this.map[e];if(n!=t)continue;const s=e%this.width,a=e/this.width|0;let i=s+1,o=a+1;for(let c=1;i<this.width&&this.map[e+c]==n;c++)i++;for(let c=1;o<this.height&&this.map[e+this.width*c]==n;c++)o++;return{left:s,top:a,right:i,bottom:o}}throw new RangeError(`No cell with offset ${t} found`)}colCount(t){for(let e=0;e<this.map.length;e++)if(this.map[e]==t)return e%this.width;throw new RangeError(`No cell with offset ${t} found`)}nextCell(t,e,n){const{left:s,right:a,top:i,bottom:o}=this.findCell(t);return e=="horiz"?(n<0?s==0:a==this.width)?null:this.map[i*this.width+(n<0?s-1:a)]:(n<0?i==0:o==this.height)?null:this.map[s+this.width*(n<0?i-1:o)]}rectBetween(t,e){const{left:n,right:s,top:a,bottom:i}=this.findCell(t),{left:o,right:c,top:u,bottom:h}=this.findCell(e);return{left:Math.min(n,o),top:Math.min(a,u),right:Math.max(s,c),bottom:Math.max(i,h)}}cellsInRect(t){const e=[],n={};for(let s=t.top;s<t.bottom;s++)for(let a=t.left;a<t.right;a++){const i=s*this.width+a,o=this.map[i];n[o]||(n[o]=!0,!(a==t.left&&a&&this.map[i-1]==o||s==t.top&&s&&this.map[i-this.width]==o)&&e.push(o))}return e}positionAt(t,e,n){for(let s=0,a=0;;s++){const i=a+n.child(s).nodeSize;if(s==t){let o=e+t*this.width;const c=(t+1)*this.width;for(;o<c&&this.map[o]<a;)o++;return o==c?i-1:this.map[o]}a=i}}static get(t){return Qx(t)||Xx(t,Vz(t))}};function Vz(t){if(t.type.spec.tableRole!="table")throw new RangeError("Not a table node: "+t.type.name);const e=Hz(t),n=t.childCount,s=[];let a=0,i=null;const o=[];for(let h=0,f=e*n;h<f;h++)s[h]=0;for(let h=0,f=0;h<n;h++){const m=t.child(h);f++;for(let N=0;;N++){for(;a<s.length&&s[a]!=0;)a++;if(N==m.childCount)break;const w=m.child(N),{colspan:v,rowspan:k,colwidth:C}=w.attrs;for(let E=0;E<k;E++){if(E+h>=n){(i||(i=[])).push({type:"overlong_rowspan",pos:f,n:k-E});break}const I=a+E*e;for(let L=0;L<v;L++){s[I+L]==0?s[I+L]=f:(i||(i=[])).push({type:"collision",row:h,pos:f,n:v-L});const W=C&&C[L];if(W){const D=(I+L)%e*2,P=o[D];P==null||P!=W&&o[D+1]==1?(o[D]=W,o[D+1]=1):P==W&&o[D+1]++}}}a+=v,f+=w.nodeSize}const g=(h+1)*e;let y=0;for(;a<g;)s[a++]==0&&y++;y&&(i||(i=[])).push({type:"missing",row:h,n:y}),f++}(e===0||n===0)&&(i||(i=[])).push({type:"zero_sized"});const c=new bn(e,n,s,i);let u=!1;for(let h=0;!u&&h<o.length;h+=2)o[h]!=null&&o[h+1]<n&&(u=!0);return u&&Wz(c,o,t),c}function Hz(t){let e=-1,n=!1;for(let s=0;s<t.childCount;s++){const a=t.child(s);let i=0;if(n)for(let o=0;o<s;o++){const c=t.child(o);for(let u=0;u<c.childCount;u++){const h=c.child(u);o+h.attrs.rowspan>s&&(i+=h.attrs.colspan)}}for(let o=0;o<a.childCount;o++){const c=a.child(o);i+=c.attrs.colspan,c.attrs.rowspan>1&&(n=!0)}e==-1?e=i:e!=i&&(e=Math.max(e,i))}return e}function Wz(t,e,n){t.problems||(t.problems=[]);const s={};for(let a=0;a<t.map.length;a++){const i=t.map[a];if(s[i])continue;s[i]=!0;const o=n.nodeAt(i);if(!o)throw new RangeError(`No cell with offset ${i} found`);let c=null;const u=o.attrs;for(let h=0;h<u.colspan;h++){const f=e[(a+h)%t.width*2];f!=null&&(!u.colwidth||u.colwidth[h]!=f)&&((c||(c=Uz(u)))[h]=f)}c&&t.problems.unshift({type:"colwidth mismatch",pos:i,colwidth:c})}}function Uz(t){if(t.colwidth)return t.colwidth.slice();const e=[];for(let n=0;n<t.colspan;n++)e.push(0);return e}function bs(t){let e=t.cached.tableNodeTypes;if(!e){e=t.cached.tableNodeTypes={};for(const n in t.nodes){const s=t.nodes[n],a=s.spec.tableRole;a&&(e[a]=s)}}return e}const Mi=new ln("selectingCells");function Xo(t){for(let e=t.depth-1;e>0;e--)if(t.node(e).type.spec.tableRole=="row")return t.node(0).resolve(t.before(e+1));return null}function Kz(t){for(let e=t.depth;e>0;e--){const n=t.node(e).type.spec.tableRole;if(n==="cell"||n==="header_cell")return t.node(e)}return null}function Wr(t){const e=t.selection.$head;for(let n=e.depth;n>0;n--)if(e.node(n).type.spec.tableRole=="row")return!0;return!1}function xp(t){const e=t.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const n=Xo(e.$head)||qz(e.$head);if(n)return n;throw new RangeError(`No cell found around position ${e.head}`)}function qz(t){for(let e=t.nodeAfter,n=t.pos;e;e=e.firstChild,n++){const s=e.type.spec.tableRole;if(s=="cell"||s=="header_cell")return t.doc.resolve(n)}for(let e=t.nodeBefore,n=t.pos;e;e=e.lastChild,n--){const s=e.type.spec.tableRole;if(s=="cell"||s=="header_cell")return t.doc.resolve(n-e.nodeSize)}}function Zx(t){return t.parent.type.spec.tableRole=="row"&&!!t.nodeAfter}function Gz(t){return t.node(0).resolve(t.pos+t.nodeAfter.nodeSize)}function ky(t,e){return t.depth==e.depth&&t.pos>=e.start(-1)&&t.pos<=e.end(-1)}function QC(t,e,n){const s=t.node(-1),a=bn.get(s),i=t.start(-1),o=a.nextCell(t.pos-i,e,n);return o==null?null:t.node(0).resolve(i+o)}function Zo(t,e,n=1){const s={...t,colspan:t.colspan-n};return s.colwidth&&(s.colwidth=s.colwidth.slice(),s.colwidth.splice(e,n),s.colwidth.some(a=>a>0)||(s.colwidth=null)),s}function XC(t,e,n=1){const s={...t,colspan:t.colspan+n};if(s.colwidth){s.colwidth=s.colwidth.slice();for(let a=0;a<n;a++)s.colwidth.splice(e,0,0)}return s}function Jz(t,e,n){const s=bs(e.type.schema).header_cell;for(let a=0;a<t.height;a++)if(e.nodeAt(t.map[n+a*t.width]).type!=s)return!1;return!0}var Yt=class Fa extends ot{constructor(e,n=e){const s=e.node(-1),a=bn.get(s),i=e.start(-1),o=a.rectBetween(e.pos-i,n.pos-i),c=e.node(0),u=a.cellsInRect(o).filter(f=>f!=n.pos-i);u.unshift(n.pos-i);const h=u.map(f=>{const m=s.nodeAt(f);if(!m)throw new RangeError(`No cell with offset ${f} found`);const g=i+f+1;return new BS(c.resolve(g),c.resolve(g+m.content.size))});super(h[0].$from,h[0].$to,h),this.$anchorCell=e,this.$headCell=n}map(e,n){const s=e.resolve(n.map(this.$anchorCell.pos)),a=e.resolve(n.map(this.$headCell.pos));if(Zx(s)&&Zx(a)&&ky(s,a)){const i=this.$anchorCell.node(-1)!=s.node(-1);return i&&this.isRowSelection()?Fa.rowSelection(s,a):i&&this.isColSelection()?Fa.colSelection(s,a):new Fa(s,a)}return et.between(s,a)}content(){const e=this.$anchorCell.node(-1),n=bn.get(e),s=this.$anchorCell.start(-1),a=n.rectBetween(this.$anchorCell.pos-s,this.$headCell.pos-s),i={},o=[];for(let u=a.top;u<a.bottom;u++){const h=[];for(let f=u*n.width+a.left,m=a.left;m<a.right;m++,f++){const g=n.map[f];if(i[g])continue;i[g]=!0;const y=n.findCell(g);let N=e.nodeAt(g);if(!N)throw new RangeError(`No cell with offset ${g} found`);const w=a.left-y.left,v=y.right-a.right;if(w>0||v>0){let k=N.attrs;if(w>0&&(k=Zo(k,0,w)),v>0&&(k=Zo(k,k.colspan-v,v)),y.left<a.left){if(N=N.type.createAndFill(k),!N)throw new RangeError(`Could not create cell with attrs ${JSON.stringify(k)}`)}else N=N.type.create(k,N.content)}if(y.top<a.top||y.bottom>a.bottom){const k={...N.attrs,rowspan:Math.min(y.bottom,a.bottom)-Math.max(y.top,a.top)};y.top<a.top?N=N.type.createAndFill(k):N=N.type.create(k,N.content)}h.push(N)}o.push(e.child(u).copy(Ne.from(h)))}const c=this.isColSelection()&&this.isRowSelection()?e:o;return new Le(Ne.from(c),1,1)}replace(e,n=Le.empty){const s=e.steps.length,a=this.ranges;for(let o=0;o<a.length;o++){const{$from:c,$to:u}=a[o],h=e.mapping.slice(s);e.replace(h.map(c.pos),h.map(u.pos),o?Le.empty:n)}const i=ot.findFrom(e.doc.resolve(e.mapping.slice(s).map(this.to)),-1);i&&e.setSelection(i)}replaceWith(e,n){this.replace(e,new Le(Ne.from(n),0,0))}forEachCell(e){const n=this.$anchorCell.node(-1),s=bn.get(n),a=this.$anchorCell.start(-1),i=s.cellsInRect(s.rectBetween(this.$anchorCell.pos-a,this.$headCell.pos-a));for(let o=0;o<i.length;o++)e(n.nodeAt(i[o]),a+i[o])}isColSelection(){const e=this.$anchorCell.index(-1),n=this.$headCell.index(-1);if(Math.min(e,n)>0)return!1;const s=e+this.$anchorCell.nodeAfter.attrs.rowspan,a=n+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(s,a)==this.$headCell.node(-1).childCount}static colSelection(e,n=e){const s=e.node(-1),a=bn.get(s),i=e.start(-1),o=a.findCell(e.pos-i),c=a.findCell(n.pos-i),u=e.node(0);return o.top<=c.top?(o.top>0&&(e=u.resolve(i+a.map[o.left])),c.bottom<a.height&&(n=u.resolve(i+a.map[a.width*(a.height-1)+c.right-1]))):(c.top>0&&(n=u.resolve(i+a.map[c.left])),o.bottom<a.height&&(e=u.resolve(i+a.map[a.width*(a.height-1)+o.right-1]))),new Fa(e,n)}isRowSelection(){const e=this.$anchorCell.node(-1),n=bn.get(e),s=this.$anchorCell.start(-1),a=n.colCount(this.$anchorCell.pos-s),i=n.colCount(this.$headCell.pos-s);if(Math.min(a,i)>0)return!1;const o=a+this.$anchorCell.nodeAfter.attrs.colspan,c=i+this.$headCell.nodeAfter.attrs.colspan;return Math.max(o,c)==n.width}eq(e){return e instanceof Fa&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,n=e){const s=e.node(-1),a=bn.get(s),i=e.start(-1),o=a.findCell(e.pos-i),c=a.findCell(n.pos-i),u=e.node(0);return o.left<=c.left?(o.left>0&&(e=u.resolve(i+a.map[o.top*a.width])),c.right<a.width&&(n=u.resolve(i+a.map[a.width*(c.top+1)-1]))):(c.left>0&&(n=u.resolve(i+a.map[c.top*a.width])),o.right<a.width&&(e=u.resolve(i+a.map[a.width*(o.top+1)-1]))),new Fa(e,n)}toJSON(){return{type:"cell",anchor:this.$anchorCell.pos,head:this.$headCell.pos}}static fromJSON(e,n){return new Fa(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,s=n){return new Fa(e.resolve(n),e.resolve(s))}getBookmark(){return new Yz(this.$anchorCell.pos,this.$headCell.pos)}};Yt.prototype.visible=!1;ot.jsonID("cell",Yt);var Yz=class ZC{constructor(e,n){this.anchor=e,this.head=n}map(e){return new ZC(e.map(this.anchor),e.map(this.head))}resolve(e){const n=e.resolve(this.anchor),s=e.resolve(this.head);return n.parent.type.spec.tableRole=="row"&&s.parent.type.spec.tableRole=="row"&&n.index()<n.parent.childCount&&s.index()<s.parent.childCount&&ky(n,s)?new Yt(n,s):ot.near(s,1)}};function Qz(t){if(!(t.selection instanceof Yt))return null;const e=[];return t.selection.forEachCell((n,s)=>{e.push(_n.node(s,s+n.nodeSize,{class:"selectedCell"}))}),Ht.create(t.doc,e)}function Xz({$from:t,$to:e}){if(t.pos==e.pos||t.pos<e.pos-6)return!1;let n=t.pos,s=e.pos,a=t.depth;for(;a>=0&&!(t.after(a+1)<t.end(a));a--,n++);for(let i=e.depth;i>=0&&!(e.before(i+1)>e.start(i));i--,s--);return n==s&&/row|table/.test(t.node(a).type.spec.tableRole)}function Zz({$from:t,$to:e}){let n,s;for(let a=t.depth;a>0;a--){const i=t.node(a);if(i.type.spec.tableRole==="cell"||i.type.spec.tableRole==="header_cell"){n=i;break}}for(let a=e.depth;a>0;a--){const i=e.node(a);if(i.type.spec.tableRole==="cell"||i.type.spec.tableRole==="header_cell"){s=i;break}}return n!==s&&e.parentOffset===0}function eF(t,e,n){const s=(e||t).selection,a=(e||t).doc;let i,o;if(s instanceof Ze&&(o=s.node.type.spec.tableRole)){if(o=="cell"||o=="header_cell")i=Yt.create(a,s.from);else if(o=="row"){const c=a.resolve(s.from+1);i=Yt.rowSelection(c,c)}else if(!n){const c=bn.get(s.node),u=s.from+1,h=u+c.map[c.width*c.height-1];i=Yt.create(a,u+1,h)}}else s instanceof et&&Xz(s)?i=et.create(a,s.from):s instanceof et&&Zz(s)&&(i=et.create(a,s.$from.start(),s.$from.end()));return i&&(e||(e=t.tr)).setSelection(i),e}const tF=new ln("fix-tables");function e4(t,e,n,s){const a=t.childCount,i=e.childCount;e:for(let o=0,c=0;o<i;o++){const u=e.child(o);for(let h=c,f=Math.min(a,o+3);h<f;h++)if(t.child(h)==u){c=h+1,n+=u.nodeSize;continue e}s(u,n),c<a&&t.child(c).sameMarkup(u)?e4(t.child(c),u,n+1,s):u.nodesBetween(0,u.content.size,s,n+1),n+=u.nodeSize}}function t4(t,e){let n;const s=(a,i)=>{a.type.spec.tableRole=="table"&&(n=nF(t,a,i,n))};return e?e.doc!=t.doc&&e4(e.doc,t.doc,0,s):t.doc.descendants(s),n}function nF(t,e,n,s){const a=bn.get(e);if(!a.problems)return s;s||(s=t.tr);const i=[];for(let u=0;u<a.height;u++)i.push(0);for(let u=0;u<a.problems.length;u++){const h=a.problems[u];if(h.type=="collision"){const f=e.nodeAt(h.pos);if(!f)continue;const m=f.attrs;for(let g=0;g<m.rowspan;g++)i[h.row+g]+=h.n;s.setNodeMarkup(s.mapping.map(n+1+h.pos),null,Zo(m,m.colspan-h.n,h.n))}else if(h.type=="missing")i[h.row]+=h.n;else if(h.type=="overlong_rowspan"){const f=e.nodeAt(h.pos);if(!f)continue;s.setNodeMarkup(s.mapping.map(n+1+h.pos),null,{...f.attrs,rowspan:f.attrs.rowspan-h.n})}else if(h.type=="colwidth mismatch"){const f=e.nodeAt(h.pos);if(!f)continue;s.setNodeMarkup(s.mapping.map(n+1+h.pos),null,{...f.attrs,colwidth:h.colwidth})}else if(h.type=="zero_sized"){const f=s.mapping.map(n);s.delete(f,f+e.nodeSize)}}let o,c;for(let u=0;u<i.length;u++)i[u]&&(o==null&&(o=u),c=u);for(let u=0,h=n+1;u<a.height;u++){const f=e.child(u),m=h+f.nodeSize,g=i[u];if(g>0){let y="cell";f.firstChild&&(y=f.firstChild.type.spec.tableRole);const N=[];for(let v=0;v<g;v++){const k=bs(t.schema)[y].createAndFill();k&&N.push(k)}const w=(u==0||o==u-1)&&c==u?h+1:m-1;s.insert(s.mapping.map(w),N)}h=m}return s.setMeta(tF,{fixTables:!0})}function ma(t){const e=t.selection,n=xp(t),s=n.node(-1),a=n.start(-1),i=bn.get(s);return{...e instanceof Yt?i.rectBetween(e.$anchorCell.pos-a,e.$headCell.pos-a):i.findCell(n.pos-a),tableStart:a,map:i,table:s}}function n4(t,{map:e,tableStart:n,table:s},a){let i=a>0?-1:0;Jz(e,s,a+i)&&(i=a==0||a==e.width?null:0);for(let o=0;o<e.height;o++){const c=o*e.width+a;if(a>0&&a<e.width&&e.map[c-1]==e.map[c]){const u=e.map[c],h=s.nodeAt(u);t.setNodeMarkup(t.mapping.map(n+u),null,XC(h.attrs,a-e.colCount(u))),o+=h.attrs.rowspan-1}else{const u=i==null?bs(s.type.schema).cell:s.nodeAt(e.map[c+i]).type,h=e.positionAt(o,a,s);t.insert(t.mapping.map(n+h),u.createAndFill())}}return t}function sF(t,e){if(!Wr(t))return!1;if(e){const n=ma(t);e(n4(t.tr,n,n.left))}return!0}function rF(t,e){if(!Wr(t))return!1;if(e){const n=ma(t);e(n4(t.tr,n,n.right))}return!0}function aF(t,{map:e,table:n,tableStart:s},a){const i=t.mapping.maps.length;for(let o=0;o<e.height;){const c=o*e.width+a,u=e.map[c],h=n.nodeAt(u),f=h.attrs;if(a>0&&e.map[c-1]==u||a<e.width-1&&e.map[c+1]==u)t.setNodeMarkup(t.mapping.slice(i).map(s+u),null,Zo(f,a-e.colCount(u)));else{const m=t.mapping.slice(i).map(s+u);t.delete(m,m+h.nodeSize)}o+=f.rowspan}}function iF(t,e){if(!Wr(t))return!1;if(e){const n=ma(t),s=t.tr;if(n.left==0&&n.right==n.map.width)return!1;for(let a=n.right-1;aF(s,n,a),a!=n.left;a--){const i=n.tableStart?s.doc.nodeAt(n.tableStart-1):s.doc;if(!i)throw new RangeError("No table found");n.table=i,n.map=bn.get(i)}e(s)}return!0}function oF(t,e,n){var s;const a=bs(e.type.schema).header_cell;for(let i=0;i<t.width;i++)if(((s=e.nodeAt(t.map[i+n*t.width]))===null||s===void 0?void 0:s.type)!=a)return!1;return!0}function s4(t,{map:e,tableStart:n,table:s},a){let i=n;for(let h=0;h<a;h++)i+=s.child(h).nodeSize;const o=[];let c=a>0?-1:0;oF(e,s,a+c)&&(c=a==0||a==e.height?null:0);for(let h=0,f=e.width*a;h<e.width;h++,f++)if(a>0&&a<e.height&&e.map[f]==e.map[f-e.width]){const m=e.map[f],g=s.nodeAt(m).attrs;t.setNodeMarkup(n+m,null,{...g,rowspan:g.rowspan+1}),h+=g.colspan-1}else{var u;const m=c==null?bs(s.type.schema).cell:(u=s.nodeAt(e.map[f+c*e.width]))===null||u===void 0?void 0:u.type,g=m==null?void 0:m.createAndFill();g&&o.push(g)}return t.insert(i,bs(s.type.schema).row.create(null,o)),t}function lF(t,e){if(!Wr(t))return!1;if(e){const n=ma(t);e(s4(t.tr,n,n.top))}return!0}function cF(t,e){if(!Wr(t))return!1;if(e){const n=ma(t);e(s4(t.tr,n,n.bottom))}return!0}function dF(t,{map:e,table:n,tableStart:s},a){let i=0;for(let h=0;h<a;h++)i+=n.child(h).nodeSize;const o=i+n.child(a).nodeSize,c=t.mapping.maps.length;t.delete(i+s,o+s);const u=new Set;for(let h=0,f=a*e.width;h<e.width;h++,f++){const m=e.map[f];if(!u.has(m)){if(u.add(m),a>0&&m==e.map[f-e.width]){const g=n.nodeAt(m).attrs;t.setNodeMarkup(t.mapping.slice(c).map(m+s),null,{...g,rowspan:g.rowspan-1}),h+=g.colspan-1}else if(a<e.height&&m==e.map[f+e.width]){const g=n.nodeAt(m),y=g.attrs,N=g.type.create({...y,rowspan:g.attrs.rowspan-1},g.content),w=e.positionAt(a+1,h,n);t.insert(t.mapping.slice(c).map(s+w),N),h+=y.colspan-1}}}}function uF(t,e){if(!Wr(t))return!1;if(e){const n=ma(t),s=t.tr;if(n.top==0&&n.bottom==n.map.height)return!1;for(let a=n.bottom-1;dF(s,n,a),a!=n.top;a--){const i=n.tableStart?s.doc.nodeAt(n.tableStart-1):s.doc;if(!i)throw new RangeError("No table found");n.table=i,n.map=bn.get(n.table)}e(s)}return!0}function gw(t){const e=t.content;return e.childCount==1&&e.child(0).isTextblock&&e.child(0).childCount==0}function hF({width:t,height:e,map:n},s){let a=s.top*t+s.left,i=a,o=(s.bottom-1)*t+s.left,c=a+(s.right-s.left-1);for(let u=s.top;u<s.bottom;u++){if(s.left>0&&n[i]==n[i-1]||s.right<t&&n[c]==n[c+1])return!0;i+=t,c+=t}for(let u=s.left;u<s.right;u++){if(s.top>0&&n[a]==n[a-t]||s.bottom<e&&n[o]==n[o+t])return!0;a++,o++}return!1}function xw(t,e){const n=t.selection;if(!(n instanceof Yt)||n.$anchorCell.pos==n.$headCell.pos)return!1;const s=ma(t),{map:a}=s;if(hF(a,s))return!1;if(e){const i=t.tr,o={};let c=Ne.empty,u,h;for(let f=s.top;f<s.bottom;f++)for(let m=s.left;m<s.right;m++){const g=a.map[f*a.width+m],y=s.table.nodeAt(g);if(!(o[g]||!y))if(o[g]=!0,u==null)u=g,h=y;else{gw(y)||(c=c.append(y.content));const N=i.mapping.map(g+s.tableStart);i.delete(N,N+y.nodeSize)}}if(u==null||h==null)return!0;if(i.setNodeMarkup(u+s.tableStart,null,{...XC(h.attrs,h.attrs.colspan,s.right-s.left-h.attrs.colspan),rowspan:s.bottom-s.top}),c.size>0){const f=u+1+h.content.size,m=gw(h)?u+1:f;i.replaceWith(m+s.tableStart,f+s.tableStart,c)}i.setSelection(new Yt(i.doc.resolve(u+s.tableStart))),e(i)}return!0}function yw(t,e){const n=bs(t.schema);return fF(({node:s})=>n[s.type.spec.tableRole])(t,e)}function fF(t){return(e,n)=>{const s=e.selection;let a,i;if(s instanceof Yt){if(s.$anchorCell.pos!=s.$headCell.pos)return!1;a=s.$anchorCell.nodeAfter,i=s.$anchorCell.pos}else{var o;if(a=Kz(s.$from),!a)return!1;i=(o=Xo(s.$from))===null||o===void 0?void 0:o.pos}if(a==null||i==null||a.attrs.colspan==1&&a.attrs.rowspan==1)return!1;if(n){let c=a.attrs;const u=[],h=c.colwidth;c.rowspan>1&&(c={...c,rowspan:1}),c.colspan>1&&(c={...c,colspan:1});const f=ma(e),m=e.tr;for(let y=0;y<f.right-f.left;y++)u.push(h?{...c,colwidth:h&&h[y]?[h[y]]:null}:c);let g;for(let y=f.top;y<f.bottom;y++){let N=f.map.positionAt(y,f.left,f.table);y==f.top&&(N+=a.nodeSize);for(let w=f.left,v=0;w<f.right;w++,v++)w==f.left&&y==f.top||m.insert(g=m.mapping.map(N+f.tableStart,1),t({node:a,row:y,col:w}).createAndFill(u[v]))}m.setNodeMarkup(i,t({node:a,row:f.top,col:f.left}),u[0]),s instanceof Yt&&m.setSelection(new Yt(m.doc.resolve(s.$anchorCell.pos),g?m.doc.resolve(g):void 0)),n(m)}return!0}}function pF(t,e){return function(n,s){if(!Wr(n))return!1;const a=xp(n);if(a.nodeAfter.attrs[t]===e)return!1;if(s){const i=n.tr;n.selection instanceof Yt?n.selection.forEachCell((o,c)=>{o.attrs[t]!==e&&i.setNodeMarkup(c,null,{...o.attrs,[t]:e})}):i.setNodeMarkup(a.pos,null,{...a.nodeAfter.attrs,[t]:e}),s(i)}return!0}}function mF(t){return function(e,n){if(!Wr(e))return!1;if(n){const s=bs(e.schema),a=ma(e),i=e.tr,o=a.map.cellsInRect(t=="column"?{left:a.left,top:0,right:a.right,bottom:a.map.height}:t=="row"?{left:0,top:a.top,right:a.map.width,bottom:a.bottom}:a),c=o.map(u=>a.table.nodeAt(u));for(let u=0;u<o.length;u++)c[u].type==s.header_cell&&i.setNodeMarkup(a.tableStart+o[u],s.cell,c[u].attrs);if(i.steps.length===0)for(let u=0;u<o.length;u++)i.setNodeMarkup(a.tableStart+o[u],s.header_cell,c[u].attrs);n(i)}return!0}}function bw(t,e,n){const s=e.map.cellsInRect({left:0,top:0,right:t=="row"?e.map.width:1,bottom:t=="column"?e.map.height:1});for(let a=0;a<s.length;a++){const i=e.table.nodeAt(s[a]);if(i&&i.type!==n.header_cell)return!1}return!0}function Wd(t,e){return e=e||{useDeprecatedLogic:!1},e.useDeprecatedLogic?mF(t):function(n,s){if(!Wr(n))return!1;if(s){const a=bs(n.schema),i=ma(n),o=n.tr,c=bw("row",i,a),u=bw("column",i,a),h=(t==="column"?c:t==="row"&&u)?1:0,f=t=="column"?{left:0,top:h,right:1,bottom:i.map.height}:t=="row"?{left:h,top:0,right:i.map.width,bottom:1}:i,m=t=="column"?u?a.cell:a.header_cell:t=="row"?c?a.cell:a.header_cell:a.cell;i.map.cellsInRect(f).forEach(g=>{const y=g+i.tableStart,N=o.doc.nodeAt(y);N&&o.setNodeMarkup(y,m,N.attrs)}),s(o)}return!0}}Wd("row",{useDeprecatedLogic:!0});Wd("column",{useDeprecatedLogic:!0});const gF=Wd("cell",{useDeprecatedLogic:!0});function xF(t,e){if(e<0){const n=t.nodeBefore;if(n)return t.pos-n.nodeSize;for(let s=t.index(-1)-1,a=t.before();s>=0;s--){const i=t.node(-1).child(s),o=i.lastChild;if(o)return a-1-o.nodeSize;a-=i.nodeSize}}else{if(t.index()<t.parent.childCount-1)return t.pos+t.nodeAfter.nodeSize;const n=t.node(-1);for(let s=t.indexAfter(-1),a=t.after();s<n.childCount;s++){const i=n.child(s);if(i.childCount)return a+1;a+=i.nodeSize}}return null}function vw(t){return function(e,n){if(!Wr(e))return!1;const s=xF(xp(e),t);if(s==null)return!1;if(n){const a=e.doc.resolve(s);n(e.tr.setSelection(et.between(a,Gz(a))).scrollIntoView())}return!0}}function yF(t,e){const n=t.selection.$anchor;for(let s=n.depth;s>0;s--)if(n.node(s).type.spec.tableRole=="table")return e&&e(t.tr.delete(n.before(s),n.after(s)).scrollIntoView()),!0;return!1}function Eh(t,e){const n=t.selection;if(!(n instanceof Yt))return!1;if(e){const s=t.tr,a=bs(t.schema).cell.createAndFill().content;n.forEachCell((i,o)=>{i.content.eq(a)||s.replace(s.mapping.map(o+1),s.mapping.map(o+i.nodeSize-1),new Le(a,0,0))}),s.docChanged&&e(s)}return!0}function bF(t){if(t.size===0)return null;let{content:e,openStart:n,openEnd:s}=t;for(;e.childCount==1&&(n>0&&s>0||e.child(0).type.spec.tableRole=="table");)n--,s--,e=e.child(0).content;const a=e.child(0),i=a.type.spec.tableRole,o=a.type.schema,c=[];if(i=="row")for(let u=0;u<e.childCount;u++){let h=e.child(u).content;const f=u?0:Math.max(0,n-1),m=u<e.childCount-1?0:Math.max(0,s-1);(f||m)&&(h=e0(bs(o).row,new Le(h,f,m)).content),c.push(h)}else if(i=="cell"||i=="header_cell")c.push(n||s?e0(bs(o).row,new Le(e,n,s)).content:e);else return null;return vF(o,c)}function vF(t,e){const n=[];for(let a=0;a<e.length;a++){const i=e[a];for(let o=i.childCount-1;o>=0;o--){const{rowspan:c,colspan:u}=i.child(o).attrs;for(let h=a;h<a+c;h++)n[h]=(n[h]||0)+u}}let s=0;for(let a=0;a<n.length;a++)s=Math.max(s,n[a]);for(let a=0;a<n.length;a++)if(a>=e.length&&e.push(Ne.empty),n[a]<s){const i=bs(t).cell.createAndFill(),o=[];for(let c=n[a];c<s;c++)o.push(i);e[a]=e[a].append(Ne.from(o))}return{height:e.length,width:s,rows:e}}function e0(t,e){const n=t.createAndFill();return new F0(n).replace(0,n.content.size,e).doc}function NF({width:t,height:e,rows:n},s,a){if(t!=s){const i=[],o=[];for(let c=0;c<n.length;c++){const u=n[c],h=[];for(let f=i[c]||0,m=0;f<s;m++){let g=u.child(m%u.childCount);f+g.attrs.colspan>s&&(g=g.type.createChecked(Zo(g.attrs,g.attrs.colspan,f+g.attrs.colspan-s),g.content)),h.push(g),f+=g.attrs.colspan;for(let y=1;y<g.attrs.rowspan;y++)i[c+y]=(i[c+y]||0)+g.attrs.colspan}o.push(Ne.from(h))}n=o,t=s}if(e!=a){const i=[];for(let o=0,c=0;o<a;o++,c++){const u=[],h=n[c%e];for(let f=0;f<h.childCount;f++){let m=h.child(f);o+m.attrs.rowspan>a&&(m=m.type.create({...m.attrs,rowspan:Math.max(1,a-m.attrs.rowspan)},m.content)),u.push(m)}i.push(Ne.from(u))}n=i,e=a}return{width:t,height:e,rows:n}}function wF(t,e,n,s,a,i,o){const c=t.doc.type.schema,u=bs(c);let h,f;if(a>e.width)for(let m=0,g=0;m<e.height;m++){const y=n.child(m);g+=y.nodeSize;const N=[];let w;y.lastChild==null||y.lastChild.type==u.cell?w=h||(h=u.cell.createAndFill()):w=f||(f=u.header_cell.createAndFill());for(let v=e.width;v<a;v++)N.push(w);t.insert(t.mapping.slice(o).map(g-1+s),N)}if(i>e.height){const m=[];for(let N=0,w=(e.height-1)*e.width;N<Math.max(e.width,a);N++){const v=N>=e.width?!1:n.nodeAt(e.map[w+N]).type==u.header_cell;m.push(v?f||(f=u.header_cell.createAndFill()):h||(h=u.cell.createAndFill()))}const g=u.row.create(null,Ne.from(m)),y=[];for(let N=e.height;N<i;N++)y.push(g);t.insert(t.mapping.slice(o).map(s+n.nodeSize-2),y)}return!!(h||f)}function Nw(t,e,n,s,a,i,o,c){if(o==0||o==e.height)return!1;let u=!1;for(let h=a;h<i;h++){const f=o*e.width+h,m=e.map[f];if(e.map[f-e.width]==m){u=!0;const g=n.nodeAt(m),{top:y,left:N}=e.findCell(m);t.setNodeMarkup(t.mapping.slice(c).map(m+s),null,{...g.attrs,rowspan:o-y}),t.insert(t.mapping.slice(c).map(e.positionAt(o,N,n)),g.type.createAndFill({...g.attrs,rowspan:y+g.attrs.rowspan-o})),h+=g.attrs.colspan-1}}return u}function ww(t,e,n,s,a,i,o,c){if(o==0||o==e.width)return!1;let u=!1;for(let h=a;h<i;h++){const f=h*e.width+o,m=e.map[f];if(e.map[f-1]==m){u=!0;const g=n.nodeAt(m),y=e.colCount(m),N=t.mapping.slice(c).map(m+s);t.setNodeMarkup(N,null,Zo(g.attrs,o-y,g.attrs.colspan-(o-y))),t.insert(N+g.nodeSize,g.type.createAndFill(Zo(g.attrs,0,o-y))),h+=g.attrs.rowspan-1}}return u}function jw(t,e,n,s,a){let i=n?t.doc.nodeAt(n-1):t.doc;if(!i)throw new Error("No table found");let o=bn.get(i);const{top:c,left:u}=s,h=u+a.width,f=c+a.height,m=t.tr;let g=0;function y(){if(i=n?m.doc.nodeAt(n-1):m.doc,!i)throw new Error("No table found");o=bn.get(i),g=m.mapping.maps.length}wF(m,o,i,n,h,f,g)&&y(),Nw(m,o,i,n,u,h,c,g)&&y(),Nw(m,o,i,n,u,h,f,g)&&y(),ww(m,o,i,n,c,f,u,g)&&y(),ww(m,o,i,n,c,f,h,g)&&y();for(let N=c;N<f;N++){const w=o.positionAt(N,u,i),v=o.positionAt(N,h,i);m.replace(m.mapping.slice(g).map(w+n),m.mapping.slice(g).map(v+n),new Le(a.rows[N-c],0,0))}y(),m.setSelection(new Yt(m.doc.resolve(n+o.positionAt(c,u,i)),m.doc.resolve(n+o.positionAt(f-1,h-1,i)))),e(m)}const jF=ty({ArrowLeft:Th("horiz",-1),ArrowRight:Th("horiz",1),ArrowUp:Th("vert",-1),ArrowDown:Th("vert",1),"Shift-ArrowLeft":Mh("horiz",-1),"Shift-ArrowRight":Mh("horiz",1),"Shift-ArrowUp":Mh("vert",-1),"Shift-ArrowDown":Mh("vert",1),Backspace:Eh,"Mod-Backspace":Eh,Delete:Eh,"Mod-Delete":Eh});function Fh(t,e,n){return n.eq(t.selection)?!1:(e&&e(t.tr.setSelection(n).scrollIntoView()),!0)}function Th(t,e){return(n,s,a)=>{if(!a)return!1;const i=n.selection;if(i instanceof Yt)return Fh(n,s,ot.near(i.$headCell,e));if(t!="horiz"&&!i.empty)return!1;const o=r4(a,t,e);if(o==null)return!1;if(t=="horiz")return Fh(n,s,ot.near(n.doc.resolve(i.head+e),e));{const c=n.doc.resolve(o),u=QC(c,t,e);let h;return u?h=ot.near(u,1):e<0?h=ot.near(n.doc.resolve(c.before(-1)),-1):h=ot.near(n.doc.resolve(c.after(-1)),1),Fh(n,s,h)}}}function Mh(t,e){return(n,s,a)=>{if(!a)return!1;const i=n.selection;let o;if(i instanceof Yt)o=i;else{const u=r4(a,t,e);if(u==null)return!1;o=new Yt(n.doc.resolve(u))}const c=QC(o.$headCell,t,e);return c?Fh(n,s,new Yt(o.$anchorCell,c)):!1}}function kF(t,e){const n=t.state.doc,s=Xo(n.resolve(e));return s?(t.dispatch(t.state.tr.setSelection(new Yt(s))),!0):!1}function SF(t,e,n){if(!Wr(t.state))return!1;let s=bF(n);const a=t.state.selection;if(a instanceof Yt){s||(s={width:1,height:1,rows:[Ne.from(e0(bs(t.state.schema).cell,n))]});const i=a.$anchorCell.node(-1),o=a.$anchorCell.start(-1),c=bn.get(i).rectBetween(a.$anchorCell.pos-o,a.$headCell.pos-o);return s=NF(s,c.right-c.left,c.bottom-c.top),jw(t.state,t.dispatch,o,c,s),!0}else if(s){const i=xp(t.state),o=i.start(-1);return jw(t.state,t.dispatch,o,bn.get(i.node(-1)).findCell(i.pos-o),s),!0}else return!1}function CF(t,e){var n;if(e.button!=0||e.ctrlKey||e.metaKey)return;const s=kw(t,e.target);let a;if(e.shiftKey&&t.state.selection instanceof Yt)i(t.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&s&&(a=Xo(t.state.selection.$anchor))!=null&&((n=qg(t,e))===null||n===void 0?void 0:n.pos)!=a.pos)i(a,e),e.preventDefault();else if(!s)return;function i(u,h){let f=qg(t,h);const m=Mi.getState(t.state)==null;if(!f||!ky(u,f))if(m)f=u;else return;const g=new Yt(u,f);if(m||!t.state.selection.eq(g)){const y=t.state.tr.setSelection(g);m&&y.setMeta(Mi,u.pos),t.dispatch(y)}}function o(){t.root.removeEventListener("mouseup",o),t.root.removeEventListener("dragstart",o),t.root.removeEventListener("mousemove",c),Mi.getState(t.state)!=null&&t.dispatch(t.state.tr.setMeta(Mi,-1))}function c(u){const h=u,f=Mi.getState(t.state);let m;if(f!=null)m=t.state.doc.resolve(f);else if(kw(t,h.target)!=s&&(m=qg(t,e),!m))return o();m&&i(m,h)}t.root.addEventListener("mouseup",o),t.root.addEventListener("dragstart",o),t.root.addEventListener("mousemove",c)}function r4(t,e,n){if(!(t.state.selection instanceof et))return null;const{$head:s}=t.state.selection;for(let a=s.depth-1;a>=0;a--){const i=s.node(a);if((n<0?s.index(a):s.indexAfter(a))!=(n<0?0:i.childCount))return null;if(i.type.spec.tableRole=="cell"||i.type.spec.tableRole=="header_cell"){const o=s.before(a),c=e=="vert"?n>0?"down":"up":n>0?"right":"left";return t.endOfTextblock(c)?o:null}}return null}function kw(t,e){for(;e&&e!=t.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function qg(t,e){const n=t.posAtCoords({left:e.clientX,top:e.clientY});if(!n)return null;let{inside:s,pos:a}=n;return s>=0&&Xo(t.state.doc.resolve(s))||Xo(t.state.doc.resolve(a))}var EF=class{constructor(e,n){this.node=e,this.defaultCellMinWidth=n,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.table.style.setProperty("--default-cell-min-width",`${n}px`),this.colgroup=this.table.appendChild(document.createElement("colgroup")),t0(e,this.colgroup,this.table,n),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,t0(e,this.colgroup,this.table,this.defaultCellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}};function t0(t,e,n,s,a,i){let o=0,c=!0,u=e.firstChild;const h=t.firstChild;if(h){for(let m=0,g=0;m<h.childCount;m++){const{colspan:y,colwidth:N}=h.child(m).attrs;for(let w=0;w<y;w++,g++){const v=a==g?i:N&&N[w],k=v?v+"px":"";if(o+=v||s,v||(c=!1),u)u.style.width!=k&&(u.style.width=k),u=u.nextSibling;else{const C=document.createElement("col");C.style.width=k,e.appendChild(C)}}}for(;u;){var f;const m=u.nextSibling;(f=u.parentNode)===null||f===void 0||f.removeChild(u),u=m}c?(n.style.width=o+"px",n.style.minWidth=""):(n.style.width="",n.style.minWidth=o+"px")}}const ar=new ln("tableColumnResizing");function TF({handleWidth:t=5,cellMinWidth:e=25,defaultCellMinWidth:n=100,View:s=EF,lastColumnResizable:a=!0}={}){const i=new Qt({key:ar,state:{init(o,c){var u;const h=(u=i.spec)===null||u===void 0||(u=u.props)===null||u===void 0?void 0:u.nodeViews,f=bs(c.schema).table.name;return s&&h&&(h[f]=(m,g)=>new s(m,n,g)),new MF(-1,!1)},apply(o,c){return c.apply(o)}},props:{attributes:o=>{const c=ar.getState(o);return c&&c.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(o,c)=>{AF(o,c,t,a)},mouseleave:o=>{IF(o)},mousedown:(o,c)=>{PF(o,c,e,n)}},decorations:o=>{const c=ar.getState(o);if(c&&c.activeHandle>-1)return _F(o,c.activeHandle)},nodeViews:{}}});return i}var MF=class $h{constructor(e,n){this.activeHandle=e,this.dragging=n}apply(e){const n=this,s=e.getMeta(ar);if(s&&s.setHandle!=null)return new $h(s.setHandle,!1);if(s&&s.setDragging!==void 0)return new $h(n.activeHandle,s.setDragging);if(n.activeHandle>-1&&e.docChanged){let a=e.mapping.map(n.activeHandle,-1);return Zx(e.doc.resolve(a))||(a=-1),new $h(a,n.dragging)}return n}};function AF(t,e,n,s){if(!t.editable)return;const a=ar.getState(t.state);if(a&&!a.dragging){const i=OF(e.target);let o=-1;if(i){const{left:c,right:u}=i.getBoundingClientRect();e.clientX-c<=n?o=Sw(t,e,"left",n):u-e.clientX<=n&&(o=Sw(t,e,"right",n))}if(o!=a.activeHandle){if(!s&&o!==-1){const c=t.state.doc.resolve(o),u=c.node(-1),h=bn.get(u),f=c.start(-1);if(h.colCount(c.pos-f)+c.nodeAfter.attrs.colspan-1==h.width-1)return}a4(t,o)}}}function IF(t){if(!t.editable)return;const e=ar.getState(t.state);e&&e.activeHandle>-1&&!e.dragging&&a4(t,-1)}function PF(t,e,n,s){var a;if(!t.editable)return!1;const i=(a=t.dom.ownerDocument.defaultView)!==null&&a!==void 0?a:window,o=ar.getState(t.state);if(!o||o.activeHandle==-1||o.dragging)return!1;const c=t.state.doc.nodeAt(o.activeHandle),u=RF(t,o.activeHandle,c.attrs);t.dispatch(t.state.tr.setMeta(ar,{setDragging:{startX:e.clientX,startWidth:u}}));function h(m){i.removeEventListener("mouseup",h),i.removeEventListener("mousemove",f);const g=ar.getState(t.state);g!=null&&g.dragging&&(DF(t,g.activeHandle,Cw(g.dragging,m,n)),t.dispatch(t.state.tr.setMeta(ar,{setDragging:null})))}function f(m){if(!m.which)return h(m);const g=ar.getState(t.state);if(g&&g.dragging){const y=Cw(g.dragging,m,n);Ew(t,g.activeHandle,y,s)}}return Ew(t,o.activeHandle,u,s),i.addEventListener("mouseup",h),i.addEventListener("mousemove",f),e.preventDefault(),!0}function RF(t,e,{colspan:n,colwidth:s}){const a=s&&s[s.length-1];if(a)return a;const i=t.domAtPos(e);let o=i.node.childNodes[i.offset].offsetWidth,c=n;if(s)for(let u=0;u<n;u++)s[u]&&(o-=s[u],c--);return o/c}function OF(t){for(;t&&t.nodeName!="TD"&&t.nodeName!="TH";)t=t.classList&&t.classList.contains("ProseMirror")?null:t.parentNode;return t}function Sw(t,e,n,s){const a=n=="right"?-s:s,i=t.posAtCoords({left:e.clientX+a,top:e.clientY});if(!i)return-1;const{pos:o}=i,c=Xo(t.state.doc.resolve(o));if(!c)return-1;if(n=="right")return c.pos;const u=bn.get(c.node(-1)),h=c.start(-1),f=u.map.indexOf(c.pos-h);return f%u.width==0?-1:h+u.map[f-1]}function Cw(t,e,n){const s=e.clientX-t.startX;return Math.max(n,t.startWidth+s)}function a4(t,e){t.dispatch(t.state.tr.setMeta(ar,{setHandle:e}))}function DF(t,e,n){const s=t.state.doc.resolve(e),a=s.node(-1),i=bn.get(a),o=s.start(-1),c=i.colCount(s.pos-o)+s.nodeAfter.attrs.colspan-1,u=t.state.tr;for(let h=0;h<i.height;h++){const f=h*i.width+c;if(h&&i.map[f]==i.map[f-i.width])continue;const m=i.map[f],g=a.nodeAt(m).attrs,y=g.colspan==1?0:c-i.colCount(m);if(g.colwidth&&g.colwidth[y]==n)continue;const N=g.colwidth?g.colwidth.slice():LF(g.colspan);N[y]=n,u.setNodeMarkup(o+m,null,{...g,colwidth:N})}u.docChanged&&t.dispatch(u)}function Ew(t,e,n,s){const a=t.state.doc.resolve(e),i=a.node(-1),o=a.start(-1),c=bn.get(i).colCount(a.pos-o)+a.nodeAfter.attrs.colspan-1;let u=t.domAtPos(a.start(-1)).node;for(;u&&u.nodeName!="TABLE";)u=u.parentNode;u&&t0(i,u.firstChild,u,s,c,n)}function LF(t){return Array(t).fill(0)}function _F(t,e){const n=[],s=t.doc.resolve(e),a=s.node(-1);if(!a)return Ht.empty;const i=bn.get(a),o=s.start(-1),c=i.colCount(s.pos-o)+s.nodeAfter.attrs.colspan-1;for(let h=0;h<i.height;h++){const f=c+h*i.width;if((c==i.width-1||i.map[f]!=i.map[f+1])&&(h==0||i.map[f]!=i.map[f-i.width])){var u;const m=i.map[f],g=o+m+a.nodeAt(m).nodeSize-1,y=document.createElement("div");y.className="column-resize-handle",!((u=ar.getState(t))===null||u===void 0)&&u.dragging&&n.push(_n.node(o+m,o+m+a.nodeAt(m).nodeSize,{class:"column-resize-dragging"})),n.push(_n.widget(g,y))}}return Ht.create(t.doc,n)}function zF({allowTableNodeSelection:t=!1}={}){return new Qt({key:Mi,state:{init(){return null},apply(e,n){const s=e.getMeta(Mi);if(s!=null)return s==-1?null:s;if(n==null||!e.docChanged)return n;const{deleted:a,pos:i}=e.mapping.mapResult(n);return a?null:i}},props:{decorations:Qz,handleDOMEvents:{mousedown:CF},createSelectionBetween(e){return Mi.getState(e.state)!=null?e.state.selection:null},handleTripleClick:kF,handleKeyDown:jF,handlePaste:SF},appendTransaction(e,n,s){return eF(s,t4(s,n),t)}})}var i4=An.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:t=>{var e,n;const s=t.getAttribute("colwidth"),a=s?s.split(",").map(i=>parseInt(i,10)):null;if(!a){const i=(e=t.closest("table"))==null?void 0:e.querySelectorAll("colgroup > col"),o=Array.from(((n=t.parentElement)==null?void 0:n.children)||[]).indexOf(t);if(o&&o>-1&&i&&i[o]){const c=i[o].getAttribute("width");return c?[parseInt(c,10)]:null}}return a}}}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td"}]},renderHTML({HTMLAttributes:t}){return["td",Rt(this.options.HTMLAttributes,t),0]}}),o4=An.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:t=>{const e=t.getAttribute("colwidth");return e?e.split(",").map(s=>parseInt(s,10)):null}}}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th"}]},renderHTML({HTMLAttributes:t}){return["th",Rt(this.options.HTMLAttributes,t),0]}}),l4=An.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:t}){return["tr",Rt(this.options.HTMLAttributes,t),0]}});function n0(t,e){return e?["width",`${Math.max(e,t)}px`]:["min-width",`${t}px`]}function Tw(t,e,n,s,a,i){var o;let c=0,u=!0,h=e.firstChild;const f=t.firstChild;if(f!==null)for(let g=0,y=0;g<f.childCount;g+=1){const{colspan:N,colwidth:w}=f.child(g).attrs;for(let v=0;v<N;v+=1,y+=1){const k=a===y?i:w&&w[v],C=k?`${k}px`:"";if(c+=k||s,k||(u=!1),h){if(h.style.width!==C){const[E,I]=n0(s,k);h.style.setProperty(E,I)}h=h.nextSibling}else{const E=document.createElement("col"),[I,L]=n0(s,k);E.style.setProperty(I,L),e.appendChild(E)}}}for(;h;){const g=h.nextSibling;(o=h.parentNode)==null||o.removeChild(h),h=g}const m=t.attrs.style&&typeof t.attrs.style=="string"&&/\bwidth\s*:/i.test(t.attrs.style);u&&!m?(n.style.width=`${c}px`,n.style.minWidth=""):(n.style.width="",n.style.minWidth=`${c}px`)}var FF=class{constructor(t,e){this.node=t,this.cellMinWidth=e,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),t.attrs.style&&(this.table.style.cssText=t.attrs.style),this.colgroup=this.table.appendChild(document.createElement("colgroup")),Tw(t,this.colgroup,this.table,e),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(t){return t.type!==this.node.type?!1:(this.node=t,Tw(t,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(t){const e=t.target,n=this.dom.contains(e),s=this.contentDOM.contains(e);return!!(n&&!s&&(t.type==="attributes"||t.type==="childList"||t.type==="characterData"))}};function $F(t,e,n,s){let a=0,i=!0;const o=[],c=t.firstChild;if(!c)return{};for(let m=0,g=0;m<c.childCount;m+=1){const{colspan:y,colwidth:N}=c.child(m).attrs;for(let w=0;w<y;w+=1,g+=1){const v=n===g?s:N&&N[w];a+=v||e,v||(i=!1);const[k,C]=n0(e,v);o.push(["col",{style:`${k}: ${C}`}])}}const u=i?`${a}px`:"",h=i?"":`${a}px`;return{colgroup:["colgroup",{},...o],tableWidth:u,tableMinWidth:h}}function Mw(t,e){return t.createAndFill()}function BF(t){if(t.cached.tableNodeTypes)return t.cached.tableNodeTypes;const e={};return Object.keys(t.nodes).forEach(n=>{const s=t.nodes[n];s.spec.tableRole&&(e[s.spec.tableRole]=s)}),t.cached.tableNodeTypes=e,e}function VF(t,e,n,s,a){const i=BF(t),o=[],c=[];for(let h=0;h<n;h+=1){const f=Mw(i.cell);if(f&&c.push(f),s){const m=Mw(i.header_cell);m&&o.push(m)}}const u=[];for(let h=0;h<e;h+=1)u.push(i.row.createChecked(null,s&&h===0?o:c));return i.table.createChecked(null,u)}function HF(t){return t instanceof Yt}var Ah=({editor:t})=>{const{selection:e}=t.state;if(!HF(e))return!1;let n=0;const s=U2(e.ranges[0].$from,i=>i.type.name==="table");return s==null||s.node.descendants(i=>{if(i.type.name==="table")return!1;["tableCell","tableHeader"].includes(i.type.name)&&(n+=1)}),n===e.ranges.length?(t.commands.deleteTable(),!0):!1},WF="";function UF(t){return(t||"").replace(/\s+/g," ").trim()}function KF(t,e,n={}){var s;const a=(s=n.cellLineSeparator)!=null?s:WF;if(!t||!t.content||t.content.length===0)return"";const i=[];t.content.forEach(N=>{const w=[];N.content&&N.content.forEach(v=>{let k="";v.content&&Array.isArray(v.content)&&v.content.length>1?k=v.content.map(L=>e.renderChildren(L)).join(a):k=v.content?e.renderChildren(v.content):"";const C=UF(k),E=v.type==="tableHeader";w.push({text:C,isHeader:E})}),i.push(w)});const o=i.reduce((N,w)=>Math.max(N,w.length),0);if(o===0)return"";const c=new Array(o).fill(0);i.forEach(N=>{var w;for(let v=0;v<o;v+=1){const C=(((w=N[v])==null?void 0:w.text)||"").length;C>c[v]&&(c[v]=C),c[v]<3&&(c[v]=3)}});const u=(N,w)=>N+" ".repeat(Math.max(0,w-N.length)),h=i[0],f=h.some(N=>N.isHeader);let m=`
`;const g=new Array(o).fill(0).map((N,w)=>f&&h[w]&&h[w].text||"");return m+=`| ${g.map((N,w)=>u(N,c[w])).join(" | ")} |
`,m+=`| ${c.map(N=>"-".repeat(Math.max(3,N))).join(" | ")} |
`,(f?i.slice(1):i).forEach(N=>{m+=`| ${new Array(o).fill(0).map((w,v)=>u(N[v]&&N[v].text||"",c[v])).join(" | ")} |
`}),m}var qF=KF,c4=An.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,renderWrapper:!1,handleWidth:5,cellMinWidth:25,View:FF,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({node:t,HTMLAttributes:e}){const{colgroup:n,tableWidth:s,tableMinWidth:a}=$F(t,this.options.cellMinWidth),i=e.style;function o(){return i||(s?`width: ${s}`:`min-width: ${a}`)}const c=["table",Rt(this.options.HTMLAttributes,e,{style:o()}),n,["tbody",0]];return this.options.renderWrapper?["div",{class:"tableWrapper"},c]:c},parseMarkdown:(t,e)=>{const n=[];if(t.header){const s=[];t.header.forEach(a=>{s.push(e.createNode("tableHeader",{},[{type:"paragraph",content:e.parseInline(a.tokens)}]))}),n.push(e.createNode("tableRow",{},s))}return t.rows&&t.rows.forEach(s=>{const a=[];s.forEach(i=>{a.push(e.createNode("tableCell",{},[{type:"paragraph",content:e.parseInline(i.tokens)}]))}),n.push(e.createNode("tableRow",{},a))}),e.createNode("table",void 0,n)},renderMarkdown:(t,e)=>qF(t,e),addCommands(){return{insertTable:({rows:t=3,cols:e=3,withHeaderRow:n=!0}={})=>({tr:s,dispatch:a,editor:i})=>{const o=VF(i.schema,t,e,n);if(a){const c=s.selection.from+1;s.replaceSelectionWith(o).scrollIntoView().setSelection(et.near(s.doc.resolve(c)))}return!0},addColumnBefore:()=>({state:t,dispatch:e})=>sF(t,e),addColumnAfter:()=>({state:t,dispatch:e})=>rF(t,e),deleteColumn:()=>({state:t,dispatch:e})=>iF(t,e),addRowBefore:()=>({state:t,dispatch:e})=>lF(t,e),addRowAfter:()=>({state:t,dispatch:e})=>cF(t,e),deleteRow:()=>({state:t,dispatch:e})=>uF(t,e),deleteTable:()=>({state:t,dispatch:e})=>yF(t,e),mergeCells:()=>({state:t,dispatch:e})=>xw(t,e),splitCell:()=>({state:t,dispatch:e})=>yw(t,e),toggleHeaderColumn:()=>({state:t,dispatch:e})=>Wd("column")(t,e),toggleHeaderRow:()=>({state:t,dispatch:e})=>Wd("row")(t,e),toggleHeaderCell:()=>({state:t,dispatch:e})=>gF(t,e),mergeOrSplit:()=>({state:t,dispatch:e})=>xw(t,e)?!0:yw(t,e),setCellAttribute:(t,e)=>({state:n,dispatch:s})=>pF(t,e)(n,s),goToNextCell:()=>({state:t,dispatch:e})=>vw(1)(t,e),goToPreviousCell:()=>({state:t,dispatch:e})=>vw(-1)(t,e),fixTables:()=>({state:t,dispatch:e})=>(e&&t4(t),!0),setCellSelection:t=>({tr:e,dispatch:n})=>{if(n){const s=Yt.create(e.doc,t.anchorCell,t.headCell);e.setSelection(s)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:Ah,"Mod-Backspace":Ah,Delete:Ah,"Mod-Delete":Ah}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[TF({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],zF({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(t){const e={name:t.name,options:t.options,storage:t.storage};return{tableRole:At(Ye(t,"tableRole",e))}}});vn.create({name:"tableKit",addExtensions(){const t=[];return this.options.table!==!1&&t.push(c4.configure(this.options.table)),this.options.tableCell!==!1&&t.push(i4.configure(this.options.tableCell)),this.options.tableHeader!==!1&&t.push(o4.configure(this.options.tableHeader)),this.options.tableRow!==!1&&t.push(l4.configure(this.options.tableRow)),t}});function GF(t){if(!t)return"";let e=t;return e=e.replace(/<h1[^>]*>(.*?)<\/h1>/gi,`# $1
`),e=e.replace(/<h2[^>]*>(.*?)<\/h2>/gi,`## $1
`),e=e.replace(/<h3[^>]*>(.*?)<\/h3>/gi,`### $1
`),e=e.replace(/<strong[^>]*>(.*?)<\/strong>/gi,"**$1**"),e=e.replace(/<b[^>]*>(.*?)<\/b>/gi,"**$1**"),e=e.replace(/<em[^>]*>(.*?)<\/em>/gi,"*$1*"),e=e.replace(/<i[^>]*>(.*?)<\/i>/gi,"*$1*"),e=e.replace(/<s[^>]*>(.*?)<\/s>/gi,"~~$1~~"),e=e.replace(/<del[^>]*>(.*?)<\/del>/gi,"~~$1~~"),e=e.replace(/<code[^>]*>(.*?)<\/code>/gi,"`$1`"),e=e.replace(/<blockquote[^>]*>(.*?)<\/blockquote>/gi,`> $1
`),e=e.replace(/<img[^>]*src="([^"]*)"[^>]*alt="([^"]*)"[^>]*>/gi,"![$2]($1)"),e=e.replace(/<img[^>]*src="([^"]*)"[^>]*>/gi,"![]($1)"),e=e.replace(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/gi,"[$2]($1)"),e=e.replace(/<li[^>]*>(.*?)<\/li>/gi,`- $1
`),e=e.replace(/<\/?[uo]l[^>]*>/gi,`
`),e=e.replace(/<br\s*\/?>/gi,`
`),e=e.replace(/<p[^>]*>(.*?)<\/p>/gi,`$1
`),e=e.replace(/<hr\s*\/?>/gi,`---
`),e=e.replace(/<span[^>]*data-type="mention"[^>]*data-id="([^"]*)"[^>]*>@([^<]*)<\/span>/gi,"@$2"),e=e.replace(/<span[^>]*data-type="linkTag"[^>]*data-url="([^"]*)"[^>]*>#([^<]*)<\/span>/gi,"#[$2]($1)"),e=e.replace(/<[^>]+>/g,""),e=e.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'"),e=e.replace(/\n{3,}/g,`
`),e.trim()}function Aw(t){if(!t)return"";if(t.startsWith("<")&&t.includes("</"))return t;let e=t;e=e.replace(/^### (.+)$/gm,"<h3>$1</h3>"),e=e.replace(/^## (.+)$/gm,"<h2>$1</h2>"),e=e.replace(/^# (.+)$/gm,"<h1>$1</h1>"),e=e.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),e=e.replace(/\*(.+?)\*/g,"<em>$1</em>"),e=e.replace(/~~(.+?)~~/g,"<s>$1</s>"),e=e.replace(/`([^`]+)`/g,"<code>$1</code>"),e=e.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,'<img src="$2" alt="$1" />'),e=e.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2">$1</a>'),e=e.replace(/^> (.+)$/gm,"<blockquote><p>$1</p></blockquote>"),e=e.replace(/^---$/gm,"<hr />"),e=e.replace(/^- (.+)$/gm,"<li>$1</li>");const n=e.split(`
`),s=[];for(const a of n){const i=a.trim();i&&(/^<(?:h[1-6]|blockquote|hr|li|ul|ol|table|img)/.test(i)?s.push(i):s.push(`<p>${i}</p>`))}return s.join("")}const JF=An.create({name:"linkTag",group:"inline",inline:!0,selectable:!0,atom:!0,addAttributes(){return{label:{default:""},url:{default:""},tagType:{default:"url",parseHTML:t=>t.getAttribute("data-tag-type")||"url"},tagId:{default:"",parseHTML:t=>t.getAttribute("data-tag-id")||""},pagePath:{default:"",parseHTML:t=>t.getAttribute("data-page-path")||""},appId:{default:"",parseHTML:t=>t.getAttribute("data-app-id")||""},mpKey:{default:"",parseHTML:t=>t.getAttribute("data-mp-key")||""}}},parseHTML(){return[{tag:'span[data-type="linkTag"]',getAttrs:t=>{var e;return{label:((e=t.textContent)==null?void 0:e.replace(/^#/,"").trim())||"",url:t.getAttribute("data-url")||"",tagType:t.getAttribute("data-tag-type")||"url",tagId:t.getAttribute("data-tag-id")||"",pagePath:t.getAttribute("data-page-path")||"",appId:t.getAttribute("data-app-id")||"",mpKey:t.getAttribute("data-mp-key")||""}}}]},renderHTML({node:t,HTMLAttributes:e}){return["span",Rt(e,{"data-type":"linkTag","data-url":t.attrs.url,"data-tag-type":t.attrs.tagType,"data-tag-id":t.attrs.tagId,"data-page-path":t.attrs.pagePath,"data-app-id":t.attrs.appId||"","data-mp-key":t.attrs.mpKey||t.attrs.appId||"",class:"link-tag-node"}),`#${t.attrs.label}`]}});function Iw(t){const e=document.createElement("div");return e.textContent=t,e.innerHTML}const YF=t=>({items:({query:e})=>t.filter(n=>n.name.toLowerCase().includes(e.toLowerCase())||n.id.includes(e)).slice(0,8),render:()=>{let e=null,n=0,s=[],a=null;const i=()=>{e&&(e.innerHTML=s.map((o,c)=>`<div class="mention-item ${c===n?"is-selected":""}" data-index="${c}">
<span class="mention-name">@${Iw(o.name)}</span>
<span class="mention-id">${Iw(o.label||o.id)}</span>
</div>`).join(""),e.querySelectorAll(".mention-item").forEach(o=>{o.addEventListener("click",()=>{const c=parseInt(o.getAttribute("data-index")||"0");a&&s[c]&&a({id:s[c].id,label:s[c].name})})}))};return{onStart:o=>{if(e=document.createElement("div"),e.className="mention-popup",document.body.appendChild(e),s=o.items,a=o.command,n=0,i(),o.clientRect){const c=o.clientRect();c&&(e.style.top=`${c.bottom+4}px`,e.style.left=`${c.left}px`)}},onUpdate:o=>{if(s=o.items,a=o.command,n=0,i(),o.clientRect&&e){const c=o.clientRect();c&&(e.style.top=`${c.bottom+4}px`,e.style.left=`${c.left}px`)}},onKeyDown:o=>o.event.key==="ArrowUp"?(n=Math.max(0,n-1),i(),!0):o.event.key==="ArrowDown"?(n=Math.min(s.length-1,n+1),i(),!0):o.event.key==="Enter"?(a&&s[n]&&a({id:s[n].id,label:s[n].name}),!0):o.event.key==="Escape"?(e==null||e.remove(),e=null,!0):!1,onExit:()=>{e==null||e.remove(),e=null}}}});function QF(t){var s;const e=[],n=(s=t.clipboardData)==null?void 0:s.items;if(!n)return e;for(let a=0;a<n.length;a++)if(n[a].type.indexOf("image")!==-1){const i=n[a].getAsFile();i&&e.push(i)}return e}const XF=/src=["'](data:image\/([^;"']+);base64,([A-Za-z0-9+/=]+))["']/gi;function ZF(t,e){const n={png:".png",jpeg:".jpg",jpg:".jpg",gif:".gif",webp:".webp"}[e.toLowerCase()]||".png",s=atob(t),a=new Uint8Array(s.length);for(let i=0;i<s.length;i++)a[i]=s.charCodeAt(i);return new File([new Blob([a],{type:`image/${e}`})],`image${n}`,{type:`image/${e}`})}async function e$(t,e){const n=[...t.matchAll(XF)];if(n.length===0)return t;const s=new Map;let a=t;for(const i of n){const o=i[1],c=i[2],u=i[3];let h=s.get(o);if(!h)try{const f=ZF(u,c);h=await e(f),s.set(o,h)}catch(f){console.error("base64 图片上传失败",f);continue}a=a.split(`src="${o}"`).join(`src="${h}"`).split(`src='${o}'`).join(`src="${h}"`)}return a}const s0=b.forwardRef(({content:t,onChange:e,onImageUpload:n,persons:s=[],linkTags:a=[],placeholder:i="开始编辑内容...",className:o},c)=>{const u=b.useRef(null),h=b.useRef(null),[f,m]=b.useState(""),[g,y]=b.useState(!1),N=b.useRef(Aw(t)),w=b.useCallback((I,L)=>{var R;const W=h.current;if(!W||!n)return!1;const D=QF(L);if(D.length>0)return L.preventDefault(),(async()=>{for(const K of D)try{const re=await n(K);re&&W.chain().focus().setImage({src:re}).run()}catch(re){console.error("粘贴图片上传失败",re)}})(),!0;const P=(R=L.clipboardData)==null?void 0:R.getData("text/html");if(P&&/data:image\/[^;"']+;base64,/i.test(P)){L.preventDefault();const{from:K,to:re}=W.state.selection;return(async()=>{try{const ue=await e$(P,n);W.chain().focus().insertContentAt({from:K,to:re},ue).run()}catch(ue){console.error("粘贴 HTML 内 base64 转换失败",ue)}})(),!0}return!1},[n]),v=W_({extensions:[Iz.configure({link:{openOnClick:!1,HTMLAttributes:{class:"rich-link"}}}),Oz.configure({inline:!0,allowBase64:!0}),$z.configure({HTMLAttributes:{class:"mention-tag"},suggestion:YF(s)}),JF,Bz.configure({placeholder:i}),c4.configure({resizable:!0}),l4,i4,o4],content:N.current,onUpdate:({editor:I})=>{e(I.getHTML())},editorProps:{attributes:{class:"rich-editor-content"},handlePaste:w}});b.useEffect(()=>{h.current=v??null},[v]),b.useImperativeHandle(c,()=>({getHTML:()=>(v==null?void 0:v.getHTML())||"",getMarkdown:()=>GF((v==null?void 0:v.getHTML())||"")})),b.useEffect(()=>{if(v&&t!==v.getHTML()){const I=Aw(t);I!==v.getHTML()&&v.commands.setContent(I)}},[t]);const k=b.useCallback(async I=>{var W;const L=(W=I.target.files)==null?void 0:W[0];if(!(!L||!v)){if(n){const D=await n(L);D&&v.chain().focus().setImage({src:D}).run()}else{const D=new FileReader;D.onload=()=>{typeof D.result=="string"&&v.chain().focus().setImage({src:D.result}).run()},D.readAsDataURL(L)}I.target.value=""}},[v,n]),C=b.useCallback(I=>{v&&v.chain().focus().insertContent({type:"linkTag",attrs:{label:I.label,url:I.url||"",tagType:I.type||"url",tagId:I.id||"",pagePath:I.pagePath||"",appId:I.appId||"",mpKey:I.type==="miniprogram"&&I.appId||""}}).run()},[v]),E=b.useCallback(()=>{!v||!f||(v.chain().focus().setLink({href:f}).run(),m(""),y(!1))},[v,f]);return v?r.jsxs("div",{className:`rich-editor-wrapper ${o||""}`,children:[r.jsxs("div",{className:"rich-editor-toolbar",children:[r.jsxs("div",{className:"toolbar-group",children:[r.jsx("button",{onClick:()=>v.chain().focus().toggleBold().run(),className:v.isActive("bold")?"is-active":"",type:"button",children:r.jsx(WT,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleItalic().run(),className:v.isActive("italic")?"is-active":"",type:"button",children:r.jsx(VM,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleStrike().run(),className:v.isActive("strike")?"is-active":"",type:"button",children:r.jsx(_A,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleCode().run(),className:v.isActive("code")?"is-active":"",type:"button",children:r.jsx(dM,{className:"w-4 h-4"})})]}),r.jsx("div",{className:"toolbar-divider"}),r.jsxs("div",{className:"toolbar-group",children:[r.jsx("button",{onClick:()=>v.chain().focus().toggleHeading({level:1}).run(),className:v.isActive("heading",{level:1})?"is-active":"",type:"button",children:r.jsx(PM,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleHeading({level:2}).run(),className:v.isActive("heading",{level:2})?"is-active":"",type:"button",children:r.jsx(OM,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleHeading({level:3}).run(),className:v.isActive("heading",{level:3})?"is-active":"",type:"button",children:r.jsx(LM,{className:"w-4 h-4"})})]}),r.jsx("div",{className:"toolbar-divider"}),r.jsxs("div",{className:"toolbar-group",children:[r.jsx("button",{onClick:()=>v.chain().focus().toggleBulletList().run(),className:v.isActive("bulletList")?"is-active":"",type:"button",children:r.jsx(QM,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleOrderedList().run(),className:v.isActive("orderedList")?"is-active":"",type:"button",children:r.jsx(JM,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().toggleBlockquote().run(),className:v.isActive("blockquote")?"is-active":"",type:"button",children:r.jsx(wA,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().setHorizontalRule().run(),type:"button",children:r.jsx(lA,{className:"w-4 h-4"})})]}),r.jsx("div",{className:"toolbar-divider"}),r.jsxs("div",{className:"toolbar-group",children:[r.jsx("input",{ref:u,type:"file",accept:"image/*",onChange:k,className:"hidden"}),r.jsx("button",{onClick:()=>{var I;return(I=u.current)==null?void 0:I.click()},type:"button",children:r.jsx(kj,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>y(!g),className:v.isActive("link")?"is-active":"",type:"button",children:r.jsx(lx,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),type:"button",children:r.jsx(FA,{className:"w-4 h-4"})})]}),r.jsx("div",{className:"toolbar-divider"}),r.jsxs("div",{className:"toolbar-group",children:[r.jsx("button",{onClick:()=>v.chain().focus().undo().run(),disabled:!v.can().undo(),type:"button",children:r.jsx(KA,{className:"w-4 h-4"})}),r.jsx("button",{onClick:()=>v.chain().focus().redo().run(),disabled:!v.can().redo(),type:"button",children:r.jsx(kA,{className:"w-4 h-4"})})]}),a.length>0&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"toolbar-divider"}),r.jsx("div",{className:"toolbar-group",children:r.jsxs("select",{className:"link-tag-select",onChange:I=>{const L=a.find(W=>W.id===I.target.value);L&&C(L),I.target.value=""},defaultValue:"",children:[r.jsx("option",{value:"",disabled:!0,children:"# 插入链接标签"}),a.map(I=>r.jsx("option",{value:I.id,children:I.label},I.id))]})})]})]}),g&&r.jsxs("div",{className:"link-input-bar",children:[r.jsx("input",{type:"url",placeholder:"输入链接地址...",value:f,onChange:I=>m(I.target.value),onKeyDown:I=>I.key==="Enter"&&E(),className:"link-input"}),r.jsx("button",{onClick:E,className:"link-confirm",type:"button",children:"确定"}),r.jsx("button",{onClick:()=>{v.chain().focus().unsetLink().run(),y(!1)},className:"link-remove",type:"button",children:"移除"})]}),r.jsx(vC,{editor:v})]}):null});s0.displayName="RichEditor";const t$=["top","right","bottom","left"],Ui=Math.min,sr=Math.max,$f=Math.round,Ih=Math.floor,ua=t=>({x:t,y:t}),n$={left:"right",right:"left",bottom:"top",top:"bottom"},s$={start:"end",end:"start"};function r0(t,e,n){return sr(t,Ui(e,n))}function Ga(t,e){return typeof t=="function"?t(e):t}function Ja(t){return t.split("-")[0]}function yc(t){return t.split("-")[1]}function Sy(t){return t==="x"?"y":"x"}function Cy(t){return t==="y"?"height":"width"}const r$=new Set(["top","bottom"]);function da(t){return r$.has(Ja(t))?"y":"x"}function Ey(t){return Sy(da(t))}function a$(t,e,n){n===void 0&&(n=!1);const s=yc(t),a=Ey(t),i=Cy(a);let o=a==="x"?s===(n?"end":"start")?"right":"left":s==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(o=Bf(o)),[o,Bf(o)]}function i$(t){const e=Bf(t);return[a0(t),e,a0(e)]}function a0(t){return t.replace(/start|end/g,e=>s$[e])}const Pw=["left","right"],Rw=["right","left"],o$=["top","bottom"],l$=["bottom","top"];function c$(t,e,n){switch(t){case"top":case"bottom":return n?e?Rw:Pw:e?Pw:Rw;case"left":case"right":return e?o$:l$;default:return[]}}function d$(t,e,n,s){const a=yc(t);let i=c$(Ja(t),n==="start",s);return a&&(i=i.map(o=>o+"-"+a),e&&(i=i.concat(i.map(a0)))),i}function Bf(t){return t.replace(/left|right|bottom|top/g,e=>n$[e])}function u$(t){return{top:0,right:0,bottom:0,left:0,...t}}function d4(t){return typeof t!="number"?u$(t):{top:t,right:t,bottom:t,left:t}}function Vf(t){const{x:e,y:n,width:s,height:a}=t;return{width:s,height:a,top:n,left:e,right:e+s,bottom:n+a,x:e,y:n}}function Ow(t,e,n){let{reference:s,floating:a}=t;const i=da(e),o=Ey(e),c=Cy(o),u=Ja(e),h=i==="y",f=s.x+s.width/2-a.width/2,m=s.y+s.height/2-a.height/2,g=s[c]/2-a[c]/2;let y;switch(u){case"top":y={x:f,y:s.y-a.height};break;case"bottom":y={x:f,y:s.y+s.height};break;case"right":y={x:s.x+s.width,y:m};break;case"left":y={x:s.x-a.width,y:m};break;default:y={x:s.x,y:s.y}}switch(yc(e)){case"start":y[o]-=g*(n&&h?-1:1);break;case"end":y[o]+=g*(n&&h?-1:1);break}return y}async function h$(t,e){var n;e===void 0&&(e={});const{x:s,y:a,platform:i,rects:o,elements:c,strategy:u}=t,{boundary:h="clippingAncestors",rootBoundary:f="viewport",elementContext:m="floating",altBoundary:g=!1,padding:y=0}=Ga(e,t),N=d4(y),v=c[g?m==="floating"?"reference":"floating":m],k=Vf(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(v)))==null||n?v:v.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:h,rootBoundary:f,strategy:u})),C=m==="floating"?{x:s,y:a,width:o.floating.width,height:o.floating.height}:o.reference,E=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),I=await(i.isElement==null?void 0:i.isElement(E))?await(i.getScale==null?void 0:i.getScale(E))||{x:1,y:1}:{x:1,y:1},L=Vf(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:C,offsetParent:E,strategy:u}):C);return{top:(k.top-L.top+N.top)/I.y,bottom:(L.bottom-k.bottom+N.bottom)/I.y,left:(k.left-L.left+N.left)/I.x,right:(L.right-k.right+N.right)/I.x}}const f$=async(t,e,n)=>{const{placement:s="bottom",strategy:a="absolute",middleware:i=[],platform:o}=n,c=i.filter(Boolean),u=await(o.isRTL==null?void 0:o.isRTL(e));let h=await o.getElementRects({reference:t,floating:e,strategy:a}),{x:f,y:m}=Ow(h,s,u),g=s,y={},N=0;for(let v=0;v<c.length;v++){var w;const{name:k,fn:C}=c[v],{x:E,y:I,data:L,reset:W}=await C({x:f,y:m,initialPlacement:s,placement:g,strategy:a,middlewareData:y,rects:h,platform:{...o,detectOverflow:(w=o.detectOverflow)!=null?w:h$},elements:{reference:t,floating:e}});f=E??f,m=I??m,y={...y,[k]:{...y[k],...L}},W&&N<=50&&(N++,typeof W=="object"&&(W.placement&&(g=W.placement),W.rects&&(h=W.rects===!0?await o.getElementRects({reference:t,floating:e,strategy:a}):W.rects),{x:f,y:m}=Ow(h,g,u)),v=-1)}return{x:f,y:m,placement:g,strategy:a,middlewareData:y}},p$=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:s,placement:a,rects:i,platform:o,elements:c,middlewareData:u}=e,{element:h,padding:f=0}=Ga(t,e)||{};if(h==null)return{};const m=d4(f),g={x:n,y:s},y=Ey(a),N=Cy(y),w=await o.getDimensions(h),v=y==="y",k=v?"top":"left",C=v?"bottom":"right",E=v?"clientHeight":"clientWidth",I=i.reference[N]+i.reference[y]-g[y]-i.floating[N],L=g[y]-i.reference[y],W=await(o.getOffsetParent==null?void 0:o.getOffsetParent(h));let D=W?W[E]:0;(!D||!await(o.isElement==null?void 0:o.isElement(W)))&&(D=c.floating[E]||i.floating[N]);const P=I/2-L/2,R=D/2-w[N]/2-1,K=Ui(m[k],R),re=Ui(m[C],R),ue=K,xe=D-w[N]-re,H=D/2-w[N]/2+P,O=r0(ue,H,xe),J=!u.arrow&&yc(a)!=null&&H!==O&&i.reference[N]/2-(H<ue?K:re)-w[N]/2<0,$=J?H<ue?H-ue:H-xe:0;return{[y]:g[y]+$,data:{[y]:O,centerOffset:H-O-$,...J&&{alignmentOffset:$}},reset:J}}}),m$=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,s;const{placement:a,middlewareData:i,rects:o,initialPlacement:c,platform:u,elements:h}=e,{mainAxis:f=!0,crossAxis:m=!0,fallbackPlacements:g,fallbackStrategy:y="bestFit",fallbackAxisSideDirection:N="none",flipAlignment:w=!0,...v}=Ga(t,e);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const k=Ja(a),C=da(c),E=Ja(c)===c,I=await(u.isRTL==null?void 0:u.isRTL(h.floating)),L=g||(E||!w?[Bf(c)]:i$(c)),W=N!=="none";!g&&W&&L.push(...d$(c,w,N,I));const D=[c,...L],P=await u.detectOverflow(e,v),R=[];let K=((s=i.flip)==null?void 0:s.overflows)||[];if(f&&R.push(P[k]),m){const H=a$(a,o,I);R.push(P[H[0]],P[H[1]])}if(K=[...K,{placement:a,overflows:R}],!R.every(H=>H<=0)){var re,ue;const H=(((re=i.flip)==null?void 0:re.index)||0)+1,O=D[H];if(O&&(!(m==="alignment"?C!==da(O):!1)||K.every(M=>da(M.placement)===C?M.overflows[0]>0:!0)))return{data:{index:H,overflows:K},reset:{placement:O}};let J=(ue=K.filter($=>$.overflows[0]<=0).sort(($,M)=>$.overflows[1]-M.overflows[1])[0])==null?void 0:ue.placement;if(!J)switch(y){case"bestFit":{var xe;const $=(xe=K.filter(M=>{if(W){const q=da(M.placement);return q===C||q==="y"}return!0}).map(M=>[M.placement,M.overflows.filter(q=>q>0).reduce((q,B)=>q+B,0)]).sort((M,q)=>M[1]-q[1])[0])==null?void 0:xe[0];$&&(J=$);break}case"initialPlacement":J=c;break}if(a!==J)return{reset:{placement:J}}}return{}}}};function Dw(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function Lw(t){return t$.some(e=>t[e]>=0)}const g$=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n,platform:s}=e,{strategy:a="referenceHidden",...i}=Ga(t,e);switch(a){case"referenceHidden":{const o=await s.detectOverflow(e,{...i,elementContext:"reference"}),c=Dw(o,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:Lw(c)}}}case"escaped":{const o=await s.detectOverflow(e,{...i,altBoundary:!0}),c=Dw(o,n.floating);return{data:{escapedOffsets:c,escaped:Lw(c)}}}default:return{}}}}},u4=new Set(["left","top"]);async function x$(t,e){const{placement:n,platform:s,elements:a}=t,i=await(s.isRTL==null?void 0:s.isRTL(a.floating)),o=Ja(n),c=yc(n),u=da(n)==="y",h=u4.has(o)?-1:1,f=i&&u?-1:1,m=Ga(e,t);let{mainAxis:g,crossAxis:y,alignmentAxis:N}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return c&&typeof N=="number"&&(y=c==="end"?N*-1:N),u?{x:y*f,y:g*h}:{x:g*h,y:y*f}}const y$=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,s;const{x:a,y:i,placement:o,middlewareData:c}=e,u=await x$(e,t);return o===((n=c.offset)==null?void 0:n.placement)&&(s=c.arrow)!=null&&s.alignmentOffset?{}:{x:a+u.x,y:i+u.y,data:{...u,placement:o}}}}},b$=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:s,placement:a,platform:i}=e,{mainAxis:o=!0,crossAxis:c=!1,limiter:u={fn:k=>{let{x:C,y:E}=k;return{x:C,y:E}}},...h}=Ga(t,e),f={x:n,y:s},m=await i.detectOverflow(e,h),g=da(Ja(a)),y=Sy(g);let N=f[y],w=f[g];if(o){const k=y==="y"?"top":"left",C=y==="y"?"bottom":"right",E=N+m[k],I=N-m[C];N=r0(E,N,I)}if(c){const k=g==="y"?"top":"left",C=g==="y"?"bottom":"right",E=w+m[k],I=w-m[C];w=r0(E,w,I)}const v=u.fn({...e,[y]:N,[g]:w});return{...v,data:{x:v.x-n,y:v.y-s,enabled:{[y]:o,[g]:c}}}}}},v$=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:s,placement:a,rects:i,middlewareData:o}=e,{offset:c=0,mainAxis:u=!0,crossAxis:h=!0}=Ga(t,e),f={x:n,y:s},m=da(a),g=Sy(m);let y=f[g],N=f[m];const w=Ga(c,e),v=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(u){const E=g==="y"?"height":"width",I=i.reference[g]-i.floating[E]+v.mainAxis,L=i.reference[g]+i.reference[E]-v.mainAxis;y<I?y=I:y>L&&(y=L)}if(h){var k,C;const E=g==="y"?"width":"height",I=u4.has(Ja(a)),L=i.reference[m]-i.floating[E]+(I&&((k=o.offset)==null?void 0:k[m])||0)+(I?0:v.crossAxis),W=i.reference[m]+i.reference[E]+(I?0:((C=o.offset)==null?void 0:C[m])||0)-(I?v.crossAxis:0);N<L?N=L:N>W&&(N=W)}return{[g]:y,[m]:N}}}},N$=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,s;const{placement:a,rects:i,platform:o,elements:c}=e,{apply:u=()=>{},...h}=Ga(t,e),f=await o.detectOverflow(e,h),m=Ja(a),g=yc(a),y=da(a)==="y",{width:N,height:w}=i.floating;let v,k;m==="top"||m==="bottom"?(v=m,k=g===(await(o.isRTL==null?void 0:o.isRTL(c.floating))?"start":"end")?"left":"right"):(k=m,v=g==="end"?"top":"bottom");const C=w-f.top-f.bottom,E=N-f.left-f.right,I=Ui(w-f[v],C),L=Ui(N-f[k],E),W=!e.middlewareData.shift;let D=I,P=L;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(P=E),(s=e.middlewareData.shift)!=null&&s.enabled.y&&(D=C),W&&!g){const K=sr(f.left,0),re=sr(f.right,0),ue=sr(f.top,0),xe=sr(f.bottom,0);y?P=N-2*(K!==0||re!==0?K+re:sr(f.left,f.right)):D=w-2*(ue!==0||xe!==0?ue+xe:sr(f.top,f.bottom))}await u({...e,availableWidth:P,availableHeight:D});const R=await o.getDimensions(c.floating);return N!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function yp(){return typeof window<"u"}function bc(t){return h4(t)?(t.nodeName||"").toLowerCase():"#document"}function lr(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function ga(t){var e;return(e=(h4(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function h4(t){return yp()?t instanceof Node||t instanceof lr(t).Node:!1}function Br(t){return yp()?t instanceof Element||t instanceof lr(t).Element:!1}function pa(t){return yp()?t instanceof HTMLElement||t instanceof lr(t).HTMLElement:!1}function _w(t){return!yp()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof lr(t).ShadowRoot}const w$=new Set(["inline","contents"]);function tu(t){const{overflow:e,overflowX:n,overflowY:s,display:a}=Vr(t);return/auto|scroll|overlay|hidden|clip/.test(e+s+n)&&!w$.has(a)}const j$=new Set(["table","td","th"]);function k$(t){return j$.has(bc(t))}const S$=[":popover-open",":modal"];function bp(t){return S$.some(e=>{try{return t.matches(e)}catch{return!1}})}const C$=["transform","translate","scale","rotate","perspective"],E$=["transform","translate","scale","rotate","perspective","filter"],T$=["paint","layout","strict","content"];function Ty(t){const e=My(),n=Br(t)?Vr(t):t;return C$.some(s=>n[s]?n[s]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||E$.some(s=>(n.willChange||"").includes(s))||T$.some(s=>(n.contain||"").includes(s))}function M$(t){let e=Ki(t);for(;pa(e)&&!cc(e);){if(Ty(e))return e;if(bp(e))return null;e=Ki(e)}return null}function My(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const A$=new Set(["html","body","#document"]);function cc(t){return A$.has(bc(t))}function Vr(t){return lr(t).getComputedStyle(t)}function vp(t){return Br(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Ki(t){if(bc(t)==="html")return t;const e=t.assignedSlot||t.parentNode||_w(t)&&t.host||ga(t);return _w(e)?e.host:e}function f4(t){const e=Ki(t);return cc(e)?t.ownerDocument?t.ownerDocument.body:t.body:pa(e)&&tu(e)?e:f4(e)}function Ud(t,e,n){var s;e===void 0&&(e=[]),n===void 0&&(n=!0);const a=f4(t),i=a===((s=t.ownerDocument)==null?void 0:s.body),o=lr(a);if(i){const c=i0(o);return e.concat(o,o.visualViewport||[],tu(a)?a:[],c&&n?Ud(c):[])}return e.concat(a,Ud(a,[],n))}function i0(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function p4(t){const e=Vr(t);let n=parseFloat(e.width)||0,s=parseFloat(e.height)||0;const a=pa(t),i=a?t.offsetWidth:n,o=a?t.offsetHeight:s,c=$f(n)!==i||$f(s)!==o;return c&&(n=i,s=o),{width:n,height:s,$:c}}function Ay(t){return Br(t)?t:t.contextElement}function ec(t){const e=Ay(t);if(!pa(e))return ua(1);const n=e.getBoundingClientRect(),{width:s,height:a,$:i}=p4(e);let o=(i?$f(n.width):n.width)/s,c=(i?$f(n.height):n.height)/a;return(!o||!Number.isFinite(o))&&(o=1),(!c||!Number.isFinite(c))&&(c=1),{x:o,y:c}}const I$=ua(0);function m4(t){const e=lr(t);return!My()||!e.visualViewport?I$:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function P$(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==lr(t)?!1:e}function el(t,e,n,s){e===void 0&&(e=!1),n===void 0&&(n=!1);const a=t.getBoundingClientRect(),i=Ay(t);let o=ua(1);e&&(s?Br(s)&&(o=ec(s)):o=ec(t));const c=P$(i,n,s)?m4(i):ua(0);let u=(a.left+c.x)/o.x,h=(a.top+c.y)/o.y,f=a.width/o.x,m=a.height/o.y;if(i){const g=lr(i),y=s&&Br(s)?lr(s):s;let N=g,w=i0(N);for(;w&&s&&y!==N;){const v=ec(w),k=w.getBoundingClientRect(),C=Vr(w),E=k.left+(w.clientLeft+parseFloat(C.paddingLeft))*v.x,I=k.top+(w.clientTop+parseFloat(C.paddingTop))*v.y;u*=v.x,h*=v.y,f*=v.x,m*=v.y,u+=E,h+=I,N=lr(w),w=i0(N)}}return Vf({width:f,height:m,x:u,y:h})}function Np(t,e){const n=vp(t).scrollLeft;return e?e.left+n:el(ga(t)).left+n}function g4(t,e){const n=t.getBoundingClientRect(),s=n.left+e.scrollLeft-Np(t,n),a=n.top+e.scrollTop;return{x:s,y:a}}function R$(t){let{elements:e,rect:n,offsetParent:s,strategy:a}=t;const i=a==="fixed",o=ga(s),c=e?bp(e.floating):!1;if(s===o||c&&i)return n;let u={scrollLeft:0,scrollTop:0},h=ua(1);const f=ua(0),m=pa(s);if((m||!m&&!i)&&((bc(s)!=="body"||tu(o))&&(u=vp(s)),pa(s))){const y=el(s);h=ec(s),f.x=y.x+s.clientLeft,f.y=y.y+s.clientTop}const g=o&&!m&&!i?g4(o,u):ua(0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-u.scrollLeft*h.x+f.x+g.x,y:n.y*h.y-u.scrollTop*h.y+f.y+g.y}}function O$(t){return Array.from(t.getClientRects())}function D$(t){const e=ga(t),n=vp(t),s=t.ownerDocument.body,a=sr(e.scrollWidth,e.clientWidth,s.scrollWidth,s.clientWidth),i=sr(e.scrollHeight,e.clientHeight,s.scrollHeight,s.clientHeight);let o=-n.scrollLeft+Np(t);const c=-n.scrollTop;return Vr(s).direction==="rtl"&&(o+=sr(e.clientWidth,s.clientWidth)-a),{width:a,height:i,x:o,y:c}}const zw=25;function L$(t,e){const n=lr(t),s=ga(t),a=n.visualViewport;let i=s.clientWidth,o=s.clientHeight,c=0,u=0;if(a){i=a.width,o=a.height;const f=My();(!f||f&&e==="fixed")&&(c=a.offsetLeft,u=a.offsetTop)}const h=Np(s);if(h<=0){const f=s.ownerDocument,m=f.body,g=getComputedStyle(m),y=f.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,N=Math.abs(s.clientWidth-m.clientWidth-y);N<=zw&&(i-=N)}else h<=zw&&(i+=h);return{width:i,height:o,x:c,y:u}}const _$=new Set(["absolute","fixed"]);function z$(t,e){const n=el(t,!0,e==="fixed"),s=n.top+t.clientTop,a=n.left+t.clientLeft,i=pa(t)?ec(t):ua(1),o=t.clientWidth*i.x,c=t.clientHeight*i.y,u=a*i.x,h=s*i.y;return{width:o,height:c,x:u,y:h}}function Fw(t,e,n){let s;if(e==="viewport")s=L$(t,n);else if(e==="document")s=D$(ga(t));else if(Br(e))s=z$(e,n);else{const a=m4(t);s={x:e.x-a.x,y:e.y-a.y,width:e.width,height:e.height}}return Vf(s)}function x4(t,e){const n=Ki(t);return n===e||!Br(n)||cc(n)?!1:Vr(n).position==="fixed"||x4(n,e)}function F$(t,e){const n=e.get(t);if(n)return n;let s=Ud(t,[],!1).filter(c=>Br(c)&&bc(c)!=="body"),a=null;const i=Vr(t).position==="fixed";let o=i?Ki(t):t;for(;Br(o)&&!cc(o);){const c=Vr(o),u=Ty(o);!u&&c.position==="fixed"&&(a=null),(i?!u&&!a:!u&&c.position==="static"&&!!a&&_$.has(a.position)||tu(o)&&!u&&x4(t,o))?s=s.filter(f=>f!==o):a=c,o=Ki(o)}return e.set(t,s),s}function $$(t){let{element:e,boundary:n,rootBoundary:s,strategy:a}=t;const o=[...n==="clippingAncestors"?bp(e)?[]:F$(e,this._c):[].concat(n),s],c=o[0],u=o.reduce((h,f)=>{const m=Fw(e,f,a);return h.top=sr(m.top,h.top),h.right=Ui(m.right,h.right),h.bottom=Ui(m.bottom,h.bottom),h.left=sr(m.left,h.left),h},Fw(e,c,a));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function B$(t){const{width:e,height:n}=p4(t);return{width:e,height:n}}function V$(t,e,n){const s=pa(e),a=ga(e),i=n==="fixed",o=el(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const u=ua(0);function h(){u.x=Np(a)}if(s||!s&&!i)if((bc(e)!=="body"||tu(a))&&(c=vp(e)),s){const y=el(e,!0,i,e);u.x=y.x+e.clientLeft,u.y=y.y+e.clientTop}else a&&h();i&&!s&&a&&h();const f=a&&!s&&!i?g4(a,c):ua(0),m=o.left+c.scrollLeft-u.x-f.x,g=o.top+c.scrollTop-u.y-f.y;return{x:m,y:g,width:o.width,height:o.height}}function Gg(t){return Vr(t).position==="static"}function $w(t,e){if(!pa(t)||Vr(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return ga(t)===n&&(n=n.ownerDocument.body),n}function y4(t,e){const n=lr(t);if(bp(t))return n;if(!pa(t)){let a=Ki(t);for(;a&&!cc(a);){if(Br(a)&&!Gg(a))return a;a=Ki(a)}return n}let s=$w(t,e);for(;s&&k$(s)&&Gg(s);)s=$w(s,e);return s&&cc(s)&&Gg(s)&&!Ty(s)?n:s||M$(t)||n}const H$=async function(t){const e=this.getOffsetParent||y4,n=this.getDimensions,s=await n(t.floating);return{reference:V$(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function W$(t){return Vr(t).direction==="rtl"}const U$={convertOffsetParentRelativeRectToViewportRelativeRect:R$,getDocumentElement:ga,getClippingRect:$$,getOffsetParent:y4,getElementRects:H$,getClientRects:O$,getDimensions:B$,getScale:ec,isElement:Br,isRTL:W$};function b4(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function K$(t,e){let n=null,s;const a=ga(t);function i(){var c;clearTimeout(s),(c=n)==null||c.disconnect(),n=null}function o(c,u){c===void 0&&(c=!1),u===void 0&&(u=1),i();const h=t.getBoundingClientRect(),{left:f,top:m,width:g,height:y}=h;if(c||e(),!g||!y)return;const N=Ih(m),w=Ih(a.clientWidth-(f+g)),v=Ih(a.clientHeight-(m+y)),k=Ih(f),E={rootMargin:-N+"px "+-w+"px "+-v+"px "+-k+"px",threshold:sr(0,Ui(1,u))||1};let I=!0;function L(W){const D=W[0].intersectionRatio;if(D!==u){if(!I)return o();D?o(!1,D):s=setTimeout(()=>{o(!1,1e-7)},1e3)}D===1&&!b4(h,t.getBoundingClientRect())&&o(),I=!1}try{n=new IntersectionObserver(L,{...E,root:a.ownerDocument})}catch{n=new IntersectionObserver(L,E)}n.observe(t)}return o(!0),i}function q$(t,e,n,s){s===void 0&&(s={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:u=!1}=s,h=Ay(t),f=a||i?[...h?Ud(h):[],...Ud(e)]:[];f.forEach(k=>{a&&k.addEventListener("scroll",n,{passive:!0}),i&&k.addEventListener("resize",n)});const m=h&&c?K$(h,n):null;let g=-1,y=null;o&&(y=new ResizeObserver(k=>{let[C]=k;C&&C.target===h&&y&&(y.unobserve(e),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var E;(E=y)==null||E.observe(e)})),n()}),h&&!u&&y.observe(h),y.observe(e));let N,w=u?el(t):null;u&&v();function v(){const k=el(t);w&&!b4(w,k)&&n(),w=k,N=requestAnimationFrame(v)}return n(),()=>{var k;f.forEach(C=>{a&&C.removeEventListener("scroll",n),i&&C.removeEventListener("resize",n)}),m==null||m(),(k=y)==null||k.disconnect(),y=null,u&&cancelAnimationFrame(N)}}const G$=y$,J$=b$,Y$=m$,Q$=N$,X$=g$,Bw=p$,Z$=v$,eB=(t,e,n)=>{const s=new Map,a={platform:U$,...n},i={...a.platform,_c:s};return f$(t,e,{...a,platform:i})};var tB=typeof document<"u",nB=function(){},Bh=tB?b.useLayoutEffect:nB;function Hf(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,s,a;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(s=n;s--!==0;)if(!Hf(t[s],e[s]))return!1;return!0}if(a=Object.keys(t),n=a.length,n!==Object.keys(e).length)return!1;for(s=n;s--!==0;)if(!{}.hasOwnProperty.call(e,a[s]))return!1;for(s=n;s--!==0;){const i=a[s];if(!(i==="_owner"&&t.$$typeof)&&!Hf(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function v4(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Vw(t,e){const n=v4(t);return Math.round(e*n)/n}function Jg(t){const e=b.useRef(t);return Bh(()=>{e.current=t}),e}function sB(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:s=[],platform:a,elements:{reference:i,floating:o}={},transform:c=!0,whileElementsMounted:u,open:h}=t,[f,m]=b.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[g,y]=b.useState(s);Hf(g,s)||y(s);const[N,w]=b.useState(null),[v,k]=b.useState(null),C=b.useCallback(M=>{M!==W.current&&(W.current=M,w(M))},[]),E=b.useCallback(M=>{M!==D.current&&(D.current=M,k(M))},[]),I=i||N,L=o||v,W=b.useRef(null),D=b.useRef(null),P=b.useRef(f),R=u!=null,K=Jg(u),re=Jg(a),ue=Jg(h),xe=b.useCallback(()=>{if(!W.current||!D.current)return;const M={placement:e,strategy:n,middleware:g};re.current&&(M.platform=re.current),eB(W.current,D.current,M).then(q=>{const B={...q,isPositioned:ue.current!==!1};H.current&&!Hf(P.current,B)&&(P.current=B,qd.flushSync(()=>{m(B)}))})},[g,e,n,re,ue]);Bh(()=>{h===!1&&P.current.isPositioned&&(P.current.isPositioned=!1,m(M=>({...M,isPositioned:!1})))},[h]);const H=b.useRef(!1);Bh(()=>(H.current=!0,()=>{H.current=!1}),[]),Bh(()=>{if(I&&(W.current=I),L&&(D.current=L),I&&L){if(K.current)return K.current(I,L,xe);xe()}},[I,L,xe,K,R]);const O=b.useMemo(()=>({reference:W,floating:D,setReference:C,setFloating:E}),[C,E]),J=b.useMemo(()=>({reference:I,floating:L}),[I,L]),$=b.useMemo(()=>{const M={position:n,left:0,top:0};if(!J.floating)return M;const q=Vw(J.floating,f.x),B=Vw(J.floating,f.y);return c?{...M,transform:"translate("+q+"px, "+B+"px)",...v4(J.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:q,top:B}},[n,c,J.floating,f.x,f.y]);return b.useMemo(()=>({...f,update:xe,refs:O,elements:J,floatingStyles:$}),[f,xe,O,J,$])}const rB=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:s,padding:a}=typeof t=="function"?t(n):t;return s&&e(s)?s.current!=null?Bw({element:s.current,padding:a}).fn(n):{}:s?Bw({element:s,padding:a}).fn(n):{}}}},aB=(t,e)=>({...G$(t),options:[t,e]}),iB=(t,e)=>({...J$(t),options:[t,e]}),oB=(t,e)=>({...Z$(t),options:[t,e]}),lB=(t,e)=>({...Y$(t),options:[t,e]}),cB=(t,e)=>({...Q$(t),options:[t,e]}),dB=(t,e)=>({...X$(t),options:[t,e]}),uB=(t,e)=>({...rB(t),options:[t,e]});var hB="Arrow",N4=b.forwardRef((t,e)=>{const{children:n,width:s=10,height:a=5,...i}=t;return r.jsx(xt.svg,{...i,ref:e,width:s,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:r.jsx("polygon",{points:"0,0 30,0 15,10"})})});N4.displayName=hB;var fB=N4,Iy="Popper",[w4,j4]=Yi(Iy),[pB,k4]=w4(Iy),S4=t=>{const{__scopePopper:e,children:n}=t,[s,a]=b.useState(null);return r.jsx(pB,{scope:e,anchor:s,onAnchorChange:a,children:n})};S4.displayName=Iy;var C4="PopperAnchor",E4=b.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:s,...a}=t,i=k4(C4,n),o=b.useRef(null),c=Ot(e,o),u=b.useRef(null);return b.useEffect(()=>{const h=u.current;u.current=(s==null?void 0:s.current)||o.current,h!==u.current&&i.onAnchorChange(u.current)}),s?null:r.jsx(xt.div,{...a,ref:c})});E4.displayName=C4;var Py="PopperContent",[mB,gB]=w4(Py),T4=b.forwardRef((t,e)=>{var ee,Y,he,te,ce,pe;const{__scopePopper:n,side:s="bottom",sideOffset:a=0,align:i="center",alignOffset:o=0,arrowPadding:c=0,avoidCollisions:u=!0,collisionBoundary:h=[],collisionPadding:f=0,sticky:m="partial",hideWhenDetached:g=!1,updatePositionStrategy:y="optimized",onPlaced:N,...w}=t,v=k4(Py,n),[k,C]=b.useState(null),E=Ot(e,Fe=>C(Fe)),[I,L]=b.useState(null),W=P0(I),D=(W==null?void 0:W.width)??0,P=(W==null?void 0:W.height)??0,R=s+(i!=="center"?"-"+i:""),K=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},re=Array.isArray(h)?h:[h],ue=re.length>0,xe={padding:K,boundary:re.filter(yB),altBoundary:ue},{refs:H,floatingStyles:O,placement:J,isPositioned:$,middlewareData:M}=sB({strategy:"fixed",placement:R,whileElementsMounted:(...Fe)=>q$(...Fe,{animationFrame:y==="always"}),elements:{reference:v.anchor},middleware:[aB({mainAxis:a+P,alignmentAxis:o}),u&&iB({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?oB():void 0,...xe}),u&&lB({...xe}),cB({...xe,apply:({elements:Fe,rects:rt,availableWidth:vt,availableHeight:mt})=>{const{width:Ut,height:In}=rt.reference,sn=Fe.floating.style;sn.setProperty("--radix-popper-available-width",`${vt}px`),sn.setProperty("--radix-popper-available-height",`${mt}px`),sn.setProperty("--radix-popper-anchor-width",`${Ut}px`),sn.setProperty("--radix-popper-anchor-height",`${In}px`)}}),I&&uB({element:I,padding:c}),bB({arrowWidth:D,arrowHeight:P}),g&&dB({strategy:"referenceHidden",...xe})]}),[q,B]=I4(J),z=Vi(N);xs(()=>{$&&(z==null||z())},[$,z]);const G=(ee=M.arrow)==null?void 0:ee.x,oe=(Y=M.arrow)==null?void 0:Y.y,ye=((he=M.arrow)==null?void 0:he.centerOffset)!==0,[Ae,ke]=b.useState();return xs(()=>{k&&ke(window.getComputedStyle(k).zIndex)},[k]),r.jsx("div",{ref:H.setFloating,"data-radix-popper-content-wrapper":"",style:{...O,transform:$?O.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ae,"--radix-popper-transform-origin":[(te=M.transformOrigin)==null?void 0:te.x,(ce=M.transformOrigin)==null?void 0:ce.y].join(" "),...((pe=M.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:r.jsx(mB,{scope:n,placedSide:q,onArrowChange:L,arrowX:G,arrowY:oe,shouldHideArrow:ye,children:r.jsx(xt.div,{"data-side":q,"data-align":B,...w,ref:E,style:{...w.style,animation:$?void 0:"none"}})})})});T4.displayName=Py;var M4="PopperArrow",xB={top:"bottom",right:"left",bottom:"top",left:"right"},A4=b.forwardRef(function(e,n){const{__scopePopper:s,...a}=e,i=gB(M4,s),o=xB[i.placedSide];return r.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:r.jsx(fB,{...a,ref:n,style:{...a.style,display:"block"}})})});A4.displayName=M4;function yB(t){return t!==null}var bB=t=>({name:"transformOrigin",options:t,fn(e){var v,k,C;const{placement:n,rects:s,middlewareData:a}=e,o=((v=a.arrow)==null?void 0:v.centerOffset)!==0,c=o?0:t.arrowWidth,u=o?0:t.arrowHeight,[h,f]=I4(n),m={start:"0%",center:"50%",end:"100%"}[f],g=(((k=a.arrow)==null?void 0:k.x)??0)+c/2,y=(((C=a.arrow)==null?void 0:C.y)??0)+u/2;let N="",w="";return h==="bottom"?(N=o?m:`${g}px`,w=`${-u}px`):h==="top"?(N=o?m:`${g}px`,w=`${s.floating.height+u}px`):h==="right"?(N=`${-u}px`,w=o?m:`${y}px`):h==="left"&&(N=`${s.floating.width+u}px`,w=o?m:`${y}px`),{data:{x:N,y:w}}}});function I4(t){const[e,n="center"]=t.split("-");return[e,n]}var vB=S4,NB=E4,wB=T4,jB=A4,P4=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),kB="VisuallyHidden",SB=b.forwardRef((t,e)=>r.jsx(xt.span,{...t,ref:e,style:{...P4,...t.style}}));SB.displayName=kB;var CB=[" ","Enter","ArrowUp","ArrowDown"],EB=[" ","Enter"],tl="Select",[wp,jp,TB]=M0(tl),[vc]=Yi(tl,[TB,j4]),kp=j4(),[MB,eo]=vc(tl),[AB,IB]=vc(tl),R4=t=>{const{__scopeSelect:e,children:n,open:s,defaultOpen:a,onOpenChange:i,value:o,defaultValue:c,onValueChange:u,dir:h,name:f,autoComplete:m,disabled:g,required:y,form:N}=t,w=kp(e),[v,k]=b.useState(null),[C,E]=b.useState(null),[I,L]=b.useState(!1),W=Xf(h),[D,P]=Uo({prop:s,defaultProp:a??!1,onChange:i,caller:tl}),[R,K]=Uo({prop:o,defaultProp:c,onChange:u,caller:tl}),re=b.useRef(null),ue=v?N||!!v.closest("form"):!0,[xe,H]=b.useState(new Set),O=Array.from(xe).map(J=>J.props.value).join(";");return r.jsx(vB,{...w,children:r.jsxs(MB,{required:y,scope:e,trigger:v,onTriggerChange:k,valueNode:C,onValueNodeChange:E,valueNodeHasChildren:I,onValueNodeHasChildrenChange:L,contentId:Li(),value:R,onValueChange:K,open:D,onOpenChange:P,dir:W,triggerPointerDownPosRef:re,disabled:g,children:[r.jsx(wp.Provider,{scope:e,children:r.jsx(AB,{scope:t.__scopeSelect,onNativeOptionAdd:b.useCallback(J=>{H($=>new Set($).add(J))},[]),onNativeOptionRemove:b.useCallback(J=>{H($=>{const M=new Set($);return M.delete(J),M})},[]),children:n})}),ue?r.jsxs(t3,{"aria-hidden":!0,required:y,tabIndex:-1,name:f,autoComplete:m,value:R,onChange:J=>K(J.target.value),disabled:g,form:N,children:[R===void 0?r.jsx("option",{value:""}):null,Array.from(xe)]},O):null]})})};R4.displayName=tl;var O4="SelectTrigger",D4=b.forwardRef((t,e)=>{const{__scopeSelect:n,disabled:s=!1,...a}=t,i=kp(n),o=eo(O4,n),c=o.disabled||s,u=Ot(e,o.onTriggerChange),h=jp(n),f=b.useRef("touch"),[m,g,y]=s3(w=>{const v=h().filter(E=>!E.disabled),k=v.find(E=>E.value===o.value),C=r3(v,w,k);C!==void 0&&o.onValueChange(C.value)}),N=w=>{c||(o.onOpenChange(!0),y()),w&&(o.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return r.jsx(NB,{asChild:!0,...i,children:r.jsx(xt.button,{type:"button",role:"combobox","aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":"none",dir:o.dir,"data-state":o.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":n3(o.value)?"":void 0,...a,ref:u,onClick:ft(a.onClick,w=>{w.currentTarget.focus(),f.current!=="mouse"&&N(w)}),onPointerDown:ft(a.onPointerDown,w=>{f.current=w.pointerType;const v=w.target;v.hasPointerCapture(w.pointerId)&&v.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(N(w),w.preventDefault())}),onKeyDown:ft(a.onKeyDown,w=>{const v=m.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(v&&w.key===" ")&&CB.includes(w.key)&&(N(),w.preventDefault())})})})});D4.displayName=O4;var L4="SelectValue",_4=b.forwardRef((t,e)=>{const{__scopeSelect:n,className:s,style:a,children:i,placeholder:o="",...c}=t,u=eo(L4,n),{onValueNodeHasChildrenChange:h}=u,f=i!==void 0,m=Ot(e,u.onValueNodeChange);return xs(()=>{h(f)},[h,f]),r.jsx(xt.span,{...c,ref:m,style:{pointerEvents:"none"},children:n3(u.value)?r.jsx(r.Fragment,{children:o}):i})});_4.displayName=L4;var PB="SelectIcon",z4=b.forwardRef((t,e)=>{const{__scopeSelect:n,children:s,...a}=t;return r.jsx(xt.span,{"aria-hidden":!0,...a,ref:e,children:s||"▼"})});z4.displayName=PB;var RB="SelectPortal",F4=t=>r.jsx(k0,{asChild:!0,...t});F4.displayName=RB;var nl="SelectContent",$4=b.forwardRef((t,e)=>{const n=eo(nl,t.__scopeSelect),[s,a]=b.useState();if(xs(()=>{a(new DocumentFragment)},[]),!n.open){const i=s;return i?qd.createPortal(r.jsx(B4,{scope:t.__scopeSelect,children:r.jsx(wp.Slot,{scope:t.__scopeSelect,children:r.jsx("div",{children:t.children})})}),i):null}return r.jsx(V4,{...t,ref:e})});$4.displayName=nl;var _r=10,[B4,to]=vc(nl),OB="SelectContentImpl",DB=Id("SelectContent.RemoveScroll"),V4=b.forwardRef((t,e)=>{const{__scopeSelect:n,position:s="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:i,onPointerDownOutside:o,side:c,sideOffset:u,align:h,alignOffset:f,arrowPadding:m,collisionBoundary:g,collisionPadding:y,sticky:N,hideWhenDetached:w,avoidCollisions:v,...k}=t,C=eo(nl,n),[E,I]=b.useState(null),[L,W]=b.useState(null),D=Ot(e,ee=>I(ee)),[P,R]=b.useState(null),[K,re]=b.useState(null),ue=jp(n),[xe,H]=b.useState(!1),O=b.useRef(!1);b.useEffect(()=>{if(E)return sk(E)},[E]),Gj();const J=b.useCallback(ee=>{const[Y,...he]=ue().map(pe=>pe.ref.current),[te]=he.slice(-1),ce=document.activeElement;for(const pe of ee)if(pe===ce||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===Y&&L&&(L.scrollTop=0),pe===te&&L&&(L.scrollTop=L.scrollHeight),pe==null||pe.focus(),document.activeElement!==ce))return},[ue,L]),$=b.useCallback(()=>J([P,E]),[J,P,E]);b.useEffect(()=>{xe&&$()},[xe,$]);const{onOpenChange:M,triggerPointerDownPosRef:q}=C;b.useEffect(()=>{if(E){let ee={x:0,y:0};const Y=te=>{var ce,pe;ee={x:Math.abs(Math.round(te.pageX)-(((ce=q.current)==null?void 0:ce.x)??0)),y:Math.abs(Math.round(te.pageY)-(((pe=q.current)==null?void 0:pe.y)??0))}},he=te=>{ee.x<=10&&ee.y<=10?te.preventDefault():E.contains(te.target)||M(!1),document.removeEventListener("pointermove",Y),q.current=null};return q.current!==null&&(document.addEventListener("pointermove",Y),document.addEventListener("pointerup",he,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Y),document.removeEventListener("pointerup",he,{capture:!0})}}},[E,M,q]),b.useEffect(()=>{const ee=()=>M(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[M]);const[B,z]=s3(ee=>{const Y=ue().filter(ce=>!ce.disabled),he=Y.find(ce=>ce.ref.current===document.activeElement),te=r3(Y,ee,he);te&&setTimeout(()=>te.ref.current.focus())}),G=b.useCallback((ee,Y,he)=>{const te=!O.current&&!he;(C.value!==void 0&&C.value===Y||te)&&(R(ee),te&&(O.current=!0))},[C.value]),oe=b.useCallback(()=>E==null?void 0:E.focus(),[E]),ye=b.useCallback((ee,Y,he)=>{const te=!O.current&&!he;(C.value!==void 0&&C.value===Y||te)&&re(ee)},[C.value]),Ae=s==="popper"?o0:H4,ke=Ae===o0?{side:c,sideOffset:u,align:h,alignOffset:f,arrowPadding:m,collisionBoundary:g,collisionPadding:y,sticky:N,hideWhenDetached:w,avoidCollisions:v}:{};return r.jsx(B4,{scope:n,content:E,viewport:L,onViewportChange:W,itemRefCallback:G,selectedItem:P,onItemLeave:oe,itemTextRefCallback:ye,focusSelectedItem:$,selectedItemText:K,position:s,isPositioned:xe,searchRef:B,children:r.jsx(S0,{as:DB,allowPinchZoom:!0,children:r.jsx(j0,{asChild:!0,trapped:C.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:ft(a,ee=>{var Y;(Y=C.trigger)==null||Y.focus({preventScroll:!0}),ee.preventDefault()}),children:r.jsx(w0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>C.onOpenChange(!1),children:r.jsx(Ae,{role:"listbox",id:C.contentId,"data-state":C.open?"open":"closed",dir:C.dir,onContextMenu:ee=>ee.preventDefault(),...k,...ke,onPlaced:()=>H(!0),ref:D,style:{display:"flex",flexDirection:"column",outline:"none",...k.style},onKeyDown:ft(k.onKeyDown,ee=>{const Y=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!Y&&ee.key.length===1&&z(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let te=ue().filter(ce=>!ce.disabled).map(ce=>ce.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(te=te.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const ce=ee.target,pe=te.indexOf(ce);te=te.slice(pe+1)}setTimeout(()=>J(te)),ee.preventDefault()}})})})})})})});V4.displayName=OB;var LB="SelectItemAlignedPosition",H4=b.forwardRef((t,e)=>{const{__scopeSelect:n,onPlaced:s,...a}=t,i=eo(nl,n),o=to(nl,n),[c,u]=b.useState(null),[h,f]=b.useState(null),m=Ot(e,D=>f(D)),g=jp(n),y=b.useRef(!1),N=b.useRef(!0),{viewport:w,selectedItem:v,selectedItemText:k,focusSelectedItem:C}=o,E=b.useCallback(()=>{if(i.trigger&&i.valueNode&&c&&h&&w&&v&&k){const D=i.trigger.getBoundingClientRect(),P=h.getBoundingClientRect(),R=i.valueNode.getBoundingClientRect(),K=k.getBoundingClientRect();if(i.dir!=="rtl"){const ce=K.left-P.left,pe=R.left-ce,Fe=D.left-pe,rt=D.width+Fe,vt=Math.max(rt,P.width),mt=window.innerWidth-_r,Ut=Jh(pe,[_r,Math.max(_r,mt-vt)]);c.style.minWidth=rt+"px",c.style.left=Ut+"px"}else{const ce=P.right-K.right,pe=window.innerWidth-R.right-ce,Fe=window.innerWidth-D.right-pe,rt=D.width+Fe,vt=Math.max(rt,P.width),mt=window.innerWidth-_r,Ut=Jh(pe,[_r,Math.max(_r,mt-vt)]);c.style.minWidth=rt+"px",c.style.right=Ut+"px"}const re=g(),ue=window.innerHeight-_r*2,xe=w.scrollHeight,H=window.getComputedStyle(h),O=parseInt(H.borderTopWidth,10),J=parseInt(H.paddingTop,10),$=parseInt(H.borderBottomWidth,10),M=parseInt(H.paddingBottom,10),q=O+J+xe+M+$,B=Math.min(v.offsetHeight*5,q),z=window.getComputedStyle(w),G=parseInt(z.paddingTop,10),oe=parseInt(z.paddingBottom,10),ye=D.top+D.height/2-_r,Ae=ue-ye,ke=v.offsetHeight/2,ee=v.offsetTop+ke,Y=O+J+ee,he=q-Y;if(Y<=ye){const ce=re.length>0&&v===re[re.length-1].ref.current;c.style.bottom="0px";const pe=h.clientHeight-w.offsetTop-w.offsetHeight,Fe=Math.max(Ae,ke+(ce?oe:0)+pe+$),rt=Y+Fe;c.style.height=rt+"px"}else{const ce=re.length>0&&v===re[0].ref.current;c.style.top="0px";const Fe=Math.max(ye,O+w.offsetTop+(ce?G:0)+ke)+he;c.style.height=Fe+"px",w.scrollTop=Y-ye+w.offsetTop}c.style.margin=`${_r}px 0`,c.style.minHeight=B+"px",c.style.maxHeight=ue+"px",s==null||s(),requestAnimationFrame(()=>y.current=!0)}},[g,i.trigger,i.valueNode,c,h,w,v,k,i.dir,s]);xs(()=>E(),[E]);const[I,L]=b.useState();xs(()=>{h&&L(window.getComputedStyle(h).zIndex)},[h]);const W=b.useCallback(D=>{D&&N.current===!0&&(E(),C==null||C(),N.current=!1)},[E,C]);return r.jsx(zB,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:y,onScrollButtonChange:W,children:r.jsx("div",{ref:u,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:I},children:r.jsx(xt.div,{...a,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});H4.displayName=LB;var _B="SelectPopperPosition",o0=b.forwardRef((t,e)=>{const{__scopeSelect:n,align:s="start",collisionPadding:a=_r,...i}=t,o=kp(n);return r.jsx(wB,{...o,...i,ref:e,align:s,collisionPadding:a,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});o0.displayName=_B;var[zB,Ry]=vc(nl,{}),l0="SelectViewport",W4=b.forwardRef((t,e)=>{const{__scopeSelect:n,nonce:s,...a}=t,i=to(l0,n),o=Ry(l0,n),c=Ot(e,i.onViewportChange),u=b.useRef(0);return r.jsxs(r.Fragment,{children:[r.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),r.jsx(wp.Slot,{scope:n,children:r.jsx(xt.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:ft(a.onScroll,h=>{const f=h.currentTarget,{contentWrapper:m,shouldExpandOnScrollRef:g}=o;if(g!=null&&g.current&&m){const y=Math.abs(u.current-f.scrollTop);if(y>0){const N=window.innerHeight-_r*2,w=parseFloat(m.style.minHeight),v=parseFloat(m.style.height),k=Math.max(w,v);if(k<N){const C=k+y,E=Math.min(N,C),I=C-E;m.style.height=E+"px",m.style.bottom==="0px"&&(f.scrollTop=I>0?I:0,m.style.justifyContent="flex-end")}}}u.current=f.scrollTop})})})]})});W4.displayName=l0;var U4="SelectGroup",[FB,$B]=vc(U4),BB=b.forwardRef((t,e)=>{const{__scopeSelect:n,...s}=t,a=Li();return r.jsx(FB,{scope:n,id:a,children:r.jsx(xt.div,{role:"group","aria-labelledby":a,...s,ref:e})})});BB.displayName=U4;var K4="SelectLabel",VB=b.forwardRef((t,e)=>{const{__scopeSelect:n,...s}=t,a=$B(K4,n);return r.jsx(xt.div,{id:a.id,...s,ref:e})});VB.displayName=K4;var Wf="SelectItem",[HB,q4]=vc(Wf),G4=b.forwardRef((t,e)=>{const{__scopeSelect:n,value:s,disabled:a=!1,textValue:i,...o}=t,c=eo(Wf,n),u=to(Wf,n),h=c.value===s,[f,m]=b.useState(i??""),[g,y]=b.useState(!1),N=Ot(e,C=>{var E;return(E=u.itemRefCallback)==null?void 0:E.call(u,C,s,a)}),w=Li(),v=b.useRef("touch"),k=()=>{a||(c.onValueChange(s),c.onOpenChange(!1))};if(s==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return r.jsx(HB,{scope:n,value:s,disabled:a,textId:w,isSelected:h,onItemTextChange:b.useCallback(C=>{m(E=>E||((C==null?void 0:C.textContent)??"").trim())},[]),children:r.jsx(wp.ItemSlot,{scope:n,value:s,disabled:a,textValue:f,children:r.jsx(xt.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":h&&g,"data-state":h?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...o,ref:N,onFocus:ft(o.onFocus,()=>y(!0)),onBlur:ft(o.onBlur,()=>y(!1)),onClick:ft(o.onClick,()=>{v.current!=="mouse"&&k()}),onPointerUp:ft(o.onPointerUp,()=>{v.current==="mouse"&&k()}),onPointerDown:ft(o.onPointerDown,C=>{v.current=C.pointerType}),onPointerMove:ft(o.onPointerMove,C=>{var E;v.current=C.pointerType,a?(E=u.onItemLeave)==null||E.call(u):v.current==="mouse"&&C.currentTarget.focus({preventScroll:!0})}),onPointerLeave:ft(o.onPointerLeave,C=>{var E;C.currentTarget===document.activeElement&&((E=u.onItemLeave)==null||E.call(u))}),onKeyDown:ft(o.onKeyDown,C=>{var I;((I=u.searchRef)==null?void 0:I.current)!==""&&C.key===" "||(EB.includes(C.key)&&k(),C.key===" "&&C.preventDefault())})})})})});G4.displayName=Wf;var hd="SelectItemText",J4=b.forwardRef((t,e)=>{const{__scopeSelect:n,className:s,style:a,...i}=t,o=eo(hd,n),c=to(hd,n),u=q4(hd,n),h=IB(hd,n),[f,m]=b.useState(null),g=Ot(e,k=>m(k),u.onItemTextChange,k=>{var C;return(C=c.itemTextRefCallback)==null?void 0:C.call(c,k,u.value,u.disabled)}),y=f==null?void 0:f.textContent,N=b.useMemo(()=>r.jsx("option",{value:u.value,disabled:u.disabled,children:y},u.value),[u.disabled,u.value,y]),{onNativeOptionAdd:w,onNativeOptionRemove:v}=h;return xs(()=>(w(N),()=>v(N)),[w,v,N]),r.jsxs(r.Fragment,{children:[r.jsx(xt.span,{id:u.textId,...i,ref:g}),u.isSelected&&o.valueNode&&!o.valueNodeHasChildren?qd.createPortal(i.children,o.valueNode):null]})});J4.displayName=hd;var Y4="SelectItemIndicator",Q4=b.forwardRef((t,e)=>{const{__scopeSelect:n,...s}=t;return q4(Y4,n).isSelected?r.jsx(xt.span,{"aria-hidden":!0,...s,ref:e}):null});Q4.displayName=Y4;var c0="SelectScrollUpButton",X4=b.forwardRef((t,e)=>{const n=to(c0,t.__scopeSelect),s=Ry(c0,t.__scopeSelect),[a,i]=b.useState(!1),o=Ot(e,s.onScrollButtonChange);return xs(()=>{if(n.viewport&&n.isPositioned){let c=function(){const h=u.scrollTop>0;i(h)};const u=n.viewport;return c(),u.addEventListener("scroll",c),()=>u.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),a?r.jsx(e3,{...t,ref:o,onAutoScroll:()=>{const{viewport:c,selectedItem:u}=n;c&&u&&(c.scrollTop=c.scrollTop-u.offsetHeight)}}):null});X4.displayName=c0;var d0="SelectScrollDownButton",Z4=b.forwardRef((t,e)=>{const n=to(d0,t.__scopeSelect),s=Ry(d0,t.__scopeSelect),[a,i]=b.useState(!1),o=Ot(e,s.onScrollButtonChange);return xs(()=>{if(n.viewport&&n.isPositioned){let c=function(){const h=u.scrollHeight-u.clientHeight,f=Math.ceil(u.scrollTop)<h;i(f)};const u=n.viewport;return c(),u.addEventListener("scroll",c),()=>u.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),a?r.jsx(e3,{...t,ref:o,onAutoScroll:()=>{const{viewport:c,selectedItem:u}=n;c&&u&&(c.scrollTop=c.scrollTop+u.offsetHeight)}}):null});Z4.displayName=d0;var e3=b.forwardRef((t,e)=>{const{__scopeSelect:n,onAutoScroll:s,...a}=t,i=to("SelectScrollButton",n),o=b.useRef(null),c=jp(n),u=b.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return b.useEffect(()=>()=>u(),[u]),xs(()=>{var f;const h=c().find(m=>m.ref.current===document.activeElement);(f=h==null?void 0:h.ref.current)==null||f.scrollIntoView({block:"nearest"})},[c]),r.jsx(xt.div,{"aria-hidden":!0,...a,ref:e,style:{flexShrink:0,...a.style},onPointerDown:ft(a.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(s,50))}),onPointerMove:ft(a.onPointerMove,()=>{var h;(h=i.onItemLeave)==null||h.call(i),o.current===null&&(o.current=window.setInterval(s,50))}),onPointerLeave:ft(a.onPointerLeave,()=>{u()})})}),WB="SelectSeparator",UB=b.forwardRef((t,e)=>{const{__scopeSelect:n,...s}=t;return r.jsx(xt.div,{"aria-hidden":!0,...s,ref:e})});UB.displayName=WB;var u0="SelectArrow",KB=b.forwardRef((t,e)=>{const{__scopeSelect:n,...s}=t,a=kp(n),i=eo(u0,n),o=to(u0,n);return i.open&&o.position==="popper"?r.jsx(jB,{...a,...s,ref:e}):null});KB.displayName=u0;var qB="SelectBubbleInput",t3=b.forwardRef(({__scopeSelect:t,value:e,...n},s)=>{const a=b.useRef(null),i=Ot(s,a),o=I0(e);return b.useEffect(()=>{const c=a.current;if(!c)return;const u=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(u,"value").set;if(o!==e&&f){const m=new Event("change",{bubbles:!0});f.call(c,e),c.dispatchEvent(m)}},[o,e]),r.jsx(xt.select,{...n,style:{...P4,...n.style},ref:i,defaultValue:e})});t3.displayName=qB;function n3(t){return t===""||t===void 0}function s3(t){const e=Vi(t),n=b.useRef(""),s=b.useRef(0),a=b.useCallback(o=>{const c=n.current+o;e(c),(function u(h){n.current=h,window.clearTimeout(s.current),h!==""&&(s.current=window.setTimeout(()=>u(""),1e3))})(c)},[e]),i=b.useCallback(()=>{n.current="",window.clearTimeout(s.current)},[]);return b.useEffect(()=>()=>window.clearTimeout(s.current),[]),[n,a,i]}function r3(t,e,n){const a=e.length>1&&Array.from(e).every(h=>h===e[0])?e[0]:e,i=n?t.indexOf(n):-1;let o=GB(t,Math.max(i,0));a.length===1&&(o=o.filter(h=>h!==n));const u=o.find(h=>h.textValue.toLowerCase().startsWith(a.toLowerCase()));return u!==n?u:void 0}function GB(t,e){return t.map((n,s)=>t[(e+s)%t.length])}var JB=R4,a3=D4,YB=_4,QB=z4,XB=F4,i3=$4,ZB=W4,o3=G4,eV=J4,tV=Q4,nV=X4,sV=Z4;const Ul=JB,Kl=YB,Io=b.forwardRef(({className:t,children:e,...n},s)=>r.jsxs(a3,{ref:s,className:Dt("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...n,children:[e,r.jsx(QB,{asChild:!0,children:r.jsx(x0,{className:"h-4 w-4 opacity-50"})})]}));Io.displayName=a3.displayName;const Po=b.forwardRef(({className:t,children:e,position:n="popper",...s},a)=>r.jsx(XB,{children:r.jsxs(i3,{ref:a,className:Dt("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1",t),position:n,...s,children:[r.jsx(nV,{className:"flex cursor-default items-center justify-center py-1",children:r.jsx(xj,{className:"h-4 w-4"})}),r.jsx(ZB,{className:"p-1",children:e}),r.jsx(sV,{className:"flex cursor-default items-center justify-center py-1",children:r.jsx(x0,{className:"h-4 w-4"})})]})}));Po.displayName=i3.displayName;const nr=b.forwardRef(({className:t,children:e,...n},s)=>r.jsxs(o3,{ref:s,className:Dt("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...n,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(tV,{children:r.jsx(qf,{className:"h-4 w-4"})})}),r.jsx(eV,{children:e})]}));nr.displayName=o3.displayName;function rV(){const[t,e]=b.useState([]),[n,s]=b.useState(!0),[a,i]=b.useState(!1),[o,c]=b.useState(null),[u,h]=b.useState({name:"",appId:"",path:"",sort:0}),[f,m]=b.useState(!1);async function g(){s(!0);try{const k=await Oe("/api/admin/linked-miniprograms");if(k!=null&&k.success&&Array.isArray(k.data)){const C=[...k.data].sort((E,I)=>(E.sort??0)-(I.sort??0));e(C)}}catch(k){console.error("Load linked miniprograms error:",k),se.error("加载失败")}finally{s(!1)}}b.useEffect(()=>{g()},[]);function y(){c(null),h({name:"",appId:"",path:"",sort:t.length}),i(!0)}function N(k){c(k),h({name:k.name,appId:k.appId,path:k.path??"",sort:k.sort??0}),i(!0)}async function w(){const k=u.name.trim(),C=u.appId.trim();if(!k||!C){se.error("请填写小程序名称和 AppID");return}m(!0);try{if(o){const E=await Pt("/api/admin/linked-miniprograms",{key:o.key,name:k,appId:C,path:u.path.trim(),sort:u.sort});E!=null&&E.success?(se.success("已更新"),i(!1),g()):se.error((E==null?void 0:E.error)??"更新失败")}else{const E=await jt("/api/admin/linked-miniprograms",{name:k,appId:C,path:u.path.trim(),sort:u.sort});E!=null&&E.success?(se.success("已添加"),i(!1),g()):se.error((E==null?void 0:E.error)??"添加失败")}}catch{se.error("操作失败")}finally{m(!1)}}async function v(k){if(confirm(`确定要删除「${k.name}」吗?`))try{const C=await oa(`/api/admin/linked-miniprograms/${k.key}`);C!=null&&C.success?(se.success("已删除"),g()):se.error((C==null?void 0:C.error)??"删除失败")}catch{se.error("删除失败")}}return r.jsxs("div",{className:"space-y-6",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Bi,{className:"w-5 h-5 text-[#38bdac]"}),"关联小程序管理"]}),r.jsx(Ft,{className:"text-gray-400",children:"添加后生成 32 位密钥,链接标签选择小程序时存密钥;小程序端点击 #标签 时用密钥查 appId 再跳转。需在 app.json 的 navigateToMiniProgramAppIdList 中配置目标 AppID。"})]}),r.jsxs(Te,{children:[r.jsxs("div",{className:"flex justify-end gap-2 mb-4",children:[r.jsx(X,{variant:"outline",size:"sm",className:"border-gray-600 text-gray-400 hover:bg-gray-700/50",onClick:()=>g(),title:"刷新",children:r.jsx(Be,{className:"w-4 h-4"})}),r.jsxs(X,{onClick:y,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"添加关联小程序"]})]}),n?r.jsx("div",{className:"py-12 text-center text-gray-400",children:"加载中..."}):r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"名称"}),r.jsx(we,{className:"text-gray-400",children:"密钥"}),r.jsx(we,{className:"text-gray-400",children:"AppID"}),r.jsx(we,{className:"text-gray-400",children:"路径"}),r.jsx(we,{className:"text-gray-400 w-24",children:"排序"}),r.jsx(we,{className:"text-gray-400 w-32",children:"操作"})]})}),r.jsxs(rs,{children:[t.map(k=>r.jsxs(ut,{className:"border-gray-700/50",children:[r.jsx(be,{className:"text-white",children:k.name}),r.jsx(be,{className:"text-gray-300 font-mono text-xs",children:k.key}),r.jsx(be,{className:"text-gray-300 font-mono text-sm",children:k.appId}),r.jsx(be,{className:"text-gray-400 text-sm",children:k.path||"—"}),r.jsx(be,{className:"text-gray-300",children:k.sort??0}),r.jsx(be,{children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx(X,{variant:"ghost",size:"sm",className:"text-[#38bdac] hover:bg-[#38bdac]/20",onClick:()=>N(k),children:r.jsx(cx,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"text-red-400 hover:bg-red-500/20",onClick:()=>v(k),children:r.jsx(Xn,{className:"w-4 h-4"})})]})})]},k.key)),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:6,className:"text-center py-12 text-gray-500",children:"暂无关联小程序,点击「添加关联小程序」开始配置"})})]})]})]})]}),r.jsx(Lt,{open:a,onOpenChange:i,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md p-4 gap-3",children:[r.jsxs(_t,{className:"gap-1",children:[r.jsx(zt,{className:"text-base",children:o?"编辑关联小程序":"添加关联小程序"}),r.jsx(Pd,{className:"text-gray-400 text-xs",children:"填写目标小程序的名称和 AppID路径可选为空则打开首页"})]}),r.jsxs("div",{className:"space-y-3 py-2",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"小程序名称"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm",placeholder:"例如Soul 创业派对",value:u.name,onChange:k=>h(C=>({...C,name:k.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"AppID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white font-mono h-8 text-sm",placeholder:"例如wxb8bbb2b10dec74aa",value:u.appId,onChange:k=>h(C=>({...C,appId:k.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"路径(可选)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm",placeholder:"例如pages/index/index",value:u.path,onChange:k=>h(C=>({...C,path:k.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"排序"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm w-20",value:u.sort,onChange:k=>h(C=>({...C,sort:parseInt(k.target.value,10)||0}))})]})]}),r.jsxs(on,{className:"gap-2 pt-1",children:[r.jsx(X,{variant:"outline",onClick:()=>i(!1),className:"border-gray-600",children:"取消"}),r.jsx(X,{onClick:w,disabled:f,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:f?"保存中...":"保存"})]})]})})]})}const aV=["一","二","三","四","五","六","七","八","九","十"];function iV(t){return t.title==="序言"||t.title.includes("序言")}function Hw(t){const e=[];for(const n of t.chapters)for(const s of n.sections)e.push(s.id);return e.length===0?"暂无章节":e.length===1?e[0]:`${e[0]}~${e[e.length-1]}`}function Yg(t){return t.startsWith("part:")?{type:"part",id:t.slice(5)}:t.startsWith("chapter:")?{type:"chapter",id:t.slice(8)}:t.startsWith("section:")?{type:"section",id:t.slice(8)}:null}function oV({parts:t,expandedParts:e,onTogglePart:n,onReorder:s,onReadSection:a,onDeleteSection:i,onAddSectionInPart:o,onAddChapterInPart:c,onDeleteChapter:u,onEditPart:h,onDeletePart:f,onEditChapter:m,selectedSectionIds:g=[],onToggleSectionSelect:y,onShowSectionOrders:N,pinnedSectionIds:w=[],sectionsLoadingByPart:v={}}){const[k,C]=b.useState(null),[E,I]=b.useState(null),L=(H,O)=>(k==null?void 0:k.type)===H&&(k==null?void 0:k.id)===O,W=(H,O)=>(E==null?void 0:E.type)===H&&(E==null?void 0:E.id)===O,D=b.useCallback(()=>{const H=[];for(const O of t)for(const J of O.chapters)for(const $ of J.sections)H.push({id:$.id,partId:O.id,partTitle:O.title,chapterId:J.id,chapterTitle:J.title});return H},[t]),P=b.useCallback(async(H,O,J,$)=>{var G;H.preventDefault(),H.stopPropagation();const M=H.dataTransfer.getData("text/plain"),q=Yg(M);if(!q||q.type===O&&q.id===J)return;const B=D(),z=new Map(B.map(oe=>[oe.id,oe]));if(q.type==="part"&&O==="part"){const oe=t.map(Y=>Y.id),ye=oe.indexOf(q.id),Ae=oe.indexOf(J);if(ye===-1||Ae===-1)return;const ke=[...oe];ke.splice(ye,1),ke.splice(ye<Ae?Ae-1:Ae,0,q.id);const ee=[];for(const Y of ke){const he=t.find(te=>te.id===Y);if(he)for(const te of he.chapters)for(const ce of te.sections){const pe=z.get(ce.id);pe&&ee.push(pe)}}await s(ee);return}if(q.type==="chapter"&&(O==="chapter"||O==="section"||O==="part")){const oe=t.find(pe=>pe.chapters.some(Fe=>Fe.id===q.id)),ye=oe==null?void 0:oe.chapters.find(pe=>pe.id===q.id);if(!oe||!ye)return;let Ae,ke,ee=null;if(O==="section"){const pe=z.get(J);if(!pe)return;Ae=pe.partId,ke=pe.partTitle,ee=J}else if(O==="chapter"){const pe=t.find(vt=>vt.chapters.some(mt=>mt.id===J)),Fe=pe==null?void 0:pe.chapters.find(vt=>vt.id===J);if(!pe||!Fe)return;Ae=pe.id,ke=pe.title;const rt=B.filter(vt=>vt.chapterId===J).pop();ee=(rt==null?void 0:rt.id)??null}else{const pe=t.find(rt=>rt.id===J);if(!pe||!pe.chapters[0])return;Ae=pe.id,ke=pe.title;const Fe=B.filter(rt=>rt.partId===pe.id&&rt.chapterId===pe.chapters[0].id);ee=((G=Fe[Fe.length-1])==null?void 0:G.id)??null}const Y=ye.sections.map(pe=>pe.id),he=B.filter(pe=>!Y.includes(pe.id));let te=he.length;if(ee){const pe=he.findIndex(Fe=>Fe.id===ee);pe>=0&&(te=pe+1)}const ce=Y.map(pe=>({...z.get(pe),partId:Ae,partTitle:ke,chapterId:ye.id,chapterTitle:ye.title}));await s([...he.slice(0,te),...ce,...he.slice(te)]);return}if(q.type==="section"&&(O==="section"||O==="chapter"||O==="part")){if(!$)return;const{partId:oe,partTitle:ye,chapterId:Ae,chapterTitle:ke}=$;let ee;if(O==="section")ee=B.findIndex(Fe=>Fe.id===J);else if(O==="chapter"){const Fe=B.filter(rt=>rt.chapterId===J).pop();ee=Fe?B.findIndex(rt=>rt.id===Fe.id)+1:B.length}else{const Fe=t.find(mt=>mt.id===J);if(!(Fe!=null&&Fe.chapters[0]))return;const rt=B.filter(mt=>mt.partId===Fe.id&&mt.chapterId===Fe.chapters[0].id),vt=rt[rt.length-1];ee=vt?B.findIndex(mt=>mt.id===vt.id)+1:0}const Y=B.findIndex(Fe=>Fe.id===q.id);if(Y===-1)return;const he=B.filter(Fe=>Fe.id!==q.id),te=Y<ee?ee-1:ee,pe={...B[Y],partId:oe,partTitle:ye,chapterId:Ae,chapterTitle:ke};he.splice(te,0,pe),await s(he)}},[t,D,s]),R=(H,O,J)=>({onDragEnter:$=>{$.preventDefault(),$.stopPropagation(),$.dataTransfer.dropEffect="move",I({type:H,id:O})},onDragOver:$=>{$.preventDefault(),$.stopPropagation(),$.dataTransfer.dropEffect="move",I({type:H,id:O})},onDragLeave:()=>I(null),onDrop:$=>{I(null);const M=Yg($.dataTransfer.getData("text/plain"));if(M&&!(H==="section"&&M.type==="section"&&M.id===O))if(H==="part")if(M.type==="part")P($,"part",O);else{const q=t.find(z=>z.id===O);(q==null?void 0:q.chapters[0])&&J&&P($,"part",O,J)}else H==="chapter"&&J?(M.type==="section"||M.type==="chapter")&&P($,"chapter",O,J):H==="section"&&J&&P($,"section",O,J)}}),K=H=>aV[H]??String(H+1),re=H=>t.slice(0,H).filter(O=>!iV(O)).length,ue=(H,O)=>{const J=H.title.match(/^第(.+?)篇/);return J?J[1].trim():H.id==="part-2026-daily"?"派":K(re(O))},xe=H=>r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"text-gray-500 font-mono text-xs tabular-nums shrink-0 mr-1.5 max-w-[72px] truncate",title:`章节ID: ${H.id}`,children:H.id}),r.jsx("span",{className:"truncate",children:H.title})]});return r.jsx("div",{className:"space-y-3",children:t.map((H,O)=>{var ye,Ae,ke,ee;const J=H.title==="序言"||H.title.includes("序言"),$=H.title==="尾声"||H.title.includes("尾声"),M=H.title==="附录"||H.title.includes("附录"),q=W("part",H.id),B=e.includes(H.id),z=H.chapters.length,G=H.chapters.reduce((Y,he)=>Y+he.sections.length,0);if(J&&H.chapters.length===1&&H.chapters[0].sections.length===1){const Y=H.chapters[0].sections[0],he=W("section",Y.id),te={partId:H.id,partTitle:H.title,chapterId:H.chapters[0].id,chapterTitle:H.chapters[0].title};return r.jsxs("div",{draggable:!0,onDragStart:ce=>{ce.stopPropagation(),ce.dataTransfer.setData("text/plain","section:"+Y.id),ce.dataTransfer.effectAllowed="move",C({type:"section",id:Y.id})},onDragEnd:()=>{C(null),I(null)},className:`rounded-xl border border-gray-700/50 bg-[#1C1C1E] p-4 flex items-center justify-between hover:border-[#38bdac]/30 transition-colors cursor-grab active:cursor-grabbing select-none min-h-[40px] ${he?"bg-[#38bdac]/15 ring-2 ring-[#38bdac]/50":""} ${L("section",Y.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":""}`,...R("section",Y.id,te),children:[r.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0 select-none",children:[r.jsx(Ra,{className:"w-5 h-5 text-gray-500 shrink-0 opacity-60"}),y&&r.jsx("label",{className:"shrink-0 flex items-center",onClick:ce=>ce.stopPropagation(),children:r.jsx("input",{type:"checkbox",checked:g.includes(Y.id),onChange:()=>y(Y.id),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"})}),r.jsx("div",{className:"w-8 h-8 rounded-lg bg-gray-600/50 flex items-center justify-center shrink-0",children:r.jsx(ir,{className:"w-4 h-4 text-gray-400"})}),r.jsxs("span",{className:"font-medium text-gray-200 truncate",children:[H.chapters[0].title," | ",Y.title]}),w.includes(Y.id)&&r.jsx("span",{title:"已置顶",children:r.jsx(Ii,{className:"w-3.5 h-3.5 text-amber-400 fill-amber-400 shrink-0"})})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",onMouseDown:ce=>ce.stopPropagation(),onClick:ce=>ce.stopPropagation(),children:[Y.price===0||Y.isFree?r.jsx("span",{className:"px-2 py-1 bg-[#38bdac]/20 text-[#38bdac] text-[10px] font-medium rounded",children:"免费"}):r.jsxs("span",{className:"text-xs text-gray-500",children:["¥",Y.price]}),r.jsxs("span",{className:"text-[10px] text-gray-500",children:["点击 ",Y.clickCount??0," · 付款 ",Y.payCount??0]}),r.jsxs("span",{className:"text-[10px] text-amber-400/90",title:"热度积分与排名",children:["热度 ",(Y.hotScore??0).toFixed(1)," · 第",Y.hotRank&&Y.hotRank>0?Y.hotRank:"-","名"]}),N&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>N(Y),className:"text-[10px] text-gray-500 hover:text-[#38bdac] h-7 px-1.5",children:"付款记录"}),r.jsxs("div",{className:"flex gap-1",children:[r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>a(Y),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"编辑",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>i(Y),className:"text-gray-500 hover:text-red-400 h-7 px-2",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]})]},H.id)}if(H.id==="part-2026-daily"){const Y=W("part",H.id);return r.jsxs("div",{className:`rounded-xl border overflow-hidden transition-all duration-200 ${Y?"border-[#38bdac] ring-2 ring-[#38bdac]/40 bg-[#38bdac]/5":"border-gray-700/50 bg-[#1C1C1E]"}`,...R("part",H.id,{partId:H.id,partTitle:H.title,chapterId:((ye=H.chapters[0])==null?void 0:ye.id)??"",chapterTitle:((Ae=H.chapters[0])==null?void 0:Ae.title)??""}),children:[r.jsxs("div",{draggable:!0,onDragStart:he=>{he.stopPropagation(),he.dataTransfer.setData("text/plain","part:"+H.id),he.dataTransfer.effectAllowed="move",C({type:"part",id:H.id})},onDragEnd:()=>{C(null),I(null)},className:`flex items-center justify-between p-4 cursor-grab active:cursor-grabbing select-none transition-all duration-200 ${L("part",H.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":"hover:bg-[#162840]/50"}`,onClick:()=>n(H.id),children:[r.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[r.jsx(Ra,{className:"w-5 h-5 text-gray-500 shrink-0 opacity-60"}),r.jsx("div",{className:"w-10 h-10 rounded-xl bg-[#38bdac]/80 flex items-center justify-center text-white font-bold shrink-0",children:ue(H,O)}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-bold text-white text-base",children:H.title}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:Hw(H)})]})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",onMouseDown:he=>he.stopPropagation(),onClick:he=>he.stopPropagation(),children:[o&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>o(H),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"在本篇下新增章节",children:r.jsx(xn,{className:"w-3.5 h-3.5"})}),h&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>h(H),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"编辑篇名",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),f&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>f(H),className:"text-gray-500 hover:text-red-400 h-7 px-2",title:"删除本篇",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})}),r.jsxs("span",{className:"text-xs text-gray-500",title:"本篇章数与节数",children:[z," 章 · ",G," 节"]}),r.jsx(ql,{className:`w-5 h-5 text-gray-500 transition-transform duration-200 ${B?"rotate-90":""}`})]})]}),H.chapters.length>0&&r.jsx("div",{className:"grid transition-[grid-template-rows] duration-200 ease-out",style:{gridTemplateRows:B?"1fr":"0fr"},children:r.jsx("div",{className:"min-h-0 overflow-hidden",children:r.jsx("div",{className:"border-t border-gray-700/50 pl-4 pr-4 pb-4 pt-3 space-y-4",children:v[H.id]?r.jsx("div",{className:"flex items-center justify-center py-8 text-gray-500 text-sm",children:r.jsx("span",{className:"animate-pulse",children:"加载中..."})}):H.chapters.map(he=>r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-center gap-2 w-full",children:[r.jsx("p",{className:"text-xs text-gray-500 pb-1 flex-1",children:he.title}),r.jsxs("div",{className:"flex gap-0.5 shrink-0",onClick:te=>te.stopPropagation(),children:[m&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>m(H,he),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"编辑章节名称",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),c&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>c(H),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"新增第X章",children:r.jsx(xn,{className:"w-3.5 h-3.5"})}),u&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>u(H,he),className:"text-gray-500 hover:text-red-400 h-7 px-1.5",title:"删除本章",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]}),r.jsx("div",{className:"space-y-1 pl-2",children:he.sections.map(te=>{const ce=W("section",te.id);return r.jsxs("div",{draggable:!0,onDragStart:pe=>{pe.stopPropagation(),pe.dataTransfer.setData("text/plain","section:"+te.id),pe.dataTransfer.effectAllowed="move",C({type:"section",id:te.id})},onDragEnd:()=>{C(null),I(null)},className:`flex items-center justify-between py-2 px-3 rounded-lg min-h-[40px] cursor-grab active:cursor-grabbing select-none transition-all duration-200 ${ce?"bg-[#38bdac]/15 ring-2 ring-[#38bdac]/50":"hover:bg-[#162840]/50"} ${L("section",te.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":""}`,...R("section",te.id,{partId:H.id,partTitle:H.title,chapterId:he.id,chapterTitle:he.title}),children:[r.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[r.jsx(Ra,{className:"w-4 h-4 text-gray-500 shrink-0 opacity-50"}),y&&r.jsx("label",{className:"shrink-0 flex items-center",onClick:pe=>pe.stopPropagation(),children:r.jsx("input",{type:"checkbox",checked:g.includes(te.id),onChange:()=>y(te.id),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"})}),r.jsx("span",{className:"text-sm text-gray-200 truncate flex items-center min-w-0",children:xe(te)}),w.includes(te.id)&&r.jsx("span",{title:"已置顶",children:r.jsx(Ii,{className:"w-3 h-3 text-amber-400 fill-amber-400 shrink-0"})})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[r.jsxs("span",{className:"text-[10px] text-gray-500",children:["点击 ",te.clickCount??0," · 付款 ",te.payCount??0]}),r.jsxs("span",{className:"text-[10px] text-amber-400/90",title:"热度积分与排名",children:["热度 ",(te.hotScore??0).toFixed(1)," · 第",te.hotRank&&te.hotRank>0?te.hotRank:"-","名"]}),N&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>N(te),className:"text-[10px] text-gray-500 hover:text-[#38bdac] h-7 px-1.5",children:"付款记录"}),r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>a(te),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"编辑",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>i(te),className:"text-gray-500 hover:text-red-400 h-7 px-1.5",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]},te.id)})})]},he.id))})})})]},H.id)}if(M)return r.jsxs("div",{className:"rounded-xl border border-gray-700/50 bg-[#1C1C1E] p-5",children:[r.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-4",children:"附录"}),r.jsx("div",{className:"space-y-3",children:H.chapters.map((Y,he)=>Y.sections.length>0?Y.sections.map(te=>{const ce=W("section",te.id);return r.jsxs("div",{draggable:!0,onDragStart:pe=>{pe.stopPropagation(),pe.dataTransfer.setData("text/plain","section:"+te.id),pe.dataTransfer.effectAllowed="move",C({type:"section",id:te.id})},onDragEnd:()=>{C(null),I(null)},className:`flex justify-between items-center py-2 select-none rounded px-2 -mx-2 group cursor-grab active:cursor-grabbing min-h-[40px] transition-all duration-200 ${ce?"bg-[#38bdac]/15 ring-2 ring-[#38bdac]/50":"hover:bg-[#162840]/50"} ${L("section",te.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":""}`,...R("section",te.id,{partId:H.id,partTitle:H.title,chapterId:Y.id,chapterTitle:Y.title}),children:[r.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[r.jsx(Ra,{className:"w-4 h-4 text-gray-500 shrink-0 opacity-50"}),y&&r.jsx("label",{className:"shrink-0 flex items-center",onClick:pe=>pe.stopPropagation(),children:r.jsx("input",{type:"checkbox",checked:g.includes(te.id),onChange:()=>y(te.id),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"})}),r.jsxs("span",{className:"text-sm text-gray-300 truncate",children:["附录",he+1," | ",Y.title," | ",te.title]}),w.includes(te.id)&&r.jsx("span",{title:"已置顶",children:r.jsx(Ii,{className:"w-3 h-3 text-amber-400 fill-amber-400 shrink-0"})})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[r.jsxs("span",{className:"text-[10px] text-gray-500",children:["点击 ",te.clickCount??0," · 付款 ",te.payCount??0]}),r.jsxs("span",{className:"text-[10px] text-amber-400/90",title:"热度积分与排名",children:["热度 ",(te.hotScore??0).toFixed(1)," · 第",te.hotRank&&te.hotRank>0?te.hotRank:"-","名"]}),N&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>N(te),className:"text-[10px] text-gray-500 hover:text-[#38bdac] h-7 px-1.5",children:"付款记录"}),r.jsxs("div",{className:"flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>a(te),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"编辑",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>i(te),className:"text-gray-500 hover:text-red-400 h-7 px-1.5",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]}),r.jsx(ql,{className:"w-4 h-4 text-gray-500 shrink-0"})]},te.id)}):r.jsxs("div",{className:"flex justify-between items-center py-2 select-none hover:bg-[#162840]/50 rounded px-2 -mx-2",children:[r.jsxs("span",{className:"text-sm text-gray-500",children:["附录",he+1," | ",Y.title,"(空)"]}),r.jsx(ql,{className:"w-4 h-4 text-gray-500 shrink-0"})]},Y.id))})]},H.id);if($&&H.chapters.length===1&&H.chapters[0].sections.length===1){const Y=H.chapters[0].sections[0],he=W("section",Y.id),te={partId:H.id,partTitle:H.title,chapterId:H.chapters[0].id,chapterTitle:H.chapters[0].title};return r.jsxs("div",{draggable:!0,onDragStart:ce=>{ce.stopPropagation(),ce.dataTransfer.setData("text/plain","section:"+Y.id),ce.dataTransfer.effectAllowed="move",C({type:"section",id:Y.id})},onDragEnd:()=>{C(null),I(null)},className:`rounded-xl border border-gray-700/50 bg-[#1C1C1E] p-4 flex items-center justify-between hover:border-[#38bdac]/30 transition-colors cursor-grab active:cursor-grabbing select-none min-h-[40px] ${he?"bg-[#38bdac]/15 ring-2 ring-[#38bdac]/50":""} ${L("section",Y.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":""}`,...R("section",Y.id,te),children:[r.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0 select-none",children:[r.jsx(Ra,{className:"w-5 h-5 text-gray-500 shrink-0 opacity-60"}),y&&r.jsx("label",{className:"shrink-0 flex items-center",onClick:ce=>ce.stopPropagation(),children:r.jsx("input",{type:"checkbox",checked:g.includes(Y.id),onChange:()=>y(Y.id),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"})}),r.jsx("div",{className:"w-8 h-8 rounded-lg bg-gray-600/50 flex items-center justify-center shrink-0",children:r.jsx(ir,{className:"w-4 h-4 text-gray-400"})}),r.jsxs("span",{className:"font-medium text-gray-200 truncate",children:[H.chapters[0].title," | ",Y.title]})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",onMouseDown:ce=>ce.stopPropagation(),onClick:ce=>ce.stopPropagation(),children:[Y.price===0||Y.isFree?r.jsx("span",{className:"px-2 py-1 bg-[#38bdac]/20 text-[#38bdac] text-[10px] font-medium rounded",children:"免费"}):r.jsxs("span",{className:"text-xs text-gray-500",children:["¥",Y.price]}),r.jsxs("span",{className:"text-[10px] text-gray-500",children:["点击 ",Y.clickCount??0," · 付款 ",Y.payCount??0]}),r.jsxs("span",{className:"text-[10px] text-amber-400/90",title:"热度积分与排名",children:["热度 ",(Y.hotScore??0).toFixed(1)," · 第",Y.hotRank&&Y.hotRank>0?Y.hotRank:"-","名"]}),N&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>N(Y),className:"text-[10px] text-gray-500 hover:text-[#38bdac] h-7 px-1.5",children:"付款记录"}),r.jsxs("div",{className:"flex gap-1",children:[r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>a(Y),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"编辑",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>i(Y),className:"text-gray-500 hover:text-red-400 h-7 px-2",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]})]},H.id)}return $?r.jsxs("div",{className:"rounded-xl border border-gray-700/50 bg-[#1C1C1E] p-5",children:[r.jsx("h3",{className:"text-sm font-medium text-gray-400 mb-4",children:"尾声"}),r.jsx("div",{className:"space-y-3",children:H.chapters.map(Y=>Y.sections.map(he=>{const te=W("section",he.id);return r.jsxs("div",{draggable:!0,onDragStart:ce=>{ce.stopPropagation(),ce.dataTransfer.setData("text/plain","section:"+he.id),ce.dataTransfer.effectAllowed="move",C({type:"section",id:he.id})},onDragEnd:()=>{C(null),I(null)},className:`flex justify-between items-center py-2 select-none rounded px-2 -mx-2 cursor-grab active:cursor-grabbing min-h-[40px] transition-all duration-200 ${te?"bg-[#38bdac]/15 ring-2 ring-[#38bdac]/50":"hover:bg-[#162840]/50"} ${L("section",he.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":""}`,...R("section",he.id,{partId:H.id,partTitle:H.title,chapterId:Y.id,chapterTitle:Y.title}),children:[r.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[r.jsx(Ra,{className:"w-4 h-4 text-gray-500 shrink-0 opacity-50"}),y&&r.jsx("label",{className:"shrink-0 flex items-center",onClick:ce=>ce.stopPropagation(),children:r.jsx("input",{type:"checkbox",checked:g.includes(he.id),onChange:()=>y(he.id),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"})}),r.jsxs("span",{className:"text-sm text-gray-300",children:[Y.title," | ",he.title]})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[r.jsxs("span",{className:"text-[10px] text-gray-500",children:["点击 ",he.clickCount??0," · 付款 ",he.payCount??0]}),r.jsxs("span",{className:"text-[10px] text-amber-400/90",title:"热度积分与排名",children:["热度 ",(he.hotScore??0).toFixed(1)," · 第",he.hotRank&&he.hotRank>0?he.hotRank:"-","名"]}),N&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>N(he),className:"text-[10px] text-gray-500 hover:text-[#38bdac] h-7 px-1.5",children:"付款记录"}),r.jsxs("div",{className:"flex gap-1",children:[r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>a(he),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"编辑",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>i(he),className:"text-gray-500 hover:text-red-400 h-7 px-2",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]})]},he.id)}))})]},H.id):r.jsxs("div",{className:`rounded-xl border bg-[#1C1C1E] overflow-hidden transition-all duration-200 ${q?"border-[#38bdac] ring-2 ring-[#38bdac]/40 bg-[#38bdac]/5":"border-gray-700/50"}`,...R("part",H.id,{partId:H.id,partTitle:H.title,chapterId:((ke=H.chapters[0])==null?void 0:ke.id)??"",chapterTitle:((ee=H.chapters[0])==null?void 0:ee.title)??""}),children:[r.jsxs("div",{draggable:!0,onDragStart:Y=>{Y.stopPropagation(),Y.dataTransfer.setData("text/plain","part:"+H.id),Y.dataTransfer.effectAllowed="move",C({type:"part",id:H.id})},onDragEnd:()=>{C(null),I(null)},className:`flex items-center justify-between p-4 cursor-grab active:cursor-grabbing select-none transition-all duration-200 ${L("part",H.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac] rounded-xl shadow-xl shadow-[#38bdac]/20":"hover:bg-[#162840]/50"}`,onClick:()=>n(H.id),children:[r.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[r.jsx(Ra,{className:"w-5 h-5 text-gray-500 shrink-0 opacity-60"}),r.jsx("div",{className:"w-10 h-10 rounded-xl bg-[#38bdac] flex items-center justify-center text-white font-bold shadow-lg shadow-[#38bdac]/30 shrink-0",children:ue(H,O)}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-bold text-white text-base",children:H.title}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:Hw(H)})]})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",onMouseDown:Y=>Y.stopPropagation(),onClick:Y=>Y.stopPropagation(),children:[o&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>o(H),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"在本篇下新增章节",children:r.jsx(xn,{className:"w-3.5 h-3.5"})}),h&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>h(H),className:"text-gray-500 hover:text-[#38bdac] h-7 px-2",title:"编辑篇名",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),f&&r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>f(H),className:"text-gray-500 hover:text-red-400 h-7 px-2",title:"删除本篇",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})}),r.jsxs("span",{className:"text-xs text-gray-500",title:"本篇章数与节数",children:[z," 章 · ",G," 节"]}),r.jsx(ql,{className:`w-5 h-5 text-gray-500 transition-transform duration-200 ${B?"rotate-90":""}`})]})]}),r.jsx("div",{className:"grid transition-[grid-template-rows] duration-200 ease-out",style:{gridTemplateRows:B?"1fr":"0fr"},children:r.jsx("div",{className:"min-h-0 overflow-hidden",children:r.jsx("div",{className:"border-t border-gray-700/50 pl-4 pr-4 pb-4 pt-3 space-y-4",children:v[H.id]?r.jsx("div",{className:"flex items-center justify-center py-8 text-gray-500 text-sm",children:r.jsx("span",{className:"animate-pulse",children:"加载中..."})}):r.jsx(r.Fragment,{children:H.chapters.map(Y=>{const he=W("chapter",Y.id);return r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-center gap-2 w-full",children:[r.jsxs("div",{draggable:!0,onDragStart:te=>{te.stopPropagation(),te.dataTransfer.setData("text/plain","chapter:"+Y.id),te.dataTransfer.effectAllowed="move",C({type:"chapter",id:Y.id})},onDragEnd:()=>{C(null),I(null)},onDragEnter:te=>{te.preventDefault(),te.stopPropagation(),te.dataTransfer.dropEffect="move",I({type:"chapter",id:Y.id})},onDragOver:te=>{te.preventDefault(),te.stopPropagation(),te.dataTransfer.dropEffect="move",I({type:"chapter",id:Y.id})},onDragLeave:()=>I(null),onDrop:te=>{I(null);const ce=Yg(te.dataTransfer.getData("text/plain"));if(!ce)return;const pe={partId:H.id,partTitle:H.title,chapterId:Y.id,chapterTitle:Y.title};(ce.type==="section"||ce.type==="chapter")&&P(te,"chapter",Y.id,pe)},className:`flex-1 min-w-0 py-2 px-2 rounded cursor-grab active:cursor-grabbing select-none -mx-2 transition-all duration-200 flex items-center gap-2 ${he?"bg-[#38bdac]/15 ring-1 ring-[#38bdac]/50":""} ${L("chapter",Y.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac]":"hover:bg-[#162840]/30"}`,children:[r.jsx(Ra,{className:"w-4 h-4 text-gray-500 shrink-0 opacity-50"}),r.jsx("p",{className:"text-xs text-gray-500 pb-1 flex-1",children:Y.title})]}),r.jsxs("div",{className:"flex gap-0.5 shrink-0",onClick:te=>te.stopPropagation(),children:[m&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>m(H,Y),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"编辑章节名称",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),c&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>c(H),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"新增第X章",children:r.jsx(xn,{className:"w-3.5 h-3.5"})}),u&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>u(H,Y),className:"text-gray-500 hover:text-red-400 h-7 px-1.5",title:"删除本章",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]}),r.jsx("div",{className:"space-y-1 pl-2",children:Y.sections.map(te=>{const ce=W("section",te.id);return r.jsxs("div",{draggable:!0,onDragStart:pe=>{pe.stopPropagation(),pe.dataTransfer.setData("text/plain","section:"+te.id),pe.dataTransfer.effectAllowed="move",C({type:"section",id:te.id})},onDragEnd:()=>{C(null),I(null)},className:`flex items-center justify-between py-2 px-3 rounded-lg group cursor-grab active:cursor-grabbing select-none min-h-[40px] transition-all duration-200 ${ce?"bg-[#38bdac]/15 ring-2 ring-[#38bdac]/50":""} ${L("section",te.id)?"opacity-60 scale-[0.98] ring-2 ring-[#38bdac] shadow-lg":"hover:bg-[#162840]/50"}`,...R("section",te.id,{partId:H.id,partTitle:H.title,chapterId:Y.id,chapterTitle:Y.title}),children:[r.jsxs("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[y&&r.jsx("label",{className:"shrink-0 flex items-center",onClick:pe=>pe.stopPropagation(),children:r.jsx("input",{type:"checkbox",checked:g.includes(te.id),onChange:()=>y(te.id),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"})}),r.jsx(Ra,{className:"w-4 h-4 text-gray-500 shrink-0 opacity-50"}),r.jsx("div",{className:`w-2 h-2 rounded-full shrink-0 ${te.price===0||te.isFree?"border-2 border-[#38bdac] bg-transparent":"bg-gray-500"}`}),r.jsx("span",{className:"text-sm text-gray-200 truncate flex items-center min-w-0",children:xe(te)}),w.includes(te.id)&&r.jsx("span",{title:"已置顶",children:r.jsx(Ii,{className:"w-3 h-3 text-amber-400 fill-amber-400 shrink-0"})})]}),r.jsxs("div",{className:"flex items-center gap-2 shrink-0",onMouseDown:pe=>pe.stopPropagation(),onClick:pe=>pe.stopPropagation(),children:[te.isNew&&r.jsx("span",{className:"px-2 py-1 bg-[#38bdac]/20 text-[#38bdac] text-[10px] font-medium rounded",children:"NEW"}),te.price===0||te.isFree?r.jsx("span",{className:"px-2 py-1 bg-[#38bdac]/20 text-[#38bdac] text-[10px] font-medium rounded",children:"免费"}):r.jsxs("span",{className:"text-xs text-gray-500",children:["¥",te.price]}),r.jsxs("span",{className:"text-[10px] text-gray-500",title:"点击次数 · 付款笔数",children:["点击 ",te.clickCount??0," · 付款 ",te.payCount??0]}),r.jsxs("span",{className:"text-[10px] text-amber-400/90",title:"热度积分与排名",children:["热度 ",(te.hotScore??0).toFixed(1)," · 第",te.hotRank&&te.hotRank>0?te.hotRank:"-","名"]}),N&&r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>N(te),className:"text-[10px] text-gray-500 hover:text-[#38bdac] h-7 px-1.5 shrink-0",children:"付款记录"}),r.jsxs("div",{className:"flex gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>a(te),className:"text-gray-500 hover:text-[#38bdac] h-7 px-1.5",title:"编辑",children:r.jsx(Jt,{className:"w-3.5 h-3.5"})}),r.jsx(X,{draggable:!1,variant:"ghost",size:"sm",onClick:()=>i(te),className:"text-gray-500 hover:text-red-400 h-7 px-1.5",children:r.jsx(Xn,{className:"w-3.5 h-3.5"})})]})]})]},te.id)})})]},Y.id)})})})})})]},H.id)})})}function lV(t){var a;const e=new URLSearchParams;e.set("page",String(t.page)),e.set("limit",String(t.limit)),(a=t==null?void 0:t.keyword)!=null&&a.trim()&&e.set("keyword",t.keyword.trim());const n=e.toString(),s=n?`/api/admin/ckb/devices?${n}`:"/api/admin/ckb/devices";return Oe(s)}function cV(t){return Oe(`/api/db/person?personId=${encodeURIComponent(t)}`)}function dV(t){var s;const e=new URLSearchParams;e.set("page",String(t.page)),e.set("limit",String(t.limit)),(s=t==null?void 0:t.keyword)!=null&&s.trim()&&e.set("keyword",t.keyword.trim());const n=e.toString();return Oe(n?`/api/admin/ckb/plans?${n}`:"/api/admin/ckb/plans")}const l3=11,Ww={personId:"",name:"",aliases:"",label:"",sceneId:l3,ckbApiKey:"",greeting:"你好,请通过",tips:"请注意消息,稍后加你微信",remarkType:"phone",remarkFormat:"",addFriendInterval:1,startTime:"09:00",endTime:"18:00",deviceGroups:""};function uV({open:t,onOpenChange:e,editingPerson:n,onSubmit:s}){var J;const a=!!n,[i,o]=b.useState(Ww),[c,u]=b.useState(!1),[h,f]=b.useState(!1),[m,g]=b.useState([]),[y,N]=b.useState(!1),[w,v]=b.useState(""),[k,C]=b.useState([]),[E,I]=b.useState(!1),[L,W]=b.useState(""),[D,P]=b.useState(!1),[R,K]=b.useState({});b.useEffect(()=>{t&&(v(""),o(n?{personId:n.personId??n.name??"",name:n.name??"",aliases:n.aliases??"",label:n.label??"",sceneId:l3,ckbApiKey:n.ckbApiKey??"",greeting:"你好,请通过",tips:"请注意消息,稍后加你微信",remarkType:n.remarkType??"phone",remarkFormat:n.remarkFormat??"",addFriendInterval:n.addFriendInterval??1,startTime:n.startTime??"09:00",endTime:n.endTime??"18:00",deviceGroups:n.deviceGroups??""}:{...Ww}),K({}),m.length===0&&re(""),k.length===0&&ue(""))},[t,n]);const re=async $=>{N(!0);try{const M=await lV({page:1,limit:50,keyword:$});M!=null&&M.success&&Array.isArray(M.devices)?g(M.devices):M!=null&&M.error&&se.error(M.error)}catch(M){se.error(M instanceof Error?M.message:"加载设备列表失败")}finally{N(!1)}},ue=async $=>{I(!0);try{const M=await dV({page:1,limit:100,keyword:$});M!=null&&M.success&&Array.isArray(M.plans)?C(M.plans):M!=null&&M.error&&se.error(M.error)}catch{se.error("加载计划列表失败")}finally{I(!1)}},xe=$=>{const M=Array.isArray($.deviceGroups)?$.deviceGroups.map(String).join(","):"";o(q=>({...q,ckbApiKey:$.apiKey||"",greeting:$.greeting||q.greeting,tips:$.tips||q.tips,remarkType:$.remarkType||q.remarkType,remarkFormat:$.remarkFormat||q.remarkFormat,addFriendInterval:$.addInterval||q.addFriendInterval,startTime:$.startTime||q.startTime,endTime:$.endTime||q.endTime,deviceGroups:M||q.deviceGroups})),P(!1),se.success(`已选择计划「${$.name}」,参数已覆盖`)},H=L.trim()?k.filter($=>($.name||"").includes(L.trim())||String($.id).includes(L.trim())):k,O=async()=>{var B;const $={};(!i.name||!String(i.name).trim())&&($.name="请填写名称");const M=i.addFriendInterval;if((typeof M!="number"||M<1)&&($.addFriendInterval="添加间隔至少为 1 分钟"),(((B=i.deviceGroups)==null?void 0:B.split(",").map(z=>z.trim()).filter(Boolean))??[]).length===0&&($.deviceGroups="请至少选择 1 台设备"),K($),Object.keys($).length>0){se.error($.name||$.addFriendInterval||$.deviceGroups||"请完善必填项");return}u(!0);try{await s(i),e(!1)}catch(z){se.error(z instanceof Error?z.message:"保存失败")}finally{u(!1)}};return r.jsx(Lt,{open:t,onOpenChange:e,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-4xl max-h-[90vh] overflow-y-auto",children:[r.jsxs(_t,{children:[r.jsx(zt,{className:"text-[#38bdac]",children:a?"编辑人物":"添加人物 — 存客宝 API 获客"}),r.jsx(Pd,{className:"text-gray-400 text-sm",children:a?"修改后同步到存客宝计划":"添加时自动生成 token并同步创建存客宝场景获客计划"})]}),r.jsxs("div",{className:"space-y-6 py-2",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-xs font-medium text-gray-400 uppercase tracking-wider mb-3",children:"基础信息"}),r.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[r.jsxs("div",{className:"space-y-1.5",children:[r.jsxs(Z,{className:"text-gray-400 text-xs",children:["名称 ",r.jsx("span",{className:"text-red-400",children:"*"})]}),r.jsx(ae,{className:`bg-[#0a1628] text-white ${R.name?"border-red-500 focus-visible:ring-red-500":"border-gray-700"}`,placeholder:"如 卡若",value:i.name,onChange:$=>{o(M=>({...M,name:$.target.value})),R.name&&K(M=>({...M,name:void 0}))}}),R.name&&r.jsx("p",{className:"text-xs text-red-400",children:R.name})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"人物ID可选"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"自动生成",value:i.personId,onChange:$=>o(M=>({...M,personId:$.target.value})),disabled:a})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"标签(身份/角色)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如 超级个体",value:i.label,onChange:$=>o(M=>({...M,label:$.target.value}))})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"别名(逗号分隔,@ 可匹配)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如 卡卡, 若若",value:i.aliases,onChange:$=>o(M=>({...M,aliases:$.target.value}))})]})]})]}),r.jsxs("div",{className:"border-t border-gray-700/50 pt-5",children:[r.jsx("p",{className:"text-xs font-medium text-gray-400 uppercase tracking-wider mb-4",children:"存客宝 API 获客配置"}),r.jsxs("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-1.5 relative",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"选择存客宝获客计划"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx("div",{className:"flex-1 flex items-center bg-[#0a1628] border border-gray-700 rounded-md px-3 py-2 cursor-pointer hover:border-[#38bdac]/60 text-sm",onClick:()=>P(!D),children:i.ckbApiKey?r.jsx("span",{className:"text-white truncate",children:((J=k.find($=>$.apiKey===i.ckbApiKey))==null?void 0:J.name)||`密钥: ${i.ckbApiKey.slice(0,20)}...`}):r.jsx("span",{className:"text-gray-500",children:"点击选择已有计划 / 新建时自动创建"})}),r.jsx(X,{type:"button",variant:"outline",size:"sm",className:"border-gray-600 text-gray-200 shrink-0",onClick:()=>{ue(L),P(!0)},disabled:E,children:E?"加载...":"刷新"})]}),D&&r.jsxs("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 bg-[#0b1828] border border-gray-700 rounded-lg shadow-xl max-h-64 flex flex-col",children:[r.jsx("div",{className:"p-2 border-b border-gray-700/60",children:r.jsx(ae,{className:"bg-[#050c18] border-gray-700 text-white h-8 text-xs",placeholder:"搜索计划名称...",value:L,onChange:$=>W($.target.value),onKeyDown:$=>{$.key==="Enter"&&ue(L)},autoFocus:!0})}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:H.length===0?r.jsx("div",{className:"text-center py-4 text-gray-500 text-xs",children:E?"加载中...":"暂无计划"}):H.map($=>r.jsxs("div",{className:`px-3 py-2 cursor-pointer hover:bg-[#38bdac]/10 text-sm flex items-center justify-between ${i.ckbApiKey===$.apiKey?"bg-[#38bdac]/20 text-[#38bdac]":"text-white"}`,onClick:()=>xe($),children:[r.jsxs("div",{className:"truncate",children:[r.jsx("span",{className:"font-medium",children:$.name}),r.jsxs("span",{className:"text-xs text-gray-500 ml-2",children:["ID:",String($.id)]})]}),$.enabled?r.jsx("span",{className:"text-[10px] text-green-400 bg-green-400/10 px-1.5 rounded shrink-0 ml-2",children:"启用"}):r.jsx("span",{className:"text-[10px] text-gray-500 bg-gray-500/10 px-1.5 rounded shrink-0 ml-2",children:"停用"})]},String($.id)))}),r.jsx("div",{className:"p-2 border-t border-gray-700/60 flex justify-end",children:r.jsx(X,{type:"button",size:"sm",variant:"ghost",className:"text-gray-400 h-7 text-xs",onClick:()=>P(!1),children:"关闭"})})]}),r.jsx("p",{className:"text-xs text-gray-500",children:"选择计划后自动覆盖下方参数。新建人物时若不选择则自动创建新计划。"})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsxs(Z,{className:"text-gray-400 text-xs",children:["选择设备 ",r.jsx("span",{className:"text-red-400",children:"*"})]}),r.jsxs("div",{className:`flex gap-2 rounded-md border ${R.deviceGroups?"border-red-500":"border-gray-700"}`,children:[r.jsx(ae,{className:"bg-[#0a1628] border-0 text-white focus-visible:ring-0 focus-visible:ring-offset-0",placeholder:"未选择设备",readOnly:!0,value:i.deviceGroups?`已选择 ${i.deviceGroups.split(",").filter(Boolean).length} 个设备`:"",onClick:()=>f(!0)}),r.jsx(X,{type:"button",variant:"outline",className:"border-0 border-l border-inherit rounded-r-md text-gray-200",onClick:()=>f(!0),children:"选择"})]}),R.deviceGroups?r.jsx("p",{className:"text-xs text-red-400",children:R.deviceGroups}):r.jsx("p",{className:"text-xs text-gray-500",children:"从存客宝设备列表中选择,至少选择 1 台设备参与获客计划。"})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"好友备注"}),r.jsxs(Ul,{value:i.remarkType,onValueChange:$=>o(M=>({...M,remarkType:$})),children:[r.jsx(Io,{className:"bg-[#0a1628] border-gray-700 text-white",children:r.jsx(Kl,{placeholder:"选择备注类型"})}),r.jsxs(Po,{children:[r.jsx(nr,{value:"phone",children:"手机号"}),r.jsx(nr,{value:"nickname",children:"昵称"}),r.jsx(nr,{value:"source",children:"来源"})]})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"备注格式"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如 手机号+SOUL链接人与事-{名称},留空用默认",value:i.remarkFormat,onChange:$=>o(M=>({...M,remarkFormat:$.target.value}))})]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"打招呼语"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"你好,请通过",value:i.greeting,onChange:$=>o(M=>({...M,greeting:$.target.value}))})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"添加间隔(分钟)"}),r.jsx(ae,{type:"number",min:1,className:`bg-[#0a1628] text-white ${R.addFriendInterval?"border-red-500 focus-visible:ring-red-500":"border-gray-700"}`,value:i.addFriendInterval,onChange:$=>{o(M=>({...M,addFriendInterval:Number($.target.value)||1})),R.addFriendInterval&&K(M=>({...M,addFriendInterval:void 0}))}}),R.addFriendInterval&&r.jsx("p",{className:"text-xs text-red-400",children:R.addFriendInterval})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"允许加人时间段"}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ae,{type:"time",className:"bg-[#0a1628] border-gray-700 text-white w-24",value:i.startTime,onChange:$=>o(M=>({...M,startTime:$.target.value}))}),r.jsx("span",{className:"text-gray-500 text-sm shrink-0",children:"至"}),r.jsx(ae,{type:"time",className:"bg-[#0a1628] border-gray-700 text-white w-24",value:i.endTime,onChange:$=>o(M=>({...M,endTime:$.target.value}))})]})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"获客成功提示"}),r.jsx(mc,{className:"bg-[#0a1628] border-gray-700 text-white min-h-[72px] resize-none",placeholder:"请注意消息,稍后加你微信",value:i.tips,onChange:$=>o(M=>({...M,tips:$.target.value}))})]})]})]})]})]}),r.jsxs(on,{className:"gap-3 pt-2",children:[r.jsx(X,{variant:"outline",onClick:()=>e(!1),className:"border-gray-600 text-gray-300",children:"取消"}),r.jsx(X,{onClick:O,disabled:c,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:c?"保存中...":a?"保存":"添加"})]}),h&&r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:r.jsxs("div",{className:"w-full max-w-3xl max-h-[80vh] bg-[#0b1828] border border-gray-700 rounded-xl shadow-xl flex flex-col",children:[r.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-b border-gray-700/60",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-sm font-medium text-white",children:"选择设备"}),r.jsx("p",{className:"text-xs text-gray-400 mt-0.5",children:"勾选需要参与本计划的设备,可多选"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ae,{className:"bg-[#050c18] border-gray-700 text-white h-8 w-52",placeholder:"搜索备注/微信号/IMEI",value:w,onChange:$=>v($.target.value),onKeyDown:$=>{$.key==="Enter"&&re(w)}}),r.jsx(X,{type:"button",size:"sm",variant:"outline",className:"border-gray-600 text-gray-200 h-8",onClick:()=>re(w),disabled:y,children:"刷新"}),r.jsx(X,{type:"button",size:"icon",variant:"outline",className:"border-gray-600 text-gray-300 h-8 w-8",onClick:()=>f(!1),children:"✕"})]})]}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:y?r.jsx("div",{className:"flex h-full items-center justify-center text-gray-400 text-sm",children:"正在加载设备列表…"}):m.length===0?r.jsx("div",{className:"flex h-full items-center justify-center text-gray-500 text-sm",children:"暂无设备数据,请检查存客宝账号与开放 API 配置"}):r.jsx("div",{className:"p-4 space-y-2",children:m.map($=>{const M=String($.id??""),q=i.deviceGroups?i.deviceGroups.split(",").map(G=>G.trim()).filter(Boolean):[],B=q.includes(M),z=()=>{let G;B?G=q.filter(oe=>oe!==M):G=[...q,M],o(oe=>({...oe,deviceGroups:G.join(",")})),G.length>0&&K(oe=>({...oe,deviceGroups:void 0}))};return r.jsxs("label",{className:"flex items-center gap-3 rounded-lg border border-gray-700/60 bg-[#050c18] px-3 py-2 cursor-pointer hover:border-[#38bdac]/70",children:[r.jsx("input",{type:"checkbox",className:"h-4 w-4 accent-[#38bdac]",checked:B,onChange:z}),r.jsxs("div",{className:"flex flex-col min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-sm text-white truncate max-w-xs",children:$.memo||$.wechatId||`设备 ${M}`}),$.status==="online"&&r.jsx("span",{className:"rounded-full bg-emerald-500/20 text-emerald-400 text-[11px] px-2 py-0.5",children:"在线"}),$.status==="offline"&&r.jsx("span",{className:"rounded-full bg-gray-600/20 text-gray-400 text-[11px] px-2 py-0.5",children:"离线"})]}),r.jsxs("div",{className:"text-[11px] text-gray-400 mt-0.5",children:[r.jsxs("span",{className:"mr-3",children:["ID: ",M]}),$.wechatId&&r.jsxs("span",{className:"mr-3",children:["微信号: ",$.wechatId]}),typeof $.totalFriend=="number"&&r.jsxs("span",{children:["好友数: ",$.totalFriend]})]})]})]},M)})})}),r.jsxs("div",{className:"flex justify-between items-center px-5 py-3 border-t border-gray-700/60",children:[r.jsxs("span",{className:"text-xs text-gray-400",children:["已选择"," ",i.deviceGroups?i.deviceGroups.split(",").filter(Boolean).length:0," ","台设备"]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(X,{type:"button",variant:"outline",className:"border-gray-600 text-gray-200 h-8 px-4",onClick:()=>f(!1),children:"取消"}),r.jsx(X,{type:"button",className:"bg-[#38bdac] hover:bg-[#2da396] text-white h-8 px-4",onClick:()=>f(!1),children:"确定"})]})]})]})})]})})}function hV(t,e,n){return t.map(s=>({id:s.id,title:s.title,chapters:s.chapters.map(a=>{const i=(e[s.id]??[]).filter(o=>(o.chapterId||"chapter-1")===a.id);return{id:a.id,title:a.title,sections:i.map(o=>({id:o.id,mid:o.mid,title:o.title,price:o.price??1,filePath:o.filePath,isFree:o.isFree,isNew:o.isNew,clickCount:o.clickCount??0,payCount:o.payCount??0,hotScore:o.hotScore??0,hotRank:n.get(o.id)??0}))}})}))}function fV(t){const e=[];for(const n of t)for(const s of n.chapters)for(const a of s.sections)e.push({id:a.id,mid:a.mid,title:a.title,price:a.price,isFree:a.isFree,isNew:a.isNew,partId:n.id,partTitle:n.title,chapterId:s.id,chapterTitle:s.title,clickCount:a.clickCount,payCount:a.payCount,hotScore:a.hotScore});return e}function pV(){var cu,du;const[t,e]=b.useState([]),[n,s]=b.useState({}),[a,i]=b.useState({}),[o,c]=b.useState(!1),[u,h]=b.useState(!0),[f,m]=b.useState([]),[g,y]=b.useState(null),[N,w]=b.useState(!1),[v,k]=b.useState(!1),[C,E]=b.useState(!1),[I,L]=b.useState(""),[W,D]=b.useState([]),[P,R]=b.useState(!1),[K,re]=b.useState({id:"",title:"",price:1,partId:"part-1",chapterId:"chapter-1",content:"",editionStandard:!0,editionPremium:!1,isFree:!1,isNew:!1,isPinned:!1,hotScore:0,previewPercent:void 0}),[ue,xe]=b.useState(null),[H,O]=b.useState(!1),[J,$]=b.useState(!1),[M,q]=b.useState(null),[B,z]=b.useState(!1),[G,oe]=b.useState([]),[ye,Ae]=b.useState(!1),[ke,ee]=b.useState(""),[Y,he]=b.useState(""),[te,ce]=b.useState(!1),[pe,Fe]=b.useState(""),[rt,vt]=b.useState(!1),[mt,Ut]=b.useState(null),[In,sn]=b.useState(!1),[Tt,Mt]=b.useState(!1),[Kt,Ns]=b.useState({readWeight:.5,recencyWeight:.3,payWeight:.2}),[as,is]=b.useState(!1),[Ls,ws]=b.useState(!1),[rn,qs]=b.useState(1),[un,Un]=b.useState([]),[js,Gs]=b.useState(!1),[hn,ks]=b.useState([]),[U,_e]=b.useState(!1),[it,$t]=b.useState(20),[me,fe]=b.useState(!1),[at,yt]=b.useState(!1),[fn,Kn]=b.useState([]),[Pn,qn]=b.useState([]),[Ss,Ur]=b.useState([]),[xa,Xa]=b.useState(!1),[Nr,no]=b.useState(1),[wr,ya]=b.useState(20),[Js,so]=b.useState(0),[Nc,wc]=b.useState(1),[Ys,jr]=b.useState(""),[ba,_s]=b.useState(!1),[va,Kr]=b.useState(null),[Ct,ls]=b.useState({tagId:"",label:"",url:"",type:"url",appId:"",pagePath:""}),[Za,il]=b.useState(!1),[jc,Bt]=b.useState(!1),[ol,Qs]=b.useState(null),[Cs,Xs]=b.useState(null),[qr,Gr]=b.useState(""),[kr,cs]=b.useState(!1),[kc,Es]=b.useState({}),[Sc,ll]=b.useState(!1),[cl,ei]=b.useState(""),[Sr,Jr]=b.useState(""),[Yr,dl]=b.useState([]),[Na,ti]=b.useState(0),[F,$e]=b.useState(1),[Ke,dt]=b.useState(!1),pn=b.useRef(null),ht=b.useMemo(()=>{const T=new Map;return un.forEach((_,ie)=>{T.set(_.id,ie+1)}),T},[un]),Nn=b.useMemo(()=>hV(t,n,ht),[t,n,ht]),Vt=b.useMemo(()=>fV(Nn),[Nn]),Gn=t.reduce((T,_)=>T+_.chapters.reduce((ie,ve)=>ie+ve.count,0),0),Cr=10,Qr=Math.max(1,Math.ceil(un.length/Cr)),Er=un.slice((rn-1)*Cr,rn*Cr),ro=async()=>{h(!0);try{const T=await Oe("/api/db/book?action=parts",{cache:"no-store"});e(Array.isArray(T==null?void 0:T.parts)?T.parts:[]),s({})}catch(T){console.error(T),e([])}finally{h(!1)}},wa=b.useCallback(async T=>{i(_=>({..._,[T]:!0}));try{const _=await Oe(`/api/db/book?action=sections-by-part&partId=${encodeURIComponent(T)}`,{cache:"no-store"}),ie=Array.isArray(_==null?void 0:_.sections)?_.sections:[];s(ve=>({...ve,[T]:ie}))}catch(_){console.error(_),s(ie=>({...ie,[T]:[]}))}finally{i(_=>({..._,[T]:!1}))}},[]),Ts=b.useCallback(async()=>{try{const T=await Oe("/api/db/book?action=list",{cache:"no-store"}),_=Array.isArray(T==null?void 0:T.sections)?T.sections:[],ie={},ve=[],Re={},De={};for(const lt of _){const wt=lt.partId||"part-1";ie[wt]||(ie[wt]=[],ve.push(wt),Re[wt]=lt.partTitle||"未分类",De[wt]=new Map),ie[wt].push(lt);const Nt=lt.chapterId||"chapter-1";De[wt].has(Nt)||De[wt].set(Nt,{title:lt.chapterTitle||"未分类",count:0});const As=De[wt].get(Nt);As.count+=1}const tt=ve.map(lt=>({id:lt,title:Re[lt],chapters:Array.from(De[lt].entries()).map(([wt,Nt])=>({id:wt,title:Nt.title,count:Nt.count}))}));e(tt),s(ie)}catch(T){console.error(T)}},[]),wn=async()=>{h(!0);try{const T=await Oe("/api/db/book?action=list",{cache:"no-store"}),_=Array.isArray(T==null?void 0:T.sections)?T.sections:[],ie={},ve=[],Re={},De={};for(const lt of _){const wt=lt.partId||"part-1";ie[wt]||(ie[wt]=[],ve.push(wt),Re[wt]=lt.partTitle||"未分类",De[wt]=new Map),ie[wt].push(lt);const Nt=lt.chapterId||"chapter-1";De[wt].has(Nt)||De[wt].set(Nt,{title:lt.chapterTitle||"未分类",count:0});const As=De[wt].get(Nt);As.count+=1}const tt=ve.map(lt=>({id:lt,title:Re[lt],chapters:Array.from(De[lt].entries()).map(([wt,Nt])=>({id:wt,title:Nt.title,count:Nt.count}))}));e(tt),s(ie)}catch(T){console.error(T),s({})}finally{h(!1)}},ds=async()=>{Gs(!0);try{const T=await Oe("/api/db/book?action=ranking",{cache:"no-store"}),_=Array.isArray(T==null?void 0:T.sections)?T.sections:[];Un(_);const ie=_.filter(ve=>ve.isPinned).map(ve=>ve.id);ks(ie)}catch(T){console.error(T),Un([])}finally{Gs(!1)}};b.useEffect(()=>{ro(),ds()},[]);const ao=b.useCallback(T=>{m(_=>(!_.includes(T)&&wa(T),_.includes(T)?_.filter(ve=>ve!==T):[..._,T]))},[wa]),io=b.useCallback(T=>{const _=Vt,ie=T.flatMap(Re=>{const De=_.find(tt=>tt.id===Re.id);return De?[{...De,partId:Re.partId,partTitle:Re.partTitle,chapterId:Re.chapterId,chapterTitle:Re.chapterTitle}]:[]}),ve={};for(const Re of ie){const De=Re.partId||"part-1";ve[De]||(ve[De]=[]),ve[De].push(Re)}return s(Re=>({...Re,...ve})),c(!0),Pt("/api/db/book",{action:"reorder",items:T}).then(Re=>{if(Re&&Re.success===!1){const De={};for(const tt of _){const lt=tt.partId||"part-1";De[lt]||(De[lt]=[]),De[lt].push(tt)}s(tt=>({...tt,...De})),se.error("排序失败: "+(Re&&typeof Re=="object"&&"error"in Re?Re.error:"未知错误"))}else Ts()}).catch(Re=>{const De={};for(const tt of _){const lt=tt.partId||"part-1";De[lt]||(De[lt]=[]),De[lt].push(tt)}s(tt=>({...tt,...De})),console.error("排序失败:",Re),se.error("排序失败: "+(Re instanceof Error?Re.message:"网络或服务异常"))}).finally(()=>c(!1)),Promise.resolve()},[Vt,Ts]),Xr=async T=>{if(confirm(`确定要删除章节「${T.title}」吗?此操作不可恢复。`))try{const _=await oa(`/api/db/book?id=${encodeURIComponent(T.id)}`);_&&_.success!==!1?(se.success("已删除"),wn(),ds()):se.error("删除失败: "+(_&&typeof _=="object"&&"error"in _?_.error:"未知错误"))}catch(_){console.error(_),se.error("删除失败")}},nu=b.useCallback(async()=>{is(!0);try{const T=await Oe("/api/db/config/full?key=article_ranking_weights",{cache:"no-store"}),_=T&&T.data;_&&typeof _.readWeight=="number"&&typeof _.recencyWeight=="number"&&typeof _.payWeight=="number"&&Ns({readWeight:Math.max(0,Math.min(1,_.readWeight)),recencyWeight:Math.max(0,Math.min(1,_.recencyWeight)),payWeight:Math.max(0,Math.min(1,_.payWeight))})}catch{}finally{is(!1)}},[]);b.useEffect(()=>{Tt&&nu()},[Tt,nu]);const su=async()=>{const{readWeight:T,recencyWeight:_,payWeight:ie}=Kt,ve=T+_+ie;if(Math.abs(ve-1)>.001){se.error("三个权重之和必须等于 1");return}ws(!0);try{const Re=await jt("/api/db/config",{key:"article_ranking_weights",value:{readWeight:T,recencyWeight:_,payWeight:ie},description:"文章排名算法权重"});Re&&Re.success!==!1?(se.success("排名权重已保存"),Mt(!1),wn(),ds()):se.error("保存失败: "+(Re&&typeof Re=="object"&&"error"in Re?Re.error:""))}catch(Re){console.error(Re),se.error("保存失败")}finally{ws(!1)}},ni=b.useCallback(async()=>{_e(!0);try{const T=await Oe("/api/db/config/full?key=pinned_section_ids",{cache:"no-store"}),_=T&&T.data;Array.isArray(_)&&ks(_)}catch{}finally{_e(!1)}},[]),ja=b.useCallback(async()=>{try{const T=await Oe("/api/db/persons");T!=null&&T.success&&T.persons&&Kn(T.persons.map(_=>{const ie=_.deviceGroups,ve=Array.isArray(ie)?ie.join(","):ie??"";return{id:_.token??_.personId??"",personId:_.personId,name:_.name,aliases:_.aliases??"",label:_.label??"",ckbApiKey:_.ckbApiKey??"",ckbPlanId:_.ckbPlanId,remarkType:_.remarkType,remarkFormat:_.remarkFormat,addFriendInterval:_.addFriendInterval,startTime:_.startTime,endTime:_.endTime,deviceGroups:ve}}))}catch{}},[]),Zr=b.useCallback(async()=>{try{const T=await Oe("/api/db/link-tags");T!=null&&T.success&&T.linkTags&&qn(T.linkTags.map(_=>({id:_.tagId,label:_.label,url:_.url,type:_.type||"url",appId:_.appId||"",pagePath:_.pagePath||""})))}catch{}},[]),oo=b.useCallback(async()=>{try{const T=await Oe("/api/db/ckb-person-leads");if(T!=null&&T.success&&T.byPerson){const _={};for(const ie of T.byPerson)_[ie.token]=ie.total;Es(_)}}catch{}},[]),ul=b.useCallback(async()=>{try{const T=await Oe("/api/db/persons/pinned-token");T!=null&&T.success&&typeof T.token=="string"?Gr(T.token):Gr("")}catch{Gr("")}},[]),Sp=b.useCallback(async T=>{if(!kr){cs(!0);try{const _=await Pt("/api/db/persons/pin",{token:T});_!=null&&_.success?(se.success(_.message??"已置顶"),Gr(T)):se.error((_==null?void 0:_.error)??"置顶失败")}catch(_){se.error(_ instanceof Error?_.message:"置顶失败")}finally{cs(!1)}}},[kr]),ka=b.useCallback(async(T,_,ie=1)=>{ei(T),Jr(_),ll(!0),$e(ie),dt(!0);try{const ve=await Oe(`/api/db/ckb-person-leads?token=${encodeURIComponent(T)}&page=${ie}&pageSize=20`);ve!=null&&ve.success?(dl(ve.records||[]),ti(ve.total||0)):se.error((ve==null?void 0:ve.error)||"加载获客详情失败")}catch(ve){se.error(ve instanceof Error?ve.message:"加载获客详情失败")}finally{dt(!1)}},[]),Tr=b.useCallback(async()=>{Xa(!0);try{const T=new URLSearchParams({page:String(Nr),pageSize:String(wr)}),_=Ys.trim();_&&T.set("search",_);const ie=await Oe(`/api/db/link-tags?${T.toString()}`);if(ie!=null&&ie.success){const ve=Array.isArray(ie.linkTags)?ie.linkTags:[];Ur(ve.map(Re=>({id:Re.tagId,label:Re.label,url:Re.url,type:Re.type||"url",appId:Re.appId||"",pagePath:Re.pagePath||""}))),so(typeof ie.total=="number"?ie.total:0),wc(typeof ie.totalPages=="number"&&ie.totalPages>0?ie.totalPages:1)}}catch(T){console.error(T),se.error("加载链接标签失败")}finally{Xa(!1)}},[Nr,wr,Ys]),[ea,hl]=b.useState([]),[lo,co]=b.useState(""),[fl,Mr]=b.useState(!1),Cc=b.useRef(null),Ec=b.useCallback(async()=>{try{const T=await Oe("/api/admin/linked-miniprograms");T!=null&&T.success&&Array.isArray(T.data)&&hl(T.data.map(_=>({..._,key:_.key})))}catch{}},[]),Ar=ea.filter(T=>!lo.trim()||T.name.toLowerCase().includes(lo.toLowerCase())||T.key&&T.key.toLowerCase().includes(lo.toLowerCase())||T.appId.toLowerCase().includes(lo.toLowerCase())),pl=async T=>{const _=hn.includes(T)?hn.filter(ie=>ie!==T):[...hn,T];ks(_);try{await jt("/api/db/config",{key:"pinned_section_ids",value:_,description:"强制置顶章节ID列表精选推荐/首页最新更新)"}),ds()}catch{ks(hn)}},uo=b.useCallback(async()=>{fe(!0);try{const T=await Oe("/api/db/config/full?key=unpaid_preview_percent",{cache:"no-store"}),_=T&&T.data;typeof _=="number"&&_>0&&_<=100&&$t(_)}catch{}finally{fe(!1)}},[]),ru=async()=>{if(it<1||it>100){se.error("预览比例需在 1~100 之间");return}yt(!0);try{const T=await jt("/api/db/config",{key:"unpaid_preview_percent",value:it,description:"小程序未付费内容默认预览比例(%)"});T&&T.success!==!1?se.success("预览比例已保存"):se.error("保存失败: "+(T.error||""))}catch{se.error("保存失败")}finally{yt(!1)}};b.useEffect(()=>{ni(),uo(),ja(),Zr(),oo(),ul(),Ec()},[ni,uo,ja,Zr,oo,ul,Ec]),b.useEffect(()=>{Tr()},[Tr]);const ho=async T=>{Ut({section:T,orders:[]}),sn(!0);try{const _=await Oe(`/api/db/book?action=section-orders&id=${encodeURIComponent(T.id)}`),ie=_!=null&&_.success&&Array.isArray(_.orders)?_.orders:[];Ut(ve=>ve?{...ve,orders:ie}:null)}catch(_){console.error(_),Ut(ie=>ie?{...ie,orders:[]}:null)}finally{sn(!1)}},si=async T=>{k(!0);try{const _=T.mid!=null&&T.mid>0?`/api/db/book?action=read&mid=${T.mid}`:`/api/db/book?action=read&id=${encodeURIComponent(T.id)}`,ie=await Oe(_);if(ie!=null&&ie.success&&ie.section){const ve=ie.section,Re=ve.editionPremium===!0;y({id:T.id,originalId:T.id,title:ie.section.title??T.title,price:ie.section.price??T.price,content:ie.section.content??"",filePath:T.filePath,isFree:T.isFree||T.price===0,isNew:ve.isNew??T.isNew,isPinned:hn.includes(T.id),hotScore:T.hotScore??0,editionStandard:Re?!1:ve.editionStandard??!0,editionPremium:Re,previewPercent:ve.previewPercent??void 0})}else y({id:T.id,originalId:T.id,title:T.title,price:T.price,content:"",filePath:T.filePath,isFree:T.isFree,isNew:T.isNew,isPinned:hn.includes(T.id),hotScore:T.hotScore??0,editionStandard:!0,editionPremium:!1,previewPercent:void 0}),ie&&!ie.success&&se.error("无法读取文件内容: "+(ie.error||"未知错误"))}catch(_){console.error(_),y({id:T.id,title:T.title,price:T.price,content:"",filePath:T.filePath,isFree:T.isFree})}finally{k(!1)}},au=async()=>{var T;if(g){E(!0);try{let _=g.content||"";const ie=[new RegExp(`^#+\\s*${g.id.replace(".","\\.")}\\s+.*$`,"gm"),new RegExp(`^#+\\s*${g.id.replace(".","\\.")}[:].*$`,"gm"),new RegExp(`^#\\s+.*${(T=g.title)==null?void 0:T.slice(0,10).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}.*$`,"gm")];for(const lt of ie)_=_.replace(lt,"");_=_.replace(/^\s*\n+/,"").trim();const ve=g.originalId||g.id,Re=g.id!==ve,De=await Pt("/api/db/book",{id:ve,...Re?{newId:g.id}:{},title:g.title,price:g.isFree?0:g.price,content:_,isFree:g.isFree||g.price===0,isNew:g.isNew,hotScore:g.hotScore,editionStandard:g.editionPremium?!1:g.editionStandard??!0,editionPremium:g.editionPremium??!1,...g.previewPercent!=null&&g.previewPercent>0&&g.previewPercent<=100?{previewPercent:g.previewPercent}:{previewPercent:0},saveToFile:!0},{timeout:f1}),tt=Re?g.id:ve;g.isPinned!==hn.includes(tt)&&await pl(tt),De&&De.success!==!1?(se.success(`已保存:${g.title}`),y(null),await wn(),await ds(),ja(),Zr()):se.error("保存失败: "+(De&&typeof De=="object"&&"error"in De?De.error:"未知错误"))}catch(_){console.error(_);const ie=_ instanceof Error&&_.name==="AbortError"?"保存超时,请检查网络或稍后重试":"保存失败";se.error(ie)}finally{E(!1)}}},Ms=async()=>{if(!K.id||!K.title){se.error("请填写章节ID和标题");return}E(!0);try{const T=Nn.find(ve=>ve.id===K.partId),_=T==null?void 0:T.chapters.find(ve=>ve.id===K.chapterId),ie=await Pt("/api/db/book",{id:K.id,title:K.title,price:K.isFree?0:K.price,content:K.content||"",partId:K.partId,partTitle:(T==null?void 0:T.title)??"",chapterId:K.chapterId,chapterTitle:(_==null?void 0:_.title)??"",isFree:K.isFree,isNew:K.isNew,editionStandard:K.editionPremium?!1:K.editionStandard??!0,editionPremium:K.editionPremium??!1,hotScore:K.hotScore??0,...K.previewPercent!=null&&K.previewPercent>0&&K.previewPercent<=100?{previewPercent:K.previewPercent}:{},saveToFile:!1},{timeout:f1});if(ie&&ie.success!==!1){if(K.isPinned){const ve=[...hn,K.id];ks(ve);try{await jt("/api/db/config",{key:"pinned_section_ids",value:ve,description:"强制置顶章节ID列表精选推荐/首页最新更新)"})}catch{}}se.success(`章节创建成功:${K.title}`),w(!1),re({id:"",title:"",price:1,partId:"part-1",chapterId:"chapter-1",content:"",editionStandard:!0,editionPremium:!1,isFree:!1,isNew:!1,isPinned:!1,hotScore:0,previewPercent:void 0}),await wn(),await ds(),ja(),Zr()}else se.error("创建失败: "+(ie&&typeof ie=="object"&&"error"in ie?ie.error:"未知错误"))}catch(T){console.error(T),se.error("创建失败")}finally{E(!1)}},ri=T=>{re(_=>{var ie;return{..._,partId:T.id,chapterId:((ie=T.chapters[0])==null?void 0:ie.id)??"chapter-1"}}),w(!0)},Tc=T=>{const _=T.title.match(/^第(.+?)篇\s*[|]\s*(.+)$/),ie=_?_[1].trim():"",ve=_?_[2].trim():T.title;xe({id:T.id,title:T.title,badge:ie,rest:ve})},fo=async()=>{if(!ue)return;const T=(ue.badge??"").trim(),_=(ue.rest??ue.title??"").trim(),ie=T?`第${T}篇 | ${_}`:_;if(ie){O(!0);try{const ve=Vt.map(De=>({id:De.id,partId:De.partId||"part-1",partTitle:De.partId===ue.id?ie:De.partTitle||"",chapterId:De.chapterId||"chapter-1",chapterTitle:De.chapterTitle||""})),Re=await Pt("/api/db/book",{action:"reorder",items:ve});Re&&Re.success!==!1?(e(De=>De.map(tt=>tt.id===ue.id?{...tt,title:ie}:tt)),s(De=>({...De,[ue.id]:(De[ue.id]||[]).map(tt=>({...tt,partTitle:ie}))})),xe(null),wn()):se.error("更新篇名失败: "+(Re&&typeof Re=="object"&&"error"in Re?Re.error:"未知错误"))}catch(ve){console.error(ve),se.error("更新篇名失败")}finally{O(!1)}}},Cp=T=>{const _=T.chapters.length+1,ie=`chapter-${T.id}-${_}-${Date.now()}`;re({id:`${_}.1`,title:"新章节",price:1,partId:T.id,chapterId:ie,content:"",editionStandard:!0,editionPremium:!1,isFree:!1,isNew:!1,isPinned:!1,hotScore:0,previewPercent:void 0}),w(!0)},Mc=(T,_)=>{const ie=_.sections;let ve=1,Re=!1,De=!1;if(ie.length>0){const tt=typeof ie[0].price=="number"?ie[0].price:Number(ie[0].price)||1,lt=!!(ie[0].isFree||tt===0);De=ie.some(wt=>{const Nt=typeof wt.price=="number"?wt.price:Number(wt.price)||1,As=!!(wt.isFree||Nt===0);return Nt!==tt||As!==lt}),ve=lt?0:tt,Re=lt}q({part:T,chapter:_,title:_.title,price:ve,isFree:Re,priceMixed:De,initialTitle:_.title,initialPrice:ve,initialIsFree:Re})},Ac=async()=>{var Re;if(!((Re=M==null?void 0:M.title)!=null&&Re.trim()))return;const T=M,_=T.title.trim(),ie=_!==T.initialTitle,ve=T.isFree!==T.initialIsFree||!T.isFree&&Number(T.price)!==Number(T.initialPrice);if(!ie&&!ve){se.info("未修改任何内容"),q(null);return}if(T.priceMixed&&ve){const De=T.chapter.sections.length,tt=T.isFree?"全部设为免费":`全部设为 ¥${T.price}`;if(!confirm(`本章 ${De} 节当前定价不一致,保存后将${tt},确定?`))return}z(!0);try{if(ie){const De=Vt.map(Nt=>({id:Nt.id,partId:Nt.partId||T.part.id,partTitle:Nt.partId===T.part.id?T.part.title:Nt.partTitle||"",chapterId:Nt.chapterId||T.chapter.id,chapterTitle:Nt.partId===T.part.id&&Nt.chapterId===T.chapter.id?_:Nt.chapterTitle||""})),tt=await Pt("/api/db/book",{action:"reorder",items:De});if(tt&&tt.success===!1){se.error("保存章节名失败: "+(tt&&typeof tt=="object"&&"error"in tt?tt.error:"未知错误"));return}const lt=T.part.id,wt=T.chapter.id;s(Nt=>({...Nt,[lt]:(Nt[lt]||[]).map(As=>As.chapterId===wt?{...As,chapterTitle:_}:As)}))}if(ve){const De=await Pt("/api/db/book",{action:"update-chapter-pricing",partId:T.part.id,chapterId:T.chapter.id,price:T.isFree?0:Number(T.price)||0,isFree:T.isFree});if(De&&De.success===!1){se.error("保存定价失败: "+(De&&typeof De=="object"&&"error"in De?De.error:"未知错误")),ie&&wn();return}}q(null),wn(),se.success("已保存")}catch(De){console.error(De),se.error("保存失败")}finally{z(!1)}},po=async(T,_)=>{const ie=_.sections.map(ve=>ve.id);if(ie.length===0){se.info("该章下无小节,无需删除");return}if(confirm(`确定要删除「第${T.chapters.indexOf(_)+1}章 | ${_.title}」吗?将删除共 ${ie.length} 节,此操作不可恢复。`))try{for(const ve of ie)await oa(`/api/db/book?id=${encodeURIComponent(ve)}`);wn()}catch(ve){console.error(ve),se.error("删除失败")}},ml=async()=>{if(!pe.trim()){se.error("请输入篇名");return}vt(!0);try{const T=`part-new-${Date.now()}`,_="chapter-1",ie=`part-placeholder-${Date.now()}`,ve=await Pt("/api/db/book",{id:ie,title:"占位节(可编辑)",price:0,content:"",partId:T,partTitle:pe.trim(),chapterId:_,chapterTitle:"第1章 | 待编辑",saveToFile:!1});ve&&ve.success!==!1?(se.success(`篇「${pe}」创建成功`),$(!1),Fe(""),wn()):se.error("创建失败: "+(ve&&typeof ve=="object"&&"error"in ve?ve.error:"未知错误"))}catch(T){console.error(T),se.error("创建失败")}finally{vt(!1)}},iu=async()=>{if(G.length===0){se.error("请先勾选要移动的章节");return}const T=Nn.find(ie=>ie.id===ke),_=T==null?void 0:T.chapters.find(ie=>ie.id===Y);if(!T||!_||!ke||!Y){se.error("请选择目标篇和章");return}ce(!0);try{const ie=()=>{const tt=new Set(G),lt=Vt.map(Rn=>({id:Rn.id,partId:Rn.partId||"",partTitle:Rn.partTitle||"",chapterId:Rn.chapterId||"",chapterTitle:Rn.chapterTitle||""})),wt=lt.filter(Rn=>tt.has(Rn.id)).map(Rn=>({...Rn,partId:ke,partTitle:T.title||ke,chapterId:Y,chapterTitle:_.title||Y})),Nt=lt.filter(Rn=>!tt.has(Rn.id));let As=Nt.length;for(let Rn=Nt.length-1;Rn>=0;Rn-=1){const uu=Nt[Rn];if(uu.partId===ke&&uu.chapterId===Y){As=Rn+1;break}}return[...Nt.slice(0,As),...wt,...Nt.slice(As)]},ve=async()=>{const tt=ie(),lt=await Pt("/api/db/book",{action:"reorder",items:tt});return lt&&lt.success!==!1?(se.success(`已移动 ${G.length} 节到「${T.title}」-「${_.title}」`),Ae(!1),oe([]),await wn(),!0):!1},Re={action:"move-sections",sectionIds:G,targetPartId:ke,targetChapterId:Y,targetPartTitle:T.title||ke,targetChapterTitle:_.title||Y},De=await Pt("/api/db/book",Re);if(De&&De.success!==!1)se.success(`已移动 ${De.count??G.length} 节到「${T.title}」-「${_.title}」`),Ae(!1),oe([]),await wn();else{const tt=De&&typeof De=="object"&&"error"in De?De.error||"":"未知错误";if((tt.includes("缺少 id")||tt.includes("无效的 action"))&&await ve())return;se.error("移动失败: "+tt)}}catch(ie){console.error(ie),se.error("移动失败: "+(ie instanceof Error?ie.message:"网络或服务异常"))}finally{ce(!1)}},Ep=T=>{oe(_=>_.includes(T)?_.filter(ie=>ie!==T):[..._,T])},Tp=async T=>{const _=Vt.filter(ie=>ie.partId===T.id).map(ie=>ie.id);if(_.length===0){se.info("该篇下暂无小节可删除");return}if(confirm(`确定要删除「${T.title}」整篇吗?将删除共 ${_.length} 节内容,此操作不可恢复。`))try{for(const ie of _)await oa(`/api/db/book?id=${encodeURIComponent(ie)}`);wn()}catch(ie){console.error(ie),se.error("删除失败")}},ou=async()=>{var T;if(I.trim()){R(!0);try{const _=await Oe(`/api/search?q=${encodeURIComponent(I)}`);_!=null&&_.success&&((T=_.data)!=null&&T.results)?D(_.data.results):(D([]),_&&!_.success&&se.error("搜索失败: "+_.error))}catch(_){console.error(_),D([]),se.error("搜索失败")}finally{R(!1)}}},mo=Nn.find(T=>T.id===K.partId),lu=(mo==null?void 0:mo.chapters)??[];return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"内容管理"}),r.jsxs("p",{className:"text-gray-400 mt-1",children:["共 ",Nn.length," 篇 · ",Gn," 节内容"]})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(X,{onClick:()=>Mt(!0),variant:"outline",className:"border-amber-500/50 text-amber-400 hover:bg-amber-500/10 bg-transparent",children:[r.jsx(ih,{className:"w-4 h-4 mr-2"}),"排名算法"]}),r.jsxs(X,{onClick:()=>{const T=typeof window<"u"?`${window.location.origin}/api-doc`:"";T&&window.open(T,"_blank","noopener,noreferrer")},variant:"outline",className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx($r,{className:"w-4 h-4 mr-2"}),"API 接口"]})]})]}),r.jsx(Lt,{open:N,onOpenChange:w,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white inset-0 translate-x-0 translate-y-0 w-screen h-screen max-w-none max-h-none rounded-none flex flex-col p-0 gap-0",showCloseButton:!0,children:[r.jsx(_t,{className:"shrink-0 px-6 pt-6 pb-2",children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(xn,{className:"w-5 h-5 text-[#38bdac]"}),"新建章节"]})}),r.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0 px-6 space-y-4 py-4",children:[r.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"章节ID *"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: 9.15",value:K.id,onChange:T=>re({...K,id:T.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"价格 (元)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:K.isFree?0:K.price,onChange:T=>re({...K,price:Number(T.target.value),isFree:Number(T.target.value)===0}),disabled:K.isFree})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"免费"}),r.jsx("div",{className:"flex items-center h-10",children:r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:K.isFree,onChange:T=>re({...K,isFree:T.target.checked,price:T.target.checked?0:1}),className:"w-5 h-5 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"设为免费"})]})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"最新新增"}),r.jsx("div",{className:"flex items-center h-10",children:r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:K.isNew,onChange:T=>re({...K,isNew:T.target.checked}),className:"w-5 h-5 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"标记 NEW"})]})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"小程序直推"}),r.jsx("div",{className:"flex items-center h-10",children:r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:K.isPinned,onChange:T=>re({...K,isPinned:T.target.checked}),className:"w-5 h-5 rounded border-gray-600 bg-[#0a1628] text-amber-400 focus:ring-amber-400"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"强制置顶到小程序首页"})]})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"文章类型"}),r.jsxs("div",{className:"flex items-center gap-4 h-10",children:[r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"radio",name:"new-edition-type",checked:K.editionPremium!==!0,onChange:()=>re({...K,editionStandard:!0,editionPremium:!1}),className:"w-4 h-4 border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"普通版"})]}),r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"radio",name:"new-edition-type",checked:K.editionPremium===!0,onChange:()=>re({...K,editionStandard:!1,editionPremium:!0}),className:"w-4 h-4 border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"增值版"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"热度分"}),r.jsx(ae,{type:"number",step:"0.1",min:"0",className:"bg-[#0a1628] border-gray-700 text-white",value:K.hotScore??0,onChange:T=>re({...K,hotScore:Math.max(0,parseFloat(T.target.value)||0)})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"未解锁预览比例 (%)"}),r.jsx(ae,{type:"number",min:"0",max:"100",placeholder:"空则用全局",className:"bg-[#0a1628] border-gray-700 text-white",value:K.previewPercent??"",onChange:T=>{const _=T.target.value===""?void 0:Number(T.target.value);re({...K,previewPercent:_===void 0?void 0:Math.max(0,Math.min(100,_))})}}),r.jsx("span",{className:"text-xs text-gray-500",children:"小程序未付费用户显示前 N% 内容,空则用全局设置"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"章节标题 *"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"输入章节标题",value:K.title,onChange:T=>re({...K,title:T.target.value})})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"所属篇"}),r.jsxs(Ul,{value:K.partId,onValueChange:T=>{var ie;const _=Nn.find(ve=>ve.id===T);re({...K,partId:T,chapterId:((ie=_==null?void 0:_.chapters[0])==null?void 0:ie.id)??"chapter-1"})},children:[r.jsx(Io,{className:"bg-[#0a1628] border-gray-700 text-white",children:r.jsx(Kl,{})}),r.jsxs(Po,{className:"bg-[#0f2137] border-gray-700",children:[Nn.map(T=>r.jsx(nr,{value:T.id,className:"text-white hover:bg-[#38bdac]/20 focus:bg-[#38bdac]/20",children:T.title},T.id)),Nn.length===0&&r.jsx(nr,{value:"part-1",className:"text-white hover:bg-[#38bdac]/20 focus:bg-[#38bdac]/20",children:"默认篇"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"所属章"}),r.jsxs(Ul,{value:K.chapterId,onValueChange:T=>re({...K,chapterId:T}),children:[r.jsx(Io,{className:"bg-[#0a1628] border-gray-700 text-white",children:r.jsx(Kl,{})}),r.jsxs(Po,{className:"bg-[#0f2137] border-gray-700",children:[lu.map(T=>r.jsx(nr,{value:T.id,className:"text-white hover:bg-[#38bdac]/20 focus:bg-[#38bdac]/20",children:T.title},T.id)),lu.length===0&&r.jsx(nr,{value:"chapter-1",className:"text-white hover:bg-[#38bdac]/20 focus:bg-[#38bdac]/20",children:"默认章"})]})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"内容(富文本编辑器,支持 @链接AI人物 和 #链接标签)"}),r.jsx(s0,{content:K.content||"",onChange:T=>re({...K,content:T}),onImageUpload:async T=>{var Re;const _=new FormData;_.append("file",T),_.append("folder","book-images");const ve=await(await fetch(Wo("/api/upload"),{method:"POST",body:_,headers:{Authorization:`Bearer ${localStorage.getItem("admin_token")||""}`}})).json();return((Re=ve==null?void 0:ve.data)==null?void 0:Re.url)||(ve==null?void 0:ve.url)||""},persons:fn,linkTags:Pn,placeholder:"开始编辑内容... 输入 @ 可链接AI人物工具栏可插入 #链接标签"})]})]}),r.jsxs(on,{className:"shrink-0 px-6 py-4 border-t border-gray-700/50",children:[r.jsx(X,{variant:"outline",onClick:()=>w(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsx(X,{onClick:Ms,disabled:C||!K.id||!K.title,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:C?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-2 animate-spin"}),"创建中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"创建章节"]})})]})]})}),r.jsx(Lt,{open:!!ue,onOpenChange:T=>!T&&xe(null),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}),"编辑篇名"]})}),ue&&r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"角标(如:一、二、派、壹)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:ue.badge??"",onChange:T=>xe({...ue,badge:T.target.value}),placeholder:"角标,显示在篇名左侧"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"篇名(如:真实的人、真实的行业)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:ue.rest??"",onChange:T=>xe({...ue,rest:T.target.value}),placeholder:"篇名副标题"})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",onClick:()=>xe(null),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsx(X,{onClick:fo,disabled:H||!(ue&&(ue.rest??ue.title??"").trim()),className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:H?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-2 animate-spin"}),"保存中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),"保存"]})})]})]})}),r.jsx(Lt,{open:!!M,onOpenChange:T=>!T&&q(null),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",showCloseButton:!0,children:[r.jsxs(_t,{children:[r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}),"章节设置"]}),r.jsx("p",{className:"text-gray-400 text-sm font-normal pt-1",children:"修改本章显示名称,或为本章下全部节设置统一金额(仍可在单节编辑里单独改某一节)。"})]}),M&&r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"章节名称第8章底层结构"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:M.title,onChange:T=>q({...M,title:T.target.value}),placeholder:"输入章节名称"})]}),r.jsxs("div",{className:"space-y-2 border-t border-gray-700/60 pt-4",children:[r.jsxs(Z,{className:"text-gray-300",children:["本章统一定价(应用于本章全部 ",M.chapter.sections.length," 节)"]}),M.priceMixed&&r.jsx("p",{className:"text-amber-400/90 text-xs",children:"当前各节定价不一致,保存后将按下方设置全部统一。"}),r.jsxs("div",{className:"flex flex-wrap items-end gap-4",children:[r.jsxs("div",{className:"space-y-1 flex-1 min-w-[120px]",children:[r.jsx("span",{className:"text-gray-500 text-xs",children:"价格 (元)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:M.isFree?0:M.price,onChange:T=>q({...M,price:Number(T.target.value),isFree:Number(T.target.value)===0}),disabled:M.isFree,min:0,step:.01})]}),r.jsxs("label",{className:"flex items-center gap-2 cursor-pointer pb-2",children:[r.jsx("input",{type:"checkbox",checked:M.isFree||M.price===0,onChange:T=>q({...M,isFree:T.target.checked,price:T.target.checked?0:M.initialPrice>0?M.initialPrice:1}),className:"w-4 h-4 rounded border-gray-600 bg-[#0a1628] text-[#38bdac]"}),r.jsx("span",{className:"text-gray-400 text-sm",children:"本章全部免费"})]})]})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",onClick:()=>q(null),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsx(X,{onClick:Ac,disabled:B||!((cu=M==null?void 0:M.title)!=null&&cu.trim()),className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:B?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-2 animate-spin"}),"保存中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),"保存"]})})]})]})}),r.jsx(Lt,{open:ye,onOpenChange:T=>{var _;if(Ae(T),T&&Nn.length>0){const ie=Nn[0];ee(ie.id),he(((_=ie.chapters[0])==null?void 0:_.id)??"")}},children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:"批量移动至指定目录"})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("p",{className:"text-gray-400 text-sm",children:["已选 ",r.jsx("span",{className:"text-[#38bdac] font-medium",children:G.length})," 节,请选择目标篇与章。"]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"目标篇"}),r.jsxs(Ul,{value:ke,onValueChange:T=>{var ie;ee(T);const _=Nn.find(ve=>ve.id===T);he(((ie=_==null?void 0:_.chapters[0])==null?void 0:ie.id)??"")},children:[r.jsx(Io,{className:"bg-[#0a1628] border-gray-700 text-white",children:r.jsx(Kl,{placeholder:"选择篇"})}),r.jsx(Po,{className:"bg-[#0f2137] border-gray-700",children:Nn.map(T=>r.jsx(nr,{value:T.id,className:"text-white hover:bg-[#38bdac]/20 focus:bg-[#38bdac]/20",children:T.title},T.id))})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"目标章"}),r.jsxs(Ul,{value:Y,onValueChange:he,children:[r.jsx(Io,{className:"bg-[#0a1628] border-gray-700 text-white",children:r.jsx(Kl,{placeholder:"选择章"})}),r.jsx(Po,{className:"bg-[#0f2137] border-gray-700",children:(((du=Nn.find(T=>T.id===ke))==null?void 0:du.chapters)??[]).map(T=>r.jsx(nr,{value:T.id,className:"text-white hover:bg-[#38bdac]/20 focus:bg-[#38bdac]/20",children:T.title},T.id))})]})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",onClick:()=>Ae(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsx(X,{onClick:iu,disabled:te||G.length===0,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:te?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-2 animate-spin"}),"移动中..."]}):"确认移动"})]})]})}),r.jsx(Lt,{open:!!mt,onOpenChange:T=>!T&&Ut(null),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-3xl max-h-[85vh] overflow-hidden flex flex-col",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white",children:["付款记录 — ",(mt==null?void 0:mt.section.title)??""]})}),r.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:In?r.jsxs("div",{className:"flex items-center justify-center py-8",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):mt&&mt.orders.length===0?r.jsx("p",{className:"text-gray-500 text-center py-6",children:"暂无付款记录"}):mt?r.jsxs("table",{className:"w-full text-sm border-collapse",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-gray-700 text-left text-gray-400",children:[r.jsx("th",{className:"py-2 pr-2",children:"订单号"}),r.jsx("th",{className:"py-2 pr-2",children:"用户ID"}),r.jsx("th",{className:"py-2 pr-2",children:"金额"}),r.jsx("th",{className:"py-2 pr-2",children:"状态"}),r.jsx("th",{className:"py-2 pr-2",children:"支付时间"})]})}),r.jsx("tbody",{children:mt.orders.map(T=>r.jsxs("tr",{className:"border-b border-gray-700/50",children:[r.jsx("td",{className:"py-2 pr-2",children:r.jsx("button",{className:"text-blue-400 hover:text-blue-300 hover:underline text-left truncate max-w-[180px] block",title:`查看订单 ${T.orderSn}`,onClick:()=>window.open(`/orders?search=${T.orderSn??T.id??""}`,"_blank"),children:T.orderSn?T.orderSn.length>16?T.orderSn.slice(0,8)+"..."+T.orderSn.slice(-6):T.orderSn:"-"})}),r.jsx("td",{className:"py-2 pr-2",children:r.jsx("button",{className:"text-[#38bdac] hover:text-[#2da396] hover:underline text-left truncate max-w-[140px] block",title:`查看用户 ${T.userId??T.openId??""}`,onClick:()=>window.open(`/users?search=${T.userId??T.openId??""}`,"_blank"),children:(()=>{const _=T.userId??T.openId??"-";return _.length>12?_.slice(0,6)+"..."+_.slice(-4):_})()})}),r.jsxs("td",{className:"py-2 pr-2 text-gray-300",children:["¥",T.amount??0]}),r.jsx("td",{className:"py-2 pr-2 text-gray-300",children:T.status??"-"}),r.jsx("td",{className:"py-2 pr-2 text-gray-500",children:T.payTime??T.createdAt??"-"})]},T.id??T.orderSn??""))})]}):null})]})}),r.jsx(Lt,{open:Tt,onOpenChange:Mt,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(ih,{className:"w-5 h-5 text-amber-400"}),"文章排名算法"]})}),r.jsxs("div",{className:"space-y-4 py-2",children:[r.jsx("p",{className:"text-sm text-gray-400",children:"热度积分 = 阅读权重×阅读排名分 + 新度权重×新度排名分 + 付款权重×付款排名分(三权重之和须为 1"}),as?r.jsx("p",{className:"text-gray-500",children:"加载中..."}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"阅读权重"}),r.jsx(ae,{type:"number",step:"0.1",min:"0",max:"1",className:"bg-[#0a1628] border-gray-700 text-white",value:Kt.readWeight,onChange:T=>Ns(_=>({..._,readWeight:Math.max(0,Math.min(1,parseFloat(T.target.value)||0))}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"新度权重"}),r.jsx(ae,{type:"number",step:"0.1",min:"0",max:"1",className:"bg-[#0a1628] border-gray-700 text-white",value:Kt.recencyWeight,onChange:T=>Ns(_=>({..._,recencyWeight:Math.max(0,Math.min(1,parseFloat(T.target.value)||0))}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"付款权重"}),r.jsx(ae,{type:"number",step:"0.1",min:"0",max:"1",className:"bg-[#0a1628] border-gray-700 text-white",value:Kt.payWeight,onChange:T=>Ns(_=>({..._,payWeight:Math.max(0,Math.min(1,parseFloat(T.target.value)||0))}))})]})]}),r.jsxs("p",{className:"text-xs text-gray-500",children:["当前之和: ",(Kt.readWeight+Kt.recencyWeight+Kt.payWeight).toFixed(1)]}),r.jsxs("ul",{className:"list-disc list-inside space-y-1 text-xs text-gray-400",children:[r.jsx("li",{children:"阅读量前 20 名第1名=20分、第2名=19分...第20名=1分"}),r.jsx("li",{children:"最近更新前 30 篇第1名=30分、第2名=29分...第30名=1分"}),r.jsx("li",{children:"付款数前 20 名第1名=20分、第2名=19分...第20名=1分"}),r.jsx("li",{children:"热度分可在编辑章节中手动覆盖"})]}),r.jsx(X,{onClick:su,disabled:Ls||Math.abs(Kt.readWeight+Kt.recencyWeight+Kt.payWeight-1)>.001,className:"w-full bg-amber-500 hover:bg-amber-600 text-white",children:Ls?"保存中...":"保存权重"})]})]})]})}),r.jsx(Lt,{open:J,onOpenChange:$,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-md",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(xn,{className:"w-5 h-5 text-amber-400"}),"新建篇"]})}),r.jsx("div",{className:"space-y-4 py-4",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"篇名(如:第六篇|真实的社会)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:pe,onChange:T=>Fe(T.target.value),placeholder:"输入篇名"})]})}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",onClick:()=>{$(!1),Fe("")},className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsx(X,{onClick:ml,disabled:rt||!pe.trim(),className:"bg-amber-500 hover:bg-amber-600 text-white",children:rt?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-2 animate-spin"}),"创建中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"创建篇"]})})]})]})}),r.jsx(Lt,{open:!!g,onOpenChange:()=>y(null),children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white inset-0 translate-x-0 translate-y-0 w-screen h-screen max-w-none max-h-none rounded-none flex flex-col p-0 gap-0",showCloseButton:!0,children:[r.jsx(_t,{className:"shrink-0 px-6 pt-6 pb-2",children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}),"编辑章节"]})}),g&&r.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0 px-6 space-y-4 py-4",children:[r.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"章节ID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:g.id,onChange:T=>y({...g,id:T.target.value}),placeholder:"如: 9.15"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"价格 (元)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:g.isFree?0:g.price,onChange:T=>y({...g,price:Number(T.target.value),isFree:Number(T.target.value)===0}),disabled:g.isFree})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"免费"}),r.jsx("div",{className:"flex items-center h-10",children:r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:g.isFree||g.price===0,onChange:T=>y({...g,isFree:T.target.checked,price:T.target.checked?0:1}),className:"w-5 h-5 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"设为免费"})]})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"最新新增"}),r.jsx("div",{className:"flex items-center h-10",children:r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:g.isNew??!1,onChange:T=>y({...g,isNew:T.target.checked}),className:"w-5 h-5 rounded border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"标记 NEW"})]})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"小程序直推"}),r.jsx("div",{className:"flex items-center h-10",children:r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:g.isPinned??!1,onChange:T=>y({...g,isPinned:T.target.checked}),className:"w-5 h-5 rounded border-gray-600 bg-[#0a1628] text-amber-400 focus:ring-amber-400"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"强制置顶到小程序首页"})]})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"文章类型"}),r.jsxs("div",{className:"flex items-center gap-4 h-10",children:[r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"radio",name:"edition-type",checked:g.editionPremium!==!0,onChange:()=>y({...g,editionStandard:!0,editionPremium:!1}),className:"w-4 h-4 border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"普通版"})]}),r.jsxs("label",{className:"flex items-center cursor-pointer",children:[r.jsx("input",{type:"radio",name:"edition-type",checked:g.editionPremium===!0,onChange:()=>y({...g,editionStandard:!1,editionPremium:!0}),className:"w-4 h-4 border-gray-600 bg-[#0a1628] text-[#38bdac] focus:ring-[#38bdac]"}),r.jsx("span",{className:"ml-2 text-gray-400 text-sm",children:"增值版"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"热度分"}),r.jsx(ae,{type:"number",step:"0.1",min:"0",className:"bg-[#0a1628] border-gray-700 text-white",value:g.hotScore??0,onChange:T=>y({...g,hotScore:Math.max(0,parseFloat(T.target.value)||0)})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"未解锁预览比例 (%)"}),r.jsx(ae,{type:"number",min:"0",max:"100",placeholder:"空则用全局",className:"bg-[#0a1628] border-gray-700 text-white",value:g.previewPercent??"",onChange:T=>{const _=T.target.value===""?void 0:Number(T.target.value);y({...g,previewPercent:_===void 0?void 0:Math.max(0,Math.min(100,_))})}}),r.jsx("span",{className:"text-xs text-gray-500",children:"小程序未付费用户显示前 N% 内容,空则用全局设置"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"章节标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:g.title,onChange:T=>y({...g,title:T.target.value})})]}),g.filePath&&r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"文件路径"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-gray-400 text-sm",value:g.filePath,disabled:!0})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"内容(富文本编辑器,支持 @链接AI人物 和 #链接标签)"}),v?r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700 rounded-md min-h-[400px] flex items-center justify-center",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsx(s0,{ref:pn,content:g.content||"",onChange:T=>y({...g,content:T}),onImageUpload:async T=>{var Re;const _=new FormData;_.append("file",T),_.append("folder","book-images");const ve=await(await fetch(Wo("/api/upload"),{method:"POST",body:_,headers:{Authorization:`Bearer ${localStorage.getItem("admin_token")||""}`}})).json();return((Re=ve==null?void 0:ve.data)==null?void 0:Re.url)||(ve==null?void 0:ve.url)||""},persons:fn,linkTags:Pn,placeholder:"开始编辑内容... 输入 @ 可链接AI人物工具栏可插入 #链接标签"})]})]}),r.jsxs(on,{className:"shrink-0 px-6 py-4 border-t border-gray-700/50",children:[g&&r.jsxs(X,{variant:"outline",onClick:()=>ho({id:g.id,title:g.title,price:g.price}),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent mr-auto",children:[r.jsx(ir,{className:"w-4 h-4 mr-2"}),"付款记录"]}),r.jsxs(X,{variant:"outline",onClick:()=>y(null),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsx(X,{onClick:au,disabled:C,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:C?r.jsxs(r.Fragment,{children:[r.jsx(Be,{className:"w-4 h-4 mr-2 animate-spin"}),"保存中..."]}):r.jsxs(r.Fragment,{children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),"保存修改"]})})]})]})}),r.jsxs(Yd,{defaultValue:"chapters",className:"space-y-6",children:[r.jsxs(pc,{className:"bg-[#0f2137] border border-gray-700/50 p-1",children:[r.jsxs(tn,{value:"chapters",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400",children:[r.jsx(ir,{className:"w-4 h-4 mr-2"}),"章节管理"]}),r.jsxs(tn,{value:"ranking",className:"data-[state=active]:bg-amber-500/20 data-[state=active]:text-amber-400 text-gray-400",children:[r.jsx(ux,{className:"w-4 h-4 mr-2"}),"内容排行榜"]}),r.jsxs(tn,{value:"search",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400",children:[r.jsx(ca,{className:"w-4 h-4 mr-2"}),"内容搜索"]}),r.jsxs(tn,{value:"link-person",className:"data-[state=active]:bg-purple-500/20 data-[state=active]:text-purple-400 text-gray-400",children:[r.jsx($r,{className:"w-4 h-4 mr-2"}),"链接人与事"]}),r.jsxs(tn,{value:"link-tag",className:"data-[state=active]:bg-amber-500/20 data-[state=active]:text-amber-400 text-gray-400",children:[r.jsx(d1,{className:"w-4 h-4 mr-2"}),"链接标签"]}),r.jsxs(tn,{value:"linkedmp",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400",children:[r.jsx(Bi,{className:"w-4 h-4 mr-2"}),"关联小程序"]})]}),r.jsxs(nn,{value:"chapters",className:"space-y-4",children:[r.jsxs("div",{className:"rounded-2xl border border-gray-700/50 bg-[#1C1C1E] p-4 flex items-center justify-between shadow-sm",children:[r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-[#38bdac] flex items-center justify-center text-white shadow-lg shadow-[#38bdac]/20 shrink-0",children:r.jsx(ir,{className:"w-6 h-6"})}),r.jsxs("div",{children:[r.jsx("h2",{className:"font-bold text-base text-white leading-tight mb-1",children:"一场SOUL的创业实验场"}),r.jsx("p",{className:"text-xs text-gray-500",children:"来自Soul派对房的真实商业故事"})]})]}),r.jsxs("div",{className:"text-center shrink-0",children:[r.jsx("span",{className:"block text-2xl font-bold text-[#38bdac]",children:Gn}),r.jsx("span",{className:"text-xs text-gray-500",children:"章节"})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-2",children:[r.jsxs(X,{onClick:()=>w(!0),className:"flex-1 min-w-[120px] bg-[#38bdac]/10 hover:bg-[#38bdac]/20 text-[#38bdac] border border-[#38bdac]/30",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"新建章节"]}),r.jsxs(X,{onClick:()=>$(!0),className:"flex-1 min-w-[120px] bg-amber-500/10 hover:bg-amber-500/20 text-amber-400 border border-amber-500/30",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"新建篇"]}),r.jsxs(X,{variant:"outline",onClick:()=>Ae(!0),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:["批量移动(已选 ",G.length," 节)"]})]}),u?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs("div",{className:"relative",children:[o&&r.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-[#0f2137]/80 rounded-xl",children:r.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 rounded-lg bg-[#1C1C1E] border border-[#38bdac]/30 shadow-lg",children:[r.jsx(Be,{className:"w-4 h-4 text-[#38bdac] animate-spin shrink-0"}),r.jsx("span",{className:"text-sm text-gray-300",children:"正在更新排序..."})]})}),r.jsx(oV,{parts:Nn,expandedParts:f,onTogglePart:ao,sectionsLoadingByPart:a,onReorder:io,onReadSection:si,onDeleteSection:Xr,onAddSectionInPart:ri,onAddChapterInPart:Cp,onDeleteChapter:po,onEditPart:Tc,onDeletePart:Tp,onEditChapter:Mc,selectedSectionIds:G,onToggleSectionSelect:Ep,onShowSectionOrders:ho,pinnedSectionIds:hn})]})]}),r.jsx(nn,{value:"search",className:"space-y-4",children:r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"内容搜索"})}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500 flex-1",placeholder:"搜索标题或内容...",value:I,onChange:T=>L(T.target.value),onKeyDown:T=>T.key==="Enter"&&ou()}),r.jsx(X,{onClick:ou,disabled:P||!I.trim(),className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:P?r.jsx(Be,{className:"w-4 h-4 animate-spin"}):r.jsx(ca,{className:"w-4 h-4"})})]}),W.length>0&&r.jsxs("div",{className:"space-y-2 mt-4",children:[r.jsxs("p",{className:"text-gray-400 text-sm",children:["找到 ",W.length," 个结果"]}),W.map(T=>r.jsxs("div",{className:"p-3 rounded-lg bg-[#162840] hover:bg-[#1a3050] cursor-pointer transition-colors",onClick:()=>si({id:T.id,mid:T.mid,title:T.title,price:T.price??1,filePath:""}),children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[#38bdac] font-mono text-xs",children:T.id}),r.jsx("span",{className:"text-white",children:T.title}),hn.includes(T.id)&&r.jsx(Ii,{className:"w-3 h-3 text-amber-400 fill-amber-400 shrink-0"})]}),r.jsx(Je,{variant:"outline",className:"text-gray-400 border-gray-600 text-xs",children:T.matchType==="title"?"标题匹配":"内容匹配"})]}),T.snippet&&r.jsx("p",{className:"text-gray-500 text-xs mt-2 line-clamp-2",children:T.snippet}),(T.partTitle||T.chapterTitle)&&r.jsxs("p",{className:"text-gray-600 text-xs mt-1",children:[T.partTitle," · ",T.chapterTitle]})]},T.id))]})]})]})}),r.jsxs(nn,{value:"ranking",className:"space-y-4",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white text-base flex items-center gap-2",children:[r.jsx(ih,{className:"w-4 h-4 text-[#38bdac]"}),"内容显示规则"]})}),r.jsx(Te,{children:r.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Z,{className:"text-gray-400 text-sm whitespace-nowrap",children:"未付费预览比例"}),r.jsx(ae,{type:"number",min:"1",max:"100",className:"bg-[#0a1628] border-gray-700 text-white w-20",value:it,onChange:T=>$t(Math.max(1,Math.min(100,Number(T.target.value)||20))),disabled:me}),r.jsx("span",{className:"text-gray-500 text-sm",children:"%"})]}),r.jsx(X,{size:"sm",onClick:ru,disabled:at,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:at?"保存中...":"保存"}),r.jsxs("span",{className:"text-xs text-gray-500",children:["小程序未付费用户默认显示文章前 ",it,"% 内容"]})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs(Xe,{className:"text-white text-base flex items-center gap-2",children:[r.jsx(ux,{className:"w-4 h-4 text-amber-400"}),"内容排行榜",r.jsxs("span",{className:"text-xs text-gray-500 font-normal ml-2",children:["按热度排行 · 共 ",un.length," 节"]})]}),r.jsxs("div",{className:"flex items-center gap-1 text-sm",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>ds(),disabled:js,className:"text-gray-400 hover:text-white h-7 w-7 p-0",title:"刷新排行榜",children:r.jsx(Be,{className:`w-4 h-4 ${js?"animate-spin":""}`})}),r.jsx(X,{variant:"ghost",size:"sm",disabled:rn<=1||js,onClick:()=>qs(T=>Math.max(1,T-1)),className:"text-gray-400 hover:text-white h-7 w-7 p-0",children:r.jsx(QT,{className:"w-4 h-4"})}),r.jsxs("span",{className:"text-gray-400 min-w-[60px] text-center",children:[rn," / ",Qr]}),r.jsx(X,{variant:"ghost",size:"sm",disabled:rn>=Qr||js,onClick:()=>qs(T=>Math.min(Qr,T+1)),className:"text-gray-400 hover:text-white h-7 w-7 p-0",children:r.jsx(ql,{className:"w-4 h-4"})})]})]})}),r.jsx(Te,{children:r.jsxs("div",{className:"space-y-0",children:[r.jsxs("div",{className:"grid grid-cols-[40px_40px_1fr_80px_80px_80px_60px] gap-2 px-3 py-2 text-xs text-gray-500 border-b border-gray-700/50",children:[r.jsx("span",{children:"排名"}),r.jsx("span",{children:"置顶"}),r.jsx("span",{children:"标题"}),r.jsx("span",{className:"text-right",children:"点击量"}),r.jsx("span",{className:"text-right",children:"付款数"}),r.jsx("span",{className:"text-right",children:"热度"}),r.jsx("span",{className:"text-right",children:"编辑"})]}),Er.map((T,_)=>{const ie=(rn-1)*Cr+_+1,ve=T.isPinned??hn.includes(T.id);return r.jsxs("div",{className:`grid grid-cols-[40px_40px_1fr_80px_80px_80px_60px] gap-2 px-3 py-2.5 items-center border-b border-gray-700/30 hover:bg-[#162840] transition-colors ${ve?"bg-amber-500/5":""}`,children:[r.jsx("span",{className:`text-sm font-bold ${ie<=3?"text-amber-400":"text-gray-500"}`,children:ie<=3?["🥇","🥈","🥉"][ie-1]:`#${ie}`}),r.jsx(X,{variant:"ghost",size:"sm",className:`h-6 w-6 p-0 ${ve?"text-amber-400":"text-gray-600 hover:text-amber-400"}`,onClick:()=>pl(T.id),disabled:U,title:ve?"取消置顶":"强制置顶(精选推荐/首页最新更新)",children:ve?r.jsx(Ii,{className:"w-3.5 h-3.5 fill-current"}):r.jsx(u1,{className:"w-3.5 h-3.5"})}),r.jsxs("div",{className:"min-w-0",children:[r.jsx("span",{className:"text-white text-sm truncate block",children:T.title}),r.jsxs("span",{className:"text-gray-600 text-xs",children:[T.partTitle," · ",T.chapterTitle]})]}),r.jsx("span",{className:"text-right text-sm text-blue-400 font-mono",children:T.clickCount??0}),r.jsx("span",{className:"text-right text-sm text-green-400 font-mono",children:T.payCount??0}),r.jsx("span",{className:"text-right text-sm text-amber-400 font-mono",children:(T.hotScore??0).toFixed(1)}),r.jsx("div",{className:"text-right",children:r.jsx(X,{variant:"ghost",size:"sm",className:"text-gray-500 hover:text-[#38bdac] h-6 px-1",onClick:()=>si({id:T.id,mid:T.mid,title:T.title,price:T.price,filePath:""}),title:"编辑文章",children:r.jsx(Jt,{className:"w-3 h-3"})})})]},T.id)}),Er.length===0&&r.jsx("div",{className:"py-8 text-center text-gray-500",children:"暂无数据"})]})})]})]}),r.jsxs(nn,{value:"link-person",className:"space-y-4",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"pb-3",children:[r.jsxs(Xe,{className:"text-white text-base flex items-center gap-2",children:[r.jsx("span",{className:"text-[#38bdac] text-lg font-bold",children:"@"}),"AI列表 — 链接人与事(编辑器内输入 @ 可链接)"]}),r.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"添加时自动生成 32 位 token文章 @ 时存 token小程序点击 @ 时用 token 兑换真实密钥后加好友"})]}),r.jsxs(Te,{className:"space-y-3",children:[r.jsxs("div",{className:"flex justify-between items-center",children:[r.jsx("p",{className:"text-xs text-gray-500",children:"添加人物时同步创建存客宝场景获客计划,配置与存客宝 API 获客一致"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(X,{variant:"outline",size:"sm",className:"border-gray-600 text-gray-400 hover:bg-gray-700/50",onClick:()=>{ja(),ul()},title:"刷新",children:r.jsx(Be,{className:"w-4 h-4"})}),r.jsxs(X,{size:"sm",className:"bg-[#38bdac] hover:bg-[#2da396] text-white",onClick:()=>{Qs(null),Bt(!0)},children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"添加"]})]})]}),r.jsx("div",{className:"max-h-[400px] overflow-y-auto",children:fn.length>0?r.jsxs("table",{className:"w-full text-sm border-collapse",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"text-xs text-gray-500 border-b border-gray-700/50",children:[r.jsx("th",{className:"text-left py-1.5 px-3 w-[280px] font-normal",children:"token"}),r.jsx("th",{className:"text-left py-1.5 px-3 w-24 font-normal",children:"@的人"}),r.jsx("th",{className:"py-1.5 px-3 w-16 font-normal text-center",children:"获客数"}),r.jsx("th",{className:"text-left py-1.5 px-3 font-normal",children:"获客计划活动名"}),r.jsx("th",{className:"text-left py-1.5 px-3 w-20 font-normal",children:"planId"}),r.jsx("th",{className:"text-left py-1.5 px-3 font-normal",children:"apiKey"}),r.jsx("th",{className:"text-left py-1.5 px-2 w-24 font-normal",children:"操作"})]})}),r.jsx("tbody",{children:fn.map(T=>r.jsxs("tr",{className:`border-b border-gray-700/30 hover:bg-[#0a1628]/80 ${qr===T.id?"bg-amber-500/5":""}`,children:[r.jsx("td",{className:"py-2 px-3 text-gray-400 text-xs font-mono",title:"32位token",children:T.id}),r.jsx("td",{className:"py-2 px-3 text-amber-400 truncate max-w-[96px]",title:"@的人",children:r.jsxs("span",{className:"inline-flex items-center gap-1",children:[T.name,qr===T.id&&r.jsx("span",{title:"已置顶(小程序首页展示)",children:r.jsx(Ii,{className:"w-3 h-3 text-amber-400 fill-amber-400 shrink-0"})})]})}),(()=>{const _=kc[T.id]||0;return r.jsx("td",{className:`py-2 px-3 shrink-0 w-16 text-center text-xs font-bold ${_>0?"text-green-400":"text-gray-600"}`,title:"获客数",children:_})})(),r.jsxs("td",{className:"py-2 px-3 text-white truncate max-w-[200px]",title:"获客计划活动名",children:["SOUL链接人与事-",T.name]}),r.jsx("td",{className:"py-2 px-3 text-gray-400 text-xs font-mono",title:"存客宝计划ID",children:T.ckbPlanId??"-"}),r.jsx("td",{className:"py-2 px-3 text-gray-400 text-xs font-mono whitespace-nowrap",children:r.jsxs("div",{className:"flex items-center gap-1.5",children:[T.ckbApiKey?r.jsx(X,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 text-gray-500 hover:text-[#38bdac] shrink-0",title:"复制 apiKey",onClick:async()=>{await navigator.clipboard.writeText(T.ckbApiKey??""),se.success("已复制到剪贴板")},children:r.jsx(y0,{className:"w-3.5 h-3.5"})}):null,r.jsx("span",{title:T.ckbApiKey??"",children:T.ckbApiKey??"-"})]})}),r.jsx("td",{className:"py-2 px-2",children:r.jsxs("div",{className:"flex items-center gap-0",children:[r.jsx(X,{variant:"ghost",size:"sm",className:`h-6 px-2 ${qr===T.id?"text-amber-400":"text-gray-400 hover:text-amber-400"}`,title:qr===T.id?"已置顶(小程序首页展示)":"设为置顶(小程序首页展示此人)",disabled:kr,onClick:()=>Sp(T.id),children:qr===T.id?r.jsx(Ii,{className:"w-3 h-3 fill-current"}):r.jsx(u1,{className:"w-3 h-3"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"text-gray-400 hover:text-[#38bdac] h-6 px-2",title:"编辑",onClick:async()=>{try{const _=await cV(T.personId||"");if(_!=null&&_.success&&_.person){const ie=_.person;Qs({id:ie.token??ie.personId,personId:ie.personId,name:ie.name,label:ie.label??"",ckbApiKey:ie.ckbApiKey??"",remarkType:ie.remarkType,remarkFormat:ie.remarkFormat,addFriendInterval:ie.addFriendInterval,startTime:ie.startTime,endTime:ie.endTime,deviceGroups:ie.deviceGroups})}else Qs(T),_!=null&&_.error&&se.error(_.error)}catch(_){console.error(_),Qs(T),se.error(_ instanceof Error?_.message:"加载人物详情失败")}Bt(!0)},children:r.jsx(cx,{className:"w-3 h-3"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"text-gray-400 hover:text-green-400 h-6 px-2",title:"查看新客户",onClick:()=>ka(T.id,T.name),children:r.jsx(zn,{className:"w-3 h-3"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"text-red-400 hover:text-red-300 h-6 px-2",title:"删除(同时删除存客宝对应获客计划)",onClick:()=>Xs(T),children:r.jsx(gs,{className:"w-3 h-3"})})]})})]},T.id))})]}):r.jsx("div",{className:"text-gray-500 text-sm py-4 text-center",children:"暂无AI人物添加后可在编辑器中 @链接"})})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"pb-3",children:[r.jsxs(Xe,{className:"text-white text-base flex items-center gap-2",children:[r.jsx(ih,{className:"w-4 h-4 text-green-400"}),"存客宝绑定"]}),r.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"配置存客宝 API 后,文章中 @人物 或 #标签 点击可自动进入存客宝流量池"})]}),r.jsxs(Te,{className:"space-y-3",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"存客宝 API 地址"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8",placeholder:"https://ckbapi.quwanzhi.com",defaultValue:"https://ckbapi.quwanzhi.com",readOnly:!0})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"绑定计划"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8",placeholder:"创业实验-内容引流",defaultValue:"创业实验-内容引流",readOnly:!0})]})]}),r.jsxs("p",{className:"text-xs text-gray-500",children:["具体存客宝场景配置与接口测试请前往"," ",r.jsx("button",{className:"text-[#38bdac] hover:underline",onClick:()=>window.open("/match","_blank"),children:"找伙伴 → 存客宝工作台"})]})]})]})]}),r.jsxs(nn,{value:"link-tag",className:"space-y-4",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"pb-3",children:[r.jsxs(Xe,{className:"text-white text-base flex items-center gap-2",children:[r.jsx(d1,{className:"w-4 h-4 text-amber-400"}),"链接标签 — 链接事与物(编辑器内 #标签 可跳转链接/小程序/存客宝)"]}),r.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"小程序端点击 #标签 可直接跳转对应链接,进入流量池"})]}),r.jsxs(Te,{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-end justify-between gap-3 flex-wrap",children:[r.jsxs("div",{className:"flex items-end gap-2 flex-wrap",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-400 text-xs",children:"搜索"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 w-48",placeholder:"按标签ID/显示文字搜索",value:Ys,onChange:T=>{jr(T.target.value),no(1)}})]}),r.jsx(X,{variant:"outline",size:"sm",className:"border-gray-600 text-gray-400 hover:bg-gray-700/50 h-8",onClick:()=>{Zr(),Tr()},title:"刷新",children:r.jsx(Be,{className:"w-4 h-4"})})]}),r.jsxs(X,{size:"sm",className:"bg-amber-500 hover:bg-amber-600 text-white h-8",onClick:()=>{Kr(null),ls({tagId:"",label:"",url:"",type:"url",appId:"",pagePath:""}),co(""),Mr(!1),_s(!0)},children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"添加标签"]})]}),r.jsxs("div",{className:"rounded-md border border-gray-700/50 overflow-hidden",children:[r.jsx("div",{className:"max-h-[420px] overflow-y-auto",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{className:"bg-[#0a1628] border-b border-gray-700/50",children:r.jsxs("tr",{children:[r.jsx("th",{className:"text-left px-3 py-2 text-gray-400 w-40",children:"标签"}),r.jsx("th",{className:"text-left px-3 py-2 text-gray-400 w-20",children:"类型"}),r.jsx("th",{className:"text-left px-3 py-2 text-gray-400",children:"目标"}),r.jsx("th",{className:"text-right px-3 py-2 text-gray-400 w-28",children:"操作"})]})}),r.jsx("tbody",{children:xa?r.jsx("tr",{children:r.jsx("td",{colSpan:4,className:"text-center py-10 text-gray-500",children:"加载中..."})}):Ss.length===0?r.jsx("tr",{children:r.jsx("td",{colSpan:4,className:"text-center py-10 text-gray-500",children:"暂无链接标签,添加后可在编辑器中使用 #标签 跳转"})}):Ss.map(T=>r.jsxs("tr",{className:"border-b border-gray-700/30 hover:bg-white/5",children:[r.jsxs("td",{className:"px-3 py-2",children:[r.jsxs("div",{className:"text-amber-400 font-semibold",children:["#",T.label]}),r.jsxs("div",{className:"text-xs text-gray-500 font-mono",children:["tagId: ",T.id]})]}),r.jsx("td",{className:"px-3 py-2",children:r.jsx(Je,{variant:"secondary",className:`text-[10px] ${T.type==="ckb"?"bg-green-500/20 text-green-300 border-green-500/30":T.type==="miniprogram"?"bg-[#38bdac]/20 text-[#38bdac] border-[#38bdac]/30":"bg-gray-700 text-gray-300"}`,children:T.type==="url"?"网页":T.type==="ckb"?"存客宝":"小程序"})}),r.jsx("td",{className:"px-3 py-2 text-gray-300",children:T.type==="miniprogram"?r.jsxs("span",{className:"text-xs font-mono",children:[T.appId||"—"," ",T.pagePath?`· ${T.pagePath}`:""]}):T.url?r.jsxs("a",{href:T.url,target:"_blank",rel:"noreferrer",className:"text-blue-400 text-xs truncate max-w-[420px] hover:underline inline-flex items-center gap-1",children:[T.url," ",r.jsx(qa,{className:"w-3 h-3 shrink-0"})]}):r.jsx("span",{className:"text-gray-500 text-xs",children:"—"})}),r.jsx("td",{className:"px-3 py-2",children:r.jsxs("div",{className:"flex items-center justify-end gap-1",children:[r.jsx(X,{variant:"ghost",size:"sm",className:"text-gray-300 hover:text-white h-7 px-2",onClick:()=>{Kr(T),ls({tagId:T.id,label:T.label,url:T.url,type:T.type,appId:T.appId??"",pagePath:T.pagePath??""}),co(T.appId??""),Mr(!1),_s(!0)},title:"编辑",children:r.jsx(cx,{className:"w-3 h-3"})}),r.jsx(X,{variant:"ghost",size:"sm",className:"text-red-400 hover:text-red-300 h-7 px-2",onClick:async()=>{if(confirm(`确定要删除「#${T.label}」吗?`))try{const _=await oa(`/api/db/link-tags?tagId=${encodeURIComponent(T.id)}`);_!=null&&_.success?(se.success("已删除"),Zr(),Tr()):se.error((_==null?void 0:_.error)??"删除失败")}catch(_){console.error(_),se.error("删除失败")}},title:"删除",children:r.jsx(gs,{className:"w-3 h-3"})})]})})]},T.id))})]})}),r.jsx(Us,{page:Nr,pageSize:wr,total:Js,totalPages:Nc,onPageChange:T=>no(T),onPageSizeChange:T=>{ya(T),no(1)}})]})]})]}),r.jsx(Lt,{open:ba,onOpenChange:_s,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-lg p-4 gap-3",children:[r.jsxs(_t,{className:"gap-1",children:[r.jsx(zt,{className:"text-base",children:va?"编辑链接标签":"添加链接标签"}),r.jsx(Pd,{className:"text-gray-400 text-xs",children:"配置后可在富文本编辑器中通过 #标签 插入,并在小程序端点击跳转"})]}),r.jsxs("div",{className:"space-y-3 py-2",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"标签ID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm font-mono",placeholder:"留空自动生成;或填 12位数字 / z开头12位",value:Ct.tagId,disabled:!!va,onChange:T=>ls(_=>({..._,tagId:T.target.value}))})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"显示文字"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm",placeholder:"如 神仙团队",value:Ct.label,onChange:T=>ls(_=>({..._,label:T.target.value}))})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3 items-end",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"类型"}),r.jsxs(Ul,{value:Ct.type,onValueChange:T=>ls(_=>({..._,type:T})),children:[r.jsx(Io,{className:"bg-[#0a1628] border-gray-700 text-white h-8",children:r.jsx(Kl,{})}),r.jsxs(Po,{children:[r.jsx(nr,{value:"url",children:"网页链接"}),r.jsx(nr,{value:"miniprogram",children:"小程序"}),r.jsx(nr,{value:"ckb",children:"存客宝"})]})]})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:Ct.type==="url"?"URL地址":Ct.type==="ckb"?"存客宝计划URL":"小程序(选密钥)"}),Ct.type==="miniprogram"&&ea.length>0?r.jsxs("div",{ref:Cc,className:"relative",children:[r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm",placeholder:"搜索名称或密钥",value:fl?lo:Ct.appId,onChange:T=>{const _=T.target.value;co(_),Mr(!0),ea.some(ie=>ie.key===_)||ls(ie=>({...ie,appId:_}))},onFocus:()=>{co(Ct.appId),Mr(!0)},onBlur:()=>setTimeout(()=>Mr(!1),150)}),fl&&r.jsx("div",{className:"absolute top-full left-0 right-0 mt-1 max-h-48 overflow-y-auto rounded-md border border-gray-700 bg-[#0a1628] shadow-lg z-50",children:Ar.length===0?r.jsx("div",{className:"px-3 py-2 text-gray-500 text-xs",children:"无匹配,可手动输入密钥"}):Ar.map(T=>r.jsxs("button",{type:"button",className:"w-full px-3 py-2 text-left text-sm text-white hover:bg-[#38bdac]/20 flex flex-col gap-0.5",onMouseDown:_=>{_.preventDefault(),ls(ie=>({...ie,appId:T.key,pagePath:T.path||""})),co(""),Mr(!1)},children:[r.jsx("span",{children:T.name}),r.jsx("span",{className:"text-xs text-gray-400 font-mono",children:T.key})]},T.key))})]}):r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm",placeholder:Ct.type==="url"?"https://...":Ct.type==="ckb"?"https://ckbapi.quwanzhi.com/...":"关联小程序的32位密钥",value:Ct.type==="url"||Ct.type==="ckb"?Ct.url:Ct.appId,onChange:T=>{Ct.type==="url"||Ct.type==="ckb"?ls(_=>({..._,url:T.target.value})):ls(_=>({..._,appId:T.target.value}))}})]})]}),Ct.type==="miniprogram"&&r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-300 text-sm",children:"页面路径(可选)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm font-mono",placeholder:"pages/index/index",value:Ct.pagePath,onChange:T=>ls(_=>({..._,pagePath:T.target.value}))})]})]}),r.jsxs(on,{className:"gap-2 pt-1",children:[r.jsx(X,{variant:"outline",onClick:()=>_s(!1),className:"border-gray-600",children:"取消"}),r.jsx(X,{onClick:async()=>{const T={tagId:Ct.tagId.trim(),label:Ct.label.trim(),url:Ct.url.trim(),type:Ct.type,appId:Ct.appId.trim(),pagePath:Ct.pagePath.trim()};if(T.tagId&&!(/^\d{12}$/.test(T.tagId)||/^z[a-z0-9]{11}$/.test(T.tagId))){se.error("标签ID需为12位数字或 z 开头的12位z+11位小写字母数字");return}if(!T.label){se.error("显示文字必填");return}T.type==="miniprogram"&&(T.url=""),il(!0);try{const _=await jt("/api/db/link-tags",T);_!=null&&_.success?(se.success(va?"已更新":"已添加"),_s(!1),Zr(),Tr()):se.error((_==null?void 0:_.error)??"保存失败")}catch(_){console.error(_),se.error("保存失败")}finally{il(!1)}},disabled:Za,className:"bg-amber-500 hover:bg-amber-600 text-white",children:Za?"保存中...":"保存"})]})]})})]}),r.jsx(nn,{value:"linkedmp",className:"space-y-4",children:r.jsx(rV,{})})]}),r.jsx(uV,{open:jc,onOpenChange:Bt,editingPerson:ol,onSubmit:async T=>{var ve;const _={personId:T.personId||T.name.toLowerCase().replace(/\s+/g,"_")+"_"+Date.now().toString(36),name:T.name,aliases:T.aliases||void 0,label:T.label,ckbApiKey:T.ckbApiKey||void 0,greeting:T.greeting||void 0,tips:T.tips||void 0,remarkType:T.remarkType||void 0,remarkFormat:T.remarkFormat||void 0,addFriendInterval:T.addFriendInterval,startTime:T.startTime||void 0,endTime:T.endTime||void 0,deviceGroups:(ve=T.deviceGroups)!=null&&ve.trim()?T.deviceGroups.split(",").map(Re=>parseInt(Re.trim(),10)).filter(Re=>!Number.isNaN(Re)):void 0},ie=await jt("/api/db/persons",_);if(ie&&ie.success===!1){const Re=ie;Re.ckbResponse&&console.log("存客宝返回",Re.ckbResponse);const De=Re.error||"操作失败";throw new Error(De)}if(ja(),se.success(ol?"已保存":"已添加"),ie!=null&&ie.ckbCreateResult&&Object.keys(ie.ckbCreateResult).length>0){const Re=ie.ckbCreateResult;console.log("存客宝创建结果",Re);const De=Re.planId??Re.id,tt=De!=null?[`planId: ${De}`]:[];Re.apiKey!=null&&tt.push("apiKey: ***"),se.info(tt.length?`存客宝创建结果:${tt.join("")}`:"存客宝创建结果见控制台")}}}),r.jsx(Lt,{open:!!Cs,onOpenChange:T=>{T||Xs(null)},children:r.jsxs(It,{showCloseButton:!0,className:"bg-[#0f2137] border-gray-700 text-white max-w-md p-4 gap-3",children:[r.jsxs(_t,{className:"gap-1",children:[r.jsx(zt,{className:"text-white text-base",children:"确认删除"}),r.jsx(Pd,{className:"text-gray-400 text-sm leading-relaxed wrap-break-word",children:Cs&&r.jsxs(r.Fragment,{children:[r.jsxs("p",{children:["确定删除「SOUL链接人与事-",Cs.name,"」?将同时删除存客宝对应获客计划。"]}),r.jsxs("p",{className:"mt-1.5",children:["二次确认:删除后无法恢复,文章中的 @",Cs.name," 将无法正常跳转。"]})]})})]}),r.jsxs(on,{className:"gap-2 sm:gap-2 pt-1",children:[r.jsx(X,{variant:"outline",size:"sm",className:"border-gray-600 text-gray-300",onClick:()=>Xs(null),children:"取消"}),r.jsx(X,{variant:"destructive",size:"sm",className:"bg-red-600 hover:bg-red-700",onClick:async()=>{Cs&&(await oa(`/api/db/persons?personId=${Cs.personId}`),Xs(null),ja(),se.success("已删除"))},children:"确定删除"})]})]})}),r.jsx(Lt,{open:Sc,onOpenChange:ll,children:r.jsxs(It,{className:"max-w-2xl bg-[#0f2137] border-gray-700",children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-green-400"}),Sr," — 获客详情(共 ",Na," 条)"]})}),r.jsx("div",{className:"max-h-[450px] overflow-y-auto space-y-2",children:Ke?r.jsxs("div",{className:"flex items-center justify-center py-8",children:[r.jsx(Be,{className:"w-5 h-5 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):Yr.length===0?r.jsx("div",{className:"text-gray-500 text-sm py-8 text-center",children:"暂无获客记录"}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid grid-cols-[60px_1fr_100px_100px_80px_120px] gap-2 px-3 py-1.5 text-xs text-gray-500 border-b border-gray-700/50",children:[r.jsx("span",{children:"#"}),r.jsx("span",{children:"昵称/姓名"}),r.jsx("span",{children:"手机"}),r.jsx("span",{children:"微信"}),r.jsx("span",{children:"来源"}),r.jsx("span",{children:"时间"})]}),Yr.map((T,_)=>r.jsxs("div",{className:"grid grid-cols-[60px_1fr_100px_100px_80px_120px] gap-2 px-3 py-2 bg-[#0a1628] rounded text-sm",children:[r.jsx("span",{className:"text-gray-500 text-xs",children:(F-1)*20+_+1}),r.jsx("span",{className:"text-white truncate",children:T.nickname||T.name||T.userId||"-"}),r.jsx("span",{className:"text-gray-300 text-xs",children:T.phone||"-"}),r.jsx("span",{className:"text-gray-300 text-xs truncate",children:T.wechatId||"-"}),r.jsx("span",{className:"text-gray-500 text-xs",children:T.source==="article_mention"?"文章@":T.source==="index_lead"?"首页":T.source||"-"}),r.jsx("span",{className:"text-gray-500 text-xs",children:T.createdAt?new Date(T.createdAt).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-"})]},T.id))]})}),Na>20&&r.jsxs("div",{className:"flex items-center justify-center gap-2 pt-2",children:[r.jsx(X,{size:"sm",variant:"outline",disabled:F<=1,onClick:()=>ka(cl,Sr,F-1),className:"border-gray-600 text-gray-300 bg-transparent h-7 px-3",children:"上一页"}),r.jsxs("span",{className:"text-gray-400 text-xs",children:[F," / ",Math.ceil(Na/20)]}),r.jsx(X,{size:"sm",variant:"outline",disabled:F>=Math.ceil(Na/20),onClick:()=>ka(cl,Sr,F+1),className:"border-gray-600 text-gray-300 bg-transparent h-7 px-3",children:"下一页"})]})]})})]})}const Ba={name:"卡若",avatar:"K",avatarImg:"",title:"Soul派对房主理人 · 私域运营专家",bio:'每天早上6点到9点在Soul派对房分享真实的创业故事。专注私域运营与项目变现用"云阿米巴"模式帮助创业者构建可持续的商业体系。',stats:[{label:"商业案例",value:"62"},{label:"连续直播",value:"365天"},{label:"派对分享",value:"1000+"}],highlights:["5年私域运营经验","帮助100+品牌从0到1增长","连续创业者,擅长商业模式设计"]};function Uw(t){return Array.isArray(t)?t.map(e=>e&&typeof e=="object"&&"label"in e&&"value"in e?{label:String(e.label),value:String(e.value)}:{label:"",value:""}).filter(e=>e.label||e.value):Ba.stats}function Kw(t){return Array.isArray(t)?t.map(e=>typeof e=="string"?e:String(e??"")).filter(Boolean):Ba.highlights}function mV(){const[t,e]=b.useState(Ba),[n,s]=b.useState(!0),[a,i]=b.useState(!1),[o,c]=b.useState(!1),u=b.useRef(null);b.useEffect(()=>{Oe("/api/admin/author-settings").then(k=>{const C=k==null?void 0:k.data;C&&typeof C=="object"&&e({name:String(C.name??Ba.name),avatar:String(C.avatar??Ba.avatar),avatarImg:String(C.avatarImg??""),title:String(C.title??Ba.title),bio:String(C.bio??Ba.bio),stats:Uw(C.stats).length?Uw(C.stats):Ba.stats,highlights:Kw(C.highlights).length?Kw(C.highlights):Ba.highlights})}).catch(console.error).finally(()=>s(!1))},[]);const h=async()=>{i(!0);try{const k={name:t.name,avatar:t.avatar||"K",avatarImg:t.avatarImg,title:t.title,bio:t.bio,stats:t.stats.filter(I=>I.label||I.value),highlights:t.highlights.filter(Boolean)},C=await jt("/api/admin/author-settings",k);if(!C||C.success===!1){se.error("保存失败: "+(C&&typeof C=="object"&&"error"in C?C.error:""));return}i(!1);const E=document.createElement("div");E.className="fixed top-4 right-4 z-50 px-4 py-2 rounded-lg bg-[#38bdac] text-white text-sm shadow-lg",E.textContent="作者设置已保存",document.body.appendChild(E),setTimeout(()=>E.remove(),2e3)}catch(k){console.error(k),se.error("保存失败: "+(k instanceof Error?k.message:String(k)))}finally{i(!1)}},f=async k=>{var E;const C=(E=k.target.files)==null?void 0:E[0];if(C){c(!0);try{const I=new FormData;I.append("file",C),I.append("folder","avatars");const L=Gf(),W={};L&&(W.Authorization=`Bearer ${L}`);const P=await(await fetch(Wo("/api/upload"),{method:"POST",body:I,credentials:"include",headers:W})).json();P!=null&&P.success&&(P!=null&&P.url)?e(R=>({...R,avatarImg:P.url})):se.error("上传失败: "+((P==null?void 0:P.error)||"未知错误"))}catch(I){console.error(I),se.error("上传失败")}finally{c(!1),u.current&&(u.current.value="")}}},m=()=>e(k=>({...k,stats:[...k.stats,{label:"",value:""}]})),g=k=>e(C=>({...C,stats:C.stats.filter((E,I)=>I!==k)})),y=(k,C,E)=>e(I=>({...I,stats:I.stats.map((L,W)=>W===k?{...L,[C]:E}:L)})),N=()=>e(k=>({...k,highlights:[...k.highlights,""]})),w=k=>e(C=>({...C,highlights:C.highlights.filter((E,I)=>I!==k)})),v=(k,C)=>e(E=>({...E,highlights:E.highlights.map((I,L)=>L===k?C:I)}));return n?r.jsx("div",{className:"p-8 text-gray-500",children:"加载中..."}):r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(zo,{className:"w-5 h-5 text-[#38bdac]"}),"作者详情"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"配置小程序「关于作者」页展示的作者信息,包括头像、简介、统计数据与亮点标签。"})]}),r.jsxs(X,{onClick:h,disabled:a||n,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),a?"保存中...":"保存"]})]}),r.jsxs("div",{className:"space-y-6",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"flex items-center gap-2 text-white",children:[r.jsx(zo,{className:"w-4 h-4 text-[#38bdac]"}),"基本信息"]}),r.jsx(Ft,{className:"text-gray-400",children:"作者姓名、头像、头衔与个人简介,将展示在「关于作者」页顶部。"})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"姓名"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:t.name,onChange:k=>e(C=>({...C,name:k.target.value})),placeholder:"卡若"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"首字母占位(无头像时显示)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white w-20",value:t.avatar,onChange:k=>e(C=>({...C,avatar:k.target.value.slice(0,1)||"K"})),placeholder:"K"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(kj,{className:"w-3 h-3 text-[#38bdac]"}),"头像图片"]}),r.jsxs("div",{className:"flex gap-3 items-center",children:[r.jsx(ae,{className:"flex-1 bg-[#0a1628] border-gray-700 text-white",value:t.avatarImg,onChange:k=>e(C=>({...C,avatarImg:k.target.value})),placeholder:"上传或粘贴 URL如 /uploads/avatars/xxx.png"}),r.jsx("input",{ref:u,type:"file",accept:"image/*",className:"hidden",onChange:f}),r.jsxs(X,{type:"button",variant:"outline",size:"sm",className:"border-gray-600 text-gray-400 shrink-0",disabled:o,onClick:()=>{var k;return(k=u.current)==null?void 0:k.click()},children:[r.jsx(Uh,{className:"w-4 h-4 mr-2"}),o?"上传中...":"上传"]})]}),t.avatarImg&&r.jsx("div",{className:"mt-2",children:r.jsx("img",{src:t.avatarImg.startsWith("http")?t.avatarImg:Wo(t.avatarImg),alt:"头像预览",className:"w-20 h-20 rounded-full object-cover border border-gray-600"})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"头衔"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:t.title,onChange:k=>e(C=>({...C,title:k.target.value})),placeholder:"Soul派对房主理人 · 私域运营专家"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"个人简介"}),r.jsx(mc,{className:"bg-[#0a1628] border-gray-700 text-white min-h-[120px]",value:t.bio,onChange:k=>e(C=>({...C,bio:k.target.value})),placeholder:"每天早上6点到9点..."})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsx(Xe,{className:"text-white",children:"统计数据"}),r.jsx(Ft,{className:"text-gray-400",children:"展示在作者卡片中的数字指标,如「商业案例 62」「连续直播 365天」。第一个「商业案例」的值可由书籍统计自动更新。"})]}),r.jsxs(Te,{className:"space-y-3",children:[t.stats.map((k,C)=>r.jsxs("div",{className:"flex gap-3 items-center",children:[r.jsx(ae,{className:"flex-1 bg-[#0a1628] border-gray-700 text-white",value:k.label,onChange:E=>y(C,"label",E.target.value),placeholder:"标签"}),r.jsx(ae,{className:"flex-1 bg-[#0a1628] border-gray-700 text-white",value:k.value,onChange:E=>y(C,"value",E.target.value),placeholder:"数值"}),r.jsx(X,{variant:"ghost",size:"icon",className:"text-gray-400 hover:text-red-400",onClick:()=>g(C),children:r.jsx(gs,{className:"w-4 h-4"})})]},C)),r.jsxs(X,{variant:"outline",size:"sm",onClick:m,className:"border-gray-600 text-gray-400",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"添加统计项"]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsx(Xe,{className:"text-white",children:"亮点标签"}),r.jsx(Ft,{className:"text-gray-400",children:"作者优势或成就的简短描述,以标签形式展示。"})]}),r.jsxs(Te,{className:"space-y-3",children:[t.highlights.map((k,C)=>r.jsxs("div",{className:"flex gap-3 items-center",children:[r.jsx(ae,{className:"flex-1 bg-[#0a1628] border-gray-700 text-white",value:k,onChange:E=>v(C,E.target.value),placeholder:"5年私域运营经验"}),r.jsx(X,{variant:"ghost",size:"icon",className:"text-gray-400 hover:text-red-400",onClick:()=>w(C),children:r.jsx(gs,{className:"w-4 h-4"})})]},C)),r.jsxs(X,{variant:"outline",size:"sm",onClick:N,className:"border-gray-600 text-gray-400",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"添加亮点"]})]})]})]})]})}function gV(){const[t,e]=b.useState([]),[n,s]=b.useState(0),[a,i]=b.useState(1),[o]=b.useState(10),[c,u]=b.useState(0),[h,f]=b.useState(""),m=O0(h,300),[g,y]=b.useState(!0),[N,w]=b.useState(null),[v,k]=b.useState(!1),[C,E]=b.useState(null),[I,L]=b.useState(""),[W,D]=b.useState(""),[P,R]=b.useState(""),[K,re]=b.useState("admin"),[ue,xe]=b.useState("active"),[H,O]=b.useState(!1);async function J(){var G;y(!0),w(null);try{const oe=new URLSearchParams({page:String(a),pageSize:String(o)});m.trim()&&oe.set("search",m.trim());const ye=await Oe(`/api/admin/users?${oe}`);ye!=null&&ye.success?(e(ye.records||[]),s(ye.total??0),u(ye.totalPages??0)):w(ye.error||"加载失败")}catch(oe){const ye=oe;w(ye.status===403?"无权限访问":((G=ye==null?void 0:ye.data)==null?void 0:G.error)||"加载失败"),e([])}finally{y(!1)}}b.useEffect(()=>{J()},[a,o,m]);const $=()=>{E(null),L(""),D(""),R(""),re("admin"),xe("active"),k(!0)},M=G=>{E(G),L(G.username),D(""),R(G.name||""),re(G.role==="super_admin"?"super_admin":"admin"),xe(G.status==="disabled"?"disabled":"active"),k(!0)},q=async()=>{var G;if(!I.trim()){w("用户名不能为空");return}if(!C&&!W){w("新建时密码必填,至少 6 位");return}if(W&&W.length<6){w("密码至少 6 位");return}w(null),O(!0);try{if(C){const oe=await Pt("/api/admin/users",{id:C.id,password:W||void 0,name:P.trim(),role:K,status:ue});oe!=null&&oe.success?(k(!1),J()):w((oe==null?void 0:oe.error)||"保存失败")}else{const oe=await jt("/api/admin/users",{username:I.trim(),password:W,name:P.trim(),role:K});oe!=null&&oe.success?(k(!1),J()):w((oe==null?void 0:oe.error)||"保存失败")}}catch(oe){const ye=oe;w(((G=ye==null?void 0:ye.data)==null?void 0:G.error)||"保存失败")}finally{O(!1)}},B=async G=>{var oe;if(confirm("确定删除该管理员?"))try{const ye=await oa(`/api/admin/users?id=${G}`);ye!=null&&ye.success?J():w((ye==null?void 0:ye.error)||"删除失败")}catch(ye){const Ae=ye;w(((oe=Ae==null?void 0:Ae.data)==null?void 0:oe.error)||"删除失败")}},z=G=>{if(!G)return"-";try{const oe=new Date(G);return isNaN(oe.getTime())?G:oe.toLocaleString("zh-CN")}catch{return G}};return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-6",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(pd,{className:"w-5 h-5 text-[#38bdac]"}),"管理员用户"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"后台登录账号管理,仅超级管理员可操作"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ae,{placeholder:"搜索用户名/昵称",value:h,onChange:G=>f(G.target.value),className:"w-48 bg-[#0f2137] border-gray-700 text-white placeholder:text-gray-500"}),r.jsx(X,{variant:"outline",size:"sm",onClick:J,disabled:g,className:"border-gray-600 text-gray-300",children:r.jsx(Be,{className:`w-4 h-4 ${g?"animate-spin":""}`})}),r.jsxs(X,{onClick:$,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"新增管理员"]})]})]}),N&&r.jsxs("div",{className:"mb-4 p-3 rounded-lg bg-red-500/10 border border-red-500/20 text-red-400 text-sm flex justify-between items-center",children:[r.jsx("span",{children:N}),r.jsx("button",{type:"button",onClick:()=>w(null),className:"text-red-400 hover:text-red-300",children:"×"})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-0",children:g?r.jsx("div",{className:"py-12 text-center text-gray-400",children:"加载中..."}):r.jsxs(r.Fragment,{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"ID"}),r.jsx(we,{className:"text-gray-400",children:"用户名"}),r.jsx(we,{className:"text-gray-400",children:"昵称"}),r.jsx(we,{className:"text-gray-400",children:"角色"}),r.jsx(we,{className:"text-gray-400",children:"状态"}),r.jsx(we,{className:"text-gray-400",children:"创建时间"}),r.jsx(we,{className:"text-right text-gray-400",children:"操作"})]})}),r.jsxs(rs,{children:[t.map(G=>r.jsxs(ut,{className:"border-gray-700/50",children:[r.jsx(be,{className:"text-gray-300",children:G.id}),r.jsx(be,{className:"text-white font-medium",children:G.username}),r.jsx(be,{className:"text-gray-400",children:G.name||"-"}),r.jsx(be,{children:r.jsx(Je,{variant:"outline",className:G.role==="super_admin"?"border-amber-500/50 text-amber-400":"border-gray-600 text-gray-400",children:G.role==="super_admin"?"超级管理员":"管理员"})}),r.jsx(be,{children:r.jsx(Je,{variant:"outline",className:G.status==="active"?"border-[#38bdac]/50 text-[#38bdac]":"border-gray-500 text-gray-500",children:G.status==="active"?"正常":"已禁用"})}),r.jsx(be,{className:"text-gray-500 text-sm",children:z(G.createdAt)}),r.jsxs(be,{className:"text-right",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>M(G),className:"text-gray-400 hover:text-[#38bdac]",children:r.jsx(Jt,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>B(G.id),className:"text-gray-400 hover:text-red-400",children:r.jsx(Xn,{className:"w-4 h-4"})})]})]},G.id)),t.length===0&&!g&&r.jsx(ut,{children:r.jsx(be,{colSpan:7,className:"text-center py-12 text-gray-500",children:N==="无权限访问"?"仅超级管理员可查看":"暂无管理员"})})]})]}),c>1&&r.jsx("div",{className:"p-4 border-t border-gray-700/50",children:r.jsx(Us,{page:a,pageSize:o,total:n,totalPages:c,onPageChange:i})})]})})}),r.jsx(Lt,{open:v,onOpenChange:k,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-sm",children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:C?"编辑管理员":"新增管理员"})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"用户名"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"登录用户名",value:I,onChange:G=>L(G.target.value),disabled:!!C}),C&&r.jsx("p",{className:"text-xs text-gray-500",children:"用户名不可修改"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:C?"新密码(留空不改)":"密码"}),r.jsx(ae,{type:"password",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:C?"留空表示不修改":"至少 6 位",value:W,onChange:G=>D(G.target.value)})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"昵称"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"显示名称",value:P,onChange:G=>R(G.target.value)})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"角色"}),r.jsxs("select",{value:K,onChange:G=>re(G.target.value),className:"w-full h-10 px-3 rounded-md bg-[#0a1628] border border-gray-700 text-white",children:[r.jsx("option",{value:"admin",children:"管理员"}),r.jsx("option",{value:"super_admin",children:"超级管理员"})]})]}),C&&r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"状态"}),r.jsxs("select",{value:ue,onChange:G=>xe(G.target.value),className:"w-full h-10 px-3 rounded-md bg-[#0a1628] border border-gray-700 text-white",children:[r.jsx("option",{value:"active",children:"正常"}),r.jsx("option",{value:"disabled",children:"禁用"})]})]})]}),r.jsxs(on,{children:[r.jsxs(X,{variant:"outline",onClick:()=>k(!1),className:"border-gray-600 text-gray-300",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsxs(X,{onClick:q,disabled:H,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),H?"保存中...":"保存"]})]})]})})]})}function En({method:t,url:e,desc:n,headers:s,body:a,response:i}){const o=t==="GET"?"text-emerald-400":t==="POST"?"text-amber-400":t==="PUT"?"text-blue-400":t==="DELETE"?"text-rose-400":"text-gray-400";return r.jsxs("div",{className:"rounded-lg bg-[#0a1628]/60 border border-gray-700/50 p-4 space-y-3",children:[r.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[r.jsx("span",{className:`font-mono font-semibold ${o}`,children:t}),r.jsx("code",{className:"text-sm text-[#38bdac] break-all",children:e})]}),n&&r.jsx("p",{className:"text-gray-400 text-sm",children:n}),s&&s.length>0&&r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"Headers"}),r.jsx("pre",{className:"text-xs text-gray-300 font-mono overflow-x-auto p-2 rounded bg-black/30",children:s.join(`
`)})]}),a&&r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"Request Body (JSON)"}),r.jsx("pre",{className:"text-xs text-green-400/90 font-mono overflow-x-auto p-2 rounded bg-black/30 whitespace-pre-wrap",children:a})]}),i&&r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-500 text-xs mb-1",children:"Response Example"}),r.jsx("pre",{className:"text-xs text-amber-200/80 font-mono overflow-x-auto p-2 rounded bg-black/30 whitespace-pre-wrap",children:i})]})]})}function c3(){const t=["Authorization: Bearer {token}","Content-Type: application/json"];return r.jsxs("div",{className:"p-8 w-full bg-[#0a1628] text-white",children:[r.jsxs("div",{className:"mb-8",children:[r.jsx("h1",{className:"text-2xl font-bold text-white",children:"API 接口文档"}),r.jsx("p",{className:"text-gray-400 mt-1",children:"内容管理相关接口 · RESTful · 基础路径 /api · 管理端需 Bearer Token"})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Sj,{className:"w-5 h-5 text-[#38bdac]"}),"1. Authentication"]})}),r.jsx(Te,{className:"space-y-4",children:r.jsx(En,{method:"POST",url:"/api/admin",desc:"登录,返回 JWT token",headers:["Content-Type: application/json"],body:`{
"username": "admin",
"password": "your_password"
}`,response:`{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_at": "2026-03-16T12:00:00Z"
}`})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(ir,{className:"w-5 h-5 text-[#38bdac]"}),"2. 章节管理 (Chapters)"]})}),r.jsxs(Te,{className:"space-y-4",children:[r.jsx(En,{method:"GET",url:"/api/db/book?action=chapters",desc:"获取章节树",headers:t,response:`{
"success": true,
"data": [
{ "id": "part-1", "title": "第一篇", "children": [...] },
{ "id": "section-1", "title": "第1节", "price": 1.0, "isFree": false }
]
}`}),r.jsx(En,{method:"GET",url:"/api/db/book?action=section&id={id}",desc:"获取单篇内容",headers:t,response:`{
"success": true,
"data": {
"id": "section-1",
"title": "标题",
"content": "正文...",
"price": 1.0,
"isFree": false,
"partId": "part-1",
"chapterId": "ch-1"
}
}`}),r.jsx(En,{method:"POST",url:"/api/db/book",desc:"新建章节 (action=create-section)",headers:t,body:`{
"action": "create-section",
"title": "新章节标题",
"content": "正文内容",
"price": 0,
"isFree": true,
"partId": "part-1",
"chapterId": "ch-1",
"partTitle": "第一篇",
"chapterTitle": "第1章"
}`,response:`{
"success": true,
"data": { "id": "section-new-id", "title": "新章节标题", ... }
}`}),r.jsx(En,{method:"POST",url:"/api/db/book",desc:"更新章节内容 (action=update-section)",headers:t,body:`{
"action": "update-section",
"id": "section-1",
"title": "更新后的标题",
"content": "更新后的正文",
"price": 1.0,
"isFree": false
}`,response:`{
"success": true,
"data": { "id": "section-1", "title": "更新后的标题", ... }
}`}),r.jsx(En,{method:"POST",url:"/api/db/book",desc:"删除章节 (action=delete-section)",headers:t,body:`{
"action": "delete-section",
"id": "section-1"
}`,response:`{
"success": true,
"message": "已删除"
}`}),r.jsx(En,{method:"POST",url:"/api/admin/content/upload",desc:"上传图片(管理端)",headers:t,body:"FormData: file (binary)",response:`{
"success": true,
"url": "/uploads/images/xxx.jpg",
"data": { "url", "fileName", "size", "type" }
}`})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(zo,{className:"w-5 h-5 text-[#38bdac]"}),"3. 人物管理 (@Mentions)"]})}),r.jsxs(Te,{className:"space-y-4",children:[r.jsx(En,{method:"GET",url:"/api/db/persons",desc:"人物列表",headers:t,response:`{
"success": true,
"data": [
{ "personId": "p1", "label": "张三", "aliases": ["老张"], ... }
]
}`}),r.jsx(En,{method:"GET",url:"/api/db/person?personId={id}",desc:"人物详情",headers:t,response:`{
"success": true,
"data": {
"personId": "p1",
"label": "张三",
"aliases": ["老张"],
"description": "..."
}
}`}),r.jsx(En,{method:"POST",url:"/api/db/persons",desc:"新增/更新人物(含 aliases 字段)",headers:t,body:`{
"personId": "p1",
"label": "张三",
"aliases": ["老张", "张三丰"],
"description": "可选描述"
}`,response:`{
"success": true,
"data": { "personId": "p1", "label": "张三", ... }
}`}),r.jsx(En,{method:"DELETE",url:"/api/db/persons?personId={id}",desc:"删除人物",headers:t,response:`{
"success": true,
"message": "已删除"
}`})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(md,{className:"w-5 h-5 text-[#38bdac]"}),"4. 链接标签 (#LinkTags)"]})}),r.jsxs(Te,{className:"space-y-4",children:[r.jsx(En,{method:"GET",url:"/api/db/link-tags",desc:"标签列表",headers:t,response:`{
"success": true,
"data": [
{ "tagId": "t1", "label": "官网", "aliases": [], "type": "url", "url": "https://..." }
]
}`}),r.jsx(En,{method:"POST",url:"/api/db/link-tags",desc:"新增/更新标签(含 aliases, type: url/miniprogram/ckb",headers:t,body:`{
"tagId": "t1",
"label": "官网",
"aliases": ["官方网站"],
"type": "url",
"url": "https://example.com"
}
// type 可选: url | miniprogram | ckb`,response:`{
"success": true,
"data": { "tagId": "t1", "label": "官网", "type": "url", ... }
}`}),r.jsx(En,{method:"DELETE",url:"/api/db/link-tags?tagId={id}",desc:"删除标签",headers:t,response:`{
"success": true,
"message": "已删除"
}`})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(ca,{className:"w-5 h-5 text-[#38bdac]"}),"5. 内容搜索"]})}),r.jsx(Te,{className:"space-y-4",children:r.jsx(En,{method:"GET",url:"/api/search?q={keyword}",desc:"搜索(标题优先 3 条 + 内容匹配)",headers:t,response:`{
"success": true,
"data": {
"titleMatches": [{ "id": "s1", "title": "...", "snippet": "..." }],
"contentMatches": [{ "id": "s2", "title": "...", "snippet": "..." }]
}
}`})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(ux,{className:"w-5 h-5 text-[#38bdac]"}),"6. 内容排行"]})}),r.jsx(Te,{className:"space-y-4",children:r.jsx(En,{method:"GET",url:"/api/db/book?action=ranking",desc:"排行榜数据",headers:t,response:`{
"success": true,
"data": [
{ "id": "s1", "title": "...", "clickCount": 100, "payCount": 50, "hotScore": 120, "hotRank": 1 }
]
}`})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{className:"pb-3",children:r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Bi,{className:"w-5 h-5 text-[#38bdac]"}),"7. 小程序接口"]})}),r.jsxs(Te,{className:"space-y-4",children:[r.jsx(En,{method:"GET",url:"/api/miniprogram/book/all-chapters",desc:"全部章节(小程序用)",headers:["Content-Type: application/json"],response:`{
"success": true,
"data": [ { "id": "s1", "title": "...", "price": 1.0, "isFree": false }, ... ]
}`}),r.jsx(En,{method:"GET",url:"/api/miniprogram/balance?userId={id}",desc:"查余额",headers:["Content-Type: application/json"],response:`{
"success": true,
"data": { "balance": 100.50, "userId": "xxx" }
}`}),r.jsx(En,{method:"POST",url:"/api/miniprogram/balance/gift",desc:"代付",headers:["Content-Type: application/json"],body:`{
"userId": "xxx",
"amount": 10.00,
"remark": "可选备注"
}`,response:`{
"success": true,
"data": { "balance": 110.50 }
}`}),r.jsx(En,{method:"POST",url:"/api/miniprogram/balance/gift/redeem",desc:"领取代付",headers:["Content-Type: application/json"],body:`{
"code": "GIFT_XXXX"
}`,response:`{
"success": true,
"data": { "amount": 10.00, "balance": 120.50 }
}`})]})]}),r.jsx("p",{className:"text-gray-500 text-xs mt-6",children:"管理端仅使用 /api/admin/*、/api/db/*;小程序使用 /api/miniprogram/*。完整实现见 soul-api 源码。"})]})}const xV={appId:"wxb8bbb2b10dec74aa",withdrawSubscribeTmplId:"u3MbZGPRkrZIk-I7QdpwzFxnO_CeQPaCWF2FkiIablE",mchId:"1318592501",minWithdraw:10},yV={name:"卡若",startDate:"2025年10月15日",bio:"连续创业者,私域运营专家,每天早上6-9点在Soul派对房分享真实商业故事",liveTime:"06:00-09:00",platform:"Soul派对房",description:"连续创业者,私域运营专家"},bV={sectionPrice:1,baseBookPrice:9.9,distributorShare:90,authorInfo:{...yV},ckbLeadApiKey:""},vV={matchEnabled:!0,referralEnabled:!0,searchEnabled:!0,aboutEnabled:!0},NV=["system","author","admin","api-docs"];function wV(){const[t,e]=mj(),n=t.get("tab")??"system",s=NV.includes(n)?n:"system",[a,i]=b.useState(bV),[o,c]=b.useState(vV),[u,h]=b.useState(xV),[f,m]=b.useState({}),[g,y]=b.useState(!1),[N,w]=b.useState(!0),[v,k]=b.useState(!1),[C,E]=b.useState(""),[I,L]=b.useState(""),[W,D]=b.useState(!1),[P,R]=b.useState(!1),K=(M,q,B=!1)=>{E(M),L(q),D(B),k(!0)};b.useEffect(()=>{(async()=>{try{const q=await Oe("/api/admin/settings");if(!q||q.success===!1)return;if(q.featureConfig&&Object.keys(q.featureConfig).length&&c(B=>({...B,...q.featureConfig})),q.mpConfig&&typeof q.mpConfig=="object"&&h(B=>({...B,...q.mpConfig})),q.ossConfig&&typeof q.ossConfig=="object"&&m(B=>({...B,...q.ossConfig})),q.siteSettings&&typeof q.siteSettings=="object"){const B=q.siteSettings;i(z=>({...z,...typeof B.sectionPrice=="number"&&{sectionPrice:B.sectionPrice},...typeof B.baseBookPrice=="number"&&{baseBookPrice:B.baseBookPrice},...typeof B.distributorShare=="number"&&{distributorShare:B.distributorShare},...B.authorInfo&&typeof B.authorInfo=="object"&&{authorInfo:{...z.authorInfo,...B.authorInfo}},...typeof B.ckbLeadApiKey=="string"&&{ckbLeadApiKey:B.ckbLeadApiKey}}))}}catch(q){console.error("Load settings error:",q)}finally{w(!1)}})()},[]);const re=async(M,q)=>{R(!0);try{const B=await jt("/api/admin/settings",{featureConfig:M});if(!B||B.success===!1){q(),K("保存失败",(B==null?void 0:B.error)??"未知错误",!0);return}K("已保存","功能开关已更新,相关入口将随之显示或隐藏。")}catch(B){console.error("Save feature config error:",B),q(),K("保存失败",B instanceof Error?B.message:String(B),!0)}finally{R(!1)}},ue=(M,q)=>{const B=o,z={...B,[M]:q};c(z),re(z,()=>c(B))},[xe,H]=b.useState(!1),O=async M=>{const q=u,B={...q,auditMode:M};h(B),H(!0);try{const z=await jt("/api/admin/settings",{mpConfig:B});if(!z||z.success===!1){h(q),K("保存失败",(z==null?void 0:z.error)??"未知错误",!0);return}K("已保存",M?"审核模式已开启,小程序将隐藏所有支付入口。":"审核模式已关闭,支付功能已恢复。")}catch(z){h(q),K("保存失败",z instanceof Error?z.message:String(z),!0)}finally{H(!1)}},J=async()=>{y(!0);try{const M=await jt("/api/admin/settings",{featureConfig:o,siteSettings:{sectionPrice:a.sectionPrice,baseBookPrice:a.baseBookPrice,distributorShare:a.distributorShare,authorInfo:a.authorInfo,ckbLeadApiKey:a.ckbLeadApiKey||void 0},mpConfig:{...u,appId:u.appId||"",withdrawSubscribeTmplId:u.withdrawSubscribeTmplId||"",mchId:u.mchId||"",minWithdraw:typeof u.minWithdraw=="number"?u.minWithdraw:10,auditMode:u.auditMode??!1},ossConfig:Object.keys(f).length?{endpoint:f.endpoint??"",bucket:f.bucket??"",region:f.region??"",accessKeyId:f.accessKeyId??"",accessKeySecret:f.accessKeySecret??""}:void 0});if(!M||M.success===!1){K("保存失败",(M==null?void 0:M.error)??"未知错误",!0);return}K("已保存","设置已保存成功。")}catch(M){console.error("Save settings error:",M),K("保存失败",M instanceof Error?M.message:String(M),!0)}finally{y(!1)}},$=M=>{e(M==="system"?{}:{tab:M})};return N?r.jsx("div",{className:"p-8 text-gray-500",children:"加载中..."}):r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-6",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"系统设置"}),r.jsx("p",{className:"text-gray-400 mt-1",children:"配置全站基础参数与开关"})]}),s==="system"&&r.jsxs(X,{onClick:J,disabled:g,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),g?"保存中...":"保存设置"]})]}),r.jsxs(Yd,{value:s,onValueChange:$,className:"w-full",children:[r.jsxs(pc,{className:"mb-6 bg-[#0f2137] border border-gray-700/50 p-1",children:[r.jsxs(tn,{value:"system",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400 data-[state=active]:font-medium",children:[r.jsx(_o,{className:"w-4 h-4 mr-2"}),"系统设置"]}),r.jsxs(tn,{value:"author",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400 data-[state=active]:font-medium",children:[r.jsx(sg,{className:"w-4 h-4 mr-2"}),"作者详情"]}),r.jsxs(tn,{value:"admin",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400 data-[state=active]:font-medium",children:[r.jsx(pd,{className:"w-4 h-4 mr-2"}),"管理员"]}),r.jsxs(tn,{value:"api-docs",className:"data-[state=active]:bg-[#38bdac]/20 data-[state=active]:text-[#38bdac] text-gray-400 data-[state=active]:font-medium",children:[r.jsx(Nj,{className:"w-4 h-4 mr-2"}),"API 文档"]})]}),r.jsx(nn,{value:"system",className:"mt-0",children:r.jsxs("div",{className:"space-y-6",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(sg,{className:"w-5 h-5 text-[#38bdac]"}),"关于作者"]}),r.jsx(Ft,{className:"text-gray-400",children:'配置作者信息,将在"关于作者"页面显示'})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{htmlFor:"author-name",className:"text-gray-300 flex items-center gap-1",children:[r.jsx(sg,{className:"w-3 h-3"}),"主理人名称"]}),r.jsx(ae,{id:"author-name",className:"bg-[#0a1628] border-gray-700 text-white",value:a.authorInfo.name??"",onChange:M=>i(q=>({...q,authorInfo:{...q.authorInfo,name:M.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{htmlFor:"start-date",className:"text-gray-300 flex items-center gap-1",children:[r.jsx(Hh,{className:"w-3 h-3"}),"开播日期"]}),r.jsx(ae,{id:"start-date",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"例如: 2025年10月15日",value:a.authorInfo.startDate??"",onChange:M=>i(q=>({...q,authorInfo:{...q.authorInfo,startDate:M.target.value}}))})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{htmlFor:"live-time",className:"text-gray-300 flex items-center gap-1",children:[r.jsx(Hh,{className:"w-3 h-3"}),"直播时间"]}),r.jsx(ae,{id:"live-time",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"例如: 06:00-09:00",value:a.authorInfo.liveTime??"",onChange:M=>i(q=>({...q,authorInfo:{...q.authorInfo,liveTime:M.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{htmlFor:"platform",className:"text-gray-300 flex items-center gap-1",children:[r.jsx(Cj,{className:"w-3 h-3"}),"直播平台"]}),r.jsx(ae,{id:"platform",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"例如: Soul派对房",value:a.authorInfo.platform??"",onChange:M=>i(q=>({...q,authorInfo:{...q.authorInfo,platform:M.target.value}}))})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{htmlFor:"description",className:"text-gray-300 flex items-center gap-1",children:[r.jsx(ir,{className:"w-3 h-3"}),"简介描述"]}),r.jsx(ae,{id:"description",className:"bg-[#0a1628] border-gray-700 text-white",value:a.authorInfo.description??"",onChange:M=>i(q=>({...q,authorInfo:{...q.authorInfo,description:M.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{htmlFor:"bio",className:"text-gray-300",children:"详细介绍"}),r.jsx(mc,{id:"bio",className:"bg-[#0a1628] border-gray-700 text-white min-h-[100px]",placeholder:"输入作者详细介绍...",value:a.authorInfo.bio??"",onChange:M=>i(q=>({...q,authorInfo:{...q.authorInfo,bio:M.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{htmlFor:"ckb-lead-api-key",className:"text-gray-300 flex items-center gap-1",children:[r.jsx($r,{className:"w-3 h-3"}),"链接卡若存客宝密钥"]}),r.jsx(ae,{id:"ckb-lead-api-key",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如 xxxxx-xxxxx-xxxxx-xxxxx留空则用 .env 默认)",value:a.ckbLeadApiKey??"",onChange:M=>i(q=>({...q,ckbLeadApiKey:M.target.value}))}),r.jsx("p",{className:"text-xs text-gray-500",children:"小程序首页「链接卡若」留资接口使用的存客宝 API Key优先于 .env 配置"})]}),r.jsxs("div",{className:"mt-4 p-4 rounded-xl bg-[#0a1628] border border-[#38bdac]/30",children:[r.jsx("p",{className:"text-xs text-gray-500 mb-2",children:"预览效果"}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"w-12 h-12 rounded-full bg-gradient-to-br from-[#00CED1] to-[#20B2AA] flex items-center justify-center text-xl font-bold text-white",children:(a.authorInfo.name??"K").charAt(0)}),r.jsxs("div",{children:[r.jsx("p",{className:"text-white font-semibold",children:a.authorInfo.name}),r.jsx("p",{className:"text-gray-400 text-xs",children:a.authorInfo.description}),r.jsxs("p",{className:"text-[#38bdac] text-xs mt-1",children:["每日 ",a.authorInfo.liveTime," · ",a.authorInfo.platform]})]})]})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Wh,{className:"w-5 h-5 text-[#38bdac]"}),"价格设置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置书籍和章节的定价"})]}),r.jsx(Te,{className:"space-y-4",children:r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"单节价格 (元)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:a.sectionPrice,onChange:M=>i(q=>({...q,sectionPrice:Number.parseFloat(M.target.value)||1}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"整本价格 (元)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:a.baseBookPrice,onChange:M=>i(q=>({...q,baseBookPrice:Number.parseFloat(M.target.value)||9.9}))})]})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Bi,{className:"w-5 h-5 text-[#38bdac]"}),"小程序配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"订阅消息模板、支付商户号等,小程序从 /api/miniprogram/config 读取API 地址由 app.js baseUrl 控制)"})]}),r.jsx(Te,{className:"space-y-4",children:r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"小程序 AppID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"wxb8bbb2b10dec74aa",value:u.appId??"",onChange:M=>h(q=>({...q,appId:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"提现订阅模板 ID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"用户申请提现时需授权",value:u.withdrawSubscribeTmplId??"",onChange:M=>h(q=>({...q,withdrawSubscribeTmplId:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"微信支付商户号"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"1318592501",value:u.mchId??"",onChange:M=>h(q=>({...q,mchId:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"最低提现金额 (元)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:u.minWithdraw??10,onChange:M=>h(q=>({...q,minWithdraw:Number.parseFloat(M.target.value)||10}))})]})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(lM,{className:"w-5 h-5 text-[#38bdac]"}),"OSS 配置(阿里云对象存储)"]}),r.jsx(Ft,{className:"text-gray-400",children:"endpoint、bucket、accessKey 等,用于图片/文件上传"})]}),r.jsx(Te,{className:"space-y-4",children:r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"Endpoint"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"oss-cn-hangzhou.aliyuncs.com",value:f.endpoint??"",onChange:M=>m(q=>({...q,endpoint:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"Bucket"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"bucket 名称",value:f.bucket??"",onChange:M=>m(q=>({...q,bucket:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"Region"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"oss-cn-hangzhou",value:f.region??"",onChange:M=>m(q=>({...q,region:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"AccessKey ID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"AccessKey ID",value:f.accessKeyId??"",onChange:M=>m(q=>({...q,accessKeyId:M.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"AccessKey Secret"}),r.jsx(ae,{type:"password",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"AccessKey Secret",value:f.accessKeySecret??"",onChange:M=>m(q=>({...q,accessKeySecret:M.target.value}))})]})]})})]}),r.jsxs(Ee,{className:`bg-[#0f2137] shadow-xl ${u.auditMode?"border-amber-500/50 border-2":"border-gray-700/50"}`,children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(pd,{className:"w-5 h-5 text-amber-400"}),"小程序审核模式"]}),r.jsx(Ft,{className:"text-gray-400",children:"提交微信审核前开启,审核通过后关闭即可恢复支付功能"})]}),r.jsx(Te,{children:r.jsxs("div",{className:`flex items-center justify-between p-4 rounded-lg border ${u.auditMode?"bg-amber-500/10 border-amber-500/30":"bg-[#0a1628] border-gray-700/50"}`,children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(pd,{className:`w-4 h-4 ${u.auditMode?"text-amber-400":"text-gray-400"}`}),r.jsx(Z,{htmlFor:"audit-mode",className:"text-white font-medium cursor-pointer",children:u.auditMode?"审核模式(已开启)":"审核模式(已关闭)"})]}),r.jsx("p",{className:"text-xs text-gray-400 ml-6",children:u.auditMode?"当前已隐藏所有支付、VIP、充值、收益等入口审核员看不到任何付费内容":"关闭状态小程序正常显示所有功能含支付、VIP 等)"})]}),r.jsx(Et,{id:"audit-mode",checked:u.auditMode??!1,disabled:xe,onCheckedChange:O})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(_o,{className:"w-5 h-5 text-[#38bdac]"}),"功能开关"]}),r.jsx(Ft,{className:"text-gray-400",children:"控制各个功能模块的显示/隐藏"})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg bg-[#0a1628] border border-gray-700/50",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(zn,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx(Z,{htmlFor:"match-enabled",className:"text-white font-medium cursor-pointer",children:"找伙伴功能"})]}),r.jsx("p",{className:"text-xs text-gray-400 ml-6",children:"控制小程序和Web端的找伙伴功能显示"})]}),r.jsx(Et,{id:"match-enabled",checked:o.matchEnabled,disabled:P,onCheckedChange:M=>ue("matchEnabled",M)})]}),r.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg bg-[#0a1628] border border-gray-700/50",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(jj,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx(Z,{htmlFor:"referral-enabled",className:"text-white font-medium cursor-pointer",children:"推广功能"})]}),r.jsx("p",{className:"text-xs text-gray-400 ml-6",children:"控制推广中心的显示(我的页面入口)"})]}),r.jsx(Et,{id:"referral-enabled",checked:o.referralEnabled,disabled:P,onCheckedChange:M=>ue("referralEnabled",M)})]}),r.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg bg-[#0a1628] border border-gray-700/50",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ir,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx(Z,{htmlFor:"search-enabled",className:"text-white font-medium cursor-pointer",children:"搜索功能"})]}),r.jsx("p",{className:"text-xs text-gray-400 ml-6",children:"控制首页、目录页搜索栏的显示"})]}),r.jsx(Et,{id:"search-enabled",checked:o.searchEnabled,disabled:P,onCheckedChange:M=>ue("searchEnabled",M)})]}),r.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg bg-[#0a1628] border border-gray-700/50",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(_o,{className:"w-4 h-4 text-[#38bdac]"}),r.jsx(Z,{htmlFor:"about-enabled",className:"text-white font-medium cursor-pointer",children:"关于页面"})]}),r.jsx("p",{className:"text-xs text-gray-400 ml-6",children:"控制关于页面的访问"})]}),r.jsx(Et,{id:"about-enabled",checked:o.aboutEnabled,disabled:P,onCheckedChange:M=>ue("aboutEnabled",M)})]})]}),r.jsx("div",{className:"p-3 rounded-lg bg-blue-500/10 border border-blue-500/30",children:r.jsx("p",{className:"text-xs text-blue-300",children:"💡 关闭功能后,相关入口会自动隐藏。建议在功能开发完成后再开启。"})})]})]})]})}),r.jsx(nn,{value:"author",className:"mt-0",children:r.jsx(mV,{})}),r.jsx(nn,{value:"admin",className:"mt-0",children:r.jsx(gV,{})}),r.jsx(nn,{value:"api-docs",className:"mt-0",children:r.jsx(c3,{})})]}),r.jsx(Lt,{open:v,onOpenChange:k,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white",showCloseButton:!0,children:[r.jsxs(_t,{children:[r.jsx(zt,{className:W?"text-red-400":"text-[#38bdac]",children:C}),r.jsx(Pd,{className:"text-gray-400 whitespace-pre-wrap pt-2",children:I})]}),r.jsx(on,{className:"mt-4",children:r.jsx(X,{onClick:()=>k(!1),className:W?"bg-gray-600 hover:bg-gray-500":"bg-[#38bdac] hover:bg-[#2da396]",children:"确定"})})]})})]})}const qw={wechat:{enabled:!0,qrCode:"/images/wechat-pay.png",account:"卡若",websiteAppId:"",merchantId:"",groupQrCode:"/images/party-group-qr.png"},alipay:{enabled:!0,qrCode:"/images/alipay.png",account:"卡若",partnerId:"",securityKey:""},usdt:{enabled:!1,network:"TRC20",address:"",exchangeRate:7.2},paypal:{enabled:!1,email:"",exchangeRate:7.2}};function jV(){const[t,e]=b.useState(!1),[n,s]=b.useState(qw),[a,i]=b.useState(""),o=async()=>{e(!0);try{const k=await Oe("/api/config");k!=null&&k.paymentMethods&&s({...qw,...k.paymentMethods})}catch(k){console.error(k)}finally{e(!1)}};b.useEffect(()=>{o()},[]);const c=async()=>{e(!0);try{await jt("/api/db/config",{key:"payment_methods",value:n,description:"支付方式配置"}),se.success("配置已保存!")}catch(k){console.error("保存失败:",k),se.error("保存失败: "+(k instanceof Error?k.message:String(k)))}finally{e(!1)}},u=(k,C)=>{navigator.clipboard.writeText(k),i(C),setTimeout(()=>i(""),2e3)},h=(k,C)=>{s(E=>({...E,wechat:{...E.wechat,[k]:C}}))},f=(k,C)=>{s(E=>({...E,alipay:{...E.alipay,[k]:C}}))},m=(k,C)=>{s(E=>({...E,usdt:{...E.usdt,[k]:C}}))},g=(k,C)=>{s(E=>({...E,paypal:{...E.paypal,[k]:C}}))},y=n.wechat,N=n.alipay,w=n.usdt,v=n.paypal;return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-bold mb-2 text-white",children:"支付配置"}),r.jsx("p",{className:"text-gray-400",children:"配置微信、支付宝、USDT、PayPal等支付参数"})]}),r.jsxs("div",{className:"flex gap-3",children:[r.jsxs(X,{variant:"outline",onClick:o,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${t?"animate-spin":""}`}),"同步配置"]}),r.jsxs(X,{onClick:c,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),"保存配置"]})]})]}),r.jsx("div",{className:"mb-6 bg-[#07C160]/10 border border-[#07C160]/30 rounded-xl p-4",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(bj,{className:"w-5 h-5 text-[#07C160] flex-shrink-0 mt-0.5"}),r.jsxs("div",{className:"text-sm",children:[r.jsx("p",{className:"font-medium mb-2 text-[#07C160]",children:"如何获取微信群跳转链接?"}),r.jsxs("ol",{className:"text-[#07C160]/80 space-y-1 list-decimal list-inside",children:[r.jsx("li",{children:"打开微信,进入目标微信群"}),r.jsx("li",{children:'点击右上角"..." → "群二维码"'}),r.jsx("li",{children:'点击右上角"..." → "发送到电脑"'}),r.jsx("li",{children:"在电脑上保存二维码图片上传到图床获取URL"}),r.jsx("li",{children:"或使用草料二维码等工具解析二维码获取链接"})]}),r.jsx("p",{className:"text-[#07C160]/60 mt-2",children:"提示微信群二维码7天后失效建议使用活码工具"})]})]})}),r.jsxs(Yd,{defaultValue:"wechat",className:"space-y-6",children:[r.jsxs(pc,{className:"bg-[#0f2137] border border-gray-700/50 p-1 grid grid-cols-4 w-full",children:[r.jsxs(tn,{value:"wechat",className:"data-[state=active]:bg-[#07C160]/20 data-[state=active]:text-[#07C160] text-gray-400",children:[r.jsx(Bi,{className:"w-4 h-4 mr-2"}),"微信"]}),r.jsxs(tn,{value:"alipay",className:"data-[state=active]:bg-[#1677FF]/20 data-[state=active]:text-[#1677FF] text-gray-400",children:[r.jsx(c1,{className:"w-4 h-4 mr-2"}),"支付宝"]}),r.jsxs(tn,{value:"usdt",className:"data-[state=active]:bg-[#26A17B]/20 data-[state=active]:text-[#26A17B] text-gray-400",children:[r.jsx(o1,{className:"w-4 h-4 mr-2"}),"USDT"]}),r.jsxs(tn,{value:"paypal",className:"data-[state=active]:bg-[#003087]/20 data-[state=active]:text-[#169BD7] text-gray-400",children:[r.jsx(ox,{className:"w-4 h-4 mr-2"}),"PayPal"]})]}),r.jsx(nn,{value:"wechat",className:"space-y-4",children:r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between pb-2",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs(Xe,{className:"text-[#07C160] flex items-center gap-2",children:[r.jsx(Bi,{className:"w-5 h-5"}),"微信支付配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置微信支付参数和跳转链接"})]}),r.jsx(Et,{checked:!!y.enabled,onCheckedChange:k=>h("enabled",k)})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"网站AppID"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white font-mono text-sm",value:String(y.websiteAppId??""),onChange:k=>h("websiteAppId",k.target.value)})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"商户号"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white font-mono text-sm",value:String(y.merchantId??""),onChange:k=>h("merchantId",k.target.value)})]})]}),r.jsxs("div",{className:"border-t border-gray-700/50 pt-4 space-y-4",children:[r.jsxs("h4",{className:"text-white font-medium flex items-center gap-2",children:[r.jsx(qa,{className:"w-4 h-4 text-[#38bdac]"}),"跳转链接配置(核心功能)"]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"微信收款码/支付链接"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",placeholder:"https://收款码图片URL 或 weixin://支付链接",value:String(y.qrCode??""),onChange:k=>h("qrCode",k.target.value)}),r.jsx("p",{className:"text-xs text-gray-500",children:"用户点击微信支付后显示的二维码图片URL"})]}),r.jsxs("div",{className:"space-y-2 bg-[#07C160]/5 p-4 rounded-xl border border-[#07C160]/20",children:[r.jsx(Z,{className:"text-[#07C160] font-medium",children:"微信群跳转链接(支付成功后跳转)"}),r.jsx(ae,{className:"bg-[#0a1628] border-[#07C160]/30 text-white placeholder:text-gray-500",placeholder:"https://weixin.qq.com/g/... 或微信群二维码图片URL",value:String(y.groupQrCode??""),onChange:k=>h("groupQrCode",k.target.value)}),r.jsx("p",{className:"text-xs text-[#07C160]/70",children:"用户支付成功后将自动跳转到此链接,进入指定微信群"})]})]})]})]})}),r.jsx(nn,{value:"alipay",className:"space-y-4",children:r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between pb-2",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs(Xe,{className:"text-[#1677FF] flex items-center gap-2",children:[r.jsx(c1,{className:"w-5 h-5"}),"支付宝配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"已加载真实支付宝参数"})]}),r.jsx(Et,{checked:!!N.enabled,onCheckedChange:k=>f("enabled",k)})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"合作者身份 (PID)"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white font-mono text-sm",value:String(N.partnerId??""),onChange:k=>f("partnerId",k.target.value)}),r.jsx(X,{size:"icon",variant:"outline",className:"border-gray-700 bg-transparent",onClick:()=>u(String(N.partnerId??""),"pid"),children:a==="pid"?r.jsx(qf,{className:"w-4 h-4 text-green-500"}):r.jsx(y0,{className:"w-4 h-4 text-gray-400"})})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"安全校验码 (Key)"}),r.jsx(ae,{type:"password",className:"bg-[#0a1628] border-gray-700 text-white font-mono text-sm",value:String(N.securityKey??""),onChange:k=>f("securityKey",k.target.value)})]})]}),r.jsxs("div",{className:"border-t border-gray-700/50 pt-4 space-y-4",children:[r.jsxs("h4",{className:"text-white font-medium flex items-center gap-2",children:[r.jsx(qa,{className:"w-4 h-4 text-[#38bdac]"}),"跳转链接配置"]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"支付宝收款码/跳转链接"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500",placeholder:"https://qr.alipay.com/... 或收款码图片URL",value:String(N.qrCode??""),onChange:k=>f("qrCode",k.target.value)}),r.jsx("p",{className:"text-xs text-gray-500",children:"用户点击支付宝支付后显示的二维码"})]})]})]})]})}),r.jsx(nn,{value:"usdt",className:"space-y-4",children:r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between pb-2",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs(Xe,{className:"text-[#26A17B] flex items-center gap-2",children:[r.jsx(o1,{className:"w-5 h-5"}),"USDT配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置加密货币收款地址"})]}),r.jsx(Et,{checked:!!w.enabled,onCheckedChange:k=>m("enabled",k)})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"网络类型"}),r.jsxs("select",{className:"w-full bg-[#0a1628] border border-gray-700 text-white rounded-md p-2",value:String(w.network??"TRC20"),onChange:k=>m("network",k.target.value),children:[r.jsx("option",{value:"TRC20",children:"TRC20 (波场)"}),r.jsx("option",{value:"ERC20",children:"ERC20 (以太坊)"}),r.jsx("option",{value:"BEP20",children:"BEP20 (币安链)"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"收款地址"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white font-mono text-sm",placeholder:"T... (TRC20地址)",value:String(w.address??""),onChange:k=>m("address",k.target.value)})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"汇率 (1 USD = ? CNY)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:Number(w.exchangeRate)??7.2,onChange:k=>m("exchangeRate",Number.parseFloat(k.target.value)||7.2)})]})]})]})}),r.jsx(nn,{value:"paypal",className:"space-y-4",children:r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between pb-2",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsxs(Xe,{className:"text-[#169BD7] flex items-center gap-2",children:[r.jsx(ox,{className:"w-5 h-5"}),"PayPal配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置PayPal收款账户"})]}),r.jsx(Et,{checked:!!v.enabled,onCheckedChange:k=>g("enabled",k)})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"PayPal邮箱"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"your@email.com",value:String(v.email??""),onChange:k=>g("email",k.target.value)})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"汇率 (1 USD = ? CNY)"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:Number(v.exchangeRate)??7.2,onChange:k=>g("exchangeRate",Number(k.target.value)||7.2)})]})]})]})})]})]})}const kV={siteName:"卡若日记",siteTitle:"一场SOUL的创业实验场",siteDescription:"来自Soul派对房的真实商业故事",logo:"/logo.png",favicon:"/favicon.ico",primaryColor:"#00CED1"},SV={home:{enabled:!0,label:"首页"},chapters:{enabled:!0,label:"目录"},match:{enabled:!0,label:"匹配"},my:{enabled:!0,label:"我的"}},CV={homeTitle:"一场SOUL的创业实验场",homeSubtitle:"来自Soul派对房的真实商业故事",chaptersTitle:"我要看",matchTitle:"语音匹配",myTitle:"我的",aboutTitle:"关于作者"};function EV(){const[t,e]=b.useState({siteConfig:{...kV},menuConfig:{...SV},pageConfig:{...CV}}),[n,s]=b.useState(!1),[a,i]=b.useState(!1);b.useEffect(()=>{Oe("/api/config").then(f=>{f!=null&&f.siteConfig&&e(m=>({...m,siteConfig:{...m.siteConfig,...f.siteConfig}})),f!=null&&f.menuConfig&&e(m=>({...m,menuConfig:{...m.menuConfig,...f.menuConfig}})),f!=null&&f.pageConfig&&e(m=>({...m,pageConfig:{...m.pageConfig,...f.pageConfig}}))}).catch(console.error)},[]);const o=async()=>{i(!0);try{await jt("/api/db/config",{key:"site_config",value:t.siteConfig,description:"网站基础配置"}),await jt("/api/db/config",{key:"menu_config",value:t.menuConfig,description:"底部菜单配置"}),await jt("/api/db/config",{key:"page_config",value:t.pageConfig,description:"页面标题配置"}),s(!0),setTimeout(()=>s(!1),2e3),se.success("配置已保存")}catch(f){console.error(f),se.error("保存失败: "+(f instanceof Error?f.message:String(f)))}finally{i(!1)}},c=t.siteConfig,u=t.menuConfig,h=t.pageConfig;return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"网站配置"}),r.jsx("p",{className:"text-gray-400 mt-1",children:"配置网站名称、图标、菜单和页面标题"})]}),r.jsxs(X,{onClick:o,disabled:a,className:`${n?"bg-green-500":"bg-[#00CED1]"} hover:bg-[#20B2AA] text-white transition-colors`,children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),a?"保存中...":n?"已保存":"保存设置"]})]}),r.jsxs("div",{className:"space-y-6",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(ox,{className:"w-5 h-5 text-[#00CED1]"}),"网站基础信息"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置网站名称、标题和描述"})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{htmlFor:"site-name",className:"text-gray-300",children:"网站名称"}),r.jsx(ae,{id:"site-name",className:"bg-[#0a1628] border-gray-700 text-white",value:c.siteName??"",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,siteName:f.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{htmlFor:"site-title",className:"text-gray-300",children:"网站标题"}),r.jsx(ae,{id:"site-title",className:"bg-[#0a1628] border-gray-700 text-white",value:c.siteTitle??"",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,siteTitle:f.target.value}}))})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{htmlFor:"site-desc",className:"text-gray-300",children:"网站描述"}),r.jsx(ae,{id:"site-desc",className:"bg-[#0a1628] border-gray-700 text-white",value:c.siteDescription??"",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,siteDescription:f.target.value}}))})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{htmlFor:"logo",className:"text-gray-300",children:"Logo地址"}),r.jsx(ae,{id:"logo",className:"bg-[#0a1628] border-gray-700 text-white",value:c.logo??"",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,logo:f.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{htmlFor:"favicon",className:"text-gray-300",children:"Favicon地址"}),r.jsx(ae,{id:"favicon",className:"bg-[#0a1628] border-gray-700 text-white",value:c.favicon??"",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,favicon:f.target.value}}))})]})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(uA,{className:"w-5 h-5 text-[#00CED1]"}),"主题颜色"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置网站主题色"})]}),r.jsx(Te,{children:r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsxs("div",{className:"space-y-2 flex-1",children:[r.jsx(Z,{htmlFor:"primary-color",className:"text-gray-300",children:"主色调"}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(ae,{id:"primary-color",type:"color",className:"w-16 h-10 bg-[#0a1628] border-gray-700 cursor-pointer p-1",value:c.primaryColor??"#00CED1",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,primaryColor:f.target.value}}))}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white flex-1",value:c.primaryColor??"#00CED1",onChange:f=>e(m=>({...m,siteConfig:{...m.siteConfig,primaryColor:f.target.value}}))})]})]}),r.jsx("div",{className:"w-24 h-24 rounded-xl flex items-center justify-center text-white font-bold",style:{backgroundColor:c.primaryColor??"#00CED1"},children:"预览"})]})})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(rA,{className:"w-5 h-5 text-[#00CED1]"}),"底部菜单配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"控制底部导航栏菜单的显示和名称"})]}),r.jsx(Te,{className:"space-y-4",children:Object.entries(u).map(([f,m])=>r.jsxs("div",{className:"flex items-center justify-between p-4 bg-[#0a1628] rounded-lg",children:[r.jsxs("div",{className:"flex items-center gap-4 flex-1",children:[r.jsx(Et,{checked:(m==null?void 0:m.enabled)??!0,onCheckedChange:g=>e(y=>({...y,menuConfig:{...y.menuConfig,[f]:{...m,enabled:g}}}))}),r.jsx("span",{className:"text-gray-300 w-16 capitalize",children:f}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white max-w-[200px]",value:(m==null?void 0:m.label)??"",onChange:g=>e(y=>({...y,menuConfig:{...y.menuConfig,[f]:{...m,label:g.target.value}}}))})]}),r.jsx("span",{className:`text-sm ${m!=null&&m.enabled?"text-green-400":"text-gray-500"}`,children:m!=null&&m.enabled?"显示":"隐藏"})]},f))})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Nj,{className:"w-5 h-5 text-[#00CED1]"}),"页面标题配置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置各个页面的标题和副标题"})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"首页标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:h.homeTitle??"",onChange:f=>e(m=>({...m,pageConfig:{...m.pageConfig,homeTitle:f.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"首页副标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:h.homeSubtitle??"",onChange:f=>e(m=>({...m,pageConfig:{...m.pageConfig,homeSubtitle:f.target.value}}))})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"目录页标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:h.chaptersTitle??"",onChange:f=>e(m=>({...m,pageConfig:{...m.pageConfig,chaptersTitle:f.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"匹配页标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:h.matchTitle??"",onChange:f=>e(m=>({...m,pageConfig:{...m.pageConfig,matchTitle:f.target.value}}))})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"我的页标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:h.myTitle??"",onChange:f=>e(m=>({...m,pageConfig:{...m.pageConfig,myTitle:f.target.value}}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"关于作者标题"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",value:h.aboutTitle??"",onChange:f=>e(m=>({...m,pageConfig:{...m.pageConfig,aboutTitle:f.target.value}}))})]})]})]})]})]})]})}function TV(){const[t,e]=b.useState(""),[n,s]=b.useState(""),[a,i]=b.useState(""),[o,c]=b.useState({}),u=async()=>{var y,N,w,v;try{const k=await Oe("/api/config"),C=(N=(y=k==null?void 0:k.liveQRCodes)==null?void 0:y[0])==null?void 0:N.urls;Array.isArray(C)&&e(C.join(`
`));const E=(v=(w=k==null?void 0:k.paymentMethods)==null?void 0:w.wechat)==null?void 0:v.groupQrCode;E&&s(E),c({paymentMethods:k==null?void 0:k.paymentMethods,liveQRCodes:k==null?void 0:k.liveQRCodes})}catch(k){console.error(k)}};b.useEffect(()=>{u()},[]);const h=(y,N)=>{navigator.clipboard.writeText(y),i(N),setTimeout(()=>i(""),2e3)},f=async()=>{try{const y=t.split(`
`).map(w=>w.trim()).filter(Boolean),N=[...o.liveQRCodes||[]];N[0]?N[0].urls=y:N.push({id:"live-1",name:"微信群活码",urls:y,clickCount:0}),await jt("/api/db/config",{key:"live_qr_codes",value:N,description:"群活码配置"}),se.success("群活码配置已保存!"),await u()}catch(y){console.error(y),se.error("保存失败: "+(y instanceof Error?y.message:String(y)))}},m=async()=>{var y;try{await jt("/api/db/config",{key:"payment_methods",value:{...o.paymentMethods||{},wechat:{...((y=o.paymentMethods)==null?void 0:y.wechat)||{},groupQrCode:n}},description:"支付方式配置"}),se.success("微信群链接已保存!用户支付成功后将自动跳转"),await u()}catch(N){console.error(N),se.error("保存失败: "+(N instanceof Error?N.message:String(N)))}},g=()=>{n?window.open(n,"_blank"):se.error("请先配置微信群链接")};return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"mb-8",children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"微信群活码管理"}),r.jsx("p",{className:"text-gray-400 mt-1",children:"配置微信群跳转链接,用户支付后自动跳转加群"})]}),r.jsx("div",{className:"mb-6 bg-[#07C160]/10 border border-[#07C160]/30 rounded-xl p-4",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(bj,{className:"w-5 h-5 text-[#07C160] flex-shrink-0 mt-0.5"}),r.jsxs("div",{className:"text-sm",children:[r.jsx("p",{className:"font-medium mb-2 text-[#07C160]",children:"微信群活码配置指南"}),r.jsxs("div",{className:"text-[#07C160]/80 space-y-2",children:[r.jsx("p",{className:"font-medium",children:"方法一:使用草料活码(推荐)"}),r.jsxs("ol",{className:"list-decimal list-inside space-y-1 pl-2",children:[r.jsx("li",{children:"访问草料二维码创建活码"}),r.jsx("li",{children:"上传微信群二维码图片,生成永久链接"}),r.jsx("li",{children:"复制生成的短链接填入下方配置"}),r.jsx("li",{children:"群满后可直接在草料后台更换新群码,链接不变"})]}),r.jsx("p",{className:"font-medium mt-3",children:"方法二:直接使用微信群链接"}),r.jsxs("ol",{className:"list-decimal list-inside space-y-1 pl-2",children:[r.jsx("li",{children:'微信打开目标群 → 右上角"..." → 群二维码'}),r.jsx("li",{children:"长按二维码 → 识别二维码 → 复制链接"})]}),r.jsx("p",{className:"text-[#07C160]/60 mt-2",children:"注意微信原生群二维码7天后失效建议使用草料活码"})]})]})]})}),r.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl md:col-span-2",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-[#07C160] flex items-center gap-2",children:[r.jsx(h1,{className:"w-5 h-5"}),"支付成功跳转链接(核心配置)"]}),r.jsx(Ft,{className:"text-gray-400",children:"用户支付完成后自动跳转到此链接,进入指定微信群"})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(lx,{className:"w-4 h-4"}),"微信群链接 / 活码链接"]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(ae,{placeholder:"https://cli.im/xxxxx 或 https://weixin.qq.com/g/...",className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500 flex-1",value:n,onChange:y=>s(y.target.value)}),r.jsx(X,{variant:"outline",size:"icon",className:"border-gray-700 bg-transparent hover:bg-gray-700/50",onClick:()=>h(n,"group"),children:a==="group"?r.jsx(qf,{className:"w-4 h-4 text-green-500"}):r.jsx(y0,{className:"w-4 h-4 text-gray-400"})})]}),r.jsxs("p",{className:"text-xs text-gray-500 flex items-center gap-1",children:[r.jsx(qa,{className:"w-3 h-3"}),"支持格式:草料短链、微信群链接(https://weixin.qq.com/g/...)、企业微信链接等"]})]}),r.jsxs("div",{className:"flex gap-3",children:[r.jsxs(X,{onClick:m,className:"flex-1 bg-[#07C160] hover:bg-[#06AD51] text-white",children:[r.jsx(Uh,{className:"w-4 h-4 mr-2"}),"保存配置"]}),r.jsxs(X,{onClick:g,variant:"outline",className:"border-[#07C160] text-[#07C160] hover:bg-[#07C160]/10 bg-transparent",children:[r.jsx(qa,{className:"w-4 h-4 mr-2"}),"测试跳转"]})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl md:col-span-2",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(h1,{className:"w-5 h-5 text-[#38bdac]"}),"多群轮换(高级配置)"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置多个群链接,系统自动轮换分配,避免单群满员"})]}),r.jsxs(Te,{className:"space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Z,{className:"text-gray-300 flex items-center gap-2",children:[r.jsx(lx,{className:"w-4 h-4"}),"多个群链接(每行一个)"]}),r.jsx(mc,{placeholder:"https://cli.im/group1\\nhttps://cli.im/group2",className:"bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500 min-h-[120px] font-mono text-sm",value:t,onChange:y=>e(y.target.value)}),r.jsx("p",{className:"text-xs text-gray-500",children:"每行填写一个群链接,系统将按顺序或随机分配"})]}),r.jsxs("div",{className:"flex items-center justify-between p-3 bg-[#0a1628] rounded-lg border border-gray-700/50",children:[r.jsx("span",{className:"text-sm text-gray-400",children:"已配置群数量"}),r.jsxs("span",{className:"font-bold text-[#38bdac]",children:[t.split(`
`).filter(Boolean).length," 个"]})]}),r.jsxs(X,{onClick:f,className:"w-full bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(Uh,{className:"w-4 h-4 mr-2"}),"保存多群配置"]})]})]})]}),r.jsxs("div",{className:"mt-6 bg-[#0f2137] rounded-xl p-4 border border-gray-700/50",children:[r.jsx("h4",{className:"text-white font-medium mb-3",children:"常见问题"}),r.jsxs("div",{className:"space-y-3 text-sm",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-[#38bdac]",children:"Q: 为什么推荐使用草料活码?"}),r.jsx("p",{className:"text-gray-400",children:"A: 草料活码是永久链接群满后可直接在后台更换新群码无需修改网站配置。微信原生群码7天失效。"})]}),r.jsxs("div",{children:[r.jsx("p",{className:"text-[#38bdac]",children:"Q: 支付后没有跳转怎么办?"}),r.jsx("p",{className:"text-gray-400",children:"A: 1) 检查链接是否正确填写 2) 部分浏览器可能拦截弹窗,用户需手动允许 3) 建议使用https开头的链接"})]})]})]})]})}const Gw={matchTypes:[{id:"partner",label:"创业合伙",matchLabel:"创业伙伴",icon:"⭐",matchFromDB:!0,showJoinAfterMatch:!1,price:1,enabled:!0},{id:"investor",label:"资源对接",matchLabel:"资源对接",icon:"👥",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0},{id:"mentor",label:"导师顾问",matchLabel:"导师顾问",icon:"❤️",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0},{id:"team",label:"团队招募",matchLabel:"加入项目",icon:"🎮",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0}],freeMatchLimit:3,matchPrice:1,settings:{enableFreeMatches:!0,enablePaidMatches:!0,maxMatchesPerDay:10}},MV=["⭐","👥","❤️","🎮","💼","🚀","💡","🎯","🔥","✨"];function AV(){const[t,e]=b.useState(Gw),[n,s]=b.useState(!0),[a,i]=b.useState(!1),[o,c]=b.useState(!1),[u,h]=b.useState(null),[f,m]=b.useState({id:"",label:"",matchLabel:"",icon:"⭐",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0}),g=async()=>{s(!0);try{const E=await Oe("/api/db/config/full?key=match_config"),I=(E==null?void 0:E.data)??(E==null?void 0:E.config);I&&e({...Gw,...I})}catch(E){console.error("加载匹配配置失败:",E)}finally{s(!1)}};b.useEffect(()=>{g()},[]);const y=async()=>{i(!0);try{const E=await jt("/api/db/config",{key:"match_config",value:t,description:"匹配功能配置"});E&&E.success!==!1?se.success("配置保存成功!"):se.error("保存失败: "+(E&&typeof E=="object"&&"error"in E?E.error:"未知错误"))}catch(E){console.error("保存配置失败:",E),se.error("保存失败")}finally{i(!1)}},N=E=>{h(E),m({id:E.id,label:E.label,matchLabel:E.matchLabel,icon:E.icon,matchFromDB:E.matchFromDB,showJoinAfterMatch:E.showJoinAfterMatch,price:E.price,enabled:E.enabled}),c(!0)},w=()=>{h(null),m({id:"",label:"",matchLabel:"",icon:"⭐",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0}),c(!0)},v=()=>{if(!f.id||!f.label){se.error("请填写类型ID和名称");return}const E=[...t.matchTypes];if(u){const I=E.findIndex(L=>L.id===u.id);I!==-1&&(E[I]={...f})}else{if(E.some(I=>I.id===f.id)){se.error("类型ID已存在");return}E.push({...f})}e({...t,matchTypes:E}),c(!1)},k=E=>{confirm("确定要删除这个匹配类型吗?")&&e({...t,matchTypes:t.matchTypes.filter(I=>I.id!==E)})},C=E=>{e({...t,matchTypes:t.matchTypes.map(I=>I.id===E?{...I,enabled:!I.enabled}:I)})};return r.jsxs("div",{className:"p-8 w-full space-y-6",children:[r.jsxs("div",{className:"flex justify-between items-center",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(_o,{className:"w-6 h-6 text-[#38bdac]"}),"匹配功能配置"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"管理找伙伴功能的匹配类型和价格"})]}),r.jsxs("div",{className:"flex gap-3",children:[r.jsxs(X,{variant:"outline",onClick:g,disabled:n,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${n?"animate-spin":""}`}),"刷新"]}),r.jsxs(X,{onClick:y,disabled:a,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),a?"保存中...":"保存配置"]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Va,{className:"w-5 h-5 text-yellow-400"}),"基础设置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置免费匹配次数和付费规则"})]}),r.jsxs(Te,{className:"space-y-6",children:[r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"每日免费匹配次数"}),r.jsx(ae,{type:"number",min:0,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:t.freeMatchLimit,onChange:E=>e({...t,freeMatchLimit:parseInt(E.target.value,10)||0})}),r.jsx("p",{className:"text-xs text-gray-500",children:"用户每天可免费匹配的次数"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"付费匹配价格(元)"}),r.jsx(ae,{type:"number",min:.01,step:.01,className:"bg-[#0a1628] border-gray-700 text-white",value:t.matchPrice,onChange:E=>e({...t,matchPrice:parseFloat(E.target.value)||1})}),r.jsx("p",{className:"text-xs text-gray-500",children:"免费次数用完后的单次匹配价格"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"每日最大匹配次数"}),r.jsx(ae,{type:"number",min:1,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:t.settings.maxMatchesPerDay,onChange:E=>e({...t,settings:{...t.settings,maxMatchesPerDay:parseInt(E.target.value,10)||10}})}),r.jsx("p",{className:"text-xs text-gray-500",children:"包含免费和付费的总次数"})]})]}),r.jsxs("div",{className:"flex gap-8 pt-4 border-t border-gray-700/50",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:t.settings.enableFreeMatches,onCheckedChange:E=>e({...t,settings:{...t.settings,enableFreeMatches:E}})}),r.jsx(Z,{className:"text-gray-300",children:"启用免费匹配"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:t.settings.enablePaidMatches,onCheckedChange:E=>e({...t,settings:{...t.settings,enablePaidMatches:E}})}),r.jsx(Z,{className:"text-gray-300",children:"启用付费匹配"})]})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between",children:[r.jsxs("div",{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-[#38bdac]"}),"匹配类型管理"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置不同的匹配类型及其价格"})]}),r.jsxs(X,{onClick:w,size:"sm",className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xn,{className:"w-4 h-4 mr-1"}),"添加类型"]})]}),r.jsx(Te,{children:r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"图标"}),r.jsx(we,{className:"text-gray-400",children:"类型ID"}),r.jsx(we,{className:"text-gray-400",children:"显示名称"}),r.jsx(we,{className:"text-gray-400",children:"匹配标签"}),r.jsx(we,{className:"text-gray-400",children:"价格"}),r.jsx(we,{className:"text-gray-400",children:"数据库匹配"}),r.jsx(we,{className:"text-gray-400",children:"状态"}),r.jsx(we,{className:"text-right text-gray-400",children:"操作"})]})}),r.jsx(rs,{children:t.matchTypes.map(E=>r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{children:r.jsx("span",{className:"text-2xl",children:E.icon})}),r.jsx(be,{className:"font-mono text-gray-300",children:E.id}),r.jsx(be,{className:"text-white font-medium",children:E.label}),r.jsx(be,{className:"text-gray-300",children:E.matchLabel}),r.jsx(be,{children:r.jsxs(Je,{className:"bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/20 border-0",children:["¥",E.price]})}),r.jsx(be,{children:E.matchFromDB?r.jsx(Je,{className:"bg-green-500/20 text-green-400 hover:bg-green-500/20 border-0",children:"是"}):r.jsx(Je,{variant:"outline",className:"text-gray-500 border-gray-600",children:"否"})}),r.jsx(be,{children:r.jsx(Et,{checked:E.enabled,onCheckedChange:()=>C(E.id)})}),r.jsx(be,{className:"text-right",children:r.jsxs("div",{className:"flex items-center justify-end gap-1",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>N(E),className:"text-gray-400 hover:text-[#38bdac] hover:bg-[#38bdac]/10",children:r.jsx(Jt,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>k(E.id),className:"text-red-400 hover:text-red-300 hover:bg-red-500/10",children:r.jsx(Xn,{className:"w-4 h-4"})})]})})]},E.id))})]})})]}),r.jsx(Lt,{open:o,onOpenChange:c,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-lg",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[u?r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}):r.jsx(xn,{className:"w-5 h-5 text-[#38bdac]"}),u?"编辑匹配类型":"添加匹配类型"]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"类型ID英文"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: partner",value:f.id,onChange:E=>m({...f,id:E.target.value}),disabled:!!u})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"图标"}),r.jsx("div",{className:"flex gap-1 flex-wrap",children:MV.map(E=>r.jsx("button",{type:"button",className:`w-8 h-8 text-lg rounded ${f.icon===E?"bg-[#38bdac]/30 ring-1 ring-[#38bdac]":"bg-[#0a1628]"}`,onClick:()=>m({...f,icon:E}),children:E},E))})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"显示名称"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: 创业合伙",value:f.label,onChange:E=>m({...f,label:E.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"匹配标签"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: 创业伙伴",value:f.matchLabel,onChange:E=>m({...f,matchLabel:E.target.value})})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"单次匹配价格(元)"}),r.jsx(ae,{type:"number",min:.01,step:.01,className:"bg-[#0a1628] border-gray-700 text-white",value:f.price,onChange:E=>m({...f,price:parseFloat(E.target.value)||1})})]}),r.jsxs("div",{className:"flex gap-6 pt-2",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:f.matchFromDB,onCheckedChange:E=>m({...f,matchFromDB:E})}),r.jsx(Z,{className:"text-gray-300 text-sm",children:"从数据库匹配"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:f.showJoinAfterMatch,onCheckedChange:E=>m({...f,showJoinAfterMatch:E})}),r.jsx(Z,{className:"text-gray-300 text-sm",children:"匹配后显示加入"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:f.enabled,onCheckedChange:E=>m({...f,enabled:E})}),r.jsx(Z,{className:"text-gray-300 text-sm",children:"启用"})]})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",onClick:()=>c(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsxs(X,{onClick:v,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),"保存"]})]})]})})]})}const Jw={partner:"找伙伴",investor:"资源对接",mentor:"导师顾问",team:"团队招募"};function IV(){const[t,e]=b.useState([]),[n,s]=b.useState(0),[a,i]=b.useState(1),[o,c]=b.useState(10),[u,h]=b.useState(""),[f,m]=b.useState(!0),[g,y]=b.useState(null);async function N(){m(!0),y(null);try{const v=new URLSearchParams({page:String(a),pageSize:String(o)});u&&v.set("matchType",u);const k=await Oe(`/api/db/match-records?${v}`);k!=null&&k.success?(e(k.records||[]),s(k.total??0)):y("加载匹配记录失败")}catch(v){console.error("加载匹配记录失败",v),y("加载失败,请检查网络后重试")}finally{m(!1)}}b.useEffect(()=>{N()},[a,u]);const w=Math.ceil(n/o)||1;return r.jsxs("div",{className:"p-8 w-full",children:[g&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-500/20 border border-red-500/50 text-red-400 text-sm flex items-center justify-between",children:[r.jsx("span",{children:g}),r.jsx("button",{type:"button",onClick:()=>y(null),className:"hover:text-red-300",children:"×"})]}),r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-white",children:"匹配记录"}),r.jsxs("p",{className:"text-gray-400 mt-1",children:["找伙伴匹配统计,共 ",n," 条记录"]})]}),r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsxs("select",{value:u,onChange:v=>{h(v.target.value),i(1)},className:"bg-[#0f2137] border border-gray-700 text-white rounded-lg px-3 py-2 text-sm",children:[r.jsx("option",{value:"",children:"全部类型"}),Object.entries(Jw).map(([v,k])=>r.jsx("option",{value:v,children:k},v))]}),r.jsxs("button",{type:"button",onClick:N,disabled:f,className:"flex items-center gap-2 px-4 py-2 rounded-lg border border-gray-600 text-gray-300 hover:bg-gray-700/50 transition-colors disabled:opacity-50",children:[r.jsx(Be,{className:`w-4 h-4 ${f?"animate-spin":""}`}),"刷新"]})]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:f?r.jsxs("div",{className:"flex justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"发起人"}),r.jsx(we,{className:"text-gray-400",children:"匹配到"}),r.jsx(we,{className:"text-gray-400",children:"类型"}),r.jsx(we,{className:"text-gray-400",children:"联系方式"}),r.jsx(we,{className:"text-gray-400",children:"匹配时间"})]})}),r.jsxs(rs,{children:[t.map(v=>r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"w-9 h-9 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm font-medium text-[#38bdac] flex-shrink-0 overflow-hidden",children:[v.userAvatar?r.jsx("img",{src:v.userAvatar,alt:"",className:"w-full h-full object-cover",onError:k=>{k.currentTarget.style.display="none";const C=k.currentTarget.nextElementSibling;C&&C.classList.remove("hidden")}}):null,r.jsx("span",{className:v.userAvatar?"hidden":"",children:(v.userNickname||v.userId||"?").charAt(0)})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-white",children:v.userNickname||v.userId}),r.jsxs("div",{className:"text-xs text-gray-500 font-mono",children:[v.userId.slice(0,16),"..."]})]})]})}),r.jsx(be,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"w-9 h-9 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm font-medium text-[#38bdac] flex-shrink-0 overflow-hidden",children:[v.matchedUserAvatar?r.jsx("img",{src:v.matchedUserAvatar,alt:"",className:"w-full h-full object-cover",onError:k=>{k.currentTarget.style.display="none";const C=k.currentTarget.nextElementSibling;C&&C.classList.remove("hidden")}}):null,r.jsx("span",{className:v.matchedUserAvatar?"hidden":"",children:(v.matchedNickname||v.matchedUserId||"?").charAt(0)})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-white",children:v.matchedNickname||v.matchedUserId}),r.jsxs("div",{className:"text-xs text-gray-500 font-mono",children:[v.matchedUserId.slice(0,16),"..."]})]})]})}),r.jsx(be,{children:r.jsx(Je,{className:"bg-[#38bdac]/20 text-[#38bdac] border-0",children:Jw[v.matchType]||v.matchType})}),r.jsxs(be,{className:"text-gray-400 text-sm",children:[v.phone&&r.jsxs("div",{children:["📱 ",v.phone]}),v.wechatId&&r.jsxs("div",{children:["💬 ",v.wechatId]}),!v.phone&&!v.wechatId&&"-"]}),r.jsx(be,{className:"text-gray-400",children:v.createdAt?new Date(v.createdAt).toLocaleString():"-"})]},v.id)),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:5,className:"text-center py-12 text-gray-500",children:"暂无匹配记录"})})]})]}),r.jsx(Us,{page:a,totalPages:w,total:n,pageSize:o,onPageChange:i,onPageSizeChange:v=>{c(v),i(1)}})]})})})]})}function PV(){const[t,e]=b.useState([]),[n,s]=b.useState(!0);async function a(){s(!0);try{const i=await Oe("/api/db/vip-members?limit=100");if(i!=null&&i.success&&i.data){const o=[...i.data].map((c,u)=>({...c,vipSort:typeof c.vipSort=="number"?c.vipSort:u+1}));o.sort((c,u)=>(c.vipSort??999999)-(u.vipSort??999999)),e(o)}}catch(i){console.error("Load VIP members error:",i),se.error("加载 VIP 成员失败")}finally{s(!1)}}return b.useEffect(()=>{a()},[]),r.jsxs("div",{className:"p-8 w-full",children:[r.jsx("div",{className:"flex justify-between items-center mb-8",children:r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(Yl,{className:"w-5 h-5 text-amber-400"}),"用户管理 / 超级个体列表"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"这里展示所有有效超级个体用户,仅用于查看其基本信息与排序值。"})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-0",children:n?r.jsx("div",{className:"py-12 text-center text-gray-400",children:"加载中..."}):r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400 w-20",children:"序号"}),r.jsx(we,{className:"text-gray-400",children:"成员"}),r.jsx(we,{className:"text-gray-400 w-40",children:"超级个体"}),r.jsx(we,{className:"text-gray-400 w-28",children:"排序值"})]})}),r.jsxs(rs,{children:[t.map((i,o)=>{var c;return r.jsxs(ut,{className:"border-gray-700/50",children:[r.jsx(be,{className:"text-gray-300",children:o+1}),r.jsx(be,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[i.avatar?r.jsx("img",{src:i.avatar,className:"w-8 h-8 rounded-full object-cover border border-amber-400/60"}):r.jsx("div",{className:"w-8 h-8 rounded-full bg-amber-500/20 border border-amber-400/60 flex items-center justify-center text-amber-300 text-sm",children:((c=i.name)==null?void 0:c[0])||"创"}),r.jsx("div",{className:"min-w-0",children:r.jsx("div",{className:"text-white text-sm truncate",children:i.name})})]})}),r.jsx(be,{className:"text-gray-300",children:i.vipRole||r.jsx("span",{className:"text-gray-500",children:"(未设置超级个体)"})}),r.jsx(be,{className:"text-gray-300",children:i.vipSort??o+1})]},i.id)}),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:5,className:"text-center py-12 text-gray-500",children:"当前没有有效的超级个体用户。"})})]})]})})})]})}function d3(t){const[e,n]=b.useState([]),[s,a]=b.useState(!0),[i,o]=b.useState(!1),[c,u]=b.useState(null),[h,f]=b.useState({name:"",avatar:"",intro:"",tags:"",priceSingle:"",priceHalfYear:"",priceYear:"",quote:"",whyFind:"",offering:"",judgmentStyle:"",sort:0,enabled:!0}),[m,g]=b.useState(!1),[y,N]=b.useState(!1),w=b.useRef(null),v=async P=>{var K;const R=(K=P.target.files)==null?void 0:K[0];if(R){N(!0);try{const re=new FormData;re.append("file",R),re.append("folder","mentors");const ue=Gf(),xe={};ue&&(xe.Authorization=`Bearer ${ue}`);const O=await(await fetch(Wo("/api/upload"),{method:"POST",body:re,credentials:"include",headers:xe})).json();O!=null&&O.success&&(O!=null&&O.url)?f(J=>({...J,avatar:O.url})):se.error("上传失败: "+((O==null?void 0:O.error)||"未知错误"))}catch(re){console.error(re),se.error("上传失败")}finally{N(!1),w.current&&(w.current.value="")}}};async function k(){a(!0);try{const P=await Oe("/api/db/mentors");P!=null&&P.success&&P.data&&n(P.data)}catch(P){console.error("Load mentors error:",P)}finally{a(!1)}}b.useEffect(()=>{k()},[]);const C=()=>{f({name:"",avatar:"",intro:"",tags:"",priceSingle:"",priceHalfYear:"",priceYear:"",quote:"",whyFind:"",offering:"",judgmentStyle:"",sort:e.length>0?Math.max(...e.map(P=>P.sort))+1:0,enabled:!0})},E=()=>{u(null),C(),o(!0)},I=P=>{u(P),f({name:P.name,avatar:P.avatar||"",intro:P.intro||"",tags:P.tags||"",priceSingle:P.priceSingle!=null?String(P.priceSingle):"",priceHalfYear:P.priceHalfYear!=null?String(P.priceHalfYear):"",priceYear:P.priceYear!=null?String(P.priceYear):"",quote:P.quote||"",whyFind:P.whyFind||"",offering:P.offering||"",judgmentStyle:P.judgmentStyle||"",sort:P.sort,enabled:P.enabled??!0}),o(!0)},L=async()=>{if(!h.name.trim()){se.error("导师姓名不能为空");return}g(!0);try{const P=K=>K===""?void 0:parseFloat(K),R={name:h.name.trim(),avatar:h.avatar.trim()||void 0,intro:h.intro.trim()||void 0,tags:h.tags.trim()||void 0,priceSingle:P(h.priceSingle),priceHalfYear:P(h.priceHalfYear),priceYear:P(h.priceYear),quote:h.quote.trim()||void 0,whyFind:h.whyFind.trim()||void 0,offering:h.offering.trim()||void 0,judgmentStyle:h.judgmentStyle.trim()||void 0,sort:h.sort,enabled:h.enabled};if(c){const K=await Pt("/api/db/mentors",{id:c.id,...R});K!=null&&K.success?(o(!1),k()):se.error("更新失败: "+(K==null?void 0:K.error))}else{const K=await jt("/api/db/mentors",R);K!=null&&K.success?(o(!1),k()):se.error("新增失败: "+(K==null?void 0:K.error))}}catch(P){console.error("Save error:",P),se.error("保存失败")}finally{g(!1)}},W=async P=>{if(confirm("确定删除该导师?"))try{const R=await oa(`/api/db/mentors?id=${P}`);R!=null&&R.success?k():se.error("删除失败: "+(R==null?void 0:R.error))}catch(R){console.error("Delete error:",R),se.error("删除失败")}},D=P=>P!=null?`¥${P}`:"-";return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-[#38bdac]"}),"导师管理"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"stitch_soul 导师列表,支持每个导师独立配置单次/半年/年度价格"})]}),r.jsxs(X,{onClick:E,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xn,{className:"w-4 h-4 mr-2"}),"新增导师"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-0",children:s?r.jsx("div",{className:"py-12 text-center text-gray-400",children:"加载中..."}):r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"ID"}),r.jsx(we,{className:"text-gray-400",children:"姓名"}),r.jsx(we,{className:"text-gray-400",children:"简介"}),r.jsx(we,{className:"text-gray-400",children:"单次"}),r.jsx(we,{className:"text-gray-400",children:"半年"}),r.jsx(we,{className:"text-gray-400",children:"年度"}),r.jsx(we,{className:"text-gray-400",children:"排序"}),r.jsx(we,{className:"text-right text-gray-400",children:"操作"})]})}),r.jsxs(rs,{children:[e.map(P=>r.jsxs(ut,{className:"border-gray-700/50",children:[r.jsx(be,{className:"text-gray-300",children:P.id}),r.jsx(be,{className:"text-white",children:P.name}),r.jsx(be,{className:"text-gray-400 max-w-[200px] truncate",children:P.intro||"-"}),r.jsx(be,{className:"text-gray-400",children:D(P.priceSingle)}),r.jsx(be,{className:"text-gray-400",children:D(P.priceHalfYear)}),r.jsx(be,{className:"text-gray-400",children:D(P.priceYear)}),r.jsx(be,{className:"text-gray-400",children:P.sort}),r.jsxs(be,{className:"text-right",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>I(P),className:"text-gray-400 hover:text-[#38bdac]",children:r.jsx(Jt,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>W(P.id),className:"text-gray-400 hover:text-red-400",children:r.jsx(Xn,{className:"w-4 h-4"})})]})]},P.id)),e.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:8,className:"text-center py-12 text-gray-500",children:"暂无导师,点击「新增导师」添加"})})]})]})})}),r.jsx(Lt,{open:i,onOpenChange:o,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-lg max-h-[90vh] overflow-y-auto",children:[r.jsx(_t,{children:r.jsx(zt,{className:"text-white",children:c?"编辑导师":"新增导师"})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"姓名 *"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如:卡若",value:h.name,onChange:P=>f(R=>({...R,name:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"排序"}),r.jsx(ae,{type:"number",className:"bg-[#0a1628] border-gray-700 text-white",value:h.sort,onChange:P=>f(R=>({...R,sort:parseInt(P.target.value,10)||0}))})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"头像"}),r.jsxs("div",{className:"flex gap-3 items-center",children:[r.jsx(ae,{className:"flex-1 bg-[#0a1628] border-gray-700 text-white",value:h.avatar,onChange:P=>f(R=>({...R,avatar:P.target.value})),placeholder:"点击上传或粘贴图片地址"}),r.jsx("input",{ref:w,type:"file",accept:"image/*",className:"hidden",onChange:v}),r.jsxs(X,{type:"button",variant:"outline",size:"sm",className:"border-gray-600 text-gray-400 shrink-0",disabled:y,onClick:()=>{var P;return(P=w.current)==null?void 0:P.click()},children:[r.jsx(Uh,{className:"w-4 h-4 mr-2"}),y?"上传中...":"上传"]})]}),h.avatar&&r.jsx("div",{className:"mt-2",children:r.jsx("img",{src:h.avatar.startsWith("http")?h.avatar:Wo(h.avatar),alt:"头像预览",className:"w-20 h-20 rounded-full object-cover border border-gray-600"})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"简介"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如:结构判断型咨询 · Decision > Execution",value:h.intro,onChange:P=>f(R=>({...R,intro:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"技能标签(逗号分隔)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如:项目结构判断、风险止损、人×项目匹配",value:h.tags,onChange:P=>f(R=>({...R,tags:P.target.value}))})]}),r.jsxs("div",{className:"border-t border-gray-700 pt-4",children:[r.jsx(Z,{className:"text-gray-300 block mb-2",children:"价格配置(每个导师独立)"}),r.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"单次咨询 ¥"}),r.jsx(ae,{type:"number",step:"0.01",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"980",value:h.priceSingle,onChange:P=>f(R=>({...R,priceSingle:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"半年咨询 ¥"}),r.jsx(ae,{type:"number",step:"0.01",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"19800",value:h.priceHalfYear,onChange:P=>f(R=>({...R,priceHalfYear:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"年度咨询 ¥"}),r.jsx(ae,{type:"number",step:"0.01",className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"29800",value:h.priceYear,onChange:P=>f(R=>({...R,priceYear:P.target.value}))})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"引言"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如:大多数人失败,不是因为不努力...",value:h.quote,onChange:P=>f(R=>({...R,quote:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"为什么找(文本)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"",value:h.whyFind,onChange:P=>f(R=>({...R,whyFind:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"提供什么(文本)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"",value:h.offering,onChange:P=>f(R=>({...R,offering:P.target.value}))})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"判断风格(逗号分隔)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如:冷静、克制、偏风险视角",value:h.judgmentStyle,onChange:P=>f(R=>({...R,judgmentStyle:P.target.value}))})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("input",{type:"checkbox",id:"enabled",checked:h.enabled,onChange:P=>f(R=>({...R,enabled:P.target.checked})),className:"rounded border-gray-600 bg-[#0a1628]"}),r.jsx(Z,{htmlFor:"enabled",className:"text-gray-300 cursor-pointer",children:"上架(小程序可见)"})]})]}),r.jsxs(on,{children:[r.jsxs(X,{variant:"outline",onClick:()=>o(!1),className:"border-gray-600 text-gray-300",children:[r.jsx(gs,{className:"w-4 h-4 mr-2"}),"取消"]}),r.jsxs(X,{onClick:L,disabled:m,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"}),m?"保存中...":"保存"]})]})]})})]})}function RV(){const[t,e]=b.useState([]),[n,s]=b.useState(!0),[a,i]=b.useState("");async function o(){s(!0);try{const h=a?`/api/db/mentor-consultations?status=${a}`:"/api/db/mentor-consultations",f=await Oe(h);f!=null&&f.success&&f.data&&e(f.data)}catch(h){console.error("Load consultations error:",h)}finally{s(!1)}}b.useEffect(()=>{o()},[a]);const c={created:"已创建",pending_pay:"待支付",paid:"已支付",completed:"已完成",cancelled:"已取消"},u={single:"单次",half_year:"半年",year:"年度"};return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex justify-between items-center mb-8",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(Hh,{className:"w-5 h-5 text-[#38bdac]"}),"导师预约列表"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"stitch_soul 导师咨询预约记录"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("select",{value:a,onChange:h=>i(h.target.value),className:"bg-[#0f2137] border border-gray-700 rounded-lg px-3 py-2 text-gray-300 text-sm",children:[r.jsx("option",{value:"",children:"全部状态"}),Object.entries(c).map(([h,f])=>r.jsx("option",{value:h,children:f},h))]}),r.jsxs(X,{onClick:o,disabled:n,variant:"outline",className:"border-gray-600 text-gray-300",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${n?"animate-spin":""}`}),"刷新"]})]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-0",children:n?r.jsx("div",{className:"py-12 text-center text-gray-400",children:"加载中..."}):r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"ID"}),r.jsx(we,{className:"text-gray-400",children:"用户ID"}),r.jsx(we,{className:"text-gray-400",children:"导师ID"}),r.jsx(we,{className:"text-gray-400",children:"类型"}),r.jsx(we,{className:"text-gray-400",children:"金额"}),r.jsx(we,{className:"text-gray-400",children:"状态"}),r.jsx(we,{className:"text-gray-400",children:"创建时间"})]})}),r.jsxs(rs,{children:[t.map(h=>r.jsxs(ut,{className:"border-gray-700/50",children:[r.jsx(be,{className:"text-gray-300",children:h.id}),r.jsx(be,{className:"text-gray-400",children:h.userId}),r.jsx(be,{className:"text-gray-400",children:h.mentorId}),r.jsx(be,{className:"text-gray-400",children:u[h.consultationType]||h.consultationType}),r.jsxs(be,{className:"text-white",children:["¥",h.amount]}),r.jsx(be,{className:"text-gray-400",children:c[h.status]||h.status}),r.jsx(be,{className:"text-gray-500 text-sm",children:h.createdAt})]},h.id)),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:7,className:"text-center py-12 text-gray-500",children:"暂无预约记录"})})]})]})})})]})}const fd={poolSource:["vip"],requirePhone:!0,requireNickname:!0,requireAvatar:!1,requireBusiness:!1},Yw={matchTypes:[{id:"partner",label:"找伙伴",matchLabel:"找伙伴",icon:"⭐",matchFromDB:!0,showJoinAfterMatch:!1,price:1,enabled:!0},{id:"investor",label:"资源对接",matchLabel:"资源对接",icon:"👥",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0},{id:"mentor",label:"导师顾问",matchLabel:"导师顾问",icon:"❤️",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0},{id:"team",label:"团队招募",matchLabel:"加入项目",icon:"🎮",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0}],freeMatchLimit:3,matchPrice:1,settings:{enableFreeMatches:!0,enablePaidMatches:!0,maxMatchesPerDay:10},poolSettings:fd},OV=["⭐","👥","❤️","🎮","💼","🚀","💡","🎯","🔥","✨"];function DV(){const t=Ji(),[e,n]=b.useState(Yw),[s,a]=b.useState(!0),[i,o]=b.useState(!1),[c,u]=b.useState(!1),[h,f]=b.useState(null),[m,g]=b.useState({id:"",label:"",matchLabel:"",icon:"⭐",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0}),[y,N]=b.useState(null),[w,v]=b.useState(!1),k=async()=>{v(!0);try{const R=await Oe("/api/db/match-pool-counts");R!=null&&R.success&&R.data&&N(R.data)}catch(R){console.error("加载池子人数失败:",R)}finally{v(!1)}},C=async()=>{a(!0);try{const R=await Oe("/api/db/config/full?key=match_config"),K=(R==null?void 0:R.data)??(R==null?void 0:R.config);if(K){let re=K.poolSettings??fd;re.poolSource&&!Array.isArray(re.poolSource)&&(re={...re,poolSource:[re.poolSource]}),n({...Yw,...K,poolSettings:re})}}catch(R){console.error("加载匹配配置失败:",R)}finally{a(!1)}};b.useEffect(()=>{C(),k()},[]);const E=async()=>{o(!0);try{const R=await jt("/api/db/config",{key:"match_config",value:e,description:"匹配功能配置"});se.error((R==null?void 0:R.success)!==!1?"配置保存成功!":"保存失败: "+((R==null?void 0:R.error)||"未知错误"))}catch(R){console.error(R),se.error("保存失败")}finally{o(!1)}},I=R=>{f(R),g({...R}),u(!0)},L=()=>{f(null),g({id:"",label:"",matchLabel:"",icon:"⭐",matchFromDB:!1,showJoinAfterMatch:!0,price:1,enabled:!0}),u(!0)},W=()=>{if(!m.id||!m.label){se.error("请填写类型ID和名称");return}const R=[...e.matchTypes];if(h){const K=R.findIndex(re=>re.id===h.id);K!==-1&&(R[K]={...m})}else{if(R.some(K=>K.id===m.id)){se.error("类型ID已存在");return}R.push({...m})}n({...e,matchTypes:R}),u(!1)},D=R=>{confirm("确定要删除这个匹配类型吗?")&&n({...e,matchTypes:e.matchTypes.filter(K=>K.id!==R)})},P=R=>{n({...e,matchTypes:e.matchTypes.map(K=>K.id===R?{...K,enabled:!K.enabled}:K)})};return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex justify-end gap-3",children:[r.jsxs(X,{variant:"outline",onClick:C,disabled:s,className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${s?"animate-spin":""}`})," 刷新"]}),r.jsxs(X,{onClick:E,disabled:i,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"})," ",i?"保存中...":"保存配置"]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(wj,{className:"w-5 h-5 text-blue-400"})," 匹配池选择"]}),r.jsx(Ft,{className:"text-gray-400",children:"选择匹配的用户池和完善程度要求,只有满足条件的用户才可被匹配到"})]}),r.jsxs(Te,{className:"space-y-6",children:[r.jsxs("div",{className:"space-y-3",children:[r.jsx(Z,{className:"text-gray-300",children:"匹配来源池"}),r.jsx("p",{className:"text-gray-500 text-xs",children:"可同时勾选多个池子(取并集匹配)"}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[{value:"vip",label:"超级个体VIP会员",desc:"付费 ¥1980 的VIP会员",icon:"👑",countKey:"vip"},{value:"complete",label:"完善资料用户",desc:"符合下方完善度要求的用户",icon:"✅",countKey:"complete"},{value:"all",label:"全部用户",desc:"所有已注册用户",icon:"👥",countKey:"all"}].map(R=>{const K=e.poolSettings??fd,ue=(Array.isArray(K.poolSource)?K.poolSource:[K.poolSource]).includes(R.value),xe=y==null?void 0:y[R.countKey],H=()=>{const O=Array.isArray(K.poolSource)?[...K.poolSource]:[K.poolSource],J=ue?O.filter($=>$!==R.value):[...O,R.value];J.length===0&&J.push(R.value),n({...e,poolSettings:{...K,poolSource:J}})};return r.jsxs("button",{type:"button",onClick:H,className:`p-4 rounded-lg border text-left transition-all ${ue?"border-[#38bdac] bg-[#38bdac]/10":"border-gray-700 bg-[#0a1628] hover:border-gray-600"}`,children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:`w-5 h-5 rounded border-2 flex items-center justify-center text-xs ${ue?"border-[#38bdac] bg-[#38bdac] text-white":"border-gray-600"}`,children:ue&&"✓"}),r.jsx("span",{className:"text-xl",children:R.icon}),r.jsx("span",{className:`text-sm font-medium ${ue?"text-[#38bdac]":"text-gray-300"}`,children:R.label})]}),r.jsxs("span",{className:"text-lg font-bold text-white",children:[w?"...":xe??"-",r.jsx("span",{className:"text-xs text-gray-500 font-normal ml-1",children:"人"})]})]}),r.jsx("p",{className:"text-gray-500 text-xs mt-2",children:R.desc}),r.jsx("span",{role:"link",tabIndex:0,onClick:O=>{O.stopPropagation(),t(`/users?pool=${R.value}`)},onKeyDown:O=>{O.key==="Enter"&&(O.stopPropagation(),t(`/users?pool=${R.value}`))},className:"text-[#38bdac] text-xs mt-2 inline-block hover:underline cursor-pointer",children:"查看用户列表 →"})]},R.value)})})]}),r.jsxs("div",{className:"space-y-3 pt-4 border-t border-gray-700/50",children:[r.jsx(Z,{className:"text-gray-300",children:"用户资料完善要求(被匹配用户必须满足以下条件)"}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[{key:"requirePhone",label:"有手机号",icon:"📱"},{key:"requireNickname",label:"有昵称",icon:"👤"},{key:"requireAvatar",label:"有头像",icon:"🖼️"},{key:"requireBusiness",label:"有业务需求",icon:"💼"}].map(R=>{const re=(e.poolSettings??fd)[R.key];return r.jsxs("div",{className:"flex items-center gap-3 bg-[#0a1628] rounded-lg p-3",children:[r.jsx(Et,{checked:re,onCheckedChange:ue=>n({...e,poolSettings:{...e.poolSettings??fd,[R.key]:ue}})}),r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{children:R.icon}),r.jsx(Z,{className:"text-gray-300 text-sm",children:R.label})]})]},R.key)})})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsxs(Qe,{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(Va,{className:"w-5 h-5 text-yellow-400"})," 基础设置"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置免费匹配次数和付费规则"})]}),r.jsxs(Te,{className:"space-y-6",children:[r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"每日免费匹配次数"}),r.jsx(ae,{type:"number",min:0,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:e.freeMatchLimit,onChange:R=>n({...e,freeMatchLimit:parseInt(R.target.value,10)||0})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"付费匹配价格(元)"}),r.jsx(ae,{type:"number",min:.01,step:.01,className:"bg-[#0a1628] border-gray-700 text-white",value:e.matchPrice,onChange:R=>n({...e,matchPrice:parseFloat(R.target.value)||1})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"每日最大匹配次数"}),r.jsx(ae,{type:"number",min:1,max:100,className:"bg-[#0a1628] border-gray-700 text-white",value:e.settings.maxMatchesPerDay,onChange:R=>n({...e,settings:{...e.settings,maxMatchesPerDay:parseInt(R.target.value,10)||10}})})]})]}),r.jsxs("div",{className:"flex gap-8 pt-4 border-t border-gray-700/50",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:e.settings.enableFreeMatches,onCheckedChange:R=>n({...e,settings:{...e.settings,enableFreeMatches:R}})}),r.jsx(Z,{className:"text-gray-300",children:"启用免费匹配"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:e.settings.enablePaidMatches,onCheckedChange:R=>n({...e,settings:{...e.settings,enablePaidMatches:R}})}),r.jsx(Z,{className:"text-gray-300",children:"启用付费匹配"})]})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:[r.jsxs(Qe,{className:"flex flex-row items-center justify-between",children:[r.jsxs("div",{children:[r.jsxs(Xe,{className:"text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-[#38bdac]"})," 匹配类型管理"]}),r.jsx(Ft,{className:"text-gray-400",children:"配置不同的匹配类型及其价格"})]}),r.jsxs(X,{onClick:L,size:"sm",className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(xn,{className:"w-4 h-4 mr-1"})," 添加类型"]})]}),r.jsx(Te,{children:r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"图标"}),r.jsx(we,{className:"text-gray-400",children:"类型ID"}),r.jsx(we,{className:"text-gray-400",children:"显示名称"}),r.jsx(we,{className:"text-gray-400",children:"匹配标签"}),r.jsx(we,{className:"text-gray-400",children:"价格"}),r.jsx(we,{className:"text-gray-400",children:"数据库匹配"}),r.jsx(we,{className:"text-gray-400",children:"状态"}),r.jsx(we,{className:"text-right text-gray-400",children:"操作"})]})}),r.jsx(rs,{children:e.matchTypes.map(R=>r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{children:r.jsx("span",{className:"text-2xl",children:R.icon})}),r.jsx(be,{className:"font-mono text-gray-300",children:R.id}),r.jsx(be,{className:"text-white font-medium",children:R.label}),r.jsx(be,{className:"text-gray-300",children:R.matchLabel}),r.jsx(be,{children:r.jsxs(Je,{className:"bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/20 border-0",children:["¥",R.price]})}),r.jsx(be,{children:R.matchFromDB?r.jsx(Je,{className:"bg-green-500/20 text-green-400 hover:bg-green-500/20 border-0",children:"是"}):r.jsx(Je,{variant:"outline",className:"text-gray-500 border-gray-600",children:"否"})}),r.jsx(be,{children:r.jsx(Et,{checked:R.enabled,onCheckedChange:()=>P(R.id)})}),r.jsx(be,{className:"text-right",children:r.jsxs("div",{className:"flex items-center justify-end gap-1",children:[r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>I(R),className:"text-gray-400 hover:text-[#38bdac] hover:bg-[#38bdac]/10",children:r.jsx(Jt,{className:"w-4 h-4"})}),r.jsx(X,{variant:"ghost",size:"sm",onClick:()=>D(R.id),className:"text-red-400 hover:text-red-300 hover:bg-red-500/10",children:r.jsx(Xn,{className:"w-4 h-4"})})]})})]},R.id))})]})})]}),r.jsx(Lt,{open:c,onOpenChange:u,children:r.jsxs(It,{className:"bg-[#0f2137] border-gray-700 text-white max-w-lg",showCloseButton:!0,children:[r.jsx(_t,{children:r.jsxs(zt,{className:"text-white flex items-center gap-2",children:[h?r.jsx(Jt,{className:"w-5 h-5 text-[#38bdac]"}):r.jsx(xn,{className:"w-5 h-5 text-[#38bdac]"}),h?"编辑匹配类型":"添加匹配类型"]})}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"类型ID英文"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: partner",value:m.id,onChange:R=>g({...m,id:R.target.value}),disabled:!!h})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"图标"}),r.jsx("div",{className:"flex gap-1 flex-wrap",children:OV.map(R=>r.jsx("button",{type:"button",className:`w-8 h-8 text-lg rounded ${m.icon===R?"bg-[#38bdac]/30 ring-1 ring-[#38bdac]":"bg-[#0a1628]"}`,onClick:()=>g({...m,icon:R}),children:R},R))})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"显示名称"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: 超级个体",value:m.label,onChange:R=>g({...m,label:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"匹配标签"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white",placeholder:"如: 超级个体",value:m.matchLabel,onChange:R=>g({...m,matchLabel:R.target.value})})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Z,{className:"text-gray-300",children:"单次匹配价格(元)"}),r.jsx(ae,{type:"number",min:.01,step:.01,className:"bg-[#0a1628] border-gray-700 text-white",value:m.price,onChange:R=>g({...m,price:parseFloat(R.target.value)||1})})]}),r.jsxs("div",{className:"flex gap-6 pt-2",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:m.matchFromDB,onCheckedChange:R=>g({...m,matchFromDB:R})}),r.jsx(Z,{className:"text-gray-300 text-sm",children:"从数据库匹配"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:m.showJoinAfterMatch,onCheckedChange:R=>g({...m,showJoinAfterMatch:R})}),r.jsx(Z,{className:"text-gray-300 text-sm",children:"匹配后显示加入"})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Et,{checked:m.enabled,onCheckedChange:R=>g({...m,enabled:R})}),r.jsx(Z,{className:"text-gray-300 text-sm",children:"启用"})]})]})]}),r.jsxs(on,{children:[r.jsx(X,{variant:"outline",onClick:()=>u(!1),className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:"取消"}),r.jsxs(X,{onClick:W,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-4 h-4 mr-2"})," 保存"]})]})]})})]})}const Qw={partner:"找伙伴",investor:"资源对接",mentor:"导师顾问",team:"团队招募"};function LV(){const[t,e]=b.useState([]),[n,s]=b.useState(0),[a,i]=b.useState(1),[o,c]=b.useState(10),[u,h]=b.useState(""),[f,m]=b.useState(!0),[g,y]=b.useState(null),[N,w]=b.useState(null);async function v(){m(!0),y(null);try{const E=new URLSearchParams({page:String(a),pageSize:String(o)});u&&E.set("matchType",u);const I=await Oe(`/api/db/match-records?${E}`);I!=null&&I.success?(e(I.records||[]),s(I.total??0)):y("加载匹配记录失败")}catch{y("加载失败,请检查网络后重试")}finally{m(!1)}}b.useEffect(()=>{v()},[a,u]);const k=Math.ceil(n/o)||1,C=({userId:E,nickname:I,avatar:L})=>r.jsxs("div",{className:"flex items-center gap-3 cursor-pointer group",onClick:()=>w(E),children:[r.jsxs("div",{className:"w-9 h-9 rounded-full bg-[#38bdac]/20 flex items-center justify-center text-sm font-medium text-[#38bdac] flex-shrink-0 overflow-hidden",children:[L?r.jsx("img",{src:L,alt:"",className:"w-full h-full object-cover",onError:W=>{W.currentTarget.style.display="none"}}):null,r.jsx("span",{className:L?"hidden":"",children:(I||E||"?").charAt(0)})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-white group-hover:text-[#38bdac] transition-colors",children:I||E}),r.jsxs("div",{className:"text-xs text-gray-500 font-mono",children:[E==null?void 0:E.slice(0,16),(E==null?void 0:E.length)>16?"...":""]})]})]});return r.jsxs("div",{children:[g&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-500/20 border border-red-500/50 text-red-400 text-sm flex items-center justify-between",children:[r.jsx("span",{children:g}),r.jsx("button",{type:"button",onClick:()=>y(null),className:"hover:text-red-300",children:"×"})]}),r.jsxs("div",{className:"flex justify-between items-center mb-4",children:[r.jsxs("p",{className:"text-gray-400",children:["共 ",n," 条匹配记录 · 点击用户名查看详情"]}),r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsxs("select",{value:u,onChange:E=>{h(E.target.value),i(1)},className:"bg-[#0f2137] border border-gray-700 text-white rounded-lg px-3 py-2 text-sm",children:[r.jsx("option",{value:"",children:"全部类型"}),Object.entries(Qw).map(([E,I])=>r.jsx("option",{value:E,children:I},E))]}),r.jsxs("button",{type:"button",onClick:v,disabled:f,className:"flex items-center gap-2 px-4 py-2 rounded-lg border border-gray-600 text-gray-300 hover:bg-gray-700/50 transition-colors disabled:opacity-50",children:[r.jsx(Be,{className:`w-4 h-4 ${f?"animate-spin":""}`})," 刷新"]})]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:f?r.jsxs("div",{className:"flex justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"发起人"}),r.jsx(we,{className:"text-gray-400",children:"匹配到"}),r.jsx(we,{className:"text-gray-400",children:"类型"}),r.jsx(we,{className:"text-gray-400",children:"联系方式"}),r.jsx(we,{className:"text-gray-400",children:"匹配时间"})]})}),r.jsxs(rs,{children:[t.map(E=>r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{children:r.jsx(C,{userId:E.userId,nickname:E.userNickname,avatar:E.userAvatar})}),r.jsx(be,{children:E.matchedUserId?r.jsx(C,{userId:E.matchedUserId,nickname:E.matchedNickname,avatar:E.matchedUserAvatar}):r.jsx("span",{className:"text-gray-500",children:"—"})}),r.jsx(be,{children:r.jsx(Je,{className:"bg-[#38bdac]/20 text-[#38bdac] border-0",children:Qw[E.matchType]||E.matchType})}),r.jsxs(be,{className:"text-sm",children:[E.phone&&r.jsxs("div",{className:"text-green-400",children:["📱 ",E.phone]}),E.wechatId&&r.jsxs("div",{className:"text-blue-400",children:["💬 ",E.wechatId]}),!E.phone&&!E.wechatId&&r.jsx("span",{className:"text-gray-600",children:"-"})]}),r.jsx(be,{className:"text-gray-400",children:E.createdAt?new Date(E.createdAt).toLocaleString():"-"})]},E.id)),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:5,className:"text-center py-12 text-gray-500",children:"暂无匹配记录"})})]})]}),r.jsx(Us,{page:a,totalPages:k,total:n,pageSize:o,onPageChange:i,onPageSizeChange:E=>{c(E),i(1)}})]})})}),r.jsx(R0,{open:!!N,onClose:()=>w(null),userId:N,onUserUpdated:v})]})}function _V(){const[t,e]=b.useState("records");return r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsx("button",{type:"button",onClick:()=>e("records"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-all ${t==="records"?"bg-[#38bdac]/20 text-[#38bdac] border border-[#38bdac]/50":"bg-[#0a1628] text-gray-400 border border-gray-700 hover:text-white"}`,children:"匹配记录"}),r.jsx("button",{type:"button",onClick:()=>e("pool"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-all ${t==="pool"?"bg-[#38bdac]/20 text-[#38bdac] border border-[#38bdac]/50":"bg-[#0a1628] text-gray-400 border border-gray-700 hover:text-white"}`,children:"匹配池设置"})]}),t==="records"&&r.jsx(LV,{}),t==="pool"&&r.jsx(DV,{})]})}const Xw={investor:"资源对接",mentor:"导师顾问",team:"团队招募"};function zV(){const[t,e]=b.useState([]),[n,s]=b.useState(0),[a,i]=b.useState(1),[o,c]=b.useState(10),[u,h]=b.useState(!0),[f,m]=b.useState("investor"),[g,y]=b.useState(null);async function N(){h(!0);try{const C=new URLSearchParams({page:String(a),pageSize:String(o),matchType:f}),E=await Oe(`/api/db/match-records?${C}`);E!=null&&E.success&&(e(E.records||[]),s(E.total??0))}catch(C){console.error(C)}finally{h(!1)}}b.useEffect(()=>{N()},[a,f]);const w=async C=>{if(!C.phone&&!C.wechatId){se.info("该记录无联系方式,无法推送到存客宝");return}y(C.id);try{const E=await jt("/api/ckb/join",{type:C.matchType||"investor",phone:C.phone||"",wechat:C.wechatId||"",userId:C.userId,name:C.userNickname||""});se.error((E==null?void 0:E.message)||(E!=null&&E.success?"推送成功":"推送失败"))}catch(E){se.error("推送失败: "+(E instanceof Error?E.message:"网络错误"))}finally{y(null)}},v=Math.ceil(n/o)||1,k=C=>!!(C.phone||C.wechatId);return r.jsxs("div",{children:[r.jsxs("div",{className:"flex justify-between items-center mb-4",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400",children:"点击获客:有人填写手机号/微信号的直接显示,可一键推送到存客宝"}),r.jsxs("p",{className:"text-gray-500 text-xs mt-1",children:["共 ",n," 条记录 — 有联系方式的可触发存客宝添加好友"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("select",{value:f,onChange:C=>{m(C.target.value),i(1)},className:"bg-[#0f2137] border border-gray-700 text-white rounded-lg px-3 py-2 text-sm",children:Object.entries(Xw).map(([C,E])=>r.jsx("option",{value:C,children:E},C))}),r.jsxs(X,{onClick:N,disabled:u,variant:"outline",className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${u?"animate-spin":""}`})," 刷新"]})]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:u?r.jsxs("div",{className:"flex justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"发起人"}),r.jsx(we,{className:"text-gray-400",children:"匹配到"}),r.jsx(we,{className:"text-gray-400",children:"类型"}),r.jsx(we,{className:"text-gray-400",children:"联系方式"}),r.jsx(we,{className:"text-gray-400",children:"时间"}),r.jsx(we,{className:"text-gray-400 text-right",children:"操作"})]})}),r.jsxs(rs,{children:[t.map(C=>{var E,I;return r.jsxs(ut,{className:`border-gray-700/50 ${k(C)?"hover:bg-[#0a1628]":"opacity-60"}`,children:[r.jsx(be,{className:"text-white",children:C.userNickname||((E=C.userId)==null?void 0:E.slice(0,12))}),r.jsx(be,{className:"text-white",children:C.matchedNickname||((I=C.matchedUserId)==null?void 0:I.slice(0,12))}),r.jsx(be,{children:r.jsx(Je,{className:"bg-[#38bdac]/20 text-[#38bdac] border-0",children:Xw[C.matchType]||C.matchType})}),r.jsxs(be,{className:"text-sm",children:[C.phone&&r.jsxs("div",{className:"text-green-400",children:["📱 ",C.phone]}),C.wechatId&&r.jsxs("div",{className:"text-blue-400",children:["💬 ",C.wechatId]}),!C.phone&&!C.wechatId&&r.jsx("span",{className:"text-gray-600",children:"无联系方式"})]}),r.jsx(be,{className:"text-gray-400 text-sm",children:C.createdAt?new Date(C.createdAt).toLocaleString():"-"}),r.jsx(be,{className:"text-right",children:k(C)?r.jsxs(X,{size:"sm",onClick:()=>w(C),disabled:g===C.id,className:"bg-[#38bdac] hover:bg-[#2da396] text-white text-xs h-7 px-3",children:[r.jsx(MA,{className:"w-3 h-3 mr-1"}),g===C.id?"推送中...":"推送CKB"]}):r.jsx("span",{className:"text-gray-600 text-xs",children:"—"})})]},C.id)}),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:6,className:"text-center py-12 text-gray-500",children:"暂无记录"})})]})]}),r.jsx(Us,{page:a,totalPages:v,total:n,pageSize:o,onPageChange:i,onPageSizeChange:C=>{c(C),i(1)}})]})})})]})}const Zw={created:"已创建",pending_pay:"待支付",paid:"已支付",completed:"已完成",cancelled:"已取消"},FV={single:"单次",half_year:"半年",year:"年度"};function $V(){const[t,e]=b.useState([]),[n,s]=b.useState(!0),[a,i]=b.useState("");async function o(){s(!0);try{const c=a?`/api/db/mentor-consultations?status=${a}`:"/api/db/mentor-consultations",u=await Oe(c);u!=null&&u.success&&u.data&&e(u.data)}catch(c){console.error(c)}finally{s(!1)}}return b.useEffect(()=>{o()},[a]),r.jsxs("div",{children:[r.jsxs("div",{className:"flex justify-between items-center mb-4",children:[r.jsx("p",{className:"text-gray-400",children:"导师咨询预约记录"}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("select",{value:a,onChange:c=>i(c.target.value),className:"bg-[#0f2137] border border-gray-700 rounded-lg px-3 py-2 text-gray-300 text-sm",children:[r.jsx("option",{value:"",children:"全部状态"}),Object.entries(Zw).map(([c,u])=>r.jsx("option",{value:c,children:u},c))]}),r.jsxs(X,{onClick:o,disabled:n,variant:"outline",className:"border-gray-600 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-4 h-4 mr-2 ${n?"animate-spin":""}`})," 刷新"]})]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50",children:r.jsx(Te,{className:"p-0",children:n?r.jsx("div",{className:"py-12 text-center text-gray-400",children:"加载中..."}):r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"ID"}),r.jsx(we,{className:"text-gray-400",children:"用户ID"}),r.jsx(we,{className:"text-gray-400",children:"导师ID"}),r.jsx(we,{className:"text-gray-400",children:"类型"}),r.jsx(we,{className:"text-gray-400",children:"金额"}),r.jsx(we,{className:"text-gray-400",children:"状态"}),r.jsx(we,{className:"text-gray-400",children:"创建时间"})]})}),r.jsxs(rs,{children:[t.map(c=>r.jsxs(ut,{className:"border-gray-700/50",children:[r.jsx(be,{className:"text-gray-300",children:c.id}),r.jsx(be,{className:"text-gray-400",children:c.userId}),r.jsx(be,{className:"text-gray-400",children:c.mentorId}),r.jsx(be,{className:"text-gray-400",children:FV[c.consultationType]||c.consultationType}),r.jsxs(be,{className:"text-white",children:["¥",c.amount]}),r.jsx(be,{className:"text-gray-400",children:Zw[c.status]||c.status}),r.jsx(be,{className:"text-gray-500 text-sm",children:c.createdAt?new Date(c.createdAt).toLocaleString():"-"})]},c.id)),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:7,className:"text-center py-12 text-gray-500",children:"暂无预约记录"})})]})]})})})]})}function BV(){const[t,e]=b.useState("booking");return r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex gap-2",children:[r.jsx("button",{type:"button",onClick:()=>e("booking"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-all ${t==="booking"?"bg-[#38bdac]/20 text-[#38bdac] border border-[#38bdac]/50":"bg-[#0a1628] text-gray-400 border border-gray-700 hover:text-white"}`,children:"预约记录"}),r.jsx("button",{type:"button",onClick:()=>e("manage"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-all ${t==="manage"?"bg-[#38bdac]/20 text-[#38bdac] border border-[#38bdac]/50":"bg-[#0a1628] text-gray-400 border border-gray-700 hover:text-white"}`,children:"导师管理"})]}),t==="booking"&&r.jsx($V,{}),t==="manage"&&r.jsx("div",{className:"-mx-8",children:r.jsx(d3,{embedded:!0})})]})}function VV(){const[t,e]=b.useState([]),[n,s]=b.useState(0),[a,i]=b.useState(1),[o,c]=b.useState(10),[u,h]=b.useState(!0);async function f(){h(!0);try{const g=new URLSearchParams({page:String(a),pageSize:String(o),matchType:"team"}),y=await Oe(`/api/db/match-records?${g}`);y!=null&&y.success&&(e(y.records||[]),s(y.total??0))}catch(g){console.error(g)}finally{h(!1)}}b.useEffect(()=>{f()},[a]);const m=Math.ceil(n/o)||1;return r.jsxs("div",{children:[r.jsxs("div",{className:"flex justify-between items-center mb-4",children:[r.jsxs("div",{children:[r.jsxs("p",{className:"text-gray-400",children:["团队招募匹配记录,共 ",n," 条"]}),r.jsx("p",{className:"text-gray-500 text-xs mt-1",children:"用户通过「团队招募」提交联系方式到存客宝"})]}),r.jsxs("button",{type:"button",onClick:f,disabled:u,className:"flex items-center gap-2 px-4 py-2 rounded-lg border border-gray-600 text-gray-300 hover:bg-gray-700/50 transition-colors disabled:opacity-50",children:[r.jsx(Be,{className:`w-4 h-4 ${u?"animate-spin":""}`})," 刷新"]})]}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl",children:r.jsx(Te,{className:"p-0",children:u?r.jsxs("div",{className:"flex justify-center py-12",children:[r.jsx(Be,{className:"w-6 h-6 text-[#38bdac] animate-spin"}),r.jsx("span",{className:"ml-2 text-gray-400",children:"加载中..."})]}):r.jsxs(r.Fragment,{children:[r.jsxs(ns,{children:[r.jsx(ss,{children:r.jsxs(ut,{className:"bg-[#0a1628] hover:bg-[#0a1628] border-gray-700",children:[r.jsx(we,{className:"text-gray-400",children:"发起人"}),r.jsx(we,{className:"text-gray-400",children:"匹配到"}),r.jsx(we,{className:"text-gray-400",children:"联系方式"}),r.jsx(we,{className:"text-gray-400",children:"时间"})]})}),r.jsxs(rs,{children:[t.map(g=>r.jsxs(ut,{className:"hover:bg-[#0a1628] border-gray-700/50",children:[r.jsx(be,{className:"text-white",children:g.userNickname||g.userId}),r.jsx(be,{className:"text-white",children:g.matchedNickname||g.matchedUserId}),r.jsxs(be,{className:"text-gray-400 text-sm",children:[g.phone&&r.jsxs("div",{children:["📱 ",g.phone]}),g.wechatId&&r.jsxs("div",{children:["💬 ",g.wechatId]}),!g.phone&&!g.wechatId&&"-"]}),r.jsx(be,{className:"text-gray-400",children:g.createdAt?new Date(g.createdAt).toLocaleString():"-"})]},g.id)),t.length===0&&r.jsx(ut,{children:r.jsx(be,{colSpan:4,className:"text-center py-12 text-gray-500",children:"暂无团队招募记录"})})]})]}),r.jsx(Us,{page:a,totalPages:m,total:n,pageSize:o,onPageChange:i,onPageSizeChange:g=>{c(g),i(1)}})]})})})]})}const ej={partner:"找伙伴",investor:"资源对接",mentor:"导师顾问",team:"团队招募"},tj={partner:"⭐",investor:"👥",mentor:"❤️",team:"🎮"};function HV({onSwitchTab:t,onOpenCKB:e}={}){const n=Ji(),[s,a]=b.useState(null),[i,o]=b.useState(null),[c,u]=b.useState(!0),h=b.useCallback(async()=>{var m,g;u(!0);try{const[y,N]=await Promise.allSettled([Oe("/api/db/match-records?stats=true"),Oe("/api/db/ckb-plan-stats")]);if(y.status==="fulfilled"&&((m=y.value)!=null&&m.success)&&y.value.data){let w=y.value.data;if(w.totalMatches>0&&(!w.uniqueUsers||w.uniqueUsers===0))try{const v=await Oe("/api/db/match-records?page=1&pageSize=200");if(v!=null&&v.success&&v.records){const k=new Set(v.records.map(C=>C.userId).filter(Boolean));w={...w,uniqueUsers:k.size}}}catch{}a(w)}N.status==="fulfilled"&&((g=N.value)!=null&&g.success)&&N.value.data&&o(N.value.data)}catch(y){console.error("加载统计失败:",y)}finally{u(!1)}},[]);b.useEffect(()=>{h()},[h]);const f=m=>c?"—":String(m??0);return r.jsxs("div",{className:"space-y-8",children:[r.jsxs("div",{children:[r.jsxs("h3",{className:"text-lg font-semibold text-white mb-4 flex items-center gap-2",children:[r.jsx(zn,{className:"w-5 h-5 text-[#38bdac]"})," 找伙伴数据"]}),r.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-5",children:[r.jsx(Ee,{className:"bg-gradient-to-br from-[#0f2137] to-[#162d4a] border-gray-700/40 cursor-pointer hover:border-[#38bdac]/60 transition-all",onClick:()=>t==null?void 0:t("partner"),children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"总匹配次数"}),r.jsx("p",{className:"text-4xl font-bold text-white",children:f(s==null?void 0:s.totalMatches)}),r.jsxs("p",{className:"text-[#38bdac] text-xs mt-3 flex items-center gap-1",children:[r.jsx(qa,{className:"w-3 h-3"})," 查看匹配记录"]})]})}),r.jsx(Ee,{className:"bg-gradient-to-br from-[#0f2137] to-[#162d4a] border-gray-700/40 cursor-pointer hover:border-yellow-500/60 transition-all",onClick:()=>t==null?void 0:t("partner"),children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"今日匹配"}),r.jsx("p",{className:"text-4xl font-bold text-white",children:f(s==null?void 0:s.todayMatches)}),r.jsxs("p",{className:"text-yellow-400/60 text-xs mt-3 flex items-center gap-1",children:[r.jsx(Va,{className:"w-3 h-3"})," 今日实时"]})]})}),r.jsx(Ee,{className:"bg-gradient-to-br from-[#0f2137] to-[#162d4a] border-gray-700/40 cursor-pointer hover:border-blue-500/60 transition-all",onClick:()=>n("/users"),children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"匹配用户数"}),r.jsx("p",{className:"text-4xl font-bold text-white",children:f(s==null?void 0:s.uniqueUsers)}),r.jsxs("p",{className:"text-blue-400/60 text-xs mt-3 flex items-center gap-1",children:[r.jsx(qa,{className:"w-3 h-3"})," 查看用户管理"]})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/40",children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"人均匹配"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:c?"—":s!=null&&s.uniqueUsers?(s.totalMatches/s.uniqueUsers).toFixed(1):"0"})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-gray-700/40",children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"付费匹配次数"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:f(s==null?void 0:s.paidMatchCount)})]})})]})]}),(s==null?void 0:s.byType)&&s.byType.length>0&&r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold text-white mb-4",children:"各类型匹配分布"}),r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:s.byType.map(m=>{const g=s.totalMatches>0?m.count/s.totalMatches*100:0;return r.jsxs("div",{className:"bg-[#0f2137] border border-gray-700/40 rounded-xl p-5",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsx("span",{className:"text-2xl",children:tj[m.matchType]||"📊"}),r.jsx("span",{className:"text-gray-300 font-medium",children:ej[m.matchType]||m.matchType})]}),r.jsx("p",{className:"text-3xl font-bold text-white mb-2",children:m.count}),r.jsx("div",{className:"w-full h-2 bg-gray-700/50 rounded-full overflow-hidden",children:r.jsx("div",{className:"h-full bg-[#38bdac] rounded-full transition-all",style:{width:`${Math.min(g,100)}%`}})}),r.jsxs("p",{className:"text-gray-500 text-xs mt-1.5",children:[g.toFixed(1),"%"]})]},m.matchType)})})]}),r.jsxs("div",{children:[r.jsxs("h3",{className:"text-lg font-semibold text-white mb-4 flex items-center gap-2",children:[r.jsx($r,{className:"w-5 h-5 text-orange-400"})," AI 获客数据"]}),r.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-5 mb-6",children:[r.jsx(Ee,{className:"bg-[#0f2137] border-orange-500/20 cursor-pointer hover:border-orange-500/50 transition-colors",onClick:()=>e==null?void 0:e("submitted"),children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"已提交线索"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:c?"—":(i==null?void 0:i.ckbTotal)??0}),r.jsx("p",{className:"text-orange-400/60 text-xs mt-2",children:"点击查看明细 →"})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-orange-500/20 cursor-pointer hover:border-orange-500/50 transition-colors",onClick:()=>e==null?void 0:e("contact"),children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"有联系方式"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:c?"—":(i==null?void 0:i.withContact)??0}),r.jsx("p",{className:"text-orange-400/60 text-xs mt-2",children:"点击查看明细 →"})]})}),r.jsx(Ee,{className:"bg-[#0f2137] border-orange-500/20 cursor-pointer hover:border-orange-500/50 transition-colors",onClick:()=>e==null?void 0:e("test"),children:r.jsxs(Te,{className:"p-6",children:[r.jsx("p",{className:"text-gray-400 text-sm mb-2",children:"AI 添加进度"}),r.jsx("p",{className:"text-xl font-bold text-orange-400",children:"查看详情 →"}),r.jsx("p",{className:"text-gray-500 text-xs mt-2",children:"添加成功率 · 回复率 · API 文档"})]})})]}),(i==null?void 0:i.byType)&&i.byType.length>0&&r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3 mb-6",children:i.byType.map(m=>r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700/30 rounded-lg p-4 flex items-center gap-3",children:[r.jsx("span",{className:"text-xl",children:tj[m.matchType]||"📋"}),r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 text-xs",children:ej[m.matchType]||m.matchType}),r.jsx("p",{className:"text-xl font-bold text-white",children:m.total})]})]},m.matchType))})]})]})}const WV=["partner","investor","mentor","team"],Qg=[{key:"join_partner",label:"找伙伴场景"},{key:"join_investor",label:"资源对接场景"},{key:"join_mentor",label:"导师顾问场景"},{key:"join_team",label:"团队招募场景"},{key:"match",label:"匹配上报"},{key:"lead",label:"链接卡若"}],nj=`# 场景获客接口摘要
- 地址POST /v1/api/scenarios
- 必填apiKey、sign、timestamp
- 主标识phone 或 wechatId 至少一项
- 可选name、source、remark、tags、siteTags、portrait
- 签名:排除 sign/apiKey/portrait键名升序拼接值后双重 MD5
- 成功code=200message=新增成功 或 已存在`;function UV({initialTab:t="overview"}){const[e,n]=b.useState(t),[s,a]=b.useState("13800000000"),[i,o]=b.useState(""),[c,u]=b.useState(""),[h,f]=b.useState(nj),[m,g]=b.useState(!1),[y,N]=b.useState(!1),[w,v]=b.useState([]),[k,C]=b.useState([]),[E,I]=b.useState({}),[L,W]=b.useState([{endpoint:"/api/ckb/join",label:"找伙伴",method:"POST",status:"idle"},{endpoint:"/api/ckb/join",label:"资源对接",method:"POST",status:"idle"},{endpoint:"/api/ckb/join",label:"导师顾问",method:"POST",status:"idle"},{endpoint:"/api/ckb/join",label:"团队招募",method:"POST",status:"idle"},{endpoint:"/api/ckb/match",label:"匹配上报",method:"POST",status:"idle"},{endpoint:"/api/miniprogram/ckb/lead",label:"链接卡若",method:"POST",status:"idle"},{endpoint:"/api/match/config",label:"匹配配置",method:"GET",status:"idle"}]),D=b.useMemo(()=>{const O={};return Qg.forEach(J=>{O[J.key]=E[J.key]||{apiUrl:"https://ckbapi.quwanzhi.com/v1/api/scenarios",apiKey:"fyngh-ecy9h-qkdae-epwd5-rz6kd",source:"",tags:"",siteTags:"创业实验APP",notes:""}}),O},[E]),P=O=>{const J=s.trim(),$=i.trim();return O<=3?{type:WV[O],phone:J||void 0,wechat:$||void 0,userId:"admin_test",name:"后台测试"}:O===4?{matchType:"partner",phone:J||void 0,wechat:$||void 0,userId:"admin_test",nickname:"后台测试",matchedUser:{id:"test",nickname:"测试",matchScore:88}}:O===5?{phone:J||void 0,wechatId:$||void 0,userId:"admin_test",name:"后台测试"}:{}};async function R(){N(!0);try{const[O,J,$]=await Promise.all([Oe("/api/db/config/full?key=ckb_config"),Oe("/api/db/ckb-leads?mode=submitted&page=1&pageSize=50"),Oe("/api/db/ckb-leads?mode=contact&page=1&pageSize=50")]),M=O==null?void 0:O.data;M!=null&&M.routes&&I(M.routes),M!=null&&M.docNotes&&u(M.docNotes),M!=null&&M.docContent&&f(M.docContent),J!=null&&J.success&&v(J.records||[]),$!=null&&$.success&&C($.records||[])}finally{N(!1)}}b.useEffect(()=>{n(t)},[t]),b.useEffect(()=>{R()},[]);async function K(){g(!0);try{const O=await jt("/api/db/config",{key:"ckb_config",value:{routes:D,docNotes:c,docContent:h},description:"存客宝接口配置"});se.error((O==null?void 0:O.success)!==!1?"存客宝配置已保存":`保存失败: ${(O==null?void 0:O.error)||"未知错误"}`)}catch(O){se.error(`保存失败: ${O instanceof Error?O.message:"网络错误"}`)}finally{g(!1)}}const re=(O,J)=>{I($=>({...$,[O]:{...D[O],...J}}))},ue=async O=>{const J=L[O];if(J.method==="POST"&&!s.trim()&&!i.trim()){se.error("请填写测试手机号");return}const $=[...L];$[O]={...J,status:"testing",message:void 0,responseTime:void 0},W($);const M=performance.now();try{const q=J.method==="GET"?await Oe(J.endpoint):await jt(J.endpoint,P(O)),B=Math.round(performance.now()-M),z=(q==null?void 0:q.message)||"",G=(q==null?void 0:q.success)===!0||z.includes("已存在")||z.includes("已加入")||z.includes("已提交"),oe=[...L];oe[O]={...J,status:G?"success":"error",message:z||(G?"正常":"异常"),responseTime:B},W(oe),await R()}catch(q){const B=Math.round(performance.now()-M),z=[...L];z[O]={...J,status:"error",message:q instanceof Error?q.message:"失败",responseTime:B},W(z)}},xe=async()=>{if(!s.trim()&&!i.trim()){se.error("请填写测试手机号");return}for(let O=0;O<L.length;O++)await ue(O)},H=(O,J)=>r.jsx("div",{className:"overflow-auto rounded-lg border border-gray-700/30",children:r.jsxs("table",{className:"w-full text-sm",children:[r.jsx("thead",{className:"bg-[#0a1628] text-gray-400",children:r.jsxs("tr",{children:[r.jsx("th",{className:"text-left px-4 py-3",children:"发起人"}),r.jsx("th",{className:"text-left px-4 py-3",children:"类型"}),r.jsx("th",{className:"text-left px-4 py-3",children:"手机号"}),r.jsx("th",{className:"text-left px-4 py-3",children:"微信号"}),r.jsx("th",{className:"text-left px-4 py-3",children:"时间"})]})}),r.jsx("tbody",{children:O.length===0?r.jsx("tr",{children:r.jsx("td",{colSpan:5,className:"text-center py-10 text-gray-500",children:J})}):O.map($=>r.jsxs("tr",{className:"border-t border-gray-700/30",children:[r.jsx("td",{className:"px-4 py-3 text-white",children:$.userNickname||$.userId}),r.jsx("td",{className:"px-4 py-3 text-gray-300",children:$.matchType}),r.jsx("td",{className:"px-4 py-3 text-green-400",children:$.phone||"—"}),r.jsx("td",{className:"px-4 py-3 text-blue-400",children:$.wechatId||"—"}),r.jsx("td",{className:"px-4 py-3 text-gray-400",children:$.createdAt?new Date($.createdAt).toLocaleString():"—"})]},$.id))})]})});return r.jsx(Ee,{className:"bg-[#0f2137] border-orange-500/30 mb-6",children:r.jsxs(Te,{className:"p-5",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("h3",{className:"text-white font-semibold",children:"存客宝工作台"}),r.jsx(Je,{className:"bg-orange-500/20 text-orange-400 border-0 text-xs",children:"CKB"}),r.jsxs("button",{type:"button",onClick:()=>n("doc"),className:"text-orange-400/60 text-xs hover:text-orange-400 flex items-center gap-1",children:[r.jsx(qa,{className:"w-3 h-3"})," API 文档"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs(X,{onClick:()=>R(),variant:"outline",size:"sm",className:"border-gray-700 text-gray-300 hover:bg-gray-700/50 bg-transparent",children:[r.jsx(Be,{className:`w-3.5 h-3.5 mr-1 ${y?"animate-spin":""}`})," 刷新"]}),r.jsxs(X,{onClick:K,disabled:m,size:"sm",className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:[r.jsx(kn,{className:"w-3.5 h-3.5 mr-1"})," ",m?"保存中...":"保存配置"]})]})]}),r.jsx("div",{className:"flex flex-wrap gap-2 mb-5",children:[["overview","概览"],["submitted","已提交线索"],["contact","有联系方式"],["config","场景配置"],["test","接口测试"],["doc","API 文档"]].map(([O,J])=>r.jsx("button",{type:"button",onClick:()=>n(O),className:`px-4 py-2 rounded-lg text-sm transition-colors ${e===O?"bg-orange-500 text-white":"bg-[#0a1628] text-gray-400 hover:text-white"}`,children:J},O))}),e==="overview"&&r.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:[r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700/30 rounded-xl p-5",children:[r.jsx("p",{className:"text-gray-400 text-xs mb-2",children:"已提交线索"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:w.length})]}),r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700/30 rounded-xl p-5",children:[r.jsx("p",{className:"text-gray-400 text-xs mb-2",children:"有联系方式"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:k.length})]}),r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700/30 rounded-xl p-5",children:[r.jsx("p",{className:"text-gray-400 text-xs mb-2",children:"场景配置数"}),r.jsx("p",{className:"text-3xl font-bold text-white",children:Qg.length})]}),r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700/30 rounded-xl p-5",children:[r.jsx("p",{className:"text-gray-400 text-xs mb-2",children:"文档备注"}),r.jsx("p",{className:"text-sm text-gray-300 line-clamp-3",children:c||"未填写"})]})]}),e==="submitted"&&H(w,"暂无已提交线索"),e==="contact"&&H(k,"暂无有联系方式线索"),e==="config"&&r.jsx("div",{className:"space-y-4",children:Qg.map(O=>r.jsxs("div",{className:"bg-[#0a1628] border border-gray-700/30 rounded-xl p-4",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsx("h4",{className:"text-white font-medium",children:O.label}),r.jsx(Je,{className:"bg-orange-500/20 text-orange-300 border-0 text-xs",children:O.key})]}),r.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"API 地址"}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white h-9 text-sm",value:D[O.key].apiUrl,onChange:J=>re(O.key,{apiUrl:J.target.value})})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"API Key"}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white h-9 text-sm",value:D[O.key].apiKey,onChange:J=>re(O.key,{apiKey:J.target.value})})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"Source"}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white h-9 text-sm",value:D[O.key].source,onChange:J=>re(O.key,{source:J.target.value})})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"Tags"}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white h-9 text-sm",value:D[O.key].tags,onChange:J=>re(O.key,{tags:J.target.value})})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"SiteTags"}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white h-9 text-sm",value:D[O.key].siteTags,onChange:J=>re(O.key,{siteTags:J.target.value})})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"说明备注"}),r.jsx(ae,{className:"bg-[#0f2137] border-gray-700 text-white h-9 text-sm",value:D[O.key].notes,onChange:J=>re(O.key,{notes:J.target.value})})]})]})]},O.key))}),e==="test"&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex gap-3 mb-4",children:[r.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[r.jsx(Bi,{className:"w-4 h-4 text-gray-500 shrink-0"}),r.jsxs("div",{className:"flex-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"测试手机号"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm mt-0.5",value:s,onChange:O=>a(O.target.value)})]})]}),r.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[r.jsx("span",{className:"text-gray-500 text-sm shrink-0",children:"💬"}),r.jsxs("div",{className:"flex-1",children:[r.jsx(Z,{className:"text-gray-500 text-xs",children:"微信号(可选)"}),r.jsx(ae,{className:"bg-[#0a1628] border-gray-700 text-white h-8 text-sm mt-0.5",value:i,onChange:O=>o(O.target.value)})]})]}),r.jsx("div",{className:"flex items-end",children:r.jsxs(X,{onClick:xe,className:"bg-orange-500 hover:bg-orange-600 text-white",children:[r.jsx(Va,{className:"w-3.5 h-3.5 mr-1"})," 全部测试"]})})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2",children:L.map((O,J)=>r.jsxs("div",{className:"flex items-center justify-between bg-[#0a1628] rounded-lg px-3 py-2 border border-gray-700/30",children:[r.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[O.status==="idle"&&r.jsx("div",{className:"w-2 h-2 rounded-full bg-gray-600 shrink-0"}),O.status==="testing"&&r.jsx(Be,{className:"w-3 h-3 text-yellow-400 animate-spin shrink-0"}),O.status==="success"&&r.jsx(rx,{className:"w-3 h-3 text-green-400 shrink-0"}),O.status==="error"&&r.jsx(vj,{className:"w-3 h-3 text-red-400 shrink-0"}),r.jsx("span",{className:"text-white text-xs truncate",children:O.label})]}),r.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[O.responseTime!==void 0&&r.jsxs("span",{className:"text-gray-600 text-[10px]",children:[O.responseTime,"ms"]}),r.jsx("button",{type:"button",onClick:()=>ue(J),disabled:O.status==="testing",className:"text-orange-400/60 hover:text-orange-400 text-[10px] disabled:opacity-50",children:"测试"})]})]},`${O.endpoint}-${J}`))})]}),e==="doc"&&r.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"bg-[#0a1628] rounded-lg border border-gray-700/30 p-4",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsx("h4",{className:"text-white text-sm font-medium",children:"场景获客 API 摘要"}),r.jsxs("a",{href:"https://ckbapi.quwanzhi.com/v1/api/scenarios",target:"_blank",rel:"noreferrer",className:"text-orange-400/70 hover:text-orange-400 text-xs flex items-center gap-1",children:[r.jsx(qa,{className:"w-3 h-3"})," 打开外链"]})]}),r.jsx("pre",{className:"whitespace-pre-wrap text-xs text-gray-400 leading-6",children:h||nj})]}),r.jsxs("div",{className:"bg-[#0a1628] rounded-lg border border-gray-700/30 p-4",children:[r.jsx("h4",{className:"text-white text-sm font-medium mb-3",children:"说明备注(可编辑)"}),r.jsx("textarea",{className:"w-full min-h-[260px] bg-[#0f2137] border border-gray-700 rounded-md text-sm text-gray-300 p-3 outline-none focus:border-orange-500/50 resize-y",value:c,onChange:O=>u(O.target.value),placeholder:"记录 Token、入口差异、回复率统计规则、对接约定等。"})]})]})]})})}const KV=[{id:"stats",label:"数据统计",icon:sx},{id:"partner",label:"找伙伴",icon:zn},{id:"resource",label:"资源对接",icon:MM},{id:"mentor",label:"导师预约",icon:CM},{id:"team",label:"团队招募",icon:xd}];function qV(){const[t,e]=b.useState("stats"),[n,s]=b.useState(!1),[a,i]=b.useState("overview");return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"mb-6 flex items-start justify-between gap-4",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[r.jsx(zn,{className:"w-6 h-6 text-[#38bdac]"}),"找伙伴"]}),r.jsx("p",{className:"text-gray-400 mt-1",children:"数据统计、匹配池与记录、资源对接、导师预约、团队招募"})]}),r.jsxs(X,{type:"button",variant:"outline",onClick:()=>s(o=>!o),className:"border-orange-500/40 text-orange-300 hover:bg-orange-500/10 bg-transparent",children:[r.jsx($r,{className:"w-4 h-4 mr-2"}),"存客宝"]})]}),n&&r.jsx(UV,{initialTab:a}),r.jsx("div",{className:"flex flex-wrap gap-1 mb-6 bg-[#0f2137] rounded-lg p-1 border border-gray-700/50",children:KV.map(o=>{const c=t===o.id;return r.jsxs("button",{type:"button",onClick:()=>e(o.id),className:`flex items-center gap-2 px-5 py-2.5 rounded-md text-sm font-medium transition-all ${c?"bg-[#38bdac] text-white shadow-lg":"text-gray-400 hover:text-white hover:bg-gray-700/50"}`,children:[r.jsx(o.icon,{className:"w-4 h-4"}),o.label]},o.id)})}),t==="stats"&&r.jsx(HV,{onSwitchTab:o=>e(o),onOpenCKB:o=>{i(o||"overview"),s(!0)}}),t==="partner"&&r.jsx(_V,{}),t==="resource"&&r.jsx(zV,{}),t==="mentor"&&r.jsx(BV,{}),t==="team"&&r.jsx(VV,{})]})}function GV(){return r.jsxs("div",{className:"p-8 w-full",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-8",children:[r.jsx($r,{className:"w-8 h-8 text-[#38bdac]"}),r.jsx("h1",{className:"text-2xl font-bold text-white",children:"API 接口文档"})]}),r.jsx("p",{className:"text-gray-400 mb-6",children:"API 风格RESTful · 版本 v1.0 · 基础路径 /api · 简单、清晰、易用。"}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"1. 接口总览"})}),r.jsxs(Te,{className:"space-y-4 text-sm",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 mb-2",children:"接口分类"}),r.jsxs("ul",{className:"space-y-1 text-gray-300 font-mono",children:[r.jsx("li",{children:"/api/book — 书籍内容(章节列表、内容获取、同步)"}),r.jsx("li",{children:"/api/payment — 支付系统(订单创建、回调、状态查询)"}),r.jsx("li",{children:"/api/referral — 分销系统(邀请码、收益、提现)"}),r.jsx("li",{children:"/api/user — 用户系统(登录、注册、信息更新)"}),r.jsx("li",{children:"/api/match — 匹配系统(寻找匹配、匹配历史)"}),r.jsx("li",{children:"/api/admin — 管理后台(内容/订单/用户/分销管理)"}),r.jsx("li",{children:"/api/config — 配置系统"})]})]}),r.jsxs("div",{children:[r.jsx("p",{className:"text-gray-400 mb-2",children:"认证方式"}),r.jsx("p",{className:"text-gray-300",children:"用户Cookie session_id可选"}),r.jsx("p",{className:"text-gray-300",children:"管理端Authorization: Bearer admin-token-secret"})]})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"2. 书籍内容"})}),r.jsxs(Te,{className:"space-y-2 text-sm text-gray-300 font-mono",children:[r.jsx("p",{children:"GET /api/book/all-chapters — 获取所有章节"}),r.jsx("p",{children:"GET /api/book/chapter/:id — 获取单章内容"}),r.jsx("p",{children:"POST /api/book/sync — 同步章节(需管理员认证)"})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"3. 支付"})}),r.jsxs(Te,{className:"space-y-2 text-sm text-gray-300 font-mono",children:[r.jsx("p",{children:"POST /api/payment/create-order — 创建订单"}),r.jsx("p",{children:"POST /api/payment/alipay/notify — 支付宝回调"}),r.jsx("p",{children:"POST /api/payment/wechat/notify — 微信回调"})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"4. 分销与用户"})}),r.jsxs(Te,{className:"space-y-2 text-sm text-gray-300 font-mono",children:[r.jsx("p",{children:"/api/referral/* — 邀请码、收益查询、提现"}),r.jsx("p",{children:"/api/user/* — 登录、注册、信息更新"}),r.jsx("p",{children:"/api/match/* — 匹配、匹配历史"})]})]}),r.jsxs(Ee,{className:"bg-[#0f2137] border-gray-700/50 shadow-xl mb-6",children:[r.jsx(Qe,{children:r.jsx(Xe,{className:"text-white",children:"5. 管理后台"})}),r.jsxs(Te,{className:"space-y-2 text-sm text-gray-300 font-mono",children:[r.jsx("p",{children:"GET/POST /api/admin/referral-settings — 推广/分销设置(含 VIP 配置)"}),r.jsx("p",{children:"GET /api/db/users、/api/db/book — 用户与章节数据"}),r.jsx("p",{children:"GET /api/admin/orders — 订单列表"})]})]}),r.jsx("p",{className:"text-gray-500 text-xs",children:"完整说明见项目内 开发文档/5、接口/API接口完整文档.md"})]})}function JV(){const t=Gi();return r.jsx("div",{className:"min-h-screen bg-[#0a1628] flex items-center justify-center p-8",children:r.jsxs("div",{className:"text-center max-w-md",children:[r.jsx("div",{className:"inline-flex items-center justify-center w-20 h-20 rounded-full bg-red-500/20 text-red-400 mb-6",children:r.jsx(yj,{className:"w-10 h-10"})}),r.jsx("h1",{className:"text-4xl font-bold text-white mb-2",children:"404"}),r.jsx("p",{className:"text-gray-400 mb-1",children:"页面不存在"}),r.jsx("p",{className:"text-sm text-gray-500 font-mono mb-8 break-all",children:t.pathname}),r.jsx(X,{asChild:!0,className:"bg-[#38bdac] hover:bg-[#2da396] text-white",children:r.jsxs(nx,{to:"/",children:[r.jsx(zM,{className:"w-4 h-4 mr-2"}),"返回首页"]})})]})})}function YV(){return r.jsxs(kT,{children:[r.jsx(Gt,{path:"/login",element:r.jsx(sI,{})}),r.jsxs(Gt,{path:"/",element:r.jsx(i5,{}),children:[r.jsx(Gt,{index:!0,element:r.jsx(tg,{to:"/dashboard",replace:!0})}),r.jsx(Gt,{path:"dashboard",element:r.jsx(fR,{})}),r.jsx(Gt,{path:"orders",element:r.jsx(pR,{})}),r.jsx(Gt,{path:"users",element:r.jsx(mR,{})}),r.jsx(Gt,{path:"distribution",element:r.jsx(_R,{})}),r.jsx(Gt,{path:"withdrawals",element:r.jsx(zR,{})}),r.jsx(Gt,{path:"content",element:r.jsx(pV,{})}),r.jsx(Gt,{path:"referral-settings",element:r.jsx(oS,{})}),r.jsx(Gt,{path:"author-settings",element:r.jsx(tg,{to:"/settings?tab=author",replace:!0})}),r.jsx(Gt,{path:"vip-roles",element:r.jsx(PV,{})}),r.jsx(Gt,{path:"mentors",element:r.jsx(d3,{})}),r.jsx(Gt,{path:"mentor-consultations",element:r.jsx(RV,{})}),r.jsx(Gt,{path:"admin-users",element:r.jsx(tg,{to:"/settings?tab=admin",replace:!0})}),r.jsx(Gt,{path:"settings",element:r.jsx(wV,{})}),r.jsx(Gt,{path:"payment",element:r.jsx(jV,{})}),r.jsx(Gt,{path:"site",element:r.jsx(EV,{})}),r.jsx(Gt,{path:"qrcodes",element:r.jsx(TV,{})}),r.jsx(Gt,{path:"find-partner",element:r.jsx(qV,{})}),r.jsx(Gt,{path:"match",element:r.jsx(AV,{})}),r.jsx(Gt,{path:"match-records",element:r.jsx(IV,{})}),r.jsx(Gt,{path:"api-doc",element:r.jsx(GV,{})}),r.jsx(Gt,{path:"api-docs",element:r.jsx(c3,{})})]}),r.jsx(Gt,{path:"*",element:r.jsx(JV,{})})]})}ME.createRoot(document.getElementById("root")).render(r.jsx(b.StrictMode,{children:r.jsx(PT,{future:{v7_startTransition:!0,v7_relativeSplatPath:!0},children:r.jsx(YV,{})})}));