var Yv=Object.defineProperty;var Kv=(e,t,n)=>t in e?Yv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var pe=(e,t,n)=>Kv(e,typeof t!="symbol"?t+"":t,n);function Xv(e,t){for(var n=0;nr[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Jv(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Wh={exports:{}},il={},Hh={exports:{}},fe={};/** * @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 gi=Symbol.for("react.element"),Zv=Symbol.for("react.portal"),ew=Symbol.for("react.fragment"),tw=Symbol.for("react.strict_mode"),nw=Symbol.for("react.profiler"),rw=Symbol.for("react.provider"),sw=Symbol.for("react.context"),ow=Symbol.for("react.forward_ref"),iw=Symbol.for("react.suspense"),aw=Symbol.for("react.memo"),lw=Symbol.for("react.lazy"),kf=Symbol.iterator;function cw(e){return e===null||typeof e!="object"?null:(e=kf&&e[kf]||e["@@iterator"],typeof e=="function"?e:null)}var Qh={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Vh=Object.assign,qh={};function Ks(e,t,n){this.props=e,this.context=t,this.refs=qh,this.updater=n||Qh}Ks.prototype.isReactComponent={};Ks.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=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,e,t,"setState")};Ks.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Gh(){}Gh.prototype=Ks.prototype;function Hu(e,t,n){this.props=e,this.context=t,this.refs=qh,this.updater=n||Qh}var Qu=Hu.prototype=new Gh;Qu.constructor=Hu;Vh(Qu,Ks.prototype);Qu.isPureReactComponent=!0;var bf=Array.isArray,Yh=Object.prototype.hasOwnProperty,Vu={current:null},Kh={key:!0,ref:!0,__self:!0,__source:!0};function Xh(e,t,n){var r,s={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)Yh.call(t,r)&&!Kh.hasOwnProperty(r)&&(s[r]=t[r]);var a=arguments.length-2;if(a===1)s.children=n;else if(1>>1,le=D[Z];if(0>>1;Zs(Nt,G))Ats(an,Nt)?(D[Z]=an,D[At]=G,Z=At):(D[Z]=Nt,D[Ue]=G,Z=Ue);else if(Ats(an,G))D[Z]=an,D[At]=G,Z=At;else break e}}return W}function s(D,W){var G=D.sortIndex-W.sortIndex;return G!==0?G:D.id-W.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,a=i.now();e.unstable_now=function(){return i.now()-a}}var l=[],u=[],d=1,f=null,p=3,v=!1,g=!1,y=!1,w=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x(D){for(var W=n(u);W!==null;){if(W.callback===null)r(u);else if(W.startTime<=D)r(u),W.sortIndex=W.expirationTime,t(l,W);else break;W=n(u)}}function C(D){if(y=!1,x(D),!g)if(n(l)!==null)g=!0,V(T);else{var W=n(u);W!==null&&$(C,W.startTime-D)}}function T(D,W){g=!1,y&&(y=!1,h(_),_=-1),v=!0;var G=p;try{for(x(W),f=n(l);f!==null&&(!(f.expirationTime>W)||D&&!Y());){var Z=f.callback;if(typeof Z=="function"){f.callback=null,p=f.priorityLevel;var le=Z(f.expirationTime<=W);W=e.unstable_now(),typeof le=="function"?f.callback=le:f===n(l)&&r(l),x(W)}else r(l);f=n(l)}if(f!==null)var ft=!0;else{var Ue=n(u);Ue!==null&&$(C,Ue.startTime-W),ft=!1}return ft}finally{f=null,p=G,v=!1}}var b=!1,j=null,_=-1,I=5,R=-1;function Y(){return!(e.unstable_now()-RD||125Z?(D.sortIndex=G,t(u,D),n(l)===null&&D===n(u)&&(y?(h(_),_=-1):y=!0,$(C,G-Z))):(D.sortIndex=le,t(l,D),g||v||(g=!0,V(T))),D},e.unstable_shouldYield=Y,e.unstable_wrapCallback=function(D){var W=p;return function(){var G=p;p=W;try{return D.apply(this,arguments)}finally{p=G}}}})(nm);tm.exports=nm;var Sw=tm.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 kw=S,nn=Sw;function A(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Cc=Object.prototype.hasOwnProperty,bw=/^[: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]*$/,Ef={},Nf={};function Cw(e){return Cc.call(Nf,e)?!0:Cc.call(Ef,e)?!1:bw.test(e)?Nf[e]=!0:(Ef[e]=!0,!1)}function Ew(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Nw(e,t,n,r){if(t===null||typeof t>"u"||Ew(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Mt(e,t,n,r,s,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var vt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){vt[e]=new Mt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];vt[t]=new Mt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){vt[e]=new Mt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){vt[e]=new Mt(e,2,!1,e,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(e){vt[e]=new Mt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){vt[e]=new Mt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){vt[e]=new Mt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){vt[e]=new Mt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){vt[e]=new Mt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Gu=/[\-:]([a-z])/g;function Yu(e){return e[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(e){var t=e.replace(Gu,Yu);vt[t]=new Mt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Gu,Yu);vt[t]=new Mt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Gu,Yu);vt[t]=new Mt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){vt[e]=new Mt(e,1,!1,e.toLowerCase(),null,!1,!1)});vt.xlinkHref=new Mt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){vt[e]=new Mt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ku(e,t,n,r){var s=vt.hasOwnProperty(t)?vt[t]:null;(s!==null?s.type!==0:r||!(2a||s[i]!==o[a]){var l=` `+s[i].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=i&&0<=a);break}}}finally{$l=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?bo(e):""}function jw(e){switch(e.tag){case 5:return bo(e.type);case 16:return bo("Lazy");case 13:return bo("Suspense");case 19:return bo("SuspenseList");case 0:case 2:case 15:return e=Fl(e.type,!1),e;case 11:return e=Fl(e.type.render,!1),e;case 1:return e=Fl(e.type,!0),e;default:return""}}function Tc(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ws:return"Fragment";case vs:return"Portal";case Ec:return"Profiler";case Xu:return"StrictMode";case Nc:return"Suspense";case jc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case om:return(e.displayName||"Context")+".Consumer";case sm:return(e._context.displayName||"Context")+".Provider";case Ju:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Zu:return t=e.displayName||null,t!==null?t:Tc(e.type)||"Memo";case dr:t=e._payload,e=e._init;try{return Tc(e(t))}catch{}}return null}function Tw(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Tc(t);case 8:return t===Xu?"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 t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function jr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function am(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _w(e){var t=am(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ri(e){e._valueTracker||(e._valueTracker=_w(e))}function lm(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=am(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function xa(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function _c(e,t){var n=t.checked;return Ae({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Tf(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=jr(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function cm(e,t){t=t.checked,t!=null&&Ku(e,"checked",t,!1)}function Pc(e,t){cm(e,t);var n=jr(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ic(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ic(e,t.type,jr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function _f(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ic(e,t,n){(t!=="number"||xa(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Co=Array.isArray;function Is(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Oi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Wo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Po={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},Pw=["Webkit","ms","Moz","O"];Object.keys(Po).forEach(function(e){Pw.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Po[t]=Po[e]})});function pm(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Po.hasOwnProperty(e)&&Po[e]?(""+t).trim():t+"px"}function hm(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=pm(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var Iw=Ae({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 Lc(e,t){if(t){if(Iw[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(A(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(A(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(A(61))}if(t.style!=null&&typeof t.style!="object")throw Error(A(62))}}function Dc(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mc=null;function ed(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ac=null,Rs=null,Os=null;function Rf(e){if(e=wi(e)){if(typeof Ac!="function")throw Error(A(280));var t=e.stateNode;t&&(t=dl(t),Ac(e.stateNode,e.type,t))}}function mm(e){Rs?Os?Os.push(e):Os=[e]:Rs=e}function gm(){if(Rs){var e=Rs,t=Os;if(Os=Rs=null,Rf(e),t)for(e=0;e>>=0,e===0?32:31-(Bw(e)/Ww|0)|0}var Li=64,Di=4194304;function Eo(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ca(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~s;a!==0?r=Eo(a):(o&=i,o!==0&&(r=Eo(o)))}else i=n&~s,i!==0?r=Eo(i):o!==0&&(r=Eo(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,o=t&-t,s>=o||s===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function yi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Tn(t),e[t]=n}function qw(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Ro),Uf=" ",Bf=!1;function Mm(e,t){switch(e){case"keyup":return Sx.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Am(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var xs=!1;function bx(e,t){switch(e){case"compositionend":return Am(t);case"keypress":return t.which!==32?null:(Bf=!0,Uf);case"textInput":return e=t.data,e===Uf&&Bf?null:e;default:return null}}function Cx(e,t){if(xs)return e==="compositionend"||!ld&&Mm(e,t)?(e=Lm(),ia=od=mr=null,xs=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Vf(n)}}function Um(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Um(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Bm(){for(var e=window,t=xa();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=xa(e.document)}return t}function cd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ox(e){var t=Bm(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Um(n.ownerDocument.documentElement,n)){if(r!==null&&cd(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,o=Math.min(r.start,s);r=r.end===void 0?o:Math.min(r.end,s),!e.extend&&o>r&&(s=r,r=o,o=s),s=qf(n,o);var i=qf(n,r);s&&i&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Ss=null,Wc=null,Lo=null,Hc=!1;function Gf(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hc||Ss==null||Ss!==xa(r)||(r=Ss,"selectionStart"in r&&cd(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Lo&&Yo(Lo,r)||(Lo=r,r=ja(Wc,"onSelect"),0Cs||(e.current=Kc[Cs],Kc[Cs]=null,Cs--)}function je(e,t){Cs++,Kc[Cs]=e.current,e.current=t}var Tr={},Ct=Ir(Tr),Qt=Ir(!1),Xr=Tr;function Us(e,t){var n=e.type.contextTypes;if(!n)return Tr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},o;for(o in n)s[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Vt(e){return e=e.childContextTypes,e!=null}function _a(){Pe(Qt),Pe(Ct)}function tp(e,t,n){if(Ct.current!==Tr)throw Error(A(168));je(Ct,t),je(Qt,n)}function Xm(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(A(108,Tw(e)||"Unknown",s));return Ae({},n,r)}function Pa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tr,Xr=Ct.current,je(Ct,e),je(Qt,Qt.current),!0}function np(e,t,n){var r=e.stateNode;if(!r)throw Error(A(169));n?(e=Xm(e,t,Xr),r.__reactInternalMemoizedMergedChildContext=e,Pe(Qt),Pe(Ct),je(Ct,e)):Pe(Qt),je(Qt,n)}var Xn=null,fl=!1,Zl=!1;function Jm(e){Xn===null?Xn=[e]:Xn.push(e)}function Qx(e){fl=!0,Jm(e)}function Rr(){if(!Zl&&Xn!==null){Zl=!0;var e=0,t=be;try{var n=Xn;for(be=1;e>=i,s-=i,Jn=1<<32-Tn(t)+s|n<_?(I=j,j=null):I=j.sibling;var R=p(h,j,x[_],C);if(R===null){j===null&&(j=I);break}e&&j&&R.alternate===null&&t(h,j),m=o(R,m,_),b===null?T=R:b.sibling=R,b=R,j=I}if(_===x.length)return n(h,j),Re&&Fr(h,_),T;if(j===null){for(;__?(I=j,j=null):I=j.sibling;var Y=p(h,j,R.value,C);if(Y===null){j===null&&(j=I);break}e&&j&&Y.alternate===null&&t(h,j),m=o(Y,m,_),b===null?T=Y:b.sibling=Y,b=Y,j=I}if(R.done)return n(h,j),Re&&Fr(h,_),T;if(j===null){for(;!R.done;_++,R=x.next())R=f(h,R.value,C),R!==null&&(m=o(R,m,_),b===null?T=R:b.sibling=R,b=R);return Re&&Fr(h,_),T}for(j=r(h,j);!R.done;_++,R=x.next())R=v(j,h,_,R.value,C),R!==null&&(e&&R.alternate!==null&&j.delete(R.key===null?_:R.key),m=o(R,m,_),b===null?T=R:b.sibling=R,b=R);return e&&j.forEach(function(ue){return t(h,ue)}),Re&&Fr(h,_),T}function w(h,m,x,C){if(typeof x=="object"&&x!==null&&x.type===ws&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Ii:e:{for(var T=x.key,b=m;b!==null;){if(b.key===T){if(T=x.type,T===ws){if(b.tag===7){n(h,b.sibling),m=s(b,x.props.children),m.return=h,h=m;break e}}else if(b.elementType===T||typeof T=="object"&&T!==null&&T.$$typeof===dr&&op(T)===b.type){n(h,b.sibling),m=s(b,x.props),m.ref=ho(h,b,x),m.return=h,h=m;break e}n(h,b);break}else t(h,b);b=b.sibling}x.type===ws?(m=Yr(x.props.children,h.mode,C,x.key),m.return=h,h=m):(C=ha(x.type,x.key,x.props,null,h.mode,C),C.ref=ho(h,m,x),C.return=h,h=C)}return i(h);case vs:e:{for(b=x.key;m!==null;){if(m.key===b)if(m.tag===4&&m.stateNode.containerInfo===x.containerInfo&&m.stateNode.implementation===x.implementation){n(h,m.sibling),m=s(m,x.children||[]),m.return=h,h=m;break e}else{n(h,m);break}else t(h,m);m=m.sibling}m=ac(x,h.mode,C),m.return=h,h=m}return i(h);case dr:return b=x._init,w(h,m,b(x._payload),C)}if(Co(x))return g(h,m,x,C);if(lo(x))return y(h,m,x,C);Bi(h,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,m!==null&&m.tag===6?(n(h,m.sibling),m=s(m,x),m.return=h,h=m):(n(h,m),m=ic(x,h.mode,C),m.return=h,h=m),i(h)):n(h,m)}return w}var Ws=ng(!0),rg=ng(!1),Oa=Ir(null),La=null,js=null,pd=null;function hd(){pd=js=La=null}function md(e){var t=Oa.current;Pe(Oa),e._currentValue=t}function Zc(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Ds(e,t){La=e,pd=js=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ht=!0),e.firstContext=null)}function gn(e){var t=e._currentValue;if(pd!==e)if(e={context:e,memoizedValue:t,next:null},js===null){if(La===null)throw Error(A(308));js=e,La.dependencies={lanes:0,firstContext:e}}else js=js.next=e;return t}var Qr=null;function gd(e){Qr===null?Qr=[e]:Qr.push(e)}function sg(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,gd(t)):(n.next=s.next,s.next=n),t.interleaved=n,sr(e,r)}function sr(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var fr=!1;function yd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function og(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function er(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function kr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,me&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,sr(e,n)}return s=r.interleaved,s===null?(t.next=t,gd(r)):(t.next=s.next,s.next=t),r.interleaved=t,sr(e,n)}function la(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nd(e,n)}}function ip(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?s=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?s=o=t:o=o.next=t}else s=o=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Da(e,t,n,r){var s=e.updateQueue;fr=!1;var o=s.firstBaseUpdate,i=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var l=a,u=l.next;l.next=null,i===null?o=u:i.next=u,i=l;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==i&&(a===null?d.firstBaseUpdate=u:a.next=u,d.lastBaseUpdate=l))}if(o!==null){var f=s.baseState;i=0,d=u=l=null,a=o;do{var p=a.lane,v=a.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var g=e,y=a;switch(p=t,v=n,y.tag){case 1:if(g=y.payload,typeof g=="function"){f=g.call(v,f,p);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=y.payload,p=typeof g=="function"?g.call(v,f,p):g,p==null)break e;f=Ae({},f,p);break e;case 2:fr=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,p=s.effects,p===null?s.effects=[a]:p.push(a))}else v={eventTime:v,lane:p,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(u=d=v,l=f):d=d.next=v,i|=p;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;p=a,a=p.next,p.next=null,s.lastBaseUpdate=p,s.shared.pending=null}}while(!0);if(d===null&&(l=f),s.baseState=l,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do i|=s.lane,s=s.next;while(s!==t)}else o===null&&(s.shared.lanes=0);es|=i,e.lanes=i,e.memoizedState=f}}function ap(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=tc.transition;tc.transition={};try{e(!1),t()}finally{be=n,tc.transition=r}}function kg(){return yn().memoizedState}function Yx(e,t,n){var r=Cr(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},bg(e))Cg(t,n);else if(n=sg(e,t,n,r),n!==null){var s=Lt();_n(n,e,r,s),Eg(n,t,r)}}function Kx(e,t,n){var r=Cr(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(bg(e))Cg(t,s);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(s.hasEagerState=!0,s.eagerState=a,In(a,i)){var l=t.interleaved;l===null?(s.next=s,gd(t)):(s.next=l.next,l.next=s),t.interleaved=s;return}}catch{}finally{}n=sg(e,t,s,r),n!==null&&(s=Lt(),_n(n,e,r,s),Eg(n,t,r))}}function bg(e){var t=e.alternate;return e===Me||t!==null&&t===Me}function Cg(e,t){Do=Aa=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Eg(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,nd(e,n)}}var $a={readContext:gn,useCallback:xt,useContext:xt,useEffect:xt,useImperativeHandle:xt,useInsertionEffect:xt,useLayoutEffect:xt,useMemo:xt,useReducer:xt,useRef:xt,useState:xt,useDebugValue:xt,useDeferredValue:xt,useTransition:xt,useMutableSource:xt,useSyncExternalStore:xt,useId:xt,unstable_isNewReconciler:!1},Xx={readContext:gn,useCallback:function(e,t){return $n().memoizedState=[e,t===void 0?null:t],e},useContext:gn,useEffect:cp,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ua(4194308,4,yg.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ua(4194308,4,e,t)},useInsertionEffect:function(e,t){return ua(4,2,e,t)},useMemo:function(e,t){var n=$n();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=$n();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Yx.bind(null,Me,e),[r.memoizedState,e]},useRef:function(e){var t=$n();return e={current:e},t.memoizedState=e},useState:lp,useDebugValue:Ed,useDeferredValue:function(e){return $n().memoizedState=e},useTransition:function(){var e=lp(!1),t=e[0];return e=Gx.bind(null,e[1]),$n().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Me,s=$n();if(Re){if(n===void 0)throw Error(A(407));n=n()}else{if(n=t(),dt===null)throw Error(A(349));Zr&30||cg(r,t,n)}s.memoizedState=n;var o={value:n,getSnapshot:t};return s.queue=o,cp(dg.bind(null,r,o,e),[e]),r.flags|=2048,ri(9,ug.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=$n(),t=dt.identifierPrefix;if(Re){var n=Zn,r=Jn;n=(r&~(1<<32-Tn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ti++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Fn]=t,e[Jo]=r,Dg(e,t,!1,!1),t.stateNode=e;e:{switch(i=Dc(n,r),n){case"dialog":_e("cancel",e),_e("close",e),s=r;break;case"iframe":case"object":case"embed":_e("load",e),s=r;break;case"video":case"audio":for(s=0;sVs&&(t.flags|=128,r=!0,mo(o,!1),t.lanes=4194304)}else{if(!r)if(e=Ma(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),mo(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!Re)return St(t),null}else 2*Ge()-o.renderingStartTime>Vs&&n!==1073741824&&(t.flags|=128,r=!0,mo(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ge(),t.sibling=null,n=De.current,je(De,r?n&1|2:n&1),t):(St(t),null);case 22:case 23:return Id(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Zt&1073741824&&(St(t),t.subtreeFlags&6&&(t.flags|=8192)):St(t),null;case 24:return null;case 25:return null}throw Error(A(156,t.tag))}function o0(e,t){switch(dd(t),t.tag){case 1:return Vt(t.type)&&_a(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Hs(),Pe(Qt),Pe(Ct),xd(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return wd(t),null;case 13:if(Pe(De),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(A(340));Bs()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Pe(De),null;case 4:return Hs(),null;case 10:return md(t.type._context),null;case 22:case 23:return Id(),null;case 24:return null;default:return null}}var Hi=!1,kt=!1,i0=typeof WeakSet=="function"?WeakSet:Set,Q=null;function Ts(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ze(e,t,r)}else n.current=null}function lu(e,t,n){try{n()}catch(r){ze(e,t,r)}}var xp=!1;function a0(e,t){if(Qc=Ea,e=Bm(),cd(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var s=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,l=-1,u=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||s!==0&&f.nodeType!==3||(a=i+s),f!==o||r!==0&&f.nodeType!==3||(l=i+r),f.nodeType===3&&(i+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++u===s&&(a=i),p===o&&++d===r&&(l=i),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Vc={focusedElem:e,selectionRange:n},Ea=!1,Q=t;Q!==null;)if(t=Q,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Q=e;else for(;Q!==null;){t=Q;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var y=g.memoizedProps,w=g.memoizedState,h=t.stateNode,m=h.getSnapshotBeforeUpdate(t.elementType===t.type?y:kn(t.type,y),w);h.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(A(163))}}catch(C){ze(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,Q=e;break}Q=t.return}return g=xp,xp=!1,g}function Mo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var o=s.destroy;s.destroy=void 0,o!==void 0&&lu(t,n,o)}s=s.next}while(s!==r)}}function ml(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function cu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function $g(e){var t=e.alternate;t!==null&&(e.alternate=null,$g(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Fn],delete t[Jo],delete t[Yc],delete t[Wx],delete t[Hx])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Fg(e){return e.tag===5||e.tag===3||e.tag===4}function Sp(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Fg(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function uu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ta));else if(r!==4&&(e=e.child,e!==null))for(uu(e,t,n),e=e.sibling;e!==null;)uu(e,t,n),e=e.sibling}function du(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(du(e,t,n),e=e.sibling;e!==null;)du(e,t,n),e=e.sibling}var gt=null,bn=!1;function cr(e,t,n){for(n=n.child;n!==null;)zg(e,t,n),n=n.sibling}function zg(e,t,n){if(Bn&&typeof Bn.onCommitFiberUnmount=="function")try{Bn.onCommitFiberUnmount(al,n)}catch{}switch(n.tag){case 5:kt||Ts(n,t);case 6:var r=gt,s=bn;gt=null,cr(e,t,n),gt=r,bn=s,gt!==null&&(bn?(e=gt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):gt.removeChild(n.stateNode));break;case 18:gt!==null&&(bn?(e=gt,n=n.stateNode,e.nodeType===8?Jl(e.parentNode,n):e.nodeType===1&&Jl(e,n),qo(e)):Jl(gt,n.stateNode));break;case 4:r=gt,s=bn,gt=n.stateNode.containerInfo,bn=!0,cr(e,t,n),gt=r,bn=s;break;case 0:case 11:case 14:case 15:if(!kt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var o=s,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&lu(n,t,i),s=s.next}while(s!==r)}cr(e,t,n);break;case 1:if(!kt&&(Ts(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){ze(n,t,a)}cr(e,t,n);break;case 21:cr(e,t,n);break;case 22:n.mode&1?(kt=(r=kt)||n.memoizedState!==null,cr(e,t,n),kt=r):cr(e,t,n);break;default:cr(e,t,n)}}function kp(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new i0),t.forEach(function(r){var s=g0.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function xn(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=i),r&=~o}if(r=s,r=Ge()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*c0(r/1960))-r,10e?16:e,gr===null)var r=!1;else{if(e=gr,gr=null,Ua=0,me&6)throw Error(A(331));var s=me;for(me|=4,Q=e.current;Q!==null;){var o=Q,i=o.child;if(Q.flags&16){var a=o.deletions;if(a!==null){for(var l=0;lGe()-_d?Gr(e,0):Td|=n),qt(e,t)}function Gg(e,t){t===0&&(e.mode&1?(t=Di,Di<<=1,!(Di&130023424)&&(Di=4194304)):t=1);var n=Lt();e=sr(e,t),e!==null&&(yi(e,t,n),qt(e,n))}function m0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Gg(e,n)}function g0(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(A(314))}r!==null&&r.delete(t),Gg(e,n)}var Yg;Yg=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Qt.current)Ht=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ht=!1,r0(e,t,n);Ht=!!(e.flags&131072)}else Ht=!1,Re&&t.flags&1048576&&Zm(t,Ra,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;da(e,t),e=t.pendingProps;var s=Us(t,Ct.current);Ds(t,n),s=kd(null,t,r,e,s,n);var o=bd();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Vt(r)?(o=!0,Pa(t)):o=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,yd(t),s.updater=hl,t.stateNode=s,s._reactInternals=t,tu(t,r,e,n),t=su(null,t,r,!0,o,n)):(t.tag=0,Re&&o&&ud(t),It(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(da(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=v0(r),e=kn(r,e),s){case 0:t=ru(null,t,r,e,n);break e;case 1:t=yp(null,t,r,e,n);break e;case 11:t=mp(null,t,r,e,n);break e;case 14:t=gp(null,t,r,kn(r.type,e),n);break e}throw Error(A(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:kn(r,s),ru(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:kn(r,s),yp(e,t,r,s,n);case 3:e:{if(Rg(t),e===null)throw Error(A(387));r=t.pendingProps,o=t.memoizedState,s=o.element,og(e,t),Da(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){s=Qs(Error(A(423)),t),t=vp(e,t,r,n,s);break e}else if(r!==s){s=Qs(Error(A(424)),t),t=vp(e,t,r,n,s);break e}else for(en=Sr(t.stateNode.containerInfo.firstChild),tn=t,Re=!0,Cn=null,n=rg(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Bs(),r===s){t=or(e,t,n);break e}It(e,t,r,n)}t=t.child}return t;case 5:return ig(t),e===null&&Jc(t),r=t.type,s=t.pendingProps,o=e!==null?e.memoizedProps:null,i=s.children,qc(r,s)?i=null:o!==null&&qc(r,o)&&(t.flags|=32),Ig(e,t),It(e,t,i,n),t.child;case 6:return e===null&&Jc(t),null;case 13:return Og(e,t,n);case 4:return vd(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ws(t,null,r,n):It(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:kn(r,s),mp(e,t,r,s,n);case 7:return It(e,t,t.pendingProps,n),t.child;case 8:return It(e,t,t.pendingProps.children,n),t.child;case 12:return It(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,o=t.memoizedProps,i=s.value,je(Oa,r._currentValue),r._currentValue=i,o!==null)if(In(o.value,i)){if(o.children===s.children&&!Qt.current){t=or(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=er(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Zc(o.return,n,t),a.lanes|=n;break}l=l.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(A(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Zc(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}It(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,Ds(t,n),s=gn(s),r=r(s),t.flags|=1,It(e,t,r,n),t.child;case 14:return r=t.type,s=kn(r,t.pendingProps),s=kn(r.type,s),gp(e,t,r,s,n);case 15:return _g(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:kn(r,s),da(e,t),t.tag=1,Vt(r)?(e=!0,Pa(t)):e=!1,Ds(t,n),Ng(t,r,s),tu(t,r,s,n),su(null,t,r,!0,e,n);case 19:return Lg(e,t,n);case 22:return Pg(e,t,n)}throw Error(A(156,t.tag))};function Kg(e,t){return bm(e,t)}function y0(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hn(e,t,n,r){return new y0(e,t,n,r)}function Od(e){return e=e.prototype,!(!e||!e.isReactComponent)}function v0(e){if(typeof e=="function")return Od(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ju)return 11;if(e===Zu)return 14}return 2}function Er(e,t){var n=e.alternate;return n===null?(n=hn(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ha(e,t,n,r,s,o){var i=2;if(r=e,typeof e=="function")Od(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ws:return Yr(n.children,s,o,t);case Xu:i=8,s|=8;break;case Ec:return e=hn(12,n,t,s|2),e.elementType=Ec,e.lanes=o,e;case Nc:return e=hn(13,n,t,s),e.elementType=Nc,e.lanes=o,e;case jc:return e=hn(19,n,t,s),e.elementType=jc,e.lanes=o,e;case im:return yl(n,s,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case sm:i=10;break e;case om:i=9;break e;case Ju:i=11;break e;case Zu:i=14;break e;case dr:i=16,r=null;break e}throw Error(A(130,e==null?e:typeof e,""))}return t=hn(i,n,t,s),t.elementType=e,t.type=r,t.lanes=o,t}function Yr(e,t,n,r){return e=hn(7,e,r,t),e.lanes=n,e}function yl(e,t,n,r){return e=hn(22,e,r,t),e.elementType=im,e.lanes=n,e.stateNode={isHidden:!1},e}function ic(e,t,n){return e=hn(6,e,null,t),e.lanes=n,e}function ac(e,t,n){return t=hn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function w0(e,t,n,r,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ul(0),this.expirationTimes=Ul(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ul(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Ld(e,t,n,r,s,o,i,a,l){return e=new w0(e,t,n,a,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=hn(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},yd(o),e}function x0(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(ey)}catch(e){console.error(e)}}ey(),em.exports=sn;var E0=em.exports,Pp=E0;bc.createRoot=Pp.createRoot,bc.hydrateRoot=Pp.hydrateRoot;/** * @remix-run/router v1.23.0 * * 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 oi(){return oi=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function ty(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function j0(){return Math.random().toString(36).substr(2,8)}function Rp(e,t){return{usr:e.state,key:e.key,idx:t}}function gu(e,t,n,r){return n===void 0&&(n=null),oi({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Zs(t):t,{state:n,key:t&&t.key||r||j0()})}function Ha(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Zs(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function T0(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:o=!1}=r,i=s.history,a=yr.Pop,l=null,u=d();u==null&&(u=0,i.replaceState(oi({},i.state,{idx:u}),""));function d(){return(i.state||{idx:null}).idx}function f(){a=yr.Pop;let w=d(),h=w==null?null:w-u;u=w,l&&l({action:a,location:y.location,delta:h})}function p(w,h){a=yr.Push;let m=gu(y.location,w,h);u=d()+1;let x=Rp(m,u),C=y.createHref(m);try{i.pushState(x,"",C)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;s.location.assign(C)}o&&l&&l({action:a,location:y.location,delta:1})}function v(w,h){a=yr.Replace;let m=gu(y.location,w,h);u=d();let x=Rp(m,u),C=y.createHref(m);i.replaceState(x,"",C),o&&l&&l({action:a,location:y.location,delta:0})}function g(w){let h=s.location.origin!=="null"?s.location.origin:s.location.href,m=typeof w=="string"?w:Ha(w);return m=m.replace(/ $/,"%20"),Ye(h,"No window.location.(origin|href) available to create URL for href: "+m),new URL(m,h)}let y={get action(){return a},get location(){return e(s,i)},listen(w){if(l)throw new Error("A history only accepts one active listener");return s.addEventListener(Ip,f),l=w,()=>{s.removeEventListener(Ip,f),l=null}},createHref(w){return t(s,w)},createURL:g,encodeLocation(w){let h=g(w);return{pathname:h.pathname,search:h.search,hash:h.hash}},push:p,replace:v,go(w){return i.go(w)}};return y}var Op;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Op||(Op={}));function _0(e,t,n){return n===void 0&&(n="/"),P0(e,t,n)}function P0(e,t,n,r){let s=typeof t=="string"?Zs(t):t,o=$d(s.pathname||"/",n);if(o==null)return null;let i=ny(e);I0(i);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};l.relativePath.startsWith("/")&&(Ye(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=Nr([r,l.relativePath]),d=n.concat(l);o.children&&o.children.length>0&&(Ye(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),ny(o.children,t,d,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:$0(u,o.index),routesMeta:d})};return e.forEach((o,i)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))s(o,i);else for(let l of ry(o.path))s(o,i,l)}),t}function ry(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return s?[o,""]:[o];let i=ry(r.join("/")),a=[];return a.push(...i.map(l=>l===""?o:[o,l].join("/"))),s&&a.push(...i),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function I0(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:F0(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const R0=/^:[\w-]+$/,O0=3,L0=2,D0=1,M0=10,A0=-2,Lp=e=>e==="*";function $0(e,t){let n=e.split("/"),r=n.length;return n.some(Lp)&&(r+=A0),t&&(r+=L0),n.filter(s=>!Lp(s)).reduce((s,o)=>s+(R0.test(o)?O0:o===""?D0:M0),r)}function F0(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function z0(e,t,n){let{routesMeta:r}=e,s={},o="/",i=[];for(let a=0;a{let{paramName:p,isOptional:v}=d;if(p==="*"){let y=a[f]||"";i=o.slice(0,o.length-y.length).replace(/(.)\/+$/,"$1")}const g=a[f];return v&&!g?u[p]=void 0:u[p]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function B0(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),ty(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function W0(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ty(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function $d(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function H0(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Zs(e):e;return{pathname:n?n.startsWith("/")?n:Q0(n,t):t,search:G0(r),hash:Y0(s)}}function Q0(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function lc(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function V0(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Fd(e,t){let n=V0(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function zd(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Zs(e):(s=oi({},e),Ye(!s.pathname||!s.pathname.includes("?"),lc("?","pathname","search",s)),Ye(!s.pathname||!s.pathname.includes("#"),lc("#","pathname","hash",s)),Ye(!s.search||!s.search.includes("#"),lc("#","search","hash",s)));let o=e===""||s.pathname==="",i=o?"/":s.pathname,a;if(i==null)a=n;else{let f=t.length-1;if(!r&&i.startsWith("..")){let p=i.split("/");for(;p[0]==="..";)p.shift(),f-=1;s.pathname=p.join("/")}a=f>=0?t[f]:"/"}let l=H0(s,a),u=i&&i!=="/"&&i.endsWith("/"),d=(o||i===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||d)&&(l.pathname+="/"),l}const Nr=e=>e.join("/").replace(/\/\/+/g,"/"),q0=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),G0=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Y0=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function K0(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const sy=["post","put","patch","delete"];new Set(sy);const X0=["get",...sy];new Set(X0);/** * React Router v6.30.1 * * 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 ii(){return ii=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),S.useCallback(function(u,d){if(d===void 0&&(d={}),!a.current)return;if(typeof u=="number"){r.go(u);return}let f=zd(u,JSON.parse(i),o,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Nr([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,i,o,e])}function ay(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=S.useContext(Or),{matches:s}=S.useContext(Lr),{pathname:o}=to(),i=JSON.stringify(Fd(s,r.v7_relativeSplatPath));return S.useMemo(()=>zd(e,JSON.parse(i),o,n==="path"),[e,i,o,n])}function tS(e,t){return nS(e,t)}function nS(e,t,n,r){eo()||Ye(!1);let{navigator:s}=S.useContext(Or),{matches:o}=S.useContext(Lr),i=o[o.length-1],a=i?i.params:{};i&&i.pathname;let l=i?i.pathnameBase:"/";i&&i.route;let u=to(),d;if(t){var f;let w=typeof t=="string"?Zs(t):t;l==="/"||(f=w.pathname)!=null&&f.startsWith(l)||Ye(!1),d=w}else d=u;let p=d.pathname||"/",v=p;if(l!=="/"){let w=l.replace(/^\//,"").split("/");v="/"+p.replace(/^\//,"").split("/").slice(w.length).join("/")}let g=_0(e,{pathname:v}),y=aS(g&&g.map(w=>Object.assign({},w,{params:Object.assign({},a,w.params),pathname:Nr([l,s.encodeLocation?s.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?l:Nr([l,s.encodeLocation?s.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),o,n,r);return t&&y?S.createElement(kl.Provider,{value:{location:ii({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:yr.Pop}},y):y}function rS(){let e=dS(),t=K0(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},t),n?S.createElement("pre",{style:s},n):null,null)}const sS=S.createElement(rS,null);class oS extends S.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?S.createElement(Lr.Provider,{value:this.props.routeContext},S.createElement(oy.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function iS(e){let{routeContext:t,match:n,children:r}=e,s=S.useContext(Ud);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),S.createElement(Lr.Provider,{value:t},r)}function aS(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,a=(s=n)==null?void 0:s.errors;if(a!=null){let d=i.findIndex(f=>f.route.id&&(a==null?void 0:a[f.route.id])!==void 0);d>=0||Ye(!1),i=i.slice(0,Math.min(i.length,d+1))}let l=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,u+1):i=[i[0]];break}}}return i.reduceRight((d,f,p)=>{let v,g=!1,y=null,w=null;n&&(v=a&&f.route.id?a[f.route.id]:void 0,y=f.route.errorElement||sS,l&&(u<0&&p===0?(pS("route-fallback"),g=!0,w=null):u===p&&(g=!0,w=f.route.hydrateFallbackElement||null)));let h=t.concat(i.slice(0,p+1)),m=()=>{let x;return v?x=y:g?x=w:f.route.Component?x=S.createElement(f.route.Component,null):f.route.element?x=f.route.element:x=d,S.createElement(iS,{match:f,routeContext:{outlet:d,matches:h,isDataRoute:n!=null},children:x})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?S.createElement(oS,{location:n.location,revalidation:n.revalidation,component:y,error:v,children:m(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):m()},null)}var ly=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ly||{}),cy=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(cy||{});function lS(e){let t=S.useContext(Ud);return t||Ye(!1),t}function cS(e){let t=S.useContext(J0);return t||Ye(!1),t}function uS(e){let t=S.useContext(Lr);return t||Ye(!1),t}function uy(e){let t=uS(),n=t.matches[t.matches.length-1];return n.route.id||Ye(!1),n.route.id}function dS(){var e;let t=S.useContext(oy),n=cS(),r=uy();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function fS(){let{router:e}=lS(ly.UseNavigateStable),t=uy(cy.UseNavigateStable),n=S.useRef(!1);return iy(()=>{n.current=!0}),S.useCallback(function(s,o){o===void 0&&(o={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,ii({fromRouteId:t},o)))},[e,t])}const Dp={};function pS(e,t,n){Dp[e]||(Dp[e]=!0)}function hS(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function dy(e){let{to:t,replace:n,state:r,relative:s}=e;eo()||Ye(!1);let{future:o,static:i}=S.useContext(Or),{matches:a}=S.useContext(Lr),{pathname:l}=to(),u=Dr(),d=zd(t,Fd(a,o.v7_relativeSplatPath),l,s==="path"),f=JSON.stringify(d);return S.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:s}),[u,f,s,n,r]),null}function Ur(e){Ye(!1)}function mS(e){let{basename:t="/",children:n=null,location:r,navigationType:s=yr.Pop,navigator:o,static:i=!1,future:a}=e;eo()&&Ye(!1);let l=t.replace(/^\/*/,"/"),u=S.useMemo(()=>({basename:l,navigator:o,static:i,future:ii({v7_relativeSplatPath:!1},a)}),[l,a,o,i]);typeof r=="string"&&(r=Zs(r));let{pathname:d="/",search:f="",hash:p="",state:v=null,key:g="default"}=r,y=S.useMemo(()=>{let w=$d(d,l);return w==null?null:{location:{pathname:w,search:f,hash:p,state:v,key:g},navigationType:s}},[l,d,f,p,v,g,s]);return y==null?null:S.createElement(Or.Provider,{value:u},S.createElement(kl.Provider,{children:n,value:y}))}function gS(e){let{children:t,location:n}=e;return tS(yu(t),n)}new Promise(()=>{});function yu(e,t){t===void 0&&(t=[]);let n=[];return S.Children.forEach(e,(r,s)=>{if(!S.isValidElement(r))return;let o=[...t,s];if(r.type===S.Fragment){n.push.apply(n,yu(r.props.children,o));return}r.type!==Ur&&Ye(!1),!r.props.index||!r.props.children||Ye(!1);let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=yu(r.props.children,o)),n.push(i)}),n}/** * React Router DOM v6.30.1 * * 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 vu(){return vu=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function vS(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function wS(e,t){return e.button===0&&(!t||t==="_self")&&!vS(e)}function wu(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(s=>[n,s]):[[n,r]])},[]))}function xS(e,t){let n=wu(e);return t&&t.forEach((r,s)=>{n.has(s)||t.getAll(s).forEach(o=>{n.append(s,o)})}),n}const SS=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],kS="6";try{window.__reactRouterVersion=kS}catch{}const bS="startTransition",Mp=hw[bS];function CS(e){let{basename:t,children:n,future:r,window:s}=e,o=S.useRef();o.current==null&&(o.current=N0({window:s,v5Compat:!0}));let i=o.current,[a,l]=S.useState({action:i.action,location:i.location}),{v7_startTransition:u}=r||{},d=S.useCallback(f=>{u&&Mp?Mp(()=>l(f)):l(f)},[l,u]);return S.useLayoutEffect(()=>i.listen(d),[i,d]),S.useEffect(()=>hS(r),[r]),S.createElement(mS,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:i,future:r})}const ES=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",NS=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,fy=S.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:o,replace:i,state:a,target:l,to:u,preventScrollReset:d,viewTransition:f}=t,p=yS(t,SS),{basename:v}=S.useContext(Or),g,y=!1;if(typeof u=="string"&&NS.test(u)&&(g=u,ES))try{let x=new URL(window.location.href),C=u.startsWith("//")?new URL(x.protocol+u):new URL(u),T=$d(C.pathname,v);C.origin===x.origin&&T!=null?u=T+C.search+C.hash:y=!0}catch{}let w=Z0(u,{relative:s}),h=jS(u,{replace:i,state:a,target:l,preventScrollReset:d,relative:s,viewTransition:f});function m(x){r&&r(x),x.defaultPrevented||h(x)}return S.createElement("a",vu({},p,{href:g||w,onClick:y||o?r:m,ref:n,target:l}))});var Ap;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ap||(Ap={}));var $p;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})($p||($p={}));function jS(e,t){let{target:n,replace:r,state:s,preventScrollReset:o,relative:i,viewTransition:a}=t===void 0?{}:t,l=Dr(),u=to(),d=ay(e,{relative:i});return S.useCallback(f=>{if(wS(f,n)){f.preventDefault();let p=r!==void 0?r:Ha(u)===Ha(d);l(e,{replace:p,state:s,preventScrollReset:o,relative:i,viewTransition:a})}},[u,l,d,r,s,n,e,o,i,a])}function TS(e){let t=S.useRef(wu(e)),n=S.useRef(!1),r=to(),s=S.useMemo(()=>xS(r.search,n.current?null:t.current),[r.search]),o=Dr(),i=S.useCallback((a,l)=>{const u=wu(typeof a=="function"?a(s):a);n.current=!0,o("?"+u,l)},[o,s]);return[s,i]}var py={exports:{}},hy={};/** * @license React * use-sync-external-store-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 Si=S;function _S(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var PS=typeof Object.is=="function"?Object.is:_S,IS=Si.useSyncExternalStore,RS=Si.useRef,OS=Si.useEffect,LS=Si.useMemo,DS=Si.useDebugValue;hy.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var o=RS(null);if(o.current===null){var i={hasValue:!1,value:null};o.current=i}else i=o.current;o=LS(function(){function l(v){if(!u){if(u=!0,d=v,v=r(v),s!==void 0&&i.hasValue){var g=i.value;if(s(g,v))return f=g}return f=v}if(g=f,PS(d,v))return g;var y=r(v);return s!==void 0&&s(g,y)?(d=v,g):(d=v,f=y)}var u=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,s]);var a=IS(e,o[0],o[1]);return OS(function(){i.hasValue=!0,i.value=a},[a]),DS(a),a};py.exports=hy;var MS=py.exports;function AS(e){e()}function $S(){let e=null,t=null;return{clear(){e=null,t=null},notify(){AS(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let r=e;for(;r;)n.push(r),r=r.next;return n},subscribe(n){let r=!0;const s=t={callback:n,next:null,prev:t};return s.prev?s.prev.next=s:e=s,function(){!r||e===null||(r=!1,s.next?s.next.prev=s.prev:t=s.prev,s.prev?s.prev.next=s.next:e=s.next)}}}}var Fp={notify(){},get:()=>[]};function FS(e,t){let n,r=Fp,s=0,o=!1;function i(y){d();const w=r.subscribe(y);let h=!1;return()=>{h||(h=!0,w(),f())}}function a(){r.notify()}function l(){g.onStateChange&&g.onStateChange()}function u(){return o}function d(){s++,n||(n=e.subscribe(l),r=$S())}function f(){s--,n&&s===0&&(n(),n=void 0,r.clear(),r=Fp)}function p(){o||(o=!0,d())}function v(){o&&(o=!1,f())}const g={addNestedSub:i,notifyNestedSubs:a,handleChangeWrapper:l,isSubscribed:u,trySubscribe:p,tryUnsubscribe:v,getListeners:()=>r};return g}var zS=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",US=zS(),BS=()=>typeof navigator<"u"&&navigator.product==="ReactNative",WS=BS(),HS=()=>US||WS?S.useLayoutEffect:S.useEffect,QS=HS(),cc=Symbol.for("react-redux-context"),uc=typeof globalThis<"u"?globalThis:{};function VS(){if(!S.createContext)return{};const e=uc[cc]??(uc[cc]=new Map);let t=e.get(S.createContext);return t||(t=S.createContext(null),e.set(S.createContext,t)),t}var _r=VS();function qS(e){const{children:t,context:n,serverState:r,store:s}=e,o=S.useMemo(()=>{const l=FS(s);return{store:s,subscription:l,getServerState:r?()=>r:void 0}},[s,r]),i=S.useMemo(()=>s.getState(),[s]);QS(()=>{const{subscription:l}=o;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),i!==s.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[o,i]);const a=n||_r;return S.createElement(a.Provider,{value:o},t)}var GS=qS;function Bd(e=_r){return function(){return S.useContext(e)}}var my=Bd();function gy(e=_r){const t=e===_r?my:Bd(e),n=()=>{const{store:r}=t();return r};return Object.assign(n,{withTypes:()=>n}),n}var YS=gy();function KS(e=_r){const t=e===_r?YS:gy(e),n=()=>t().dispatch;return Object.assign(n,{withTypes:()=>n}),n}var XS=KS(),JS=(e,t)=>e===t;function ZS(e=_r){const t=e===_r?my:Bd(e),n=(r,s={})=>{const{equalityFn:o=JS}=typeof s=="function"?{equalityFn:s}:s,i=t(),{store:a,subscription:l,getServerState:u}=i;S.useRef(!0);const d=S.useCallback({[r.name](p){return r(p)}}[r.name],[r]),f=MS.useSyncExternalStoreWithSelector(l.addNestedSub,a.getState,u||a.getState,d,o);return S.useDebugValue(f),f};return Object.assign(n,{withTypes:()=>n}),n}var e1=ZS();function mt(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var t1=typeof Symbol=="function"&&Symbol.observable||"@@observable",zp=t1,dc=()=>Math.random().toString(36).substring(7).split("").join("."),n1={INIT:`@@redux/INIT${dc()}`,REPLACE:`@@redux/REPLACE${dc()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${dc()}`},Qa=n1;function Wd(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function yy(e,t,n){if(typeof e!="function")throw new Error(mt(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(mt(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(mt(1));return n(yy)(e,t)}let r=e,s=t,o=new Map,i=o,a=0,l=!1;function u(){i===o&&(i=new Map,o.forEach((w,h)=>{i.set(h,w)}))}function d(){if(l)throw new Error(mt(3));return s}function f(w){if(typeof w!="function")throw new Error(mt(4));if(l)throw new Error(mt(5));let h=!0;u();const m=a++;return i.set(m,w),function(){if(h){if(l)throw new Error(mt(6));h=!1,u(),i.delete(m),o=null}}}function p(w){if(!Wd(w))throw new Error(mt(7));if(typeof w.type>"u")throw new Error(mt(8));if(typeof w.type!="string")throw new Error(mt(17));if(l)throw new Error(mt(9));try{l=!0,s=r(s,w)}finally{l=!1}return(o=i).forEach(m=>{m()}),w}function v(w){if(typeof w!="function")throw new Error(mt(10));r=w,p({type:Qa.REPLACE})}function g(){const w=f;return{subscribe(h){if(typeof h!="object"||h===null)throw new Error(mt(11));function m(){const C=h;C.next&&C.next(d())}return m(),{unsubscribe:w(m)}},[zp](){return this}}}return p({type:Qa.INIT}),{dispatch:p,subscribe:f,getState:d,replaceReducer:v,[zp]:g}}function r1(e){Object.keys(e).forEach(t=>{const n=e[t];if(typeof n(void 0,{type:Qa.INIT})>"u")throw new Error(mt(12));if(typeof n(void 0,{type:Qa.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(mt(13))})}function s1(e){const t=Object.keys(e),n={};for(let o=0;o"u")throw a&&a.type,new Error(mt(14));u[f]=g,l=l||g!==v}return l=l||r.length!==Object.keys(i).length,l?u:i}}function Va(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function o1(...e){return t=>(n,r)=>{const s=t(n,r);let o=()=>{throw new Error(mt(15))};const i={getState:s.getState,dispatch:(l,...u)=>o(l,...u)},a=e.map(l=>l(i));return o=Va(...a)(s.dispatch),{...s,dispatch:o}}}function i1(e){return Wd(e)&&"type"in e&&typeof e.type=="string"}var vy=Symbol.for("immer-nothing"),Up=Symbol.for("immer-draftable"),rn=Symbol.for("immer-state");function jn(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ai=Object.getPrototypeOf;function ns(e){return!!e&&!!e[rn]}function ir(e){var t;return e?wy(e)||Array.isArray(e)||!!e[Up]||!!((t=e.constructor)!=null&&t[Up])||ki(e)||Cl(e):!1}var a1=Object.prototype.constructor.toString(),Bp=new WeakMap;function wy(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Bp.get(n);return r===void 0&&(r=Function.toString.call(n),Bp.set(n,r)),r===a1}function qa(e,t,n=!0){bl(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(s=>{t(s,e[s],e)}):e.forEach((r,s)=>t(s,r,e))}function bl(e){const t=e[rn];return t?t.type_:Array.isArray(e)?1:ki(e)?2:Cl(e)?3:0}function xu(e,t){return bl(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function xy(e,t,n){const r=bl(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function l1(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function ki(e){return e instanceof Map}function Cl(e){return e instanceof Set}function Br(e){return e.copy_||e.base_}function Su(e,t){if(ki(e))return new Map(e);if(Cl(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=wy(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[rn];let s=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:qi,add:qi,clear:qi,delete:qi}),Object.freeze(e),t&&Object.values(e).forEach(n=>Hd(n,!0))),e}function c1(){jn(2)}var qi={value:c1};function El(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var u1={};function rs(e){const t=u1[e];return t||jn(0,e),t}var li;function Sy(){return li}function d1(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Wp(e,t){t&&(rs("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function ku(e){bu(e),e.drafts_.forEach(f1),e.drafts_=null}function bu(e){e===li&&(li=e.parent_)}function Hp(e){return li=d1(li,e)}function f1(e){const t=e[rn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Qp(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[rn].modified_&&(ku(t),jn(4)),ir(e)&&(e=Ga(t,e),t.parent_||Ya(t,e)),t.patches_&&rs("Patches").generateReplacementPatches_(n[rn].base_,e,t.patches_,t.inversePatches_)):e=Ga(t,n,[]),ku(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==vy?e:void 0}function Ga(e,t,n){if(El(t))return t;const r=e.immer_.shouldUseStrictIteration(),s=t[rn];if(!s)return qa(t,(o,i)=>Vp(e,s,t,o,i,n),r),t;if(s.scope_!==e)return t;if(!s.modified_)return Ya(e,s.base_,!0),s.base_;if(!s.finalized_){s.finalized_=!0,s.scope_.unfinalizedDrafts_--;const o=s.copy_;let i=o,a=!1;s.type_===3&&(i=new Set(o),o.clear(),a=!0),qa(i,(l,u)=>Vp(e,s,o,l,u,n,a),r),Ya(e,o,!1),n&&e.patches_&&rs("Patches").generatePatches_(s,n,e.patches_,e.inversePatches_)}return s.copy_}function Vp(e,t,n,r,s,o,i){if(s==null||typeof s!="object"&&!i)return;const a=El(s);if(!(a&&!i)){if(ns(s)){const l=o&&t&&t.type_!==3&&!xu(t.assigned_,r)?o.concat(r):void 0,u=Ga(e,s,l);if(xy(n,r,u),ns(u))e.canAutoFreeze_=!1;else return}else i&&n.add(s);if(ir(s)&&!a){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===s&&a)return;Ga(e,s),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(ki(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&Ya(e,s)}}}function Ya(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Hd(t,n)}function p1(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:Sy(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let s=r,o=Qd;n&&(s=[r],o=ci);const{revoke:i,proxy:a}=Proxy.revocable(s,o);return r.draft_=a,r.revoke_=i,a}var Qd={get(e,t){if(t===rn)return e;const n=Br(e);if(!xu(n,t))return h1(e,n,t);const r=n[t];return e.finalized_||!ir(r)?r:r===fc(e.base_,t)?(pc(e),e.copy_[t]=Eu(r,e)):r},has(e,t){return t in Br(e)},ownKeys(e){return Reflect.ownKeys(Br(e))},set(e,t,n){const r=ky(Br(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const s=fc(Br(e),t),o=s==null?void 0:s[rn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(l1(n,s)&&(n!==void 0||xu(e.base_,t)))return!0;pc(e),Cu(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return fc(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,pc(e),Cu(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=Br(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){jn(11)},getPrototypeOf(e){return ai(e.base_)},setPrototypeOf(){jn(12)}},ci={};qa(Qd,(e,t)=>{ci[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});ci.deleteProperty=function(e,t){return ci.set.call(this,e,t,void 0)};ci.set=function(e,t,n){return Qd.set.call(this,e[0],t,n,e[0])};function fc(e,t){const n=e[rn];return(n?Br(n):e)[t]}function h1(e,t,n){var s;const r=ky(t,n);return r?"value"in r?r.value:(s=r.get)==null?void 0:s.call(e.draft_):void 0}function ky(e,t){if(!(t in e))return;let n=ai(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=ai(n)}}function Cu(e){e.modified_||(e.modified_=!0,e.parent_&&Cu(e.parent_))}function pc(e){e.copy_||(e.copy_=Su(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var m1=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const i=this;return function(l=o,...u){return i.produce(l,d=>n.call(this,d,...u))}}typeof n!="function"&&jn(6),r!==void 0&&typeof r!="function"&&jn(7);let s;if(ir(t)){const o=Hp(this),i=Eu(t,void 0);let a=!0;try{s=n(i),a=!1}finally{a?ku(o):bu(o)}return Wp(o,r),Qp(s,o)}else if(!t||typeof t!="object"){if(s=n(t),s===void 0&&(s=t),s===vy&&(s=void 0),this.autoFreeze_&&Hd(s,!0),r){const o=[],i=[];rs("Patches").generateReplacementPatches_(t,s,o,i),r(o,i)}return s}else jn(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(i,...a)=>this.produceWithPatches(i,l=>t(l,...a));let r,s;return[this.produce(t,n,(i,a)=>{r=i,s=a}),r,s]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){ir(e)||jn(8),ns(e)&&(e=g1(e));const t=Hp(this),n=Eu(e,void 0);return n[rn].isManual_=!0,bu(t),n}finishDraft(e,t){const n=e&&e[rn];(!n||!n.isManual_)&&jn(9);const{scope_:r}=n;return Wp(r,t),Qp(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const s=t[n];if(s.path.length===0&&s.op==="replace"){e=s.value;break}}n>-1&&(t=t.slice(n+1));const r=rs("Patches").applyPatches_;return ns(e)?r(e,t):this.produce(e,s=>r(s,t))}};function Eu(e,t){const n=ki(e)?rs("MapSet").proxyMap_(e,t):Cl(e)?rs("MapSet").proxySet_(e,t):p1(e,t);return(t?t.scope_:Sy()).drafts_.push(n),n}function g1(e){return ns(e)||jn(10,e),by(e)}function by(e){if(!ir(e)||El(e))return e;const t=e[rn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Su(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Su(e,!0);return qa(n,(s,o)=>{xy(n,s,by(o))},r),t&&(t.finalized_=!1),n}var y1=new m1,Cy=y1.produce;function Ey(e){return({dispatch:n,getState:r})=>s=>o=>typeof o=="function"?o(n,r,e):s(o)}var v1=Ey(),w1=Ey,x1=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Va:Va.apply(null,arguments)};function qp(e,t){function n(...r){if(t){let s=t(...r);if(!s)throw new Error(tr(0));return{type:e,payload:s.payload,..."meta"in s&&{meta:s.meta},..."error"in s&&{error:s.error}}}return{type:e,payload:r[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=r=>i1(r)&&r.type===e,n}var Ny=class jo extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,jo.prototype)}static get[Symbol.species](){return jo}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new jo(...t[0].concat(this)):new jo(...t.concat(this))}};function Gp(e){return ir(e)?Cy(e,()=>{}):e}function Gi(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function S1(e){return typeof e=="boolean"}var k1=()=>function(t){const{thunk:n=!0,immutableCheck:r=!0,serializableCheck:s=!0,actionCreatorCheck:o=!0}=t??{};let i=new Ny;return n&&(S1(n)?i.push(v1):i.push(w1(n.extraArgument))),i},b1="RTK_autoBatch",Yp=e=>t=>{setTimeout(t,e)},C1=(e={type:"raf"})=>t=>(...n)=>{const r=t(...n);let s=!0,o=!1,i=!1;const a=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:Yp(10):e.type==="callback"?e.queueNotification:Yp(e.timeout),u=()=>{i=!1,o&&(o=!1,a.forEach(d=>d()))};return Object.assign({},r,{subscribe(d){const f=()=>s&&d(),p=r.subscribe(f);return a.add(d),()=>{p(),a.delete(d)}},dispatch(d){var f;try{return s=!((f=d==null?void 0:d.meta)!=null&&f[b1]),o=!s,o&&(i||(i=!0,l(u))),r.dispatch(d)}finally{s=!0}}})},E1=e=>function(n){const{autoBatch:r=!0}=n??{};let s=new Ny(e);return r&&s.push(C1(typeof r=="object"?r:void 0)),s};function N1(e){const t=k1(),{reducer:n=void 0,middleware:r,devTools:s=!0,preloadedState:o=void 0,enhancers:i=void 0}=e||{};let a;if(typeof n=="function")a=n;else if(Wd(n))a=s1(n);else throw new Error(tr(1));let l;typeof r=="function"?l=r(t):l=t();let u=Va;s&&(u=x1({trace:!1,...typeof s=="object"&&s}));const d=o1(...l),f=E1(d);let p=typeof i=="function"?i(f):f();const v=u(...p);return yy(a,o,v)}function jy(e){const t={},n=[];let r;const s={addCase(o,i){const a=typeof o=="string"?o:o.type;if(!a)throw new Error(tr(28));if(a in t)throw new Error(tr(29));return t[a]=i,s},addAsyncThunk(o,i){return i.pending&&(t[o.pending.type]=i.pending),i.rejected&&(t[o.rejected.type]=i.rejected),i.fulfilled&&(t[o.fulfilled.type]=i.fulfilled),i.settled&&n.push({matcher:o.settled,reducer:i.settled}),s},addMatcher(o,i){return n.push({matcher:o,reducer:i}),s},addDefaultCase(o){return r=o,s}};return e(s),[t,n,r]}function j1(e){return typeof e=="function"}function T1(e,t){let[n,r,s]=jy(t),o;if(j1(e))o=()=>Gp(e());else{const a=Gp(e);o=()=>a}function i(a=o(),l){let u=[n[l.type],...r.filter(({matcher:d})=>d(l)).map(({reducer:d})=>d)];return u.filter(d=>!!d).length===0&&(u=[s]),u.reduce((d,f)=>{if(f)if(ns(d)){const v=f(d,l);return v===void 0?d:v}else{if(ir(d))return Cy(d,p=>f(p,l));{const p=f(d,l);if(p===void 0){if(d===null)return d;throw Error("A case reducer on a non-draftable value must not return undefined")}return p}}return d},a)}return i.getInitialState=o,i}var _1=Symbol.for("rtk-slice-createasyncthunk");function P1(e,t){return`${e}/${t}`}function I1({creators:e}={}){var n;const t=(n=e==null?void 0:e.asyncThunk)==null?void 0:n[_1];return function(s){const{name:o,reducerPath:i=o}=s;if(!o)throw new Error(tr(11));const a=(typeof s.reducers=="function"?s.reducers(O1()):s.reducers)||{},l=Object.keys(a),u={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},d={addCase(C,T){const b=typeof C=="string"?C:C.type;if(!b)throw new Error(tr(12));if(b in u.sliceCaseReducersByType)throw new Error(tr(13));return u.sliceCaseReducersByType[b]=T,d},addMatcher(C,T){return u.sliceMatchers.push({matcher:C,reducer:T}),d},exposeAction(C,T){return u.actionCreators[C]=T,d},exposeCaseReducer(C,T){return u.sliceCaseReducersByName[C]=T,d}};l.forEach(C=>{const T=a[C],b={reducerName:C,type:P1(o,C),createNotation:typeof s.reducers=="function"};D1(T)?A1(b,T,d,t):L1(b,T,d)});function f(){const[C={},T=[],b=void 0]=typeof s.extraReducers=="function"?jy(s.extraReducers):[s.extraReducers],j={...C,...u.sliceCaseReducersByType};return T1(s.initialState,_=>{for(let I in j)_.addCase(I,j[I]);for(let I of u.sliceMatchers)_.addMatcher(I.matcher,I.reducer);for(let I of T)_.addMatcher(I.matcher,I.reducer);b&&_.addDefaultCase(b)})}const p=C=>C,v=new Map,g=new WeakMap;let y;function w(C,T){return y||(y=f()),y(C,T)}function h(){return y||(y=f()),y.getInitialState()}function m(C,T=!1){function b(_){let I=_[C];return typeof I>"u"&&T&&(I=Gi(g,b,h)),I}function j(_=p){const I=Gi(v,T,()=>new WeakMap);return Gi(I,_,()=>{const R={};for(const[Y,ue]of Object.entries(s.selectors??{}))R[Y]=R1(ue,_,()=>Gi(g,_,h),T);return R})}return{reducerPath:C,getSelectors:j,get selectors(){return j(b)},selectSlice:b}}const x={name:o,reducer:w,actions:u.actionCreators,caseReducers:u.sliceCaseReducersByName,getInitialState:h,...m(i),injectInto(C,{reducerPath:T,...b}={}){const j=T??i;return C.inject({reducerPath:j,reducer:w},b),{...x,...m(j,!0)}}};return x}}function R1(e,t,n,r){function s(o,...i){let a=t(o);return typeof a>"u"&&r&&(a=n()),e(a,...i)}return s.unwrapped=e,s}var Nl=I1();function O1(){function e(t,n){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...n}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...n){return t(...n)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,n){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:n}},asyncThunk:e}}function L1({type:e,reducerName:t,createNotation:n},r,s){let o,i;if("reducer"in r){if(n&&!M1(r))throw new Error(tr(17));o=r.reducer,i=r.prepare}else o=r;s.addCase(e,o).exposeCaseReducer(t,o).exposeAction(t,i?qp(e,i):qp(e))}function D1(e){return e._reducerDefinitionType==="asyncThunk"}function M1(e){return e._reducerDefinitionType==="reducerWithPrepare"}function A1({type:e,reducerName:t},n,r,s){if(!s)throw new Error(tr(18));const{payloadCreator:o,fulfilled:i,pending:a,rejected:l,settled:u,options:d}=n,f=s(e,o,d);r.exposeAction(t,f),i&&r.addCase(f.fulfilled,i),a&&r.addCase(f.pending,a),l&&r.addCase(f.rejected,l),u&&r.addMatcher(f.settled,u),r.exposeCaseReducer(t,{fulfilled:i||Yi,pending:a||Yi,rejected:l||Yi,settled:u||Yi})}function Yi(){}function tr(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}const $1={isAuthenticated:localStorage.getItem("isAuthenticated")==="true",userId:null,username:localStorage.getItem("username")||null,loading:!1},Ty=Nl({name:"auth",initialState:$1,reducers:{setAuth:(e,t)=>{e.isAuthenticated=!0,e.userId=t.payload.userId,e.username=t.payload.username,localStorage.setItem("isAuthenticated","true"),localStorage.setItem("username",t.payload.username)},clearAuth:e=>{e.isAuthenticated=!1,e.userId=null,e.username=null,localStorage.removeItem("isAuthenticated"),localStorage.removeItem("username")}}}),{setAuth:Vd,clearAuth:ui}=Ty.actions,F1=Ty.reducer,z1={notes:[],allNotes:[],archivedNotes:[],selectedDate:null,selectedTag:null,searchQuery:"",loading:!1,editingNoteId:null,offlineMode:!1,pendingSyncCount:0},_y=Nl({name:"notes",initialState:z1,reducers:{setNotes:(e,t)=>{e.notes=t.payload},setAllNotes:(e,t)=>{e.allNotes=t.payload},addNote:(e,t)=>{e.notes.unshift(t.payload),e.allNotes.unshift(t.payload)},updateNote:(e,t)=>{const n=e.notes.findIndex(s=>s.id===t.payload.id);n!==-1&&(e.notes[n]=t.payload);const r=e.allNotes.findIndex(s=>s.id===t.payload.id);r!==-1&&(e.allNotes[r]=t.payload)},deleteNote:(e,t)=>{e.notes=e.notes.filter(n=>n.id!==t.payload),e.allNotes=e.allNotes.filter(n=>n.id!==t.payload)},setSelectedDate:(e,t)=>{e.selectedDate=t.payload},setSelectedTag:(e,t)=>{e.selectedTag=t.payload},setSearchQuery:(e,t)=>{e.searchQuery=t.payload},setEditingNote:(e,t)=>{e.editingNoteId=t.payload},setOfflineMode:(e,t)=>{e.offlineMode=t.payload},setPendingSyncCount:(e,t)=>{e.pendingSyncCount=t.payload},updateNoteSyncStatus:(e,t)=>{const n=e.notes.findIndex(s=>s.id===t.payload.id);n!==-1&&(e.notes[n].syncStatus=t.payload.syncStatus);const r=e.allNotes.findIndex(s=>s.id===t.payload.id);r!==-1&&(e.allNotes[r].syncStatus=t.payload.syncStatus)}}}),{setNotes:U1,setAllNotes:B1,addNote:hc,updateNote:qe,deleteNote:rT,setSelectedDate:Nu,setSelectedTag:Ka,setSearchQuery:ju,setEditingNote:sT,setOfflineMode:As,setPendingSyncCount:qd,updateNoteSyncStatus:oT}=_y.actions,W1=_y.reducer,H1=()=>{const e=localStorage.getItem("theme");return e==="dark"||e==="light"?e:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"},Q1={theme:H1(),accentColor:localStorage.getItem("accentColor")||"#007bff",notifications:[],isMobileSidebarOpen:!1,isPreviewMode:!1,syncStatus:"idle"},Py=Nl({name:"ui",initialState:Q1,reducers:{toggleTheme:e=>{e.theme=e.theme==="light"?"dark":"light",localStorage.setItem("theme",e.theme)},setTheme:(e,t)=>{e.theme=t.payload,localStorage.setItem("theme",e.theme)},setAccentColor:(e,t)=>{e.accentColor=t.payload,localStorage.setItem("accentColor",t.payload)},addNotification:(e,t)=>{const n=t.payload.id||`notification-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,{id:r,...s}=t.payload;e.notifications.push({...s,id:n})},removeNotification:(e,t)=>{e.notifications=e.notifications.filter(n=>n.id!==t.payload)},toggleMobileSidebar:e=>{e.isMobileSidebarOpen=!e.isMobileSidebarOpen},closeMobileSidebar:e=>{e.isMobileSidebarOpen=!1},togglePreviewMode:e=>{e.isPreviewMode=!e.isPreviewMode},setSyncStatus:(e,t)=>{e.syncStatus=t.payload}}}),{toggleTheme:V1,setTheme:q1,setAccentColor:Xa,addNotification:$s,removeNotification:Iy,toggleMobileSidebar:iT,closeMobileSidebar:aT,togglePreviewMode:G1,setSyncStatus:ms}=Py.actions,Y1=Py.reducer,K1={user:null,aiSettings:null,aiEnabled:!1,loading:!1},Ry=Nl({name:"profile",initialState:K1,reducers:{setUser:(e,t)=>{e.user=t.payload},setAiSettings:(e,t)=>{e.aiSettings=t.payload,e.aiEnabled=t.payload.ai_enabled===1},setLoading:(e,t)=>{e.loading=t.payload}}}),{setUser:Gd,setAiSettings:Yd,setLoading:lT}=Ry.actions,X1=Ry.reducer,te=N1({reducer:{auth:F1,notes:W1,ui:Y1,profile:X1}}),Et=()=>XS(),ie=e1;function Oy(e,t){return function(){return e.apply(t,arguments)}}const{toString:J1}=Object.prototype,{getPrototypeOf:Kd}=Object,{iterator:jl,toStringTag:Ly}=Symbol,Tl=(e=>t=>{const n=J1.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Rn=e=>(e=e.toLowerCase(),t=>Tl(t)===e),_l=e=>t=>typeof t===e,{isArray:no}=Array,qs=_l("undefined");function bi(e){return e!==null&&!qs(e)&&e.constructor!==null&&!qs(e.constructor)&&Gt(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Dy=Rn("ArrayBuffer");function Z1(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Dy(e.buffer),t}const ek=_l("string"),Gt=_l("function"),My=_l("number"),Ci=e=>e!==null&&typeof e=="object",tk=e=>e===!0||e===!1,ma=e=>{if(Tl(e)!=="object")return!1;const t=Kd(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Ly in e)&&!(jl in e)},nk=e=>{if(!Ci(e)||bi(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},rk=Rn("Date"),sk=Rn("File"),ok=Rn("Blob"),ik=Rn("FileList"),ak=e=>Ci(e)&&Gt(e.pipe),lk=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Gt(e.append)&&((t=Tl(e))==="formdata"||t==="object"&&Gt(e.toString)&&e.toString()==="[object FormData]"))},ck=Rn("URLSearchParams"),[uk,dk,fk,pk]=["ReadableStream","Request","Response","Headers"].map(Rn),hk=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ei(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),no(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const qr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,$y=e=>!qs(e)&&e!==qr;function Tu(){const{caseless:e,skipUndefined:t}=$y(this)&&this||{},n={},r=(s,o)=>{const i=e&&Ay(n,o)||o;ma(n[i])&&ma(s)?n[i]=Tu(n[i],s):ma(s)?n[i]=Tu({},s):no(s)?n[i]=s.slice():(!t||!qs(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(Ei(t,(s,o)=>{n&&Gt(s)?e[o]=Oy(s,n):e[o]=s},{allOwnKeys:r}),e),gk=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),yk=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},vk=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&Kd(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},wk=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},xk=e=>{if(!e)return null;if(no(e))return e;let t=e.length;if(!My(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Sk=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Kd(Uint8Array)),kk=(e,t)=>{const r=(e&&e[jl]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},bk=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Ck=Rn("HTMLFormElement"),Ek=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),Kp=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Nk=Rn("RegExp"),Fy=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ei(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},jk=e=>{Fy(e,(t,n)=>{if(Gt(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Gt(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Tk=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return no(e)?r(e):r(String(e).split(t)),n},_k=()=>{},Pk=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Ik(e){return!!(e&&Gt(e.append)&&e[Ly]==="FormData"&&e[jl])}const Rk=e=>{const t=new Array(10),n=(r,s)=>{if(Ci(r)){if(t.indexOf(r)>=0)return;if(bi(r))return r;if(!("toJSON"in r)){t[s]=r;const o=no(r)?[]:{};return Ei(r,(i,a)=>{const l=n(i,s+1);!qs(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},Ok=Rn("AsyncFunction"),Lk=e=>e&&(Ci(e)||Gt(e))&&Gt(e.then)&&Gt(e.catch),zy=((e,t)=>e?setImmediate:t?((n,r)=>(qr.addEventListener("message",({source:s,data:o})=>{s===qr&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),qr.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Gt(qr.postMessage)),Dk=typeof queueMicrotask<"u"?queueMicrotask.bind(qr):typeof process<"u"&&process.nextTick||zy,Mk=e=>e!=null&&Gt(e[jl]),N={isArray:no,isArrayBuffer:Dy,isBuffer:bi,isFormData:lk,isArrayBufferView:Z1,isString:ek,isNumber:My,isBoolean:tk,isObject:Ci,isPlainObject:ma,isEmptyObject:nk,isReadableStream:uk,isRequest:dk,isResponse:fk,isHeaders:pk,isUndefined:qs,isDate:rk,isFile:sk,isBlob:ok,isRegExp:Nk,isFunction:Gt,isStream:ak,isURLSearchParams:ck,isTypedArray:Sk,isFileList:ik,forEach:Ei,merge:Tu,extend:mk,trim:hk,stripBOM:gk,inherits:yk,toFlatObject:vk,kindOf:Tl,kindOfTest:Rn,endsWith:wk,toArray:xk,forEachEntry:kk,matchAll:bk,isHTMLForm:Ck,hasOwnProperty:Kp,hasOwnProp:Kp,reduceDescriptors:Fy,freezeMethods:jk,toObjectSet:Tk,toCamelCase:Ek,noop:_k,toFiniteNumber:Pk,findKey:Ay,global:qr,isContextDefined:$y,isSpecCompliantForm:Ik,toJSONObject:Rk,isAsyncFn:Ok,isThenable:Lk,setImmediate:zy,asap:Dk,isIterable:Mk};function oe(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}N.inherits(oe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:N.toJSONObject(this.config),code:this.code,status:this.status}}});const Uy=oe.prototype,By={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{By[e]={value:e}});Object.defineProperties(oe,By);Object.defineProperty(Uy,"isAxiosError",{value:!0});oe.from=(e,t,n,r,s,o)=>{const i=Object.create(Uy);N.toFlatObject(e,i,function(d){return d!==Error.prototype},u=>u!=="isAxiosError");const a=e&&e.message?e.message:"Error",l=t==null&&e?e.code:t;return oe.call(i,a,l,n,r,s),e&&i.cause==null&&Object.defineProperty(i,"cause",{value:e,configurable:!0}),i.name=e&&e.name||"Error",o&&Object.assign(i,o),i};const Ak=null;function _u(e){return N.isPlainObject(e)||N.isArray(e)}function Wy(e){return N.endsWith(e,"[]")?e.slice(0,-2):e}function Xp(e,t,n){return e?e.concat(t).map(function(s,o){return s=Wy(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function $k(e){return N.isArray(e)&&!e.some(_u)}const Fk=N.toFlatObject(N,{},null,function(t){return/^is[A-Z]/.test(t)});function Pl(e,t,n){if(!N.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=N.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,w){return!N.isUndefined(w[y])});const r=n.metaTokens,s=n.visitor||d,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&N.isSpecCompliantForm(t);if(!N.isFunction(s))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(N.isDate(g))return g.toISOString();if(N.isBoolean(g))return g.toString();if(!l&&N.isBlob(g))throw new oe("Blob is not supported. Use a Buffer instead.");return N.isArrayBuffer(g)||N.isTypedArray(g)?l&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function d(g,y,w){let h=g;if(g&&!w&&typeof g=="object"){if(N.endsWith(y,"{}"))y=r?y:y.slice(0,-2),g=JSON.stringify(g);else if(N.isArray(g)&&$k(g)||(N.isFileList(g)||N.endsWith(y,"[]"))&&(h=N.toArray(g)))return y=Wy(y),h.forEach(function(x,C){!(N.isUndefined(x)||x===null)&&t.append(i===!0?Xp([y],C,o):i===null?y:y+"[]",u(x))}),!1}return _u(g)?!0:(t.append(Xp(w,y,o),u(g)),!1)}const f=[],p=Object.assign(Fk,{defaultVisitor:d,convertValue:u,isVisitable:_u});function v(g,y){if(!N.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+y.join("."));f.push(g),N.forEach(g,function(h,m){(!(N.isUndefined(h)||h===null)&&s.call(t,h,N.isString(m)?m.trim():m,y,p))===!0&&v(h,y?y.concat(m):[m])}),f.pop()}}if(!N.isObject(e))throw new TypeError("data must be an object");return v(e),t}function Jp(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Xd(e,t){this._pairs=[],e&&Pl(e,this,t)}const Hy=Xd.prototype;Hy.append=function(t,n){this._pairs.push([t,n])};Hy.toString=function(t){const n=t?function(r){return t.call(this,r,Jp)}:Jp;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function zk(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Qy(e,t,n){if(!t)return e;const r=n&&n.encode||zk;N.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=N.isURLSearchParams(t)?t.toString():new Xd(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class Zp{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){N.forEach(this.handlers,function(r){r!==null&&t(r)})}}const Vy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Uk=typeof URLSearchParams<"u"?URLSearchParams:Xd,Bk=typeof FormData<"u"?FormData:null,Wk=typeof Blob<"u"?Blob:null,Hk={isBrowser:!0,classes:{URLSearchParams:Uk,FormData:Bk,Blob:Wk},protocols:["http","https","file","blob","url","data"]},Jd=typeof window<"u"&&typeof document<"u",Pu=typeof navigator=="object"&&navigator||void 0,Qk=Jd&&(!Pu||["ReactNative","NativeScript","NS"].indexOf(Pu.product)<0),Vk=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",qk=Jd&&window.location.href||"http://localhost",Gk=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Jd,hasStandardBrowserEnv:Qk,hasStandardBrowserWebWorkerEnv:Vk,navigator:Pu,origin:qk},Symbol.toStringTag,{value:"Module"})),bt={...Gk,...Hk};function Yk(e,t){return Pl(e,new bt.classes.URLSearchParams,{visitor:function(n,r,s,o){return bt.isNode&&N.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function Kk(e){return N.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Xk(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&N.isArray(s)?s.length:i,l?(N.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!N.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&N.isArray(s[i])&&(s[i]=Xk(s[i])),!a)}if(N.isFormData(e)&&N.isFunction(e.entries)){const n={};return N.forEachEntry(e,(r,s)=>{t(Kk(r),s,n,0)}),n}return null}function Jk(e,t,n){if(N.isString(e))try{return(t||JSON.parse)(e),N.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Ni={transitional:Vy,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=N.isObject(t);if(o&&N.isHTMLForm(t)&&(t=new FormData(t)),N.isFormData(t))return s?JSON.stringify(qy(t)):t;if(N.isArrayBuffer(t)||N.isBuffer(t)||N.isStream(t)||N.isFile(t)||N.isBlob(t)||N.isReadableStream(t))return t;if(N.isArrayBufferView(t))return t.buffer;if(N.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Yk(t,this.formSerializer).toString();if((a=N.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Pl(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),Jk(t)):t}],transformResponse:[function(t){const n=this.transitional||Ni.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(N.isResponse(t)||N.isReadableStream(t))return t;if(t&&N.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(a){if(i)throw a.name==="SyntaxError"?oe.from(a,oe.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:bt.classes.FormData,Blob:bt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};N.forEach(["delete","get","head","post","put","patch"],e=>{Ni.headers[e]={}});const Zk=N.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),eb=e=>{const t={};let n,r,s;return e&&e.split(` `).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&Zk[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},eh=Symbol("internals");function yo(e){return e&&String(e).trim().toLowerCase()}function ga(e){return e===!1||e==null?e:N.isArray(e)?e.map(ga):String(e)}function tb(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const nb=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function mc(e,t,n,r,s){if(N.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!N.isString(t)){if(N.isString(r))return t.indexOf(r)!==-1;if(N.isRegExp(r))return r.test(t)}}function rb(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function sb(e,t){const n=N.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let Yt=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(a,l,u){const d=yo(l);if(!d)throw new Error("header name must be a non-empty string");const f=N.findKey(s,d);(!f||s[f]===void 0||u===!0||u===void 0&&s[f]!==!1)&&(s[f||l]=ga(a))}const i=(a,l)=>N.forEach(a,(u,d)=>o(u,d,l));if(N.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(N.isString(t)&&(t=t.trim())&&!nb(t))i(eb(t),n);else if(N.isObject(t)&&N.isIterable(t)){let a={},l,u;for(const d of t){if(!N.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[u=d[0]]=(l=a[u])?N.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}i(a,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=yo(t),t){const r=N.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return tb(s);if(N.isFunction(n))return n.call(this,s,r);if(N.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=yo(t),t){const r=N.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||mc(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=yo(i),i){const a=N.findKey(r,i);a&&(!n||mc(r,r[a],a,n))&&(delete r[a],s=!0)}}return N.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||mc(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return N.forEach(this,(s,o)=>{const i=N.findKey(r,o);if(i){n[i]=ga(s),delete n[o];return}const a=t?rb(o):String(o).trim();a!==o&&delete n[o],n[a]=ga(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return N.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&N.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[eh]=this[eh]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=yo(i);r[a]||(sb(s,i),r[a]=!0)}return N.isArray(t)?t.forEach(o):o(t),this}};Yt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);N.reduceDescriptors(Yt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});N.freezeMethods(Yt);function gc(e,t){const n=this||Ni,r=t||n,s=Yt.from(r.headers);let o=r.data;return N.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Gy(e){return!!(e&&e.__CANCEL__)}function ro(e,t,n){oe.call(this,e??"canceled",oe.ERR_CANCELED,t,n),this.name="CanceledError"}N.inherits(ro,oe,{__CANCEL__:!0});function Yy(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new oe("Request failed with status code "+n.status,[oe.ERR_BAD_REQUEST,oe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function ob(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function ib(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),d=r[o];i||(i=u),n[s]=l,r[s]=u;let f=o,p=0;for(;f!==s;)p+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i{n=d,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?i(u,d):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const Ja=(e,t,n=3)=>{let r=0;const s=ib(50,250);return ab(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,u=s(l),d=i<=a;r=i;const f={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-i)/u:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},th=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},nh=e=>(...t)=>N.asap(()=>e(...t)),lb=bt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,bt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(bt.origin),bt.navigator&&/(msie|trident)/i.test(bt.navigator.userAgent)):()=>!0,cb=bt.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];N.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),N.isString(r)&&a.push(`path=${r}`),N.isString(s)&&a.push(`domain=${s}`),o===!0&&a.push("secure"),N.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function ub(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function db(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ky(e,t,n){let r=!ub(t);return e&&(r||n==!1)?db(e,t):t}const rh=e=>e instanceof Yt?{...e}:e;function ss(e,t){t=t||{};const n={};function r(u,d,f,p){return N.isPlainObject(u)&&N.isPlainObject(d)?N.merge.call({caseless:p},u,d):N.isPlainObject(d)?N.merge({},d):N.isArray(d)?d.slice():d}function s(u,d,f,p){if(N.isUndefined(d)){if(!N.isUndefined(u))return r(void 0,u,f,p)}else return r(u,d,f,p)}function o(u,d){if(!N.isUndefined(d))return r(void 0,d)}function i(u,d){if(N.isUndefined(d)){if(!N.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function a(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(u,d,f)=>s(rh(u),rh(d),f,!0)};return N.forEach(Object.keys({...e,...t}),function(d){const f=l[d]||s,p=f(e[d],t[d],d);N.isUndefined(p)&&f!==a||(n[d]=p)}),n}const Xy=e=>{const t=ss({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;if(t.headers=i=Yt.from(i),t.url=Qy(Ky(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),N.isFormData(n)){if(bt.hasStandardBrowserEnv||bt.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(N.isFunction(n.getHeaders)){const l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,f])=>{u.includes(d.toLowerCase())&&i.set(d,f)})}}if(bt.hasStandardBrowserEnv&&(r&&N.isFunction(r)&&(r=r(t)),r||r!==!1&&lb(t.url))){const l=s&&o&&cb.read(o);l&&i.set(s,l)}return t},fb=typeof XMLHttpRequest<"u",pb=fb&&function(e){return new Promise(function(n,r){const s=Xy(e);let o=s.data;const i=Yt.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=s,d,f,p,v,g;function y(){v&&v(),g&&g(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let w=new XMLHttpRequest;w.open(s.method.toUpperCase(),s.url,!0),w.timeout=s.timeout;function h(){if(!w)return;const x=Yt.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),T={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:x,config:e,request:w};Yy(function(j){n(j),y()},function(j){r(j),y()},T),w=null}"onloadend"in w?w.onloadend=h:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(h)},w.onabort=function(){w&&(r(new oe("Request aborted",oe.ECONNABORTED,e,w)),w=null)},w.onerror=function(C){const T=C&&C.message?C.message:"Network Error",b=new oe(T,oe.ERR_NETWORK,e,w);b.event=C||null,r(b),w=null},w.ontimeout=function(){let C=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const T=s.transitional||Vy;s.timeoutErrorMessage&&(C=s.timeoutErrorMessage),r(new oe(C,T.clarifyTimeoutError?oe.ETIMEDOUT:oe.ECONNABORTED,e,w)),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&N.forEach(i.toJSON(),function(C,T){w.setRequestHeader(T,C)}),N.isUndefined(s.withCredentials)||(w.withCredentials=!!s.withCredentials),a&&a!=="json"&&(w.responseType=s.responseType),u&&([p,g]=Ja(u,!0),w.addEventListener("progress",p)),l&&w.upload&&([f,v]=Ja(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",v)),(s.cancelToken||s.signal)&&(d=x=>{w&&(r(!x||x.type?new ro(null,e,w):x),w.abort(),w=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const m=ob(s.url);if(m&&bt.protocols.indexOf(m)===-1){r(new oe("Unsupported protocol "+m+":",oe.ERR_BAD_REQUEST,e));return}w.send(o||null)})},hb=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,a();const d=u instanceof Error?u:this.reason;r.abort(d instanceof oe?d:new ro(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,o(new oe(`timeout ${t} of ms exceeded`,oe.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>N.asap(a),l}},mb=function*(e,t){let n=e.byteLength;if(n{const s=gb(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:d}=await s.next();if(u){a(),l.close();return}let f=d.byteLength;if(n){let p=o+=f;n(p)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},oh=64*1024,{isFunction:Ki}=N,vb=(({Request:e,Response:t})=>({Request:e,Response:t}))(N.global),{ReadableStream:ih,TextEncoder:ah}=N.global,lh=(e,...t)=>{try{return!!e(...t)}catch{return!1}},wb=e=>{e=N.merge.call({skipUndefined:!0},vb,e);const{fetch:t,Request:n,Response:r}=e,s=t?Ki(t):typeof fetch=="function",o=Ki(n),i=Ki(r);if(!s)return!1;const a=s&&Ki(ih),l=s&&(typeof ah=="function"?(g=>y=>g.encode(y))(new ah):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&a&&lh(()=>{let g=!1;const y=new n(bt.origin,{body:new ih,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!y}),d=i&&a&&lh(()=>N.isReadableStream(new r("").body)),f={stream:d&&(g=>g.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(y,w)=>{let h=y&&y[g];if(h)return h.call(y);throw new oe(`Response type '${g}' is not supported`,oe.ERR_NOT_SUPPORT,w)})});const p=async g=>{if(g==null)return 0;if(N.isBlob(g))return g.size;if(N.isSpecCompliantForm(g))return(await new n(bt.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(N.isArrayBufferView(g)||N.isArrayBuffer(g))return g.byteLength;if(N.isURLSearchParams(g)&&(g=g+""),N.isString(g))return(await l(g)).byteLength},v=async(g,y)=>{const w=N.toFiniteNumber(g.getContentLength());return w??p(y)};return async g=>{let{url:y,method:w,data:h,signal:m,cancelToken:x,timeout:C,onDownloadProgress:T,onUploadProgress:b,responseType:j,headers:_,withCredentials:I="same-origin",fetchOptions:R}=Xy(g),Y=t||fetch;j=j?(j+"").toLowerCase():"text";let ue=hb([m,x&&x.toAbortSignal()],C),ae=null;const ne=ue&&ue.unsubscribe&&(()=>{ue.unsubscribe()});let F;try{if(b&&u&&w!=="get"&&w!=="head"&&(F=await v(_,h))!==0){let Z=new n(y,{method:"POST",body:h,duplex:"half"}),le;if(N.isFormData(h)&&(le=Z.headers.get("content-type"))&&_.setContentType(le),Z.body){const[ft,Ue]=th(F,Ja(nh(b)));h=sh(Z.body,oh,ft,Ue)}}N.isString(I)||(I=I?"include":"omit");const V=o&&"credentials"in n.prototype,$={...R,signal:ue,method:w.toUpperCase(),headers:_.normalize().toJSON(),body:h,duplex:"half",credentials:V?I:void 0};ae=o&&new n(y,$);let D=await(o?Y(ae,R):Y(y,$));const W=d&&(j==="stream"||j==="response");if(d&&(T||W&&ne)){const Z={};["status","statusText","headers"].forEach(Nt=>{Z[Nt]=D[Nt]});const le=N.toFiniteNumber(D.headers.get("content-length")),[ft,Ue]=T&&th(le,Ja(nh(T),!0))||[];D=new r(sh(D.body,oh,ft,()=>{Ue&&Ue(),ne&&ne()}),Z)}j=j||"text";let G=await f[N.findKey(f,j)||"text"](D,g);return!W&&ne&&ne(),await new Promise((Z,le)=>{Yy(Z,le,{data:G,headers:Yt.from(D.headers),status:D.status,statusText:D.statusText,config:g,request:ae})})}catch(V){throw ne&&ne(),V&&V.name==="TypeError"&&/Load failed|fetch/i.test(V.message)?Object.assign(new oe("Network Error",oe.ERR_NETWORK,g,ae),{cause:V.cause||V}):oe.from(V,V&&V.code,g,ae)}}},xb=new Map,Jy=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,a=i,l,u,d=xb;for(;a--;)l=o[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:wb(t)),d=u;return u};Jy();const Zd={http:Ak,xhr:pb,fetch:{get:Jy}};N.forEach(Zd,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ch=e=>`- ${e}`,Sb=e=>N.isFunction(e)||e===null||e===!1;function kb(e,t){e=N.isArray(e)?e:[e];const{length:n}=e;let r,s;const o={};for(let i=0;i`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since : `+i.map(ch).join(` `):" "+ch(i[0]):"as no adapter specified";throw new oe("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return s}const Zy={getAdapter:kb,adapters:Zd};function yc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ro(null,e)}function uh(e){return yc(e),e.headers=Yt.from(e.headers),e.data=gc.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Zy.getAdapter(e.adapter||Ni.adapter,e)(e).then(function(r){return yc(e),r.data=gc.call(e,e.transformResponse,r),r.headers=Yt.from(r.headers),r},function(r){return Gy(r)||(yc(e),r&&r.response&&(r.response.data=gc.call(e,e.transformResponse,r.response),r.response.headers=Yt.from(r.response.headers))),Promise.reject(r)})}const ev="1.13.1",Il={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Il[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const dh={};Il.transitional=function(t,n,r){function s(o,i){return"[Axios v"+ev+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new oe(s(i," has been removed"+(n?" in "+n:"")),oe.ERR_DEPRECATED);return n&&!dh[i]&&(dh[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};Il.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function bb(e,t,n){if(typeof e!="object")throw new oe("options must be an object",oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new oe("option "+o+" must be "+l,oe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new oe("Unknown option "+o,oe.ERR_BAD_OPTION)}}const ya={assertOptions:bb,validators:Il},Mn=ya.validators;let Kr=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Zp,response:new Zp}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` `+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ss(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&ya.assertOptions(r,{silentJSONParsing:Mn.transitional(Mn.boolean),forcedJSONParsing:Mn.transitional(Mn.boolean),clarifyTimeoutError:Mn.transitional(Mn.boolean)},!1),s!=null&&(N.isFunction(s)?n.paramsSerializer={serialize:s}:ya.assertOptions(s,{encode:Mn.function,serialize:Mn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ya.assertOptions(n,{baseUrl:Mn.spelling("baseURL"),withXsrfToken:Mn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&N.merge(o.common,o[n.method]);o&&N.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Yt.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(l=l&&y.synchronous,a.unshift(y.fulfilled,y.rejected))});const u=[];this.interceptors.response.forEach(function(y){u.push(y.fulfilled,y.rejected)});let d,f=0,p;if(!l){const g=[uh.bind(this),void 0];for(g.unshift(...a),g.push(...u),p=g.length,d=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new ro(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new tv(function(s){t=s}),cancel:t}}};function Eb(e){return function(n){return e.apply(null,n)}}function Nb(e){return N.isObject(e)&&e.isAxiosError===!0}const Iu={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Iu).forEach(([e,t])=>{Iu[t]=e});function nv(e){const t=new Kr(e),n=Oy(Kr.prototype.request,t);return N.extend(n,Kr.prototype,t,{allOwnKeys:!0}),N.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return nv(ss(e,s))},n}const Xe=nv(Ni);Xe.Axios=Kr;Xe.CanceledError=ro;Xe.CancelToken=Cb;Xe.isCancel=Gy;Xe.VERSION=ev;Xe.toFormData=Pl;Xe.AxiosError=oe;Xe.Cancel=Xe.CanceledError;Xe.all=function(t){return Promise.all(t)};Xe.spread=Eb;Xe.isAxiosError=Nb;Xe.mergeConfig=ss;Xe.AxiosHeaders=Yt;Xe.formToJSON=e=>qy(N.isHTMLForm(e)?new FormData(e):e);Xe.getAdapter=Zy.getAdapter;Xe.HttpStatusCode=Iu;Xe.default=Xe;const{Axios:dT,AxiosError:fT,CanceledError:pT,isCancel:hT,CancelToken:mT,VERSION:gT,all:yT,Cancel:vT,isAxiosError:wT,spread:xT,toFormData:ST,AxiosHeaders:kT,HttpStatusCode:bT,formToJSON:CT,getAdapter:ET,mergeConfig:NT}=Xe,jb="notesDB",Tb=1;class _b{constructor(){pe(this,"db",null);pe(this,"initPromise",null)}async init(){return this.db?this.db:this.initPromise?this.initPromise:(this.initPromise=new Promise((t,n)=>{const r=indexedDB.open(jb,Tb);r.onerror=()=>{n(r.error)},r.onsuccess=()=>{this.db=r.result,this.initPromise=null,t(this.db)},r.onupgradeneeded=s=>{const o=s.target.result;if(!o.objectStoreNames.contains("notes")){const i=o.createObjectStore("notes",{keyPath:"id"});i.createIndex("user_id","user_id",{unique:!1}),i.createIndex("created_at","created_at",{unique:!1}),i.createIndex("syncStatus","syncStatus",{unique:!1})}if(!o.objectStoreNames.contains("syncQueue")){const i=o.createObjectStore("syncQueue",{keyPath:"id"});i.createIndex("timestamp","timestamp",{unique:!1}),i.createIndex("noteId","noteId",{unique:!1})}}}),this.initPromise)}async getStore(t,n="readonly"){if(await this.init(),!this.db)throw new Error("Database not initialized");return this.db.transaction([t],n).objectStore(t)}async getAllNotes(){const t=await this.getStore("notes");return new Promise((n,r)=>{const s=t.getAll();s.onsuccess=()=>n(s.result),s.onerror=()=>r(s.error)})}async getNotesByUserId(t){const n=await this.getStore("notes");return new Promise((r,s)=>{const o=n.index("user_id").getAll(t);o.onsuccess=()=>r(o.result),o.onerror=()=>s(o.error)})}async getNote(t){const n=await this.getStore("notes");return new Promise((r,s)=>{const o=n.get(t);o.onsuccess=()=>r(o.result),o.onerror=()=>s(o.error)})}async saveNote(t){const n=await this.getStore("notes","readwrite");return new Promise((r,s)=>{const o=n.put(t);o.onsuccess=()=>r(),o.onerror=()=>s(o.error)})}async saveNotes(t){if(t.length===0)return;if(await this.init(),!this.db)throw new Error("Database not initialized");const r=this.db.transaction(["notes"],"readwrite").objectStore("notes");return new Promise((s,o)=>{let i=0;for(const a of t){const l=r.put(a);l.onerror=()=>o(l.error),l.onsuccess=()=>{i++,i===t.length&&s()}}})}async deleteNote(t){const n=await this.getStore("notes","readwrite");return new Promise((r,s)=>{const o=n.delete(t);o.onsuccess=()=>r(),o.onerror=()=>s(o.error)})}async clearAllNotes(){const t=await this.getStore("notes","readwrite");return new Promise((n,r)=>{const s=t.clear();s.onsuccess=()=>n(),s.onerror=()=>r(s.error)})}async addToSyncQueue(t){const n=await this.getStore("syncQueue","readwrite"),r=`sync-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,s={...t,id:r};return new Promise((o,i)=>{const a=n.add(s);a.onsuccess=()=>o(r),a.onerror=()=>i(a.error)})}async getSyncQueue(){const t=await this.getStore("syncQueue");return new Promise((n,r)=>{const s=t.index("timestamp").getAll();s.onsuccess=()=>n(s.result),s.onerror=()=>r(s.error)})}async getSyncQueueItem(t){const n=await this.getStore("syncQueue");return new Promise((r,s)=>{const o=n.get(t);o.onsuccess=()=>r(o.result),o.onerror=()=>s(o.error)})}async removeFromSyncQueue(t){const n=await this.getStore("syncQueue","readwrite");return new Promise((r,s)=>{const o=n.delete(t);o.onsuccess=()=>r(),o.onerror=()=>s(o.error)})}async updateSyncQueueItem(t,n){const r=await this.getSyncQueueItem(t);if(!r)throw new Error("Sync queue item not found");const s=await this.getStore("syncQueue","readwrite");return new Promise((o,i)=>{const a=s.put({...r,...n});a.onsuccess=()=>o(),a.onerror=()=>i(a.error)})}async clearSyncQueue(){const t=await this.getStore("syncQueue","readwrite");return new Promise((n,r)=>{const s=t.clear();s.onsuccess=()=>n(),s.onerror=()=>r(s.error)})}async clearAll(){await Promise.all([this.clearAllNotes(),this.clearSyncQueue()])}async getPendingSyncCount(){return(await this.getSyncQueue()).length}async isNoteSynced(t){const n=await this.getNote(t);return(n==null?void 0:n.syncStatus)==="synced"}async getDataVersion(){const n=(await this.getAllNotes()).filter(o=>o.is_archived===0);if(n.length===0)return{last_updated_at:null,last_created_at:null,total_notes:0};let r=null,s=null;for(const o of n)o.updated_at&&(!r||o.updated_at>r)&&(r=o.updated_at),o.created_at&&(!s||o.created_at>s)&&(s=o.created_at);return{last_updated_at:r,last_created_at:s,total_notes:n.length}}async getDataVersionByUserId(t){const r=(await this.getNotesByUserId(t)).filter(i=>i.is_archived===0);if(r.length===0)return{last_updated_at:null,last_created_at:null,total_notes:0};let s=null,o=null;for(const i of r)i.updated_at&&(!s||i.updated_at>s)&&(s=i.updated_at),i.created_at&&(!o||i.created_at>o)&&(o=i.created_at);return{last_updated_at:s,last_created_at:o,total_notes:r.length}}}const O=new _b,X=Xe.create({baseURL:"/api",withCredentials:!0,headers:{"Content-Type":"application/json"}});X.interceptors.request.use(e=>{var t;return console.log("API Request:",(t=e.method)==null?void 0:t.toUpperCase(),e.url),e},e=>Promise.reject(e));X.interceptors.response.use(e=>(console.log("API Response:",e.status,e.config.url),e),e=>{var t,n,r,s;if(console.error("API Error:",{url:(t=e.config)==null?void 0:t.url,status:(n=e.response)==null?void 0:n.status,message:e.message,data:(r=e.response)==null?void 0:r.data}),((s=e.response)==null?void 0:s.status)===401){const o=["/login","/register","/notes/archived/all","/user/delete-account"],i=["/auth/status"],a=o.some(u=>{var d,f;return(f=(d=e.config)==null?void 0:d.url)==null?void 0:f.includes(u)}),l=i.some(u=>{var d,f;return(f=(d=e.config)==null?void 0:d.url)==null?void 0:f.includes(u)});!a&&!l&&(O.clearAll().catch(u=>{console.error("Ошибка очистки IndexedDB при 401:",u)}),localStorage.removeItem("isAuthenticated"),window.location.href="/")}return e.response||console.error("Network error - server might be down or proxy not working"),Promise.reject(e)});const os={login:async(e,t)=>{const{data:n}=await X.post("/login",{username:e,password:t});return n},register:async(e,t,n)=>{const{data:r}=await X.post("/register",{username:e,password:t,confirmPassword:n});return r},checkStatus:async()=>{const{data:e}=await X.get("/auth/status");return e},logout:async()=>{await X.post("/logout")}},Hn=()=>{const e=Et();return{showNotification:S.useCallback((n,r="info")=>{const s=`notification-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;e($s({message:n,type:r,id:s})),setTimeout(()=>{e(Iy(s))},4e3)},[e])}},Fo=/^[a-z0-9]+(-[a-z0-9]+)*$/,Rl=(e,t,n,r="")=>{const s=e.split(":");if(e.slice(0,1)==="@"){if(s.length<2||s.length>3)return null;r=s.shift().slice(1)}if(s.length>3||!s.length)return null;if(s.length>1){const a=s.pop(),l=s.pop(),u={provider:s.length>0?s[0]:r,prefix:l,name:a};return t&&!va(u)?null:u}const o=s[0],i=o.split("-");if(i.length>1){const a={provider:r,prefix:i.shift(),name:i.join("-")};return t&&!va(a)?null:a}if(n&&r===""){const a={provider:r,prefix:"",name:o};return t&&!va(a,n)?null:a}return null},va=(e,t)=>e?!!((e.provider===""||e.provider.match(Fo))&&(t&&e.prefix===""||e.prefix.match(Fo))&&e.name.match(Fo)):!1,rv=Object.freeze({left:0,top:0,width:16,height:16}),Za=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),ef=Object.freeze({...rv,...Za}),Ru=Object.freeze({...ef,body:"",hidden:!1});function Pb(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const r=((e.rotate||0)+(t.rotate||0))%4;return r&&(n.rotate=r),n}function fh(e,t){const n=Pb(e,t);for(const r in Ru)r in Za?r in e&&!(r in n)&&(n[r]=Za[r]):r in t?n[r]=t[r]:r in e&&(n[r]=e[r]);return n}function Ib(e,t){const n=e.icons,r=e.aliases||Object.create(null),s=Object.create(null);function o(i){if(n[i])return s[i]=[];if(!(i in s)){s[i]=null;const a=r[i]&&r[i].parent,l=a&&o(a);l&&(s[i]=[a].concat(l))}return s[i]}return Object.keys(n).concat(Object.keys(r)).forEach(o),s}function Rb(e,t,n){const r=e.icons,s=e.aliases||Object.create(null);let o={};function i(a){o=fh(r[a]||s[a],o)}return i(t),n.forEach(i),fh(e,o)}function sv(e,t){const n=[];if(typeof e!="object"||typeof e.icons!="object")return n;e.not_found instanceof Array&&e.not_found.forEach(s=>{t(s,null),n.push(s)});const r=Ib(e);for(const s in r){const o=r[s];o&&(t(s,Rb(e,s,o)),n.push(s))}return n}const Ob={provider:"",aliases:{},not_found:{},...rv};function vc(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function ov(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!vc(e,Ob))return null;const n=t.icons;for(const s in n){const o=n[s];if(!s.match(Fo)||typeof o.body!="string"||!vc(o,Ru))return null}const r=t.aliases||Object.create(null);for(const s in r){const o=r[s],i=o.parent;if(!s.match(Fo)||typeof i!="string"||!n[i]&&!r[i]||!vc(o,Ru))return null}return t}const ph=Object.create(null);function Lb(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function is(e,t){const n=ph[e]||(ph[e]=Object.create(null));return n[t]||(n[t]=Lb(e,t))}function tf(e,t){return ov(t)?sv(t,(n,r)=>{r?e.icons[n]=r:e.missing.add(n)}):[]}function Db(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}let di=!1;function iv(e){return typeof e=="boolean"&&(di=e),di}function Mb(e){const t=typeof e=="string"?Rl(e,!0,di):e;if(t){const n=is(t.provider,t.prefix),r=t.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function Ab(e,t){const n=Rl(e,!0,di);if(!n)return!1;const r=is(n.provider,n.prefix);return Db(r,n.name,t)}function $b(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),di&&!t&&!e.prefix){let s=!1;return ov(e)&&(e.prefix="",sv(e,(o,i)=>{i&&Ab(o,i)&&(s=!0)})),s}const n=e.prefix;if(!va({provider:t,prefix:n,name:"a"}))return!1;const r=is(t,n);return!!tf(r,e)}const av=Object.freeze({width:null,height:null}),lv=Object.freeze({...av,...Za}),Fb=/(-?[0-9.]*[0-9]+[0-9.]*)/g,zb=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function hh(e,t,n){if(t===1)return e;if(n=n||100,typeof e=="number")return Math.ceil(e*t*n)/n;if(typeof e!="string")return e;const r=e.split(Fb);if(r===null||!r.length)return e;const s=[];let o=r.shift(),i=zb.test(o);for(;;){if(i){const a=parseFloat(o);isNaN(a)?s.push(o):s.push(Math.ceil(a*t*n)/n)}else s.push(o);if(o=r.shift(),o===void 0)return s.join("");i=!i}}const Ub=e=>e==="unset"||e==="undefined"||e==="none";function Bb(e,t){const n={...ef,...e},r={...lv,...t},s={left:n.left,top:n.top,width:n.width,height:n.height};let o=n.body;[n,r].forEach(g=>{const y=[],w=g.hFlip,h=g.vFlip;let m=g.rotate;w?h?m+=2:(y.push("translate("+(s.width+s.left).toString()+" "+(0-s.top).toString()+")"),y.push("scale(-1 1)"),s.top=s.left=0):h&&(y.push("translate("+(0-s.left).toString()+" "+(s.height+s.top).toString()+")"),y.push("scale(1 -1)"),s.top=s.left=0);let x;switch(m<0&&(m-=Math.floor(m/4)*4),m=m%4,m){case 1:x=s.height/2+s.top,y.unshift("rotate(90 "+x.toString()+" "+x.toString()+")");break;case 2:y.unshift("rotate(180 "+(s.width/2+s.left).toString()+" "+(s.height/2+s.top).toString()+")");break;case 3:x=s.width/2+s.left,y.unshift("rotate(-90 "+x.toString()+" "+x.toString()+")");break}m%2===1&&(s.left!==s.top&&(x=s.left,s.left=s.top,s.top=x),s.width!==s.height&&(x=s.width,s.width=s.height,s.height=x)),y.length&&(o=''+o+"")});const i=r.width,a=r.height,l=s.width,u=s.height;let d,f;i===null?(f=a===null?"1em":a==="auto"?u:a,d=hh(f,l/u)):(d=i==="auto"?l:i,f=a===null?hh(d,u/l):a==="auto"?u:a);const p={},v=(g,y)=>{Ub(y)||(p[g]=y.toString())};return v("width",d),v("height",f),p.viewBox=s.left.toString()+" "+s.top.toString()+" "+l.toString()+" "+u.toString(),{attributes:p,body:o}}const Wb=/\sid="(\S+)"/g,Hb="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Qb=0;function Vb(e,t=Hb){const n=[];let r;for(;r=Wb.exec(e);)n.push(r[1]);if(!n.length)return e;const s="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(o=>{const i=typeof t=="function"?t(o):t+(Qb++).toString(),a=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+i+s+"$3")}),e=e.replace(new RegExp(s,"g"),""),e}const Ou=Object.create(null);function qb(e,t){Ou[e]=t}function Lu(e){return Ou[e]||Ou[""]}function nf(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const rf=Object.create(null),vo=["https://api.simplesvg.com","https://api.unisvg.com"],wa=[];for(;vo.length>0;)vo.length===1||Math.random()>.5?wa.push(vo.shift()):wa.push(vo.pop());rf[""]=nf({resources:["https://api.iconify.design"].concat(wa)});function Gb(e,t){const n=nf(t);return n===null?!1:(rf[e]=n,!0)}function sf(e){return rf[e]}const Yb=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let mh=Yb();function Kb(e,t){const n=sf(e);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let s=0;n.resources.forEach(i=>{s=Math.max(s,i.length)});const o=t+".json?icons=";r=n.maxURL-s-n.path.length-o.length}return r}function Xb(e){return e===404}const Jb=(e,t,n)=>{const r=[],s=Kb(e,t),o="icons";let i={type:o,provider:e,prefix:t,icons:[]},a=0;return n.forEach((l,u)=>{a+=l.length+1,a>=s&&u>0&&(r.push(i),i={type:o,provider:e,prefix:t,icons:[]},a=l.length),i.icons.push(l)}),r.push(i),r};function Zb(e){if(typeof e=="string"){const t=sf(e);if(t)return t.path}return"/"}const eC=(e,t,n)=>{if(!mh){n("abort",424);return}let r=Zb(t.provider);switch(t.type){case"icons":{const o=t.prefix,a=t.icons.join(","),l=new URLSearchParams({icons:a});r+=o+".json?"+l.toString();break}case"custom":{const o=t.uri;r+=o.slice(0,1)==="/"?o.slice(1):o;break}default:n("abort",400);return}let s=503;mh(e+r).then(o=>{const i=o.status;if(i!==200){setTimeout(()=>{n(Xb(i)?"abort":"next",i)});return}return s=501,o.json()}).then(o=>{if(typeof o!="object"||o===null){setTimeout(()=>{o===404?n("abort",o):n("next",s)});return}setTimeout(()=>{n("success",o)})}).catch(()=>{n("next",s)})},tC={prepare:Jb,send:eC};function nC(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((s,o)=>s.provider!==o.provider?s.provider.localeCompare(o.provider):s.prefix!==o.prefix?s.prefix.localeCompare(o.prefix):s.name.localeCompare(o.name));let r={provider:"",prefix:"",name:""};return e.forEach(s=>{if(r.name===s.name&&r.prefix===s.prefix&&r.provider===s.provider)return;r=s;const o=s.provider,i=s.prefix,a=s.name,l=n[o]||(n[o]=Object.create(null)),u=l[i]||(l[i]=is(o,i));let d;a in u.icons?d=t.loaded:i===""||u.missing.has(a)?d=t.missing:d=t.pending;const f={provider:o,prefix:i,name:a};d.push(f)}),t}function cv(e,t){e.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(s=>s.id!==t))})}function rC(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const r=e.provider,s=e.prefix;t.forEach(o=>{const i=o.icons,a=i.pending.length;i.pending=i.pending.filter(l=>{if(l.prefix!==s)return!0;const u=l.name;if(e.icons[u])i.loaded.push({provider:r,prefix:s,name:u});else if(e.missing.has(u))i.missing.push({provider:r,prefix:s,name:u});else return n=!0,!0;return!1}),i.pending.length!==a&&(n||cv([e],o.id),o.callback(i.loaded.slice(0),i.missing.slice(0),i.pending.slice(0),o.abort))})}))}let sC=0;function oC(e,t,n){const r=sC++,s=cv.bind(null,n,r);if(!t.pending.length)return s;const o={id:r,icons:t,callback:e,abort:s};return n.forEach(i=>{(i.loaderCallbacks||(i.loaderCallbacks=[])).push(o)}),s}function iC(e,t=!0,n=!1){const r=[];return e.forEach(s=>{const o=typeof s=="string"?Rl(s,t,n):s;o&&r.push(o)}),r}var aC={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function lC(e,t,n,r){const s=e.resources.length,o=e.random?Math.floor(Math.random()*s):e.index;let i;if(e.random){let b=e.resources.slice(0);for(i=[];b.length>1;){const j=Math.floor(Math.random()*b.length);i.push(b[j]),b=b.slice(0,j).concat(b.slice(j+1))}i=i.concat(b)}else i=e.resources.slice(o).concat(e.resources.slice(0,o));const a=Date.now();let l="pending",u=0,d,f=null,p=[],v=[];typeof r=="function"&&v.push(r);function g(){f&&(clearTimeout(f),f=null)}function y(){l==="pending"&&(l="aborted"),g(),p.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),p=[]}function w(b,j){j&&(v=[]),typeof b=="function"&&v.push(b)}function h(){return{startTime:a,payload:t,status:l,queriesSent:u,queriesPending:p.length,subscribe:w,abort:y}}function m(){l="failed",v.forEach(b=>{b(void 0,d)})}function x(){p.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),p=[]}function C(b,j,_){const I=j!=="success";switch(p=p.filter(R=>R!==b),l){case"pending":break;case"failed":if(I||!e.dataAfterTimeout)return;break;default:return}if(j==="abort"){d=_,m();return}if(I){d=_,p.length||(i.length?T():m());return}if(g(),x(),!e.random){const R=e.resources.indexOf(b.resource);R!==-1&&R!==e.index&&(e.index=R)}l="completed",v.forEach(R=>{R(_)})}function T(){if(l!=="pending")return;g();const b=i.shift();if(b===void 0){if(p.length){f=setTimeout(()=>{g(),l==="pending"&&(x(),m())},e.timeout);return}m();return}const j={status:"pending",resource:b,callback:(_,I)=>{C(j,_,I)}};p.push(j),u++,f=setTimeout(T,e.rotate),n(b,t,j.callback)}return setTimeout(T),h}function uv(e){const t={...aC,...e};let n=[];function r(){n=n.filter(a=>a().status==="pending")}function s(a,l,u){const d=lC(t,a,l,(f,p)=>{r(),u&&u(f,p)});return n.push(d),d}function o(a){return n.find(l=>a(l))||null}return{query:s,find:o,setIndex:a=>{t.index=a},getIndex:()=>t.index,cleanup:r}}function gh(){}const wc=Object.create(null);function cC(e){if(!wc[e]){const t=sf(e);if(!t)return;const n=uv(t),r={config:t,redundancy:n};wc[e]=r}return wc[e]}function uC(e,t,n){let r,s;if(typeof e=="string"){const o=Lu(e);if(!o)return n(void 0,424),gh;s=o.send;const i=cC(e);i&&(r=i.redundancy)}else{const o=nf(e);if(o){r=uv(o);const i=e.resources?e.resources[0]:"",a=Lu(i);a&&(s=a.send)}}return!r||!s?(n(void 0,424),gh):r.query(t,s,n)().abort}const yh="iconify2",fi="iconify",dv=fi+"-count",vh=fi+"-version",fv=36e5,dC=168;function Du(e,t){try{return e.getItem(t)}catch{}}function of(e,t,n){try{return e.setItem(t,n),!0}catch{}}function wh(e,t){try{e.removeItem(t)}catch{}}function Mu(e,t){return of(e,dv,t.toString())}function Au(e){return parseInt(Du(e,dv))||0}const Ol={local:!0,session:!0},pv={local:new Set,session:new Set};let af=!1;function fC(e){af=e}let Xi=typeof window>"u"?{}:window;function hv(e){const t=e+"Storage";try{if(Xi&&Xi[t]&&typeof Xi[t].length=="number")return Xi[t]}catch{}Ol[e]=!1}function mv(e,t){const n=hv(e);if(!n)return;const r=Du(n,vh);if(r!==yh){if(r){const a=Au(n);for(let l=0;l{const l=fi+a.toString(),u=Du(n,l);if(typeof u=="string"){try{const d=JSON.parse(u);if(typeof d=="object"&&typeof d.cached=="number"&&d.cached>s&&typeof d.provider=="string"&&typeof d.data=="object"&&typeof d.data.prefix=="string"&&t(d,a))return!0}catch{}wh(n,l)}};let i=Au(n);for(let a=i-1;a>=0;a--)o(a)||(a===i-1?(i--,Mu(n,i)):pv[e].add(a))}function gv(){if(!af){fC(!0);for(const e in Ol)mv(e,t=>{const n=t.data,r=t.provider,s=n.prefix,o=is(r,s);if(!tf(o,n).length)return!1;const i=n.lastModified||-1;return o.lastModifiedCached=o.lastModifiedCached?Math.min(o.lastModifiedCached,i):i,!0})}}function pC(e,t){const n=e.lastModifiedCached;if(n&&n>=t)return n===t;if(e.lastModifiedCached=t,n)for(const r in Ol)mv(r,s=>{const o=s.data;return s.provider!==e.provider||o.prefix!==e.prefix||o.lastModified===t});return!0}function hC(e,t){af||gv();function n(r){let s;if(!Ol[r]||!(s=hv(r)))return;const o=pv[r];let i;if(o.size)o.delete(i=Array.from(o).shift());else if(i=Au(s),!Mu(s,i+1))return;const a={cached:Math.floor(Date.now()/fv),provider:e.provider,data:t};return of(s,fi+i.toString(),JSON.stringify(a))}t.lastModified&&!pC(e,t.lastModified)||Object.keys(t.icons).length&&(t.not_found&&(t=Object.assign({},t),delete t.not_found),n("local")||n("session"))}function xh(){}function mC(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,rC(e)}))}function gC(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:n,prefix:r}=e,s=e.iconsToLoad;delete e.iconsToLoad;let o;if(!s||!(o=Lu(n)))return;o.prepare(n,r,s).forEach(a=>{uC(n,a,l=>{if(typeof l!="object")a.icons.forEach(u=>{e.missing.add(u)});else try{const u=tf(e,l);if(!u.length)return;const d=e.pendingIcons;d&&u.forEach(f=>{d.delete(f)}),hC(e,l)}catch(u){console.error(u)}mC(e)})})}))}const yC=(e,t)=>{const n=iC(e,!0,iv()),r=nC(n);if(!r.pending.length){let l=!0;return t&&setTimeout(()=>{l&&t(r.loaded,r.missing,r.pending,xh)}),()=>{l=!1}}const s=Object.create(null),o=[];let i,a;return r.pending.forEach(l=>{const{provider:u,prefix:d}=l;if(d===a&&u===i)return;i=u,a=d,o.push(is(u,d));const f=s[u]||(s[u]=Object.create(null));f[d]||(f[d]=[])}),r.pending.forEach(l=>{const{provider:u,prefix:d,name:f}=l,p=is(u,d),v=p.pendingIcons||(p.pendingIcons=new Set);v.has(f)||(v.add(f),s[u][d].push(f))}),o.forEach(l=>{const{provider:u,prefix:d}=l;s[u][d].length&&gC(l,s[u][d])}),t?oC(t,r,o):xh};function vC(e,t){const n={...e};for(const r in t){const s=t[r],o=typeof s;r in av?(s===null||s&&(o==="string"||o==="number"))&&(n[r]=s):o===typeof n[r]&&(n[r]=r==="rotate"?s%4:s)}return n}const wC=/[\s,]+/;function xC(e,t){t.split(wC).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function SC(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function r(s){for(;s<0;)s+=4;return s%4}if(n===""){const s=parseInt(e);return isNaN(s)?0:r(s)}else if(n!==e){let s=0;switch(n){case"%":s=25;break;case"deg":s=90}if(s){let o=parseFloat(e.slice(0,e.length-n.length));return isNaN(o)?0:(o=o/s,o%1===0?r(o):0)}}return t}function kC(e,t){let n=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in t)n+=" "+r+'="'+t[r]+'"';return'"+e+""}function bC(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function CC(e){return"data:image/svg+xml,"+bC(e)}function EC(e){return'url("'+CC(e)+'")'}let zo;function NC(){try{zo=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{zo=null}}function jC(e){return zo===void 0&&NC(),zo?zo.createHTML(e):e}const yv={...lv,inline:!1},TC={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},_C={display:"inline-block"},$u={backgroundColor:"currentColor"},vv={backgroundColor:"transparent"},Sh={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},kh={WebkitMask:$u,mask:$u,background:vv};for(const e in kh){const t=kh[e];for(const n in Sh)t[e+n]=Sh[n]}const PC={...yv,inline:!0};function bh(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const IC=(e,t,n,r)=>{const s=n?PC:yv,o=vC(s,t),i=t.mode||"svg",a={},l=t.style||{},u={...i==="svg"?TC:{},ref:r};for(let h in t){const m=t[h];if(m!==void 0)switch(h){case"icon":case"style":case"children":case"onLoad":case"mode":case"_ref":case"_inline":break;case"inline":case"hFlip":case"vFlip":o[h]=m===!0||m==="true"||m===1;break;case"flip":typeof m=="string"&&xC(o,m);break;case"color":a.color=m;break;case"rotate":typeof m=="string"?o[h]=SC(m):typeof m=="number"&&(o[h]=m);break;case"ariaHidden":case"aria-hidden":m!==!0&&m!=="true"&&delete u["aria-hidden"];break;default:s[h]===void 0&&(u[h]=m)}}const d=Bb(e,o),f=d.attributes;if(o.inline&&(a.verticalAlign="-0.125em"),i==="svg"){u.style={...a,...l},Object.assign(u,f);let h=0,m=t.id;return typeof m=="string"&&(m=m.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:jC(Vb(d.body,m?()=>m+"ID"+h++:"iconifyReact"))},Pn.createElement("svg",u)}const{body:p,width:v,height:g}=e,y=i==="mask"||(i==="bg"?!1:p.indexOf("currentColor")!==-1),w=kC(p,{...f,width:v+"",height:g+""});return u.style={...a,"--svg":EC(w),width:bh(f.width),height:bh(f.height),..._C,...y?$u:vv,...l},Pn.createElement("span",u)};iv(!0);qb("",tC);if(typeof document<"u"&&typeof window<"u"){gv();const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!$b(r))&&console.error(n)}catch{console.error(n)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let n in t){const r="IconifyProviders["+n+"] is invalid.";try{const s=t[n];if(typeof s!="object"||!s||s.resources===void 0)continue;Gb(n,s)||console.error(r)}catch{console.error(r)}}}}class wv extends Pn.Component{constructor(t){super(t),this.state={icon:null}}_abortLoading(){this._loading&&(this._loading.abort(),this._loading=null)}_setData(t){this.state.icon!==t&&this.setState({icon:t})}_checkIcon(t){const n=this.state,r=this.props.icon;if(typeof r=="object"&&r!==null&&typeof r.body=="string"){this._icon="",this._abortLoading(),(t||n.icon===null)&&this._setData({data:r});return}let s;if(typeof r!="string"||(s=Rl(r,!1,!0))===null){this._abortLoading(),this._setData(null);return}const o=Mb(s);if(!o){(!this._loading||this._loading.name!==r)&&(this._abortLoading(),this._icon="",this._setData(null),o!==null&&(this._loading={name:r,abort:yC([s],this._checkIcon.bind(this,!1))}));return}if(this._icon!==r||n.icon===null){this._abortLoading(),this._icon=r;const i=["iconify"];s.prefix!==""&&i.push("iconify--"+s.prefix),s.provider!==""&&i.push("iconify--"+s.provider),this._setData({data:o,classes:i}),this.props.onLoad&&this.props.onLoad(r)}}componentDidMount(){this._checkIcon(!1)}componentDidUpdate(t){t.icon!==this.props.icon&&this._checkIcon(!0)}componentWillUnmount(){this._abortLoading()}render(){const t=this.props,n=this.state.icon;if(n===null)return t.children?t.children:Pn.createElement("span",{});let r=t;return n.classes&&(r={...t,className:(typeof t.className=="string"?t.className+" ":"")+n.classes.join(" ")}),IC({...ef,...n.data},r,t._inline,t._ref)}}const M=Pn.forwardRef(function(t,n){const r={...t,_ref:n,_inline:!1};return Pn.createElement(wv,r)});Pn.forwardRef(function(t,n){const r={...t,_ref:n,_inline:!0};return Pn.createElement(wv,r)});const RC=e=>{const t=e.replace("#",""),n=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),s=parseInt(t.substring(4,6),16);return`${n}, ${r}, ${s}`},pi=e=>{document.documentElement.style.setProperty("--accent-color",e);const t=RC(e);document.documentElement.style.setProperty("--accent-color-rgb",t)},lf=()=>{const e=ie(r=>r.ui.theme),t=ie(r=>r.ui.accentColor),n=Et();return S.useEffect(()=>{document.documentElement.setAttribute("data-theme",e),pi(t);const r=document.querySelector('meta[name="theme-color"]');r&&r.setAttribute("content",e==="dark"?"#1a1a1a":t)},[e,t]),S.useEffect(()=>{const r=window.matchMedia("(prefers-color-scheme: dark)"),s=o=>{localStorage.getItem("theme")||n(q1(o.matches?"dark":"light"))};return r.addEventListener("change",s),()=>r.removeEventListener("change",s)},[n]),{theme:e,accentColor:t,toggleTheme:()=>n(V1())}},ji=()=>{const{theme:e,toggleTheme:t}=lf();return c.jsx("button",{id:"theme-toggle-btn",className:"theme-toggle-btn",onClick:t,title:"Переключить тему",children:c.jsx(M,{icon:e==="dark"?"mdi:weather-sunny":"mdi:weather-night"})})},OC=()=>{const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(!1),i=Dr(),a=Et(),{showNotification:l}=Hn(),u=ie(v=>v.auth.isAuthenticated),d=ie(v=>v.auth.userId),[f]=TS();S.useEffect(()=>{u&&i("/notes")},[u,i]),S.useEffect(()=>{f.get("error")==="invalid_password"&&l("Неверный пароль!","error")},[f,l]);const p=async v=>{var g;if(v.preventDefault(),!e.trim()||!n){l("Логин и пароль обязательны","error");return}o(!0);try{console.log("Attempting login...");const y=await os.login(e,n);if(console.log("Login response:",y),y.success){const w=await os.checkStatus(),h=w.userId;d&&d!==h&&(console.log(`[Login] User changed from ${d} to ${h}, clearing IndexedDB`),await O.clearAll()),a(Vd({userId:h,username:w.username})),l("Успешный вход!","success"),i("/notes")}else l(y.error||"Ошибка входа","error")}catch(y){console.error("Login error details:",y),console.error("Error response:",y.response),console.error("Error message:",y.message);let w="Ошибка соединения с сервером";y.response?w=((g=y.response.data)==null?void 0:g.error)||`Ошибка ${y.response.status}`:y.request?w="Сервер не отвечает. Проверьте, запущен ли backend на порту 3000":w=y.message||"Ошибка соединения с сервером",l(w,"error")}finally{o(!1)}};return c.jsxs("div",{className:"container",children:[c.jsx("header",{children:c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[c.jsxs("span",{children:[c.jsx(M,{icon:"mdi:login"})," Вход в систему"]}),c.jsx(ji,{})]})}),c.jsxs("div",{className:"login-form",children:[c.jsxs("form",{id:"loginForm",onSubmit:p,children:[c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"username",children:"Логин:"}),c.jsx("input",{type:"text",id:"username",name:"username",value:e,onChange:v=>t(v.target.value),required:!0,placeholder:"Введите ваш логин"})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"password",children:"Пароль:"}),c.jsx("input",{type:"password",id:"password",name:"password",value:n,onChange:v=>r(v.target.value),required:!0,placeholder:"Введите пароль"})]}),c.jsx("button",{type:"submit",className:"btnSave",disabled:s,children:s?"Вход...":"Войти"})]}),c.jsxs("p",{className:"auth-link",children:["Нет аккаунта? ",c.jsx(fy,{to:"/register",children:"Зарегистрируйтесь"})]})]})]})},LC=()=>{const[e,t]=S.useState(""),[n,r]=S.useState(""),[s,o]=S.useState(""),[i,a]=S.useState(!1),l=Dr(),u=Et(),{showNotification:d}=Hn(),f=ie(v=>v.auth.isAuthenticated);S.useEffect(()=>{f&&l("/notes")},[f,l]);const p=async v=>{var g;if(v.preventDefault(),!e.trim()||!n||!s){d("Все поля обязательны","error");return}if(e.length<3){d("Логин должен быть не менее 3 символов","error");return}if(n.length<6){d("Пароль должен быть не менее 6 символов","error");return}if(n!==s){d("Пароли не совпадают","error");return}a(!0);try{console.log("Attempting registration...");const y=await os.register(e,n,s);if(console.log("Register response:",y),y.success){const w=await os.checkStatus(),h=w.userId;await O.clearAll(),u(Vd({userId:h,username:w.username})),d("Регистрация успешна!","success"),l("/notes")}else d(y.error||"Ошибка регистрации","error")}catch(y){console.error("Register error details:",y),console.error("Error response:",y.response),console.error("Error message:",y.message);let w="Ошибка соединения с сервером";y.response?w=((g=y.response.data)==null?void 0:g.error)||`Ошибка ${y.response.status}`:y.request?w="Сервер не отвечает. Проверьте, запущен ли backend на порту 3000":w=y.message||"Ошибка соединения с сервером",d(w,"error")}finally{a(!1)}};return c.jsxs("div",{className:"container",children:[c.jsx("header",{children:c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[c.jsxs("span",{children:[c.jsx(M,{icon:"mdi:account-plus"})," Регистрация"]}),c.jsx(ji,{})]})}),c.jsxs("div",{className:"login-form",children:[c.jsxs("form",{id:"registerForm",onSubmit:p,children:[c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"username",children:"Логин:"}),c.jsx("input",{type:"text",id:"username",name:"username",value:e,onChange:v=>t(v.target.value),required:!0,placeholder:"Введите ваш логин (мин. 3 символа)"})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"password",children:"Пароль:"}),c.jsx("input",{type:"password",id:"password",name:"password",value:n,onChange:v=>r(v.target.value),required:!0,placeholder:"Введите пароль (мин. 6 символов)"})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"confirmPassword",children:"Подтвердите пароль:"}),c.jsx("input",{type:"password",id:"confirmPassword",name:"confirmPassword",value:s,onChange:v=>o(v.target.value),required:!0,placeholder:"Подтвердите пароль"})]}),c.jsx("button",{type:"submit",className:"btnSave",disabled:i,children:i?"Регистрация...":"Зарегистрироваться"})]}),c.jsxs("p",{className:"auth-link",children:["Уже есть аккаунт? ",c.jsx(fy,{to:"/",children:"Войдите"})]})]})]})},Rt={getProfile:async()=>{const{data:e}=await X.get("/user");return e},updateProfile:async e=>{const{data:t}=await X.put("/user/profile",e);return t},uploadAvatar:async e=>{const t=new FormData;t.append("avatar",e);const{data:n}=await X.post("/user/avatar",t,{headers:{"Content-Type":"multipart/form-data"}});return n},deleteAvatar:async()=>{await X.delete("/user/avatar")},deleteAccount:async e=>{const{data:t}=await X.delete("/user/delete-account",{data:{password:e}});return t},getAiSettings:async()=>{const{data:e}=await X.get("/user/ai-settings");return e},updateAiSettings:async e=>{const{data:t}=await X.put("/user/ai-settings",e);return t}};function Ji(){return`temp-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function $r(e){return typeof e=="string"&&e.startsWith("temp-")}async function Fu(){var e,t,n,r;if(!navigator.onLine)return!1;try{const s=new AbortController,o=setTimeout(()=>s.abort(),2e3),i=await fetch("/api/auth/status",{method:"GET",signal:s.signal,cache:"no-cache",credentials:"include"});return clearTimeout(o),i.ok}catch(s){const o=s.name==="AbortError";return(s.message==="Failed to fetch"||((e=s.message)==null?void 0:e.includes("NetworkError"))||((t=s.message)==null?void 0:t.includes("ERR_INTERNET_DISCONNECTED"))||((n=s.message)==null?void 0:n.includes("ERR_NETWORK"))||((r=s.message)==null?void 0:r.includes("network request failed")))&&!o?!1:o?(navigator.onLine,!1):navigator.onLine}}function Ch(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("Failed to convert file to base64"))},r.onerror=n,r.readAsDataURL(e)})}function Eh(e,t){const n=atob(e.split(",")[1]||e),r=new Array(n.length);for(let o=0;oa.timestamp-l.timestamp);for(const a of i){try{let l=a.noteId;o.has(a.noteId)&&(l=o.get(a.noteId),console.log(`[SyncService] Mapped temp ID ${a.noteId} to server ID ${l}`));const u={...a,noteId:l};await this.processSyncItem(u,o),await O.removeFromSyncQueue(a.id),r++,await this.updatePendingCount()}catch(l){console.error("[SyncService] Error processing item:",a,l),s++;const u={...a,retries:a.retries+1,lastError:l instanceof Error?l.message:"Unknown error"};if(u.retriessetTimeout(l,100))}if(console.log(`[SyncService] Sync complete. Success: ${r}, Errors: ${s}`),r>0){try{console.log("[SyncService] Performing full data sync...");const{data:a}=await X.get("/notes"),l=a.map(p=>({...p,syncStatus:"synced"})),u=te.getState().auth.userId,d=u?await O.getNotesByUserId(u):await O.getAllNotes(),f=new Set(l.map(p=>p.id));for(const p of d)typeof p.id=="string"&&p.id.startsWith("temp-")||f.has(p.id)||(console.log(`[SyncService] Removing deleted note from IndexedDB: ${p.id}`),await O.deleteNote(p.id));await O.saveNotes(l),console.log("[SyncService] Full data sync completed")}catch(a){console.error("[SyncService] Error during full data sync:",a)}te.dispatch($s({message:`Синхронизировано заметок: ${r}`,type:"success"}))}s>0&&s===i.length?te.dispatch(ms("error")):te.dispatch(ms("idle")),await this.updatePendingCount(),this.notifyListeners()}catch(n){console.error("[SyncService] Fatal sync error:",n),te.dispatch(ms("error")),te.dispatch($s({message:"Ошибка синхронизации",type:"error"}))}finally{this.isSyncing=!1}}async processSyncItem(t,n){switch(console.log(`[SyncService] Processing ${t.type} for note ${t.noteId}`),t.type){case"create":await this.syncCreate(t,n);break;case"update":await this.syncUpdate(t,n);break;case"delete":await this.syncDelete(t);break;case"uploadImage":await this.syncUploadImage(t);break;case"uploadFile":await this.syncUploadFile(t);break;default:console.warn(`[SyncService] Unknown sync type: ${t.type}`)}}async syncCreate(t,n){const r=await O.getNote(t.noteId);if(!r)throw new Error("Note not found in local database");const{data:s}=await X.post("/notes",{content:r.content,date:r.date,time:r.time});n&&typeof t.noteId=="string"&&n.set(t.noteId,s.id);const o={...s,images:await this.updateImageReferences(r,s),files:await this.updateFileReferences(r,s),syncStatus:"synced"};await O.deleteNote(t.noteId),await O.saveNote(o),te.dispatch(qe(o)),await this.syncAttachments(r,s.id)}async syncUpdate(t,n){if(typeof t.noteId=="string"&&t.noteId.startsWith("temp-")&&!(n!=null&&n.has(t.noteId))){await this.syncCreate(t,n);return}const r=await O.getNote(t.noteId);if(!r){console.warn(`[SyncService] Note ${t.noteId} not found, skipping update`);return}t.data.hasOwnProperty("is_pinned")?await X.put(`/notes/${t.noteId}/pin`):t.data.hasOwnProperty("is_archived")?t.data.is_archived===1?await X.put(`/notes/${t.noteId}/archive`):await X.put(`/notes/${t.noteId}/unarchive`):await X.put(`/notes/${t.noteId}`,{content:r.content,skipTimestamp:t.data.skipTimestamp});const s={...r,syncStatus:"synced"};await O.saveNote(s),te.dispatch(qe(s))}async syncDelete(t){if(typeof t.noteId=="string"&&t.noteId.startsWith("temp-")){await O.deleteNote(t.noteId);return}await X.delete(`/notes/${t.noteId}`),await O.deleteNote(t.noteId)}async syncUploadImage(t){const n=await O.getNote(t.noteId);if(!n)throw new Error("Note not found");const r=t.data.imageId,s=n.images.find(f=>f.id===r);if(!s||!s.base64Data){console.warn("[SyncService] Temp image not found or no base64 data");return}const o=Eh(s.base64Data,s.mime_type),i=new File([o],s.original_name,{type:s.mime_type}),a=new FormData;a.append("images",i);const{data:l}=await X.post(`/notes/${t.noteId}/images`,a,{headers:{"Content-Type":"multipart/form-data"}}),u=n.images.map(f=>f.id===r?l[0]:f),d={...n,images:u,syncStatus:"synced"};await O.saveNote(d),te.dispatch(qe(d))}async syncUploadFile(t){const n=await O.getNote(t.noteId);if(!n)throw new Error("Note not found");const r=t.data.fileId,s=n.files.find(f=>f.id===r);if(!s||!s.base64Data){console.warn("[SyncService] Temp file not found or no base64 data");return}const o=Eh(s.base64Data,s.mime_type),i=new File([o],s.original_name,{type:s.mime_type}),a=new FormData;a.append("files",i);const{data:l}=await X.post(`/notes/${t.noteId}/files`,a,{headers:{"Content-Type":"multipart/form-data"}}),u=n.files.map(f=>f.id===r?l[0]:f),d={...n,files:u,syncStatus:"synced"};await O.saveNote(d),te.dispatch(qe(d))}async updateImageReferences(t,n){return t.images.some(s=>s.base64Data),t.images}async updateFileReferences(t,n){return t.files.some(s=>s.base64Data),t.files}async syncAttachments(t,n){if(t.images.some(s=>s.base64Data)||t.files.some(s=>s.base64Data)){for(const s of t.images)s.base64Data&&await O.addToSyncQueue({type:"uploadImage",noteId:n,data:{imageId:s.id},timestamp:Date.now(),retries:0});for(const s of t.files)s.base64Data&&await O.addToSyncQueue({type:"uploadFile",noteId:n,data:{fileId:s.id},timestamp:Date.now(),retries:0})}}scheduleRetry(){this.syncTimer&&clearTimeout(this.syncTimer),this.syncTimer=setTimeout(()=>{console.log("[SyncService] Retrying sync..."),this.startSync()},AC)}async updatePendingCount(){const t=await O.getPendingSyncCount();te.dispatch(qd(t))}onSyncComplete(t){this.listeners.push(t)}notifyListeners(){this.listeners.forEach(t=>t())}stop(){this.syncTimer&&(clearTimeout(this.syncTimer),this.syncTimer=null),this.listeners=[]}}const el=new $C,FC=({onFilterChange:e,onToggleSidebar:t})=>{const n=Dr(),r=Et(),s=ie(v=>v.profile.user),o=ie(v=>v.notes.selectedDate),i=ie(v=>v.notes.selectedTag),a=ie(v=>v.notes.searchQuery),l=ie(v=>v.notes.offlineMode),u=ie(v=>v.notes.pendingSyncCount),d=ie(v=>v.ui.syncStatus);S.useEffect(()=>{f()},[]),S.useEffect(()=>{const v=!!(o||i||a);e==null||e(v)},[o,i,a,e]);const f=async()=>{try{const v=await Rt.getProfile();r(Gd(v));const g=v.accent_color||"#007bff";r(Xa(g)),pi(g),(v.colored_icons!==void 0?v.colored_icons===1:!0)?document.body.classList.add("colored-icons"):document.body.classList.remove("colored-icons");try{const w=await Rt.getAiSettings();r(Yd(w))}catch(w){console.error("Ошибка загрузки AI настроек:",w)}}catch(v){console.error("Ошибка загрузки информации о пользователе:",v)}},p=async()=>{r(ms("syncing")),await el.startSync()};return c.jsxs(c.Fragment,{children:[t&&c.jsx("button",{className:"mobile-menu-btn",onClick:t,children:c.jsx(M,{icon:"mdi:menu"})}),c.jsxs("header",{className:"notes-header",children:[c.jsx("div",{className:"notes-header-left",children:c.jsxs("span",{children:[c.jsx(M,{icon:"mdi:note-text"})," Мои заметки"]})}),c.jsxs("div",{className:"user-info",children:[l?c.jsx("div",{className:"offline-indicator",title:"Работаем в offline режиме",children:c.jsx(M,{icon:"mdi:wifi-off",style:{color:"#ff9800"}})}):u>0?c.jsx("button",{className:"sync-indicator",title:`Синхронизировать ${u} заметок`,onClick:p,disabled:d==="syncing",children:d==="syncing"?c.jsx(M,{icon:"mdi:loading",className:"spinning"}):c.jsxs(c.Fragment,{children:[c.jsx(M,{icon:"mdi:cloud-upload",style:{color:"#007bff"}}),c.jsx("span",{className:"sync-badge",children:u})]})}):d==="syncing"?c.jsx("div",{className:"sync-indicator",children:c.jsx(M,{icon:"mdi:loading",className:"spinning",style:{color:"#007bff"}})}):null,s!=null&&s.avatar?c.jsx("div",{className:"user-avatar-mini",style:{display:"block"},title:"Перейти в профиль",onClick:()=>n("/profile"),children:c.jsx("img",{src:s.avatar,alt:"Аватар",loading:"lazy"})}):c.jsx("div",{className:"user-avatar-mini user-avatar-placeholder-mini",style:{display:"flex"},title:"Перейти в профиль",onClick:()=>n("/profile"),children:c.jsx(M,{icon:"mdi:account"})}),c.jsx(ji,{}),c.jsx("button",{className:"settings-icon-btn",title:"Настройки",onClick:()=>n("/settings"),children:c.jsx(M,{icon:"mdi:cog"})})]})]})]})};function tl(e){"@babel/helpers - typeof";return tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tl(e)}function vn(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Ce(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function Ke(e){Ce(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||tl(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function xv(e,t){Ce(2,arguments);var n=Ke(e),r=vn(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var s=n.getDate(),o=new Date(n.getTime());o.setMonth(n.getMonth()+r+1,0);var i=o.getDate();return s>=i?o:(n.setFullYear(o.getFullYear(),o.getMonth(),s),n)}function zC(e,t){Ce(2,arguments);var n=Ke(e).getTime(),r=vn(t);return new Date(n+r)}var UC={};function so(){return UC}function BC(e,t){var n,r,s,o,i,a,l,u;Ce(1,arguments);var d=so(),f=vn((n=(r=(s=(o=t==null?void 0:t.weekStartsOn)!==null&&o!==void 0?o:t==null||(i=t.locale)===null||i===void 0||(a=i.options)===null||a===void 0?void 0:a.weekStartsOn)!==null&&s!==void 0?s:d.weekStartsOn)!==null&&r!==void 0?r:(l=d.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&n!==void 0?n:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=Ke(e),v=p.getDay(),g=(v=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=Ke(e),v=p.getDay(),g=(v=s.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function eE(e){Ce(1,arguments);var t=bv(e),n=new Date(0);n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0);var r=nl(n);return r}var tE=6048e5;function nE(e){Ce(1,arguments);var t=Ke(e),n=nl(t).getTime()-eE(t).getTime();return Math.round(n/tE)+1}function Gs(e,t){var n,r,s,o,i,a,l,u;Ce(1,arguments);var d=so(),f=vn((n=(r=(s=(o=t==null?void 0:t.weekStartsOn)!==null&&o!==void 0?o:t==null||(i=t.locale)===null||i===void 0||(a=i.options)===null||a===void 0?void 0:a.weekStartsOn)!==null&&s!==void 0?s:d.weekStartsOn)!==null&&r!==void 0?r:(l=d.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.weekStartsOn)!==null&&n!==void 0?n:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var p=Ke(e),v=p.getUTCDay(),g=(v=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=new Date(0);g.setUTCFullYear(f+1,0,v),g.setUTCHours(0,0,0,0);var y=Gs(g,t),w=new Date(0);w.setUTCFullYear(f,0,v),w.setUTCHours(0,0,0,0);var h=Gs(w,t);return d.getTime()>=y.getTime()?f+1:d.getTime()>=h.getTime()?f:f-1}function rE(e,t){var n,r,s,o,i,a,l,u;Ce(1,arguments);var d=so(),f=vn((n=(r=(s=(o=t==null?void 0:t.firstWeekContainsDate)!==null&&o!==void 0?o:t==null||(i=t.locale)===null||i===void 0||(a=i.options)===null||a===void 0?void 0:a.firstWeekContainsDate)!==null&&s!==void 0?s:d.firstWeekContainsDate)!==null&&r!==void 0?r:(l=d.locale)===null||l===void 0||(u=l.options)===null||u===void 0?void 0:u.firstWeekContainsDate)!==null&&n!==void 0?n:1),p=Cv(e,t),v=new Date(0);v.setUTCFullYear(p,0,f),v.setUTCHours(0,0,0,0);var g=Gs(v,t);return g}var sE=6048e5;function oE(e,t){Ce(1,arguments);var n=Ke(e),r=Gs(n,t).getTime()-rE(n,t).getTime();return Math.round(r/sE)+1}function ke(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?r:1-r;return ke(n==="yy"?s%100:s,n.length)},M:function(t,n){var r=t.getUTCMonth();return n==="M"?String(r+1):ke(r+1,2)},d:function(t,n){return ke(t.getUTCDate(),n.length)},a:function(t,n){var r=t.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];case"aaaa":default:return r==="am"?"a.m.":"p.m."}},h:function(t,n){return ke(t.getUTCHours()%12||12,n.length)},H:function(t,n){return ke(t.getUTCHours(),n.length)},m:function(t,n){return ke(t.getUTCMinutes(),n.length)},s:function(t,n){return ke(t.getUTCSeconds(),n.length)},S:function(t,n){var r=n.length,s=t.getUTCMilliseconds(),o=Math.floor(s*Math.pow(10,r-3));return ke(o,n.length)}},hs={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},iE={G:function(t,n,r){var s=t.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return r.era(s,{width:"abbreviated"});case"GGGGG":return r.era(s,{width:"narrow"});case"GGGG":default:return r.era(s,{width:"wide"})}},y:function(t,n,r){if(n==="yo"){var s=t.getUTCFullYear(),o=s>0?s:1-s;return r.ordinalNumber(o,{unit:"year"})}return ur.y(t,n)},Y:function(t,n,r,s){var o=Cv(t,s),i=o>0?o:1-o;if(n==="YY"){var a=i%100;return ke(a,2)}return n==="Yo"?r.ordinalNumber(i,{unit:"year"}):ke(i,n.length)},R:function(t,n){var r=bv(t);return ke(r,n.length)},u:function(t,n){var r=t.getUTCFullYear();return ke(r,n.length)},Q:function(t,n,r){var s=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"Q":return String(s);case"QQ":return ke(s,2);case"Qo":return r.ordinalNumber(s,{unit:"quarter"});case"QQQ":return r.quarter(s,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(s,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(s,{width:"wide",context:"formatting"})}},q:function(t,n,r){var s=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"q":return String(s);case"qq":return ke(s,2);case"qo":return r.ordinalNumber(s,{unit:"quarter"});case"qqq":return r.quarter(s,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(s,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(s,{width:"wide",context:"standalone"})}},M:function(t,n,r){var s=t.getUTCMonth();switch(n){case"M":case"MM":return ur.M(t,n);case"Mo":return r.ordinalNumber(s+1,{unit:"month"});case"MMM":return r.month(s,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(s,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(s,{width:"wide",context:"formatting"})}},L:function(t,n,r){var s=t.getUTCMonth();switch(n){case"L":return String(s+1);case"LL":return ke(s+1,2);case"Lo":return r.ordinalNumber(s+1,{unit:"month"});case"LLL":return r.month(s,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(s,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(s,{width:"wide",context:"standalone"})}},w:function(t,n,r,s){var o=oE(t,s);return n==="wo"?r.ordinalNumber(o,{unit:"week"}):ke(o,n.length)},I:function(t,n,r){var s=nE(t);return n==="Io"?r.ordinalNumber(s,{unit:"week"}):ke(s,n.length)},d:function(t,n,r){return n==="do"?r.ordinalNumber(t.getUTCDate(),{unit:"date"}):ur.d(t,n)},D:function(t,n,r){var s=ZC(t);return n==="Do"?r.ordinalNumber(s,{unit:"dayOfYear"}):ke(s,n.length)},E:function(t,n,r){var s=t.getUTCDay();switch(n){case"E":case"EE":case"EEE":return r.day(s,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(s,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(s,{width:"short",context:"formatting"});case"EEEE":default:return r.day(s,{width:"wide",context:"formatting"})}},e:function(t,n,r,s){var o=t.getUTCDay(),i=(o-s.weekStartsOn+8)%7||7;switch(n){case"e":return String(i);case"ee":return ke(i,2);case"eo":return r.ordinalNumber(i,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});case"eeee":default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(t,n,r,s){var o=t.getUTCDay(),i=(o-s.weekStartsOn+8)%7||7;switch(n){case"c":return String(i);case"cc":return ke(i,n.length);case"co":return r.ordinalNumber(i,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});case"cccc":default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(t,n,r){var s=t.getUTCDay(),o=s===0?7:s;switch(n){case"i":return String(o);case"ii":return ke(o,n.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(s,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(s,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(s,{width:"short",context:"formatting"});case"iiii":default:return r.day(s,{width:"wide",context:"formatting"})}},a:function(t,n,r){var s=t.getUTCHours(),o=s/12>=1?"pm":"am";switch(n){case"a":case"aa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(t,n,r){var s=t.getUTCHours(),o;switch(s===12?o=hs.noon:s===0?o=hs.midnight:o=s/12>=1?"pm":"am",n){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(t,n,r){var s=t.getUTCHours(),o;switch(s>=17?o=hs.evening:s>=12?o=hs.afternoon:s>=4?o=hs.morning:o=hs.night,n){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(t,n,r){if(n==="ho"){var s=t.getUTCHours()%12;return s===0&&(s=12),r.ordinalNumber(s,{unit:"hour"})}return ur.h(t,n)},H:function(t,n,r){return n==="Ho"?r.ordinalNumber(t.getUTCHours(),{unit:"hour"}):ur.H(t,n)},K:function(t,n,r){var s=t.getUTCHours()%12;return n==="Ko"?r.ordinalNumber(s,{unit:"hour"}):ke(s,n.length)},k:function(t,n,r){var s=t.getUTCHours();return s===0&&(s=24),n==="ko"?r.ordinalNumber(s,{unit:"hour"}):ke(s,n.length)},m:function(t,n,r){return n==="mo"?r.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):ur.m(t,n)},s:function(t,n,r){return n==="so"?r.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):ur.s(t,n)},S:function(t,n){return ur.S(t,n)},X:function(t,n,r,s){var o=s._originalDate||t,i=o.getTimezoneOffset();if(i===0)return"Z";switch(n){case"X":return _h(i);case"XXXX":case"XX":return Wr(i);case"XXXXX":case"XXX":default:return Wr(i,":")}},x:function(t,n,r,s){var o=s._originalDate||t,i=o.getTimezoneOffset();switch(n){case"x":return _h(i);case"xxxx":case"xx":return Wr(i);case"xxxxx":case"xxx":default:return Wr(i,":")}},O:function(t,n,r,s){var o=s._originalDate||t,i=o.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+Th(i,":");case"OOOO":default:return"GMT"+Wr(i,":")}},z:function(t,n,r,s){var o=s._originalDate||t,i=o.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+Th(i,":");case"zzzz":default:return"GMT"+Wr(i,":")}},t:function(t,n,r,s){var o=s._originalDate||t,i=Math.floor(o.getTime()/1e3);return ke(i,n.length)},T:function(t,n,r,s){var o=s._originalDate||t,i=o.getTime();return ke(i,n.length)}};function Th(e,t){var n=e>0?"-":"+",r=Math.abs(e),s=Math.floor(r/60),o=r%60;if(o===0)return n+String(s);var i=t;return n+String(s)+i+ke(o,2)}function _h(e,t){if(e%60===0){var n=e>0?"-":"+";return n+ke(Math.abs(e)/60,2)}return Wr(e,t)}function Wr(e,t){var n=t||"",r=e>0?"-":"+",s=Math.abs(e),o=ke(Math.floor(s/60),2),i=ke(s%60,2);return r+o+n+i}var Ph=function(t,n){switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},Ev=function(t,n){switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},aE=function(t,n){var r=t.match(/(P+)(p+)?/)||[],s=r[1],o=r[2];if(!o)return Ph(t,n);var i;switch(s){case"P":i=n.dateTime({width:"short"});break;case"PP":i=n.dateTime({width:"medium"});break;case"PPP":i=n.dateTime({width:"long"});break;case"PPPP":default:i=n.dateTime({width:"full"});break}return i.replace("{{date}}",Ph(s,n)).replace("{{time}}",Ev(o,n))},lE={p:Ev,P:aE},cE=["D","DD"],uE=["YY","YYYY"];function dE(e){return cE.indexOf(e)!==-1}function fE(e){return uE.indexOf(e)!==-1}function Ih(e,t,n){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var pE={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},hE=function(t,n,r){var s,o=pE[t];return typeof o=="string"?s=o:n===1?s=o.one:s=o.other.replace("{{count}}",n.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+s:s+" ago":s};function Fs(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,r=e.formats[n]||e.formats[e.defaultWidth];return r}}var mE={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},gE={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},yE={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},vE={date:Fs({formats:mE,defaultWidth:"full"}),time:Fs({formats:gE,defaultWidth:"full"}),dateTime:Fs({formats:yE,defaultWidth:"full"})},wE={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},xE=function(t,n,r,s){return wE[t]};function zn(e){return function(t,n){var r=n!=null&&n.context?String(n.context):"standalone",s;if(r==="formatting"&&e.formattingValues){var o=e.defaultFormattingWidth||e.defaultWidth,i=n!=null&&n.width?String(n.width):o;s=e.formattingValues[i]||e.formattingValues[o]}else{var a=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[l]||e.values[a]}var u=e.argumentCallback?e.argumentCallback(t):t;return s[u]}}var SE={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},kE={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},bE={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},CE={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},EE={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NE={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},jE=function(t,n){var r=Number(t),s=r%100;if(s>20||s<10)switch(s%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},TE={ordinalNumber:jE,era:zn({values:SE,defaultWidth:"wide"}),quarter:zn({values:kE,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:zn({values:bE,defaultWidth:"wide"}),day:zn({values:CE,defaultWidth:"wide"}),dayPeriod:zn({values:EE,defaultWidth:"wide",formattingValues:NE,defaultFormattingWidth:"wide"})};function Un(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.width,s=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(s);if(!o)return null;var i=o[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?PE(a,function(f){return f.test(i)}):_E(a,function(f){return f.test(i)}),u;u=e.valueCallback?e.valueCallback(l):l,u=n.valueCallback?n.valueCallback(u):u;var d=t.slice(i.length);return{value:u,rest:d}}}function _E(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function PE(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var s=r[0],o=t.match(e.parsePattern);if(!o)return null;var i=e.valueCallback?e.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;var a=t.slice(s.length);return{value:i,rest:a}}}var IE=/^(\d+)(th|st|nd|rd)?/i,RE=/\d+/i,OE={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},LE={any:[/^b/i,/^(a|c)/i]},DE={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ME={any:[/1/i,/2/i,/3/i,/4/i]},AE={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},$E={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},FE={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},zE={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},UE={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},BE={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},WE={ordinalNumber:Nv({matchPattern:IE,parsePattern:RE,valueCallback:function(t){return parseInt(t,10)}}),era:Un({matchPatterns:OE,defaultMatchWidth:"wide",parsePatterns:LE,defaultParseWidth:"any"}),quarter:Un({matchPatterns:DE,defaultMatchWidth:"wide",parsePatterns:ME,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Un({matchPatterns:AE,defaultMatchWidth:"wide",parsePatterns:$E,defaultParseWidth:"any"}),day:Un({matchPatterns:FE,defaultMatchWidth:"wide",parsePatterns:zE,defaultParseWidth:"any"}),dayPeriod:Un({matchPatterns:UE,defaultMatchWidth:"any",parsePatterns:BE,defaultParseWidth:"any"})},HE={code:"en-US",formatDistance:hE,formatLong:vE,formatRelative:xE,localize:TE,match:WE,options:{weekStartsOn:0,firstWeekContainsDate:1}},QE=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,VE=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,qE=/^'([^]*?)'?$/,GE=/''/g,YE=/[a-zA-Z]/;function To(e,t,n){var r,s,o,i,a,l,u,d,f,p,v,g,y,w,h,m,x,C;Ce(2,arguments);var T=String(t),b=so(),j=(r=(s=n==null?void 0:n.locale)!==null&&s!==void 0?s:b.locale)!==null&&r!==void 0?r:HE,_=vn((o=(i=(a=(l=n==null?void 0:n.firstWeekContainsDate)!==null&&l!==void 0?l:n==null||(u=n.locale)===null||u===void 0||(d=u.options)===null||d===void 0?void 0:d.firstWeekContainsDate)!==null&&a!==void 0?a:b.firstWeekContainsDate)!==null&&i!==void 0?i:(f=b.locale)===null||f===void 0||(p=f.options)===null||p===void 0?void 0:p.firstWeekContainsDate)!==null&&o!==void 0?o:1);if(!(_>=1&&_<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var I=vn((v=(g=(y=(w=n==null?void 0:n.weekStartsOn)!==null&&w!==void 0?w:n==null||(h=n.locale)===null||h===void 0||(m=h.options)===null||m===void 0?void 0:m.weekStartsOn)!==null&&y!==void 0?y:b.weekStartsOn)!==null&&g!==void 0?g:(x=b.locale)===null||x===void 0||(C=x.options)===null||C===void 0?void 0:C.weekStartsOn)!==null&&v!==void 0?v:0);if(!(I>=0&&I<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!j.localize)throw new RangeError("locale must contain localize property");if(!j.formatLong)throw new RangeError("locale must contain formatLong property");var R=Ke(e);if(!VC(R))throw new RangeError("Invalid time value");var Y=WC(R),ue=XC(R,Y),ae={firstWeekContainsDate:_,weekStartsOn:I,locale:j,_originalDate:R},ne=T.match(VE).map(function(F){var V=F[0];if(V==="p"||V==="P"){var $=lE[V];return $(F,j.formatLong)}return F}).join("").match(QE).map(function(F){if(F==="''")return"'";var V=F[0];if(V==="'")return KE(F);var $=iE[V];if($)return!(n!=null&&n.useAdditionalWeekYearTokens)&&fE(F)&&Ih(F,t,String(e)),!(n!=null&&n.useAdditionalDayOfYearTokens)&&dE(F)&&Ih(F,t,String(e)),$(ue,F,j.localize,ae);if(V.match(YE))throw new RangeError("Format string contains an unescaped latin alphabet character `"+V+"`");return F}).join("");return ne}function KE(e){var t=e.match(qE);return t?t[1].replace(GE,"'"):e}function XE(e,t){Ce(2,arguments);var n=Ke(e),r=Ke(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()}function JE(e,t){var n;Ce(1,arguments);var r=vn((n=void 0)!==null&&n!==void 0?n:2);if(r!==2&&r!==1&&r!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var s=nN(e),o;if(s.date){var i=rN(s.date,r);o=sN(i.restDateString,i.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);var a=o.getTime(),l=0,u;if(s.time&&(l=oN(s.time),isNaN(l)))return new Date(NaN);if(s.timezone){if(u=iN(s.timezone),isNaN(u))return new Date(NaN)}else{var d=new Date(a+l),f=new Date(0);return f.setFullYear(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()),f.setHours(d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds()),f}return new Date(a+l+u)}var Zi={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ZE=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,eN=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,tN=/^([+-])(\d{2})(?::?(\d{2}))?$/;function nN(e){var t={},n=e.split(Zi.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Zi.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Zi.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){var s=Zi.timezone.exec(r);s?(t.time=r.replace(s[1],""),t.timezone=s[1]):t.time=r}return t}function rN(e,t){var n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};var s=r[1]?parseInt(r[1]):null,o=r[2]?parseInt(r[2]):null;return{year:o===null?s:o*100,restDateString:e.slice((r[1]||r[2]).length)}}function sN(e,t){if(t===null)return new Date(NaN);var n=e.match(ZE);if(!n)return new Date(NaN);var r=!!n[4],s=wo(n[1]),o=wo(n[2])-1,i=wo(n[3]),a=wo(n[4]),l=wo(n[5])-1;if(r)return dN(t,a,l)?aN(t,a,l):new Date(NaN);var u=new Date(0);return!cN(t,o,i)||!uN(t,s)?new Date(NaN):(u.setUTCFullYear(t,o,Math.max(s,i)),u)}function wo(e){return e?parseInt(e):1}function oN(e){var t=e.match(eN);if(!t)return NaN;var n=xc(t[1]),r=xc(t[2]),s=xc(t[3]);return fN(n,r,s)?n*kv+r*Sv+s*1e3:NaN}function xc(e){return e&&parseFloat(e.replace(",","."))||0}function iN(e){if(e==="Z")return 0;var t=e.match(tN);if(!t)return 0;var n=t[1]==="+"?-1:1,r=parseInt(t[2]),s=t[3]&&parseInt(t[3])||0;return pN(r,s)?n*(r*kv+s*Sv):NaN}function aN(e,t,n){var r=new Date(0);r.setUTCFullYear(e,0,4);var s=r.getUTCDay()||7,o=(t-1)*7+n+1-s;return r.setUTCDate(r.getUTCDate()+o),r}var lN=[31,null,31,30,31,30,31,31,30,31,30,31];function jv(e){return e%400===0||e%4===0&&e%100!==0}function cN(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(lN[t]||(jv(e)?29:28))}function uN(e,t){return t>=1&&t<=(jv(e)?366:365)}function dN(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function fN(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function pN(e,t){return t>=0&&t<=59}function hN(e,t){Ce(2,arguments);var n=vn(t);return xv(e,-n)}function Rh(e,t,n){Ce(2,arguments);var r=Gs(e,n),s=Gs(t,n);return r.getTime()===s.getTime()}function xo(e,t){if(e.one!==void 0&&t===1)return e.one;var n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace("{{count}}",String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace("{{count}}",String(t)):e.pluralGenitive.replace("{{count}}",String(t))}function _t(e){return function(t,n){return n!=null&&n.addSuffix?n.comparison&&n.comparison>0?e.future?xo(e.future,t):"через "+xo(e.regular,t):e.past?xo(e.past,t):xo(e.regular,t)+" назад":xo(e.regular,t)}}var mN={lessThanXSeconds:_t({regular:{one:"меньше секунды",singularNominative:"меньше {{count}} секунды",singularGenitive:"меньше {{count}} секунд",pluralGenitive:"меньше {{count}} секунд"},future:{one:"меньше, чем через секунду",singularNominative:"меньше, чем через {{count}} секунду",singularGenitive:"меньше, чем через {{count}} секунды",pluralGenitive:"меньше, чем через {{count}} секунд"}}),xSeconds:_t({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунды",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду назад",singularGenitive:"{{count}} секунды назад",pluralGenitive:"{{count}} секунд назад"},future:{singularNominative:"через {{count}} секунду",singularGenitive:"через {{count}} секунды",pluralGenitive:"через {{count}} секунд"}}),halfAMinute:function(t,n){return n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"через полминуты":"полминуты назад":"полминуты"},lessThanXMinutes:_t({regular:{one:"меньше минуты",singularNominative:"меньше {{count}} минуты",singularGenitive:"меньше {{count}} минут",pluralGenitive:"меньше {{count}} минут"},future:{one:"меньше, чем через минуту",singularNominative:"меньше, чем через {{count}} минуту",singularGenitive:"меньше, чем через {{count}} минуты",pluralGenitive:"меньше, чем через {{count}} минут"}}),xMinutes:_t({regular:{singularNominative:"{{count}} минута",singularGenitive:"{{count}} минуты",pluralGenitive:"{{count}} минут"},past:{singularNominative:"{{count}} минуту назад",singularGenitive:"{{count}} минуты назад",pluralGenitive:"{{count}} минут назад"},future:{singularNominative:"через {{count}} минуту",singularGenitive:"через {{count}} минуты",pluralGenitive:"через {{count}} минут"}}),aboutXHours:_t({regular:{singularNominative:"около {{count}} часа",singularGenitive:"около {{count}} часов",pluralGenitive:"около {{count}} часов"},future:{singularNominative:"приблизительно через {{count}} час",singularGenitive:"приблизительно через {{count}} часа",pluralGenitive:"приблизительно через {{count}} часов"}}),xHours:_t({regular:{singularNominative:"{{count}} час",singularGenitive:"{{count}} часа",pluralGenitive:"{{count}} часов"}}),xDays:_t({regular:{singularNominative:"{{count}} день",singularGenitive:"{{count}} дня",pluralGenitive:"{{count}} дней"}}),aboutXWeeks:_t({regular:{singularNominative:"около {{count}} недели",singularGenitive:"около {{count}} недель",pluralGenitive:"около {{count}} недель"},future:{singularNominative:"приблизительно через {{count}} неделю",singularGenitive:"приблизительно через {{count}} недели",pluralGenitive:"приблизительно через {{count}} недель"}}),xWeeks:_t({regular:{singularNominative:"{{count}} неделя",singularGenitive:"{{count}} недели",pluralGenitive:"{{count}} недель"}}),aboutXMonths:_t({regular:{singularNominative:"около {{count}} месяца",singularGenitive:"около {{count}} месяцев",pluralGenitive:"около {{count}} месяцев"},future:{singularNominative:"приблизительно через {{count}} месяц",singularGenitive:"приблизительно через {{count}} месяца",pluralGenitive:"приблизительно через {{count}} месяцев"}}),xMonths:_t({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяца",pluralGenitive:"{{count}} месяцев"}}),aboutXYears:_t({regular:{singularNominative:"около {{count}} года",singularGenitive:"около {{count}} лет",pluralGenitive:"около {{count}} лет"},future:{singularNominative:"приблизительно через {{count}} год",singularGenitive:"приблизительно через {{count}} года",pluralGenitive:"приблизительно через {{count}} лет"}}),xYears:_t({regular:{singularNominative:"{{count}} год",singularGenitive:"{{count}} года",pluralGenitive:"{{count}} лет"}}),overXYears:_t({regular:{singularNominative:"больше {{count}} года",singularGenitive:"больше {{count}} лет",pluralGenitive:"больше {{count}} лет"},future:{singularNominative:"больше, чем через {{count}} год",singularGenitive:"больше, чем через {{count}} года",pluralGenitive:"больше, чем через {{count}} лет"}}),almostXYears:_t({regular:{singularNominative:"почти {{count}} год",singularGenitive:"почти {{count}} года",pluralGenitive:"почти {{count}} лет"},future:{singularNominative:"почти через {{count}} год",singularGenitive:"почти через {{count}} года",pluralGenitive:"почти через {{count}} лет"}})},gN=function(t,n,r){return mN[t](n,r)},yN={full:"EEEE, d MMMM y 'г.'",long:"d MMMM y 'г.'",medium:"d MMM y 'г.'",short:"dd.MM.y"},vN={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},wN={any:"{{date}}, {{time}}"},xN={date:Fs({formats:yN,defaultWidth:"full"}),time:Fs({formats:vN,defaultWidth:"full"}),dateTime:Fs({formats:wN,defaultWidth:"any"})},cf=["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"];function SN(e){var t=cf[e];switch(e){case 0:return"'в прошлое "+t+" в' p";case 1:case 2:case 4:return"'в прошлый "+t+" в' p";case 3:case 5:case 6:return"'в прошлую "+t+" в' p"}}function Oh(e){var t=cf[e];return e===2?"'во "+t+" в' p":"'в "+t+" в' p"}function kN(e){var t=cf[e];switch(e){case 0:return"'в следующее "+t+" в' p";case 1:case 2:case 4:return"'в следующий "+t+" в' p";case 3:case 5:case 6:return"'в следующую "+t+" в' p"}}var bN={lastWeek:function(t,n,r){var s=t.getUTCDay();return Rh(t,n,r)?Oh(s):SN(s)},yesterday:"'вчера в' p",today:"'сегодня в' p",tomorrow:"'завтра в' p",nextWeek:function(t,n,r){var s=t.getUTCDay();return Rh(t,n,r)?Oh(s):kN(s)},other:"P"},CN=function(t,n,r,s){var o=bN[t];return typeof o=="function"?o(n,r,s):o},EN={narrow:["до н.э.","н.э."],abbreviated:["до н. э.","н. э."],wide:["до нашей эры","нашей эры"]},NN={narrow:["1","2","3","4"],abbreviated:["1-й кв.","2-й кв.","3-й кв.","4-й кв."],wide:["1-й квартал","2-й квартал","3-й квартал","4-й квартал"]},jN={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],wide:["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},TN={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],wide:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},_N={narrow:["В","П","В","С","Ч","П","С"],short:["вс","пн","вт","ср","чт","пт","сб"],abbreviated:["вск","пнд","втр","срд","чтв","птн","суб"],wide:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},PN={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утро",afternoon:"день",evening:"вечер",night:"ночь"}},IN={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утра",afternoon:"дня",evening:"вечера",night:"ночи"}},RN=function(t,n){var r=Number(t),s=n==null?void 0:n.unit,o;return s==="date"?o="-е":s==="week"||s==="minute"||s==="second"?o="-я":o="-й",r+o},ON={ordinalNumber:RN,era:zn({values:EN,defaultWidth:"wide"}),quarter:zn({values:NN,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:zn({values:jN,defaultWidth:"wide",formattingValues:TN,defaultFormattingWidth:"wide"}),day:zn({values:_N,defaultWidth:"wide"}),dayPeriod:zn({values:PN,defaultWidth:"any",formattingValues:IN,defaultFormattingWidth:"wide"})},LN=/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,DN=/\d+/i,MN={narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},AN={any:[/^д/i,/^н/i]},$N={narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},FN={any:[/1/i,/2/i,/3/i,/4/i]},zN={narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},UN={narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},BN={narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},WN={narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},HN={narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},QN={any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},VN={ordinalNumber:Nv({matchPattern:LN,parsePattern:DN,valueCallback:function(t){return parseInt(t,10)}}),era:Un({matchPatterns:MN,defaultMatchWidth:"wide",parsePatterns:AN,defaultParseWidth:"any"}),quarter:Un({matchPatterns:$N,defaultMatchWidth:"wide",parsePatterns:FN,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Un({matchPatterns:zN,defaultMatchWidth:"wide",parsePatterns:UN,defaultParseWidth:"any"}),day:Un({matchPatterns:BN,defaultMatchWidth:"wide",parsePatterns:WN,defaultParseWidth:"any"}),dayPeriod:Un({matchPatterns:HN,defaultMatchWidth:"wide",parsePatterns:QN,defaultParseWidth:"any"})},Tv={code:"ru",formatDistance:gN,formatLong:xN,formatRelative:CN,localize:ON,match:VN,options:{weekStartsOn:1,firstWeekContainsDate:1}};const zu=e=>JE(e.replace(" ","T")+"Z"),Lh=e=>{const t=String(e.getDate()).padStart(2,"0"),n=String(e.getMonth()+1).padStart(2,"0"),r=e.getFullYear(),s=String(e.getHours()).padStart(2,"0"),o=String(e.getMinutes()).padStart(2,"0");return`${t}.${n}.${r} ${s}:${o}`.substring(0,16)},qN=e=>To(e,"dd.MM.yyyy",{locale:Tv}),Dh=e=>{const t=zu(e);return qN(t)},_v=({notes:e=[]})=>{const[t,n]=S.useState(new Date),r=ie(h=>h.notes.selectedDate),s=Et(),o=YC(t),i=qC(t),a=BC(o,{weekStartsOn:1}),l=KC(i,{weekStartsOn:1}),u=GC({start:a,end:l}),d=new Set,f=new Set;e.forEach(h=>{h.created_at&&d.add(Dh(h.created_at)),h.updated_at&&h.created_at!==h.updated_at&&f.add(Dh(h.updated_at))});const p=h=>{const m=To(h,"dd.MM.yyyy");s(Nu(r===m?null:m))},v=()=>{n(hN(t,1))},g=()=>{n(xv(t,1))},y=To(t,"MMMM yyyy",{locale:Tv}),w=y.charAt(0).toUpperCase()+y.slice(1);return c.jsxs("div",{className:"mini-calendar",children:[c.jsxs("div",{className:"calendar-header",children:[c.jsx("button",{className:"calendar-nav",onClick:v,children:"‹"}),c.jsx("span",{className:"calendar-month-year",children:w}),c.jsx("button",{className:"calendar-nav",onClick:g,children:"›"})]}),c.jsxs("div",{className:"calendar-weekdays",children:[c.jsx("div",{className:"calendar-weekday",children:"Пн"}),c.jsx("div",{className:"calendar-weekday",children:"Вт"}),c.jsx("div",{className:"calendar-weekday",children:"Ср"}),c.jsx("div",{className:"calendar-weekday",children:"Чт"}),c.jsx("div",{className:"calendar-weekday",children:"Пт"}),c.jsx("div",{className:"calendar-weekday",children:"Сб"}),c.jsx("div",{className:"calendar-weekday",children:"Вс"})]}),c.jsx("div",{className:"calendar-days",children:u.map((h,m)=>{const x=To(h,"dd.MM.yyyy"),C=XE(h,t),T=r===x,b=d.has(x),j=f.has(x),_=HC(h,new Date);return c.jsx("div",{className:`calendar-day ${C?"":"other-month"} ${b?"has-notes":""} ${j?"has-edited-notes":""} ${T?"selected":""} ${_?"today":""}`,"data-date":x,onClick:()=>p(h),children:To(h,"d")},m)})})]})},Pv=()=>{const[e,t]=S.useState(""),n=Et(),r=S.useRef(null);S.useEffect(()=>(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{n(ju(e))},300),()=>{r.current&&clearTimeout(r.current)}),[e,n]);const s=()=>{t(""),n(ju(""))};return c.jsxs("div",{className:"search-section",children:[c.jsx("div",{className:"search-header",children:c.jsxs("span",{className:"search-title",children:[c.jsx(M,{icon:"mdi:magnify"})," Поиск"]})}),c.jsxs("div",{className:"search-container",children:[c.jsx("input",{type:"text",className:"search-input",placeholder:"Поиск по заметкам...",value:e,onChange:o=>t(o.target.value)}),e&&c.jsx("button",{className:"clear-search-btn",onClick:s,title:"Очистить поиск",children:"✕"})]})]})};function uf(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var us=uf();function Iv(e){us=e}var Uo={exec:()=>null};function ye(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(s,o)=>{let i=typeof o=="string"?o:o.source;return i=i.replace(Ot.caret,"$1"),n=n.replace(s,i),r},getRegex:()=>new RegExp(n,t)};return r}var Ot={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},GN=/^(?:[ \t]*(?:\n|$))+/,YN=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,KN=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Ti=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,XN=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,df=/(?:[*+-]|\d{1,9}[.)])/,Rv=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Ov=ye(Rv).replace(/bull/g,df).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),JN=ye(Rv).replace(/bull/g,df).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ff=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ZN=/^[^\n]+/,pf=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ej=ye(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",pf).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),tj=ye(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,df).getRegex(),Ll="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",hf=/|$))/,nj=ye("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",hf).replace("tag",Ll).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Lv=ye(ff).replace("hr",Ti).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ll).getRegex(),rj=ye(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Lv).getRegex(),mf={blockquote:rj,code:YN,def:ej,fences:KN,heading:XN,hr:Ti,html:nj,lheading:Ov,list:tj,newline:GN,paragraph:Lv,table:Uo,text:ZN},Mh=ye("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Ti).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ll).getRegex(),sj={...mf,lheading:JN,table:Mh,paragraph:ye(ff).replace("hr",Ti).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Mh).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Ll).getRegex()},oj={...mf,html:ye(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",hf).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Uo,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ye(ff).replace("hr",Ti).replace("heading",` *#{1,6} *[^ ]`).replace("lheading",Ov).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ij=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,aj=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Dv=/^( {2,}|\\)\n(?!\s*$)/,lj=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\\k(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)")).replace("code",new RegExp("(?`+)[^`]+\\k(?!`)")).replace("html",/<(?! )[^<>]*?>/).getRegex(),$v=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,pj=ye($v,"u").replace(/punct/g,Dl).getRegex(),hj=ye($v,"u").replace(/punct/g,Av).getRegex(),Fv="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",mj=ye(Fv,"gu").replace(/notPunctSpace/g,Mv).replace(/punctSpace/g,gf).replace(/punct/g,Dl).getRegex(),gj=ye(Fv,"gu").replace(/notPunctSpace/g,dj).replace(/punctSpace/g,uj).replace(/punct/g,Av).getRegex(),yj=ye("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Mv).replace(/punctSpace/g,gf).replace(/punct/g,Dl).getRegex(),vj=ye(/\\(punct)/,"gu").replace(/punct/g,Dl).getRegex(),wj=ye(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),xj=ye(hf).replace("(?:-->|$)","-->").getRegex(),Sj=ye("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",xj).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),rl=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,kj=ye(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",rl).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),zv=ye(/^!?\[(label)\]\[(ref)\]/).replace("label",rl).replace("ref",pf).getRegex(),Uv=ye(/^!?\[(ref)\](?:\[\])?/).replace("ref",pf).getRegex(),bj=ye("reflink|nolink(?!\\()","g").replace("reflink",zv).replace("nolink",Uv).getRegex(),Ah=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,yf={_backpedal:Uo,anyPunctuation:vj,autolink:wj,blockSkip:fj,br:Dv,code:aj,del:Uo,emStrongLDelim:pj,emStrongRDelimAst:mj,emStrongRDelimUnd:yj,escape:ij,link:kj,nolink:Uv,punctuation:cj,reflink:zv,reflinkSearch:bj,tag:Sj,text:lj,url:Uo},Cj={...yf,link:ye(/^!?\[(label)\]\((.*?)\)/).replace("label",rl).getRegex(),reflink:ye(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",rl).getRegex()},Uu={...yf,emStrongRDelimAst:gj,emStrongLDelim:hj,url:ye(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Ah).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:ye(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},$h=e=>Nj[e];function An(e,t){if(t){if(Ot.escapeTest.test(e))return e.replace(Ot.escapeReplace,$h)}else if(Ot.escapeTestNoEncode.test(e))return e.replace(Ot.escapeReplaceNoEncode,$h);return e}function Fh(e){try{e=encodeURI(e).replace(Ot.percentDecode,"%")}catch{return null}return e}function zh(e,t){var o;let n=e.replace(Ot.findPipe,(i,a,l)=>{let u=!1,d=a;for(;--d>=0&&l[d]==="\\";)u=!u;return u?"|":" |"}),r=n.split(Ot.splitPipe),s=0;if(r[0].trim()||r.shift(),r.length>0&&!((o=r.at(-1))!=null&&o.trim())&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length0?-2:-1}function Uh(e,t,n,r,s){let o=t.href,i=t.title||null,a=e[1].replace(s.other.outputLinkReplace,"$1");r.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:i,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,l}function Tj(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let s=r[1];return t.split(` `).map(o=>{let i=o.match(n.other.beginningSpace);if(i===null)return o;let[a]=i;return a.length>=s.length?o.slice(s.length):o}).join(` `)}var sl=class{constructor(e){pe(this,"options");pe(this,"rules");pe(this,"lexer");this.options=e||us}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:ko(n,` `)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Tj(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=ko(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:ko(t[0],` `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=ko(t[0],` `).split(` `),r="",s="",o=[];for(;n.length>0;){let i=!1,a=[],l;for(l=0;l1,s={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let o=this.rules.other.listItemRegex(n),i=!1;for(;e;){let l=!1,u="",d="";if(!(t=o.exec(e))||this.rules.block.hr.test(e))break;u=t[0],e=e.substring(u.length);let f=t[2].split(` `,1)[0].replace(this.rules.other.listReplaceTabs,h=>" ".repeat(3*h.length)),p=e.split(` `,1)[0],v=!f.trim(),g=0;if(this.options.pedantic?(g=2,d=f.trimStart()):v?g=t[1].length+1:(g=t[2].search(this.rules.other.nonSpaceChar),g=g>4?1:g,d=f.slice(g),g+=t[1].length),v&&this.rules.other.blankLine.test(p)&&(u+=p+` `,e=e.substring(p.length+1),l=!0),!l){let h=this.rules.other.nextBulletRegex(g),m=this.rules.other.hrRegex(g),x=this.rules.other.fencesBeginRegex(g),C=this.rules.other.headingBeginRegex(g),T=this.rules.other.htmlBeginRegex(g);for(;e;){let b=e.split(` `,1)[0],j;if(p=b,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),j=p):j=p.replace(this.rules.other.tabCharGlobal," "),x.test(p)||C.test(p)||T.test(p)||h.test(p)||m.test(p))break;if(j.search(this.rules.other.nonSpaceChar)>=g||!p.trim())d+=` `+j.slice(g);else{if(v||f.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||x.test(f)||C.test(f)||m.test(f))break;d+=` `+p}!v&&!p.trim()&&(v=!0),u+=b+` `,e=e.substring(b.length+1),f=j.slice(g)}}s.loose||(i?s.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(i=!0));let y=null,w;this.options.gfm&&(y=this.rules.other.listIsTask.exec(d),y&&(w=y[0]!=="[ ] ",d=d.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:u,task:!!y,checked:w,loose:!1,text:d,tokens:[]}),s.raw+=u}let a=s.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let l=0;lf.type==="space"),d=u.length>0&&u.some(f=>this.rules.other.anyLine.test(f.raw));s.loose=d}if(s.loose)for(let l=0;l({text:l,tokens:this.lexer.inline(l),header:!1,align:o.align[u]})));return o}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let o=ko(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=jj(t[2],"()");if(o===-2)return;if(o>-1){let i=(t[0].indexOf("!")===0?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,i).trim(),t[3]=""}}let r=t[2],s="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],s=o[3])}else s=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),Uh(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=t[r.toLowerCase()];if(!s){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return Uh(n,s,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let s=[...r[0]].length-1,o,i,a=s,l=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+s);(r=u.exec(t))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(i=[...o].length,r[3]||r[4]){a+=i;continue}else if((r[5]||r[6])&&s%3&&!((s+i)%3)){l+=i;continue}if(a-=i,a>0)continue;i=Math.min(i,i+a+l);let d=[...r[0]][0].length,f=e.slice(0,s+r.index+d+i);if(Math.min(s,i)%2){let v=f.slice(1,-1);return{type:"em",raw:f,text:v,tokens:this.lexer.inlineTokens(v)}}let p=f.slice(2,-2);return{type:"strong",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),s=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&s&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){var n;let t;if(t=this.rules.inline.url.exec(e)){let r,s;if(t[2]==="@")r=t[0],s="mailto:"+r;else{let o;do o=t[0],t[0]=((n=this.rules.inline._backpedal.exec(t[0]))==null?void 0:n[0])??"";while(o!==t[0]);r=t[0],t[1]==="www."?s="http://"+t[0]:s=t[0]}return{type:"link",raw:t[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},En=class Bu{constructor(t){pe(this,"tokens");pe(this,"options");pe(this,"state");pe(this,"tokenizer");pe(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=t||us,this.options.tokenizer=this.options.tokenizer||new sl,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:Ot,block:ea.normal,inline:So.normal};this.options.pedantic?(n.block=ea.pedantic,n.inline=So.pedantic):this.options.gfm&&(n.block=ea.gfm,this.options.breaks?n.inline=So.breaks:n.inline=So.gfm),this.tokenizer.rules=n}static get rules(){return{block:ea,inline:So}}static lex(t,n){return new Bu(n).lex(t)}static lexInline(t,n){return new Bu(n).inlineTokens(t)}lex(t){t=t.replace(Ot.carriageReturn,` `),this.blockTokens(t,this.tokens);for(let n=0;n(a=u.call({lexer:this},t,n))?(t=t.substring(a.raw.length),n.push(a),!0):!1))continue;if(a=this.tokenizer.space(t)){t=t.substring(a.raw.length);let u=n.at(-1);a.raw.length===1&&u!==void 0?u.raw+=` `:n.push(a);continue}if(a=this.tokenizer.code(t)){t=t.substring(a.raw.length);let u=n.at(-1);(u==null?void 0:u.type)==="paragraph"||(u==null?void 0:u.type)==="text"?(u.raw+=(u.raw.endsWith(` `)?"":` `)+a.raw,u.text+=` `+a.text,this.inlineQueue.at(-1).src=u.text):n.push(a);continue}if(a=this.tokenizer.fences(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.heading(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.hr(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.blockquote(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.list(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.html(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.def(t)){t=t.substring(a.raw.length);let u=n.at(-1);(u==null?void 0:u.type)==="paragraph"||(u==null?void 0:u.type)==="text"?(u.raw+=(u.raw.endsWith(` `)?"":` `)+a.raw,u.text+=` `+a.raw,this.inlineQueue.at(-1).src=u.text):this.tokens.links[a.tag]||(this.tokens.links[a.tag]={href:a.href,title:a.title},n.push(a));continue}if(a=this.tokenizer.table(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.lheading(t)){t=t.substring(a.raw.length),n.push(a);continue}let l=t;if((i=this.options.extensions)!=null&&i.startBlock){let u=1/0,d=t.slice(1),f;this.options.extensions.startBlock.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(u=Math.min(u,f))}),u<1/0&&u>=0&&(l=t.substring(0,u+1))}if(this.state.top&&(a=this.tokenizer.paragraph(l))){let u=n.at(-1);r&&(u==null?void 0:u.type)==="paragraph"?(u.raw+=(u.raw.endsWith(` `)?"":` `)+a.raw,u.text+=` `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=u.text):n.push(a),r=l.length!==t.length,t=t.substring(a.raw.length);continue}if(a=this.tokenizer.text(t)){t=t.substring(a.raw.length);let u=n.at(-1);(u==null?void 0:u.type)==="text"?(u.raw+=(u.raw.endsWith(` `)?"":` `)+a.raw,u.text+=` `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=u.text):n.push(a);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){var a,l,u,d,f;let r=t,s=null;if(this.tokens.links){let p=Object.keys(this.tokens.links);if(p.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(r))!=null;)p.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(r))!=null;)r=r.slice(0,s.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(s=this.tokenizer.rules.inline.blockSkip.exec(r))!=null;)r=r.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=((l=(a=this.options.hooks)==null?void 0:a.emStrongMask)==null?void 0:l.call({lexer:this},r))??r;let o=!1,i="";for(;t;){o||(i=""),o=!1;let p;if((d=(u=this.options.extensions)==null?void 0:u.inline)!=null&&d.some(g=>(p=g.call({lexer:this},t,n))?(t=t.substring(p.raw.length),n.push(p),!0):!1))continue;if(p=this.tokenizer.escape(t)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.tag(t)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.link(t)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(p.raw.length);let g=n.at(-1);p.type==="text"&&(g==null?void 0:g.type)==="text"?(g.raw+=p.raw,g.text+=p.text):n.push(p);continue}if(p=this.tokenizer.emStrong(t,r,i)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.codespan(t)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.br(t)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.del(t)){t=t.substring(p.raw.length),n.push(p);continue}if(p=this.tokenizer.autolink(t)){t=t.substring(p.raw.length),n.push(p);continue}if(!this.state.inLink&&(p=this.tokenizer.url(t))){t=t.substring(p.raw.length),n.push(p);continue}let v=t;if((f=this.options.extensions)!=null&&f.startInline){let g=1/0,y=t.slice(1),w;this.options.extensions.startInline.forEach(h=>{w=h.call({lexer:this},y),typeof w=="number"&&w>=0&&(g=Math.min(g,w))}),g<1/0&&g>=0&&(v=t.substring(0,g+1))}if(p=this.tokenizer.inlineText(v)){t=t.substring(p.raw.length),p.raw.slice(-1)!=="_"&&(i=p.raw.slice(-1)),o=!0;let g=n.at(-1);(g==null?void 0:g.type)==="text"?(g.raw+=p.raw,g.text+=p.text):n.push(p);continue}if(t){let g="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(g);break}else throw new Error(g)}}return n}},ol=class{constructor(e){pe(this,"options");pe(this,"parser");this.options=e||us}space(e){return""}code({text:e,lang:t,escaped:n}){var o;let r=(o=(t||"").match(Ot.notSpaceStart))==null?void 0:o[0],s=e.replace(Ot.endingNewline,"")+` `;return r?'
'+(n?s:An(s,!0))+`
`:"
"+(n?s:An(s,!0))+`
`}blockquote({tokens:e}){return`
${this.parser.parse(e)}
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} `}hr(e){return`
`}list(e){let t=e.ordered,n=e.start,r="";for(let i=0;i `+r+" `}listitem(e){var n;let t="";if(e.task){let r=this.checkbox({checked:!!e.checked});e.loose?((n=e.tokens[0])==null?void 0:n.type)==="paragraph"?(e.tokens[0].text=r+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=r+" "+An(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):t+=r+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • `}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    `}table(e){let t="",n="";for(let s=0;s${r}`),` `+t+` `+r+`
    `}tablerow({text:e}){return` ${e} `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` `}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${An(e,!0)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),s=Fh(e);if(s===null)return r;e=s;let o='
    ",o}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let s=Fh(e);if(s===null)return An(n);e=s;let o=`${n}{let l=i[a].flat(1/0);n=n.concat(this.walkTokens(l,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let o=t.renderers[s.name];o?t.renderers[s.name]=function(...i){let a=s.renderer.apply(this,i);return a===!1&&(a=o.apply(this,i)),a}:t.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=t[s.level];o?o.unshift(s.tokenizer):t[s.level]=[s.tokenizer],s.start&&(s.level==="block"?t.startBlock?t.startBlock.push(s.start):t.startBlock=[s.start]:s.level==="inline"&&(t.startInline?t.startInline.push(s.start):t.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(t.childTokens[s.name]=s.childTokens)}),r.extensions=t),n.renderer){let s=this.defaults.renderer||new ol(this.defaults);for(let o in n.renderer){if(!(o in s))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let i=o,a=n.renderer[i],l=s[i];s[i]=(...u)=>{let d=a.apply(s,u);return d===!1&&(d=l.apply(s,u)),d||""}}r.renderer=s}if(n.tokenizer){let s=this.defaults.tokenizer||new sl(this.defaults);for(let o in n.tokenizer){if(!(o in s))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let i=o,a=n.tokenizer[i],l=s[i];s[i]=(...u)=>{let d=a.apply(s,u);return d===!1&&(d=l.apply(s,u)),d}}r.tokenizer=s}if(n.hooks){let s=this.defaults.hooks||new _o;for(let o in n.hooks){if(!(o in s))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let i=o,a=n.hooks[i],l=s[i];_o.passThroughHooks.has(o)?s[i]=u=>{if(this.defaults.async&&_o.passThroughHooksRespectAsync.has(o))return(async()=>{let f=await a.call(s,u);return l.call(s,f)})();let d=a.call(s,u);return l.call(s,d)}:s[i]=(...u)=>{if(this.defaults.async)return(async()=>{let f=await a.apply(s,u);return f===!1&&(f=await l.apply(s,u)),f})();let d=a.apply(s,u);return d===!1&&(d=l.apply(s,u)),d}}r.hooks=s}if(n.walkTokens){let s=this.defaults.walkTokens,o=n.walkTokens;r.walkTokens=function(i){let a=[];return a.push(o.call(this,i)),s&&(a=a.concat(s.call(this,i))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return En.lex(e,t??this.defaults)}parser(e,t){return Nn.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},s={...this.defaults,...r},o=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let i=s.hooks?await s.hooks.preprocess(t):t,a=await(s.hooks?await s.hooks.provideLexer():e?En.lex:En.lexInline)(i,s),l=s.hooks?await s.hooks.processAllTokens(a):a;s.walkTokens&&await Promise.all(this.walkTokens(l,s.walkTokens));let u=await(s.hooks?await s.hooks.provideParser():e?Nn.parse:Nn.parseInline)(l,s);return s.hooks?await s.hooks.postprocess(u):u})().catch(o);try{s.hooks&&(t=s.hooks.preprocess(t));let i=(s.hooks?s.hooks.provideLexer():e?En.lex:En.lexInline)(t,s);s.hooks&&(i=s.hooks.processAllTokens(i)),s.walkTokens&&this.walkTokens(i,s.walkTokens);let a=(s.hooks?s.hooks.provideParser():e?Nn.parse:Nn.parseInline)(i,s);return s.hooks&&(a=s.hooks.postprocess(a)),a}catch(i){return o(i)}}}onError(e,t){return n=>{if(n.message+=` Please report this to https://github.com/markedjs/marked.`,e){let r="

    An error occurred:

    "+An(n.message+"",!0)+"
    ";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},as=new _j;function xe(e,t){return as.parse(e,t)}xe.options=xe.setOptions=function(e){return as.setOptions(e),xe.defaults=as.defaults,Iv(xe.defaults),xe};xe.getDefaults=uf;xe.defaults=us;xe.use=function(...e){return as.use(...e),xe.defaults=as.defaults,Iv(xe.defaults),xe};xe.walkTokens=function(e,t){return as.walkTokens(e,t)};xe.parseInline=as.parseInline;xe.Parser=Nn;xe.parser=Nn.parse;xe.Renderer=ol;xe.TextRenderer=vf;xe.Lexer=En;xe.lexer=En.lex;xe.Tokenizer=sl;xe.Hooks=_o;xe.parse=xe;xe.options;xe.setOptions;xe.use;xe.walkTokens;xe.parseInline;Nn.parse;En.lex;const Pj={name:"spoiler",level:"inline",start(e){var t;return(t=e.match(/\|\|/))==null?void 0:t.index},tokenizer(e){const n=/^\|\|(.*?)\|\|/.exec(e);if(n)return{type:"spoiler",raw:n[0],text:n[1].trim()}},renderer(e){return`${e.text}`}};function Ps(e,t){return e.map(n=>{if(t[n.type])return t[n.type](n);if(n.type==="text")return n.text||"";if(n.type==="strong")return`${Ps(n.tokens||[],t)}`;if(n.type==="em")return`${Ps(n.tokens||[],t)}`;if(n.type==="codespan")return`${n.text||""}`;if(n.type==="del")return`${Ps(n.tokens||[],t)}`;if(n.type==="link"){if(t.link)return t.link(n);const r=n.href||"",s=n.title?` title="${n.title}"`:"",o=n.tokens&&n.tokens.length>0?Ps(n.tokens,t):n.text||"";return`
    ${o}`}return n.type==="spoiler"?t.spoiler?t.spoiler(n):`${n.text||""}`:n.text||""}).join("")}const Ij={link(e){const t=e.href,n=e.title;let r="";e.tokens&&e.tokens.length>0?r=Ps(e.tokens,this):e.text&&(r=e.text);try{if(new URL(t,window.location.href).origin!==window.location.origin)return`${r}`}catch{}return`${r}`},listitem(e){const t=e.task,n=e.checked;let r="";return e.tokens&&e.tokens.length>0?r=Ps(e.tokens,this):e.text&&(r=e.text),t?`
  • ${``} ${r}
  • `:`
  • ${r}
  • `}};xe.use({extensions:[Pj],gfm:!0,breaks:!0,renderer:Ij});const wf=e=>xe.parse(e),Ys=e=>{const t=/#([а-яё\w]+)/gi,n=[];let r;for(;(r=t.exec(e))!==null;){const s=r.index,o=e.substring(Math.max(0,s-100),s),i=e.substring(s+r[0].length,Math.min(e.length,s+r[0].length+100)),a=o.lastIndexOf("<"),l=o.lastIndexOf(">");if(a>l)continue;const u=Math.max(o.lastIndexOf('"'),o.lastIndexOf("'")),d=o.lastIndexOf("=");if(d>-1&&u>d&&Math.min(i.indexOf('"')!==-1?i.indexOf('"'):1/0,i.indexOf("'")!==-1?i.indexOf("'"):1/0)!==1/0)continue;const f=r[1];n.some(p=>p.toLowerCase()===f.toLowerCase())||n.push(f)}return n},Rj=e=>{const t=/#([а-яё\w]+)/gi,n=[];let r;for(;(r=t.exec(e))!==null;)n.push({fullMatch:r[0],tag:r[1],index:r.index});let s=e;for(let o=n.length-1;o>=0;o--){const i=n[o],a=s.substring(0,i.index),l=s.substring(i.index+i.fullMatch.length),u=a.lastIndexOf("<"),d=a.lastIndexOf(">");if(u>d)continue;const f=a.substring(Math.max(0,i.index-100)),p=Math.max(f.lastIndexOf('"'),f.lastIndexOf("'")),v=f.lastIndexOf("=");if(v>-1&&p>v){const y=l.substring(0,Math.min(100,l.length));if(Math.min(y.indexOf('"')!==-1?y.indexOf('"'):1/0,y.indexOf("'")!==-1?y.indexOf("'"):1/0)!==1/0)continue}const g=`${i.fullMatch}`;s=a+g+l}return s},Oj=(e,t)=>{if(!t.trim())return e;const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`(${n})`,"gi");return e.replace(r,'$1')},Bv=({notes:e=[]})=>{const t=ie(a=>a.notes.selectedTag),n=Et(),s=(()=>{const a={},l={};e.forEach(d=>{Ys(d.content).forEach(p=>{const v=p.toLowerCase();a[v]=(a[v]||0)+1,l[v]||(l[v]=p)})});const u={};return Object.keys(a).forEach(d=>{u[l[d]]=a[d]}),u})(),o=Object.keys(s).sort(),i=(a,l)=>{l.preventDefault();const u=a.toLowerCase();(t==null?void 0:t.toLowerCase())===u?n(Ka(null)):n(Ka(u)),l.currentTarget.blur()};return o.length===0?c.jsxs("div",{className:"tags-section",children:[c.jsx("div",{className:"tags-header",children:c.jsxs("span",{className:"tags-title",children:[c.jsx(M,{icon:"mdi:tag"})," Теги"]})}),c.jsx("div",{className:"tags-container",children:c.jsx("div",{style:{fontSize:"10px",color:"#999",textAlign:"center"},children:"Нет тегов"})})]}):c.jsxs("div",{className:"tags-section",children:[c.jsx("div",{className:"tags-header",children:c.jsxs("span",{className:"tags-title",children:[c.jsx(M,{icon:"mdi:tag"})," Теги"]})}),c.jsx("div",{className:"tags-container",children:o.map(a=>{const l=s[a],u=(t==null?void 0:t.toLowerCase())===a.toLowerCase();return c.jsxs("span",{className:`tag ${u?"active":""}`,"data-tag":a,onClick:d=>i(a,d),onTouchEnd:d=>{d.currentTarget.blur()},children:["#",a,c.jsx("span",{className:"tag-count",children:l})]},a)})})]})},Lj=({notes:e})=>c.jsxs("div",{className:"container-leftside",children:[c.jsx(_v,{notes:e}),c.jsx(Pv,{}),c.jsx(Bv,{notes:e})]}),Dj=({isOpen:e,onClose:t})=>{const n=ie(r=>r.notes.allNotes);return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:`mobile-sidebar-overlay ${e?"open":""}`,onClick:t}),c.jsxs("div",{className:`mobile-sidebar ${e?"open":""}`,children:[c.jsx("button",{className:"sidebar-close-btn",onClick:t,children:c.jsx(M,{icon:"mdi:close"})}),c.jsxs("div",{className:"sidebar-content",children:[c.jsx("div",{className:"mobile-calendar-section",children:c.jsx(_v,{notes:n})}),c.jsx("div",{className:"mobile-search-section",children:c.jsx(Pv,{})}),c.jsx("div",{className:"mobile-tags-section",children:c.jsx(Bv,{notes:n})})]})]})]})},Wv=({onInsert:e,onImageClick:t,onFileClick:n,onPreviewToggle:r,isPreviewMode:s,onInsertColor:o})=>{const[i,a]=S.useState(!1),l=Et(),u=S.useRef(null),d=S.useRef(null),f=S.useRef(null),p=S.useRef(null),[v,g]=S.useState(!1),[y,w]=S.useState(0),[h,m]=S.useState(0),[x,C]=S.useState(null);S.useEffect(()=>{const I=Y=>{u.current&&!u.current.contains(Y.target)&&f.current&&!f.current.contains(Y.target)&&(a(!1),C(null))},R=()=>{if(d.current&&i){const Y=d.current.getBoundingClientRect();C({top:Y.bottom+window.scrollY+2,left:Y.left+window.scrollX})}};if(i){R();const Y=setTimeout(()=>{document.addEventListener("mousedown",I),window.addEventListener("resize",R),window.addEventListener("scroll",R)},100);return()=>{clearTimeout(Y),document.removeEventListener("mousedown",I),window.removeEventListener("resize",R),window.removeEventListener("scroll",R)}}else C(null)},[i]);const T=I=>{I.target.closest(".btnMarkdown")||p.current&&(g(!0),w(I.pageX-p.current.offsetLeft),m(p.current.scrollLeft))},b=I=>{if(!v||!p.current)return;I.preventDefault();const Y=(I.pageX-p.current.offsetLeft-y)*2;p.current.scrollLeft=h-Y},j=()=>{g(!1)};S.useEffect(()=>(v?(document.addEventListener("mousemove",b),document.addEventListener("mouseup",j)):(document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",j)),()=>{document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",j)}),[v]);const _=[];return c.jsxs("div",{className:"markdown-buttons",ref:p,onMouseDown:T,style:{cursor:v?"grabbing":p.current&&p.current.scrollWidth>p.current.clientWidth?"grab":"default"},children:[_.map(I=>c.jsx("button",{className:"btnMarkdown",onClick:()=>{I.action?I.action():e(I.before,I.after)},title:I.title,children:c.jsx(M,{icon:I.icon})},I.id)),c.jsxs("div",{className:"header-dropdown",ref:u,children:[c.jsxs("button",{ref:d,className:"btnMarkdown",onMouseDown:I=>{I.stopPropagation()},onClick:I=>{I.stopPropagation(),a(!i)},title:"Заголовок",children:[c.jsx(M,{icon:"mdi:format-header-pound"}),c.jsx(M,{icon:"mdi:menu-down",style:{fontSize:"10px",marginLeft:"-2px"}})]}),i&&x&&c.jsx("div",{ref:f,className:"header-dropdown-menu",style:{position:"fixed",top:`${x.top}px`,left:`${x.left}px`},children:[1,2,3,4,5].map(I=>c.jsxs("button",{onClick:R=>{R.stopPropagation(),e("#".repeat(I)+" ",""),a(!1),C(null)},children:["H",I]},I))})]}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("- ",""),title:"Список",children:c.jsx(M,{icon:"mdi:format-list-bulleted"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("1. ",""),title:"Нумерованный список",children:c.jsx(M,{icon:"mdi:format-list-numbered"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("**","**"),title:"Жирный",children:c.jsx(M,{icon:"mdi:format-bold"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("*","*"),title:"Курсив",children:c.jsx(M,{icon:"mdi:format-italic"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("~~","~~"),title:"Зачеркнутый",children:c.jsx(M,{icon:"mdi:format-strikethrough"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>o==null?void 0:o(),title:"Цвет текста",children:c.jsx(M,{icon:"mdi:palette"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("||","||"),title:"Скрытый текст",children:c.jsx(M,{icon:"mdi:eye-off"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("> ",""),title:"Цитата",children:c.jsx(M,{icon:"mdi:format-quote-close"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("`","`"),title:"Код",children:c.jsx(M,{icon:"mdi:code-tags"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("[текст ссылки](",")"),title:"Ссылка",children:c.jsx(M,{icon:"mdi:link"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>e("- [ ] ",""),title:"To-Do список",children:c.jsx(M,{icon:"mdi:checkbox-marked-outline"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>t==null?void 0:t(),title:"Загрузить изображения",children:c.jsx(M,{icon:"mdi:image-plus"})}),c.jsx("button",{className:"btnMarkdown",onClick:()=>n==null?void 0:n(),title:"Прикрепить файлы",children:c.jsx(M,{icon:"mdi:file-plus"})}),c.jsx("button",{className:`btnMarkdown ${s?"active":""}`,onClick:r||(()=>l(G1())),title:"Предпросмотр",children:c.jsx(M,{icon:"mdi:monitor-eye"})})]})},Hv=({textareaRef:e,onFormat:t,visible:n,position:r,onHide:s,onInsertColor:o,activeFormats:i={},hasSelection:a=!1})=>{const l=S.useRef(null),[u,d]=S.useState(!1),[f,p]=S.useState(0),[v,g]=S.useState(0);S.useEffect(()=>{n&&l.current&&setTimeout(()=>{if(!l.current)return;const b=l.current,j=b.getBoundingClientRect(),_=window.innerWidth,I=window.innerHeight,R=10,Y=8,ue=b.querySelector(".floating-toolbar"),ae=ue?ue.scrollWidth:j.width,ne=_-R*2,F=j.height,V=r.selectionTop??r.top,$=r.selectionBottom??r.top+20,D=V-R,W=I-$-R;let G;D>=F+Y?G=V-F-Y:W>=F+Y?G=$+Y:D>W?G=Math.max(R,V-F-Y):G=Math.min(I-F-R,$+Y);let Z=r.left-ae/2;ae>ne?(b.style.maxWidth=`${ne}px`,Z=R):(Z+ae>_-R&&(Z=Math.max(R,_-ae-R)),ZI-R&&(G=I-F-R),b.style.top=`${G}px`,b.style.left=`${Z}px`},0)},[n,r]);const y=b=>{b.target.closest(".floating-toolbar-btn")||l.current&&(d(!0),p(b.pageX-l.current.offsetLeft),g(l.current.scrollLeft))},w=b=>{if(!u||!l.current)return;b.preventDefault();const _=(b.pageX-l.current.offsetLeft-f)*2;l.current.scrollLeft=v-_},h=()=>{d(!1)};S.useEffect(()=>(u?(document.addEventListener("mousemove",w),document.addEventListener("mouseup",h)):(document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",h)),()=>{document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",h)}),[u]);const m=(b,j)=>{t(b,j),setTimeout(()=>{if(e.current){e.current.focus();const _=e.current.selectionStart,I=e.current.selectionEnd;_!==I&&e.current.setSelectionRange(_,I)}},0)},x=async()=>{const b=e.current;if(!b)return;const j=b.selectionStart,_=b.selectionEnd;if(j===_)return;const I=b.value.substring(j,_);try{await navigator.clipboard.writeText(I)}catch{const Y=document.createElement("textarea");Y.value=I,Y.style.position="fixed",Y.style.left="-999999px",document.body.appendChild(Y),Y.select(),document.execCommand("copy"),document.body.removeChild(Y)}},C=async()=>{var ue;const b=e.current;if(!b)return;const j=b.selectionStart,_=b.selectionEnd;if(j===_)return;const I=b.value.substring(j,_);try{await navigator.clipboard.writeText(I)}catch{const ne=document.createElement("textarea");ne.value=I,ne.style.position="fixed",ne.style.left="-999999px",document.body.appendChild(ne),ne.select(),document.execCommand("copy"),document.body.removeChild(ne)}const R=b.value.substring(0,j)+b.value.substring(_),Y=(ue=Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype,"value"))==null?void 0:ue.set;if(Y){Y.call(b,R);const ae=new Event("input",{bubbles:!0});b.dispatchEvent(ae)}else{b.value=R;const ae=new Event("input",{bubbles:!0});b.dispatchEvent(ae)}b.setSelectionRange(j,j),b.focus()},T=async()=>{var I;const b=e.current;if(!b)return;const j=b.selectionStart,_=b.selectionEnd;try{const R=await navigator.clipboard.readText(),Y=b.value.substring(0,j)+R+b.value.substring(_),ue=(I=Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype,"value"))==null?void 0:I.set;if(ue){ue.call(b,Y);const ne=new Event("input",{bubbles:!0});b.dispatchEvent(ne)}else{b.value=Y;const ne=new Event("input",{bubbles:!0});b.dispatchEvent(ne)}const ae=j+R.length;b.setSelectionRange(ae,ae),b.focus()}catch{b.focus(),document.execCommand("paste")}};return!n||!a?null:c.jsx("div",{ref:l,className:"floating-toolbar-wrapper",style:{position:"fixed",top:`${r.top}px`,left:`${r.left}px`,zIndex:1e3,cursor:u?"grabbing":l.current&&l.current.scrollWidth>l.current.clientWidth?"grab":"default"},onMouseDown:b=>{b.preventDefault(),y(b)},onContextMenu:b=>{b.preventDefault()},children:c.jsxs("div",{className:"floating-toolbar",children:[c.jsx("button",{className:"floating-toolbar-btn",onClick:s,title:"Закрыть",children:c.jsx(M,{icon:"mdi:close"})}),a&&c.jsxs(c.Fragment,{children:[c.jsx("button",{className:"floating-toolbar-btn",onClick:x,title:"Копировать",children:c.jsx(M,{icon:"mdi:content-copy"})}),c.jsx("button",{className:"floating-toolbar-btn",onClick:C,title:"Вырезать",children:c.jsx(M,{icon:"mdi:content-cut"})}),c.jsx("button",{className:"floating-toolbar-btn",onClick:T,title:"Вставить",children:c.jsx(M,{icon:"mdi:content-paste"})})]}),a&&c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"floating-toolbar-separator"}),c.jsx("button",{className:`floating-toolbar-btn ${i.bold?"active":""}`,onClick:()=>m("**","**"),title:"Жирный",children:c.jsx(M,{icon:"mdi:format-bold"})}),c.jsx("button",{className:`floating-toolbar-btn ${i.italic?"active":""}`,onClick:()=>m("*","*"),title:"Курсив",children:c.jsx(M,{icon:"mdi:format-italic"})}),c.jsx("button",{className:`floating-toolbar-btn ${i.strikethrough?"active":""}`,onClick:()=>m("~~","~~"),title:"Зачеркнутый",children:c.jsx(M,{icon:"mdi:format-strikethrough"})}),c.jsx("div",{className:"floating-toolbar-separator"}),c.jsx("button",{className:"floating-toolbar-btn",onClick:()=>o==null?void 0:o(),title:"Цвет текста",children:c.jsx(M,{icon:"mdi:palette"})}),c.jsx("button",{className:"floating-toolbar-btn",onClick:()=>m("||","||"),title:"Скрытый текст",children:c.jsx(M,{icon:"mdi:eye-off"})})]})]})})},gs={getAll:async()=>{const{data:e}=await X.get("/notes");return e},search:async e=>{const{data:t}=await X.get("/notes/search",{params:e});return t},create:async e=>{const{data:t}=await X.post("/notes",e);return t},update:async(e,t,n)=>{const{data:r}=await X.put(`/notes/${e}`,{content:t,skipTimestamp:n});return r},delete:async e=>{await X.delete(`/notes/${e}`)},pin:async e=>{const{data:t}=await X.put(`/notes/${e}/pin`);return t},archive:async e=>{const{data:t}=await X.put(`/notes/${e}/archive`);return t},unarchive:async e=>{const{data:t}=await X.put(`/notes/${e}/unarchive`);return t},uploadImages:async(e,t)=>{const n=new FormData;t.forEach(s=>n.append("images",s));const{data:r}=await X.post(`/notes/${e}/images`,n,{headers:{"Content-Type":"multipart/form-data"}});return r},uploadFiles:async(e,t)=>{const n=new FormData;t.forEach(s=>n.append("files",s));const{data:r}=await X.post(`/notes/${e}/files`,n,{headers:{"Content-Type":"multipart/form-data"}});return r},deleteImage:async(e,t)=>{await X.delete(`/notes/${e}/images/${t}`)},deleteFile:async(e,t)=>{await X.delete(`/notes/${e}/files/${t}`)},getArchived:async()=>{const{data:e}=await X.get("/notes/archived");return e},deleteArchived:async e=>{await X.delete(`/notes/archived/${e}`)},deleteAllArchived:async e=>{const{data:t}=await X.delete("/notes/archived/all",{data:{password:e}});return t},getDataVersion:async()=>{const{data:e}=await X.get("/notes/version");return e}},Mj={getLogs:async e=>{const{data:t}=await X.get("/logs",{params:e});return t}},Qv=e=>{const t=S.useCallback(()=>{document.querySelectorAll(".spoiler").forEach(o=>{if(!o._clickHandler){const i=function(a){this.classList.contains("revealed")||(a.stopPropagation(),this.classList.add("revealed"))};o._clickHandler=i,o.addEventListener("click",i)}}),document.querySelectorAll(".external-link").forEach(o=>{if(!o._externalClickHandler){const i=function(a){(window.matchMedia("(display-mode: standalone)").matches||window.navigator.standalone===!0)&&(a.preventDefault(),window.open(this.href,"_blank","noopener,noreferrer"))};o._externalClickHandler=i,o.addEventListener("click",i)}}),document.querySelectorAll(".note-preview-content input[type='checkbox'], .textNote input[type='checkbox']").forEach(o=>{if(!o._checkboxHandler){const i=async function(){if(this.closest(".note-preview-content"))return;const a=this.closest("[data-note-id]");if(!a)return;const l=parseInt(a.getAttribute("data-note-id")||"0");if(!l)return;const u=a.querySelector(".textNote");if(!u)return;const d=u.getAttribute("data-original-content");if(d)try{const p=Array.from(u.querySelectorAll("input[type='checkbox']")).indexOf(this);if(p===-1)return;const v=d.split(` `);let g=0,y="";for(let w=0;w{const n=new MutationObserver(()=>{t()});return n.observe(document.body,{childList:!0,subtree:!0}),t(),()=>{n.disconnect()}},[t])},xf=({content:e})=>{Qv();const t=wf(e);return c.jsxs("div",{className:"note-preview-container",style:{display:"block"},children:[c.jsx("div",{className:"note-preview-header",children:c.jsx("span",{children:"Предпросмотр:"})}),c.jsx("div",{className:"note-preview-content",dangerouslySetInnerHTML:{__html:t}})]})},Vv=({images:e,onChange:t})=>{const n=s=>{t(e.filter((o,i)=>i!==s))},r=()=>{t([])};return e.length===0?null:c.jsxs("div",{className:"image-preview-container",style:{display:"block"},children:[c.jsxs("div",{className:"image-preview-header",children:[c.jsx("span",{children:"Загруженные изображения:"}),c.jsx("button",{type:"button",className:"clear-images-btn",onClick:r,children:"Очистить все"})]}),c.jsx("div",{className:"image-preview-list",children:e.map((s,o)=>c.jsxs("div",{className:"image-preview-item",children:[c.jsx("img",{src:URL.createObjectURL(s),alt:`Preview ${o+1}`,className:"image-preview-thumbnail"}),c.jsx("button",{className:"image-preview-remove",onClick:()=>n(o),title:"Удалить",children:c.jsx(M,{icon:"mdi:close"})})]},o))})]})},qv=({files:e,onChange:t})=>{const n=i=>{t(e.filter((a,l)=>l!==i))},r=()=>{t([])},s=i=>{var l;const a=((l=i.split(".").pop())==null?void 0:l.toLowerCase())||"";return a==="pdf"?"mdi:file-pdf":["doc","docx"].includes(a)?"mdi:file-word":["xls","xlsx"].includes(a)?"mdi:file-excel":a==="txt"?"mdi:file-document":["zip","rar","7z"].includes(a)?"mdi:folder-zip":"mdi:file"},o=i=>(i/1024/1024).toFixed(2)+" MB";return e.length===0?null:c.jsxs("div",{className:"file-preview-container",style:{display:"block"},children:[c.jsxs("div",{className:"file-preview-header",children:[c.jsx("span",{children:"Прикрепленные файлы:"}),c.jsx("button",{type:"button",className:"clear-files-btn",onClick:r,children:"Очистить все"})]}),c.jsx("div",{className:"file-preview-list",children:e.map((i,a)=>c.jsxs("div",{className:"file-preview-item",children:[c.jsx(M,{icon:s(i.name),className:"file-icon"}),c.jsxs("div",{className:"file-info",children:[c.jsx("div",{className:"file-name",children:i.name}),c.jsx("div",{className:"file-size",children:o(i.size)})]}),c.jsx("button",{className:"file-preview-remove",onClick:()=>n(a),title:"Удалить",children:c.jsx(M,{icon:"mdi:close"})})]},a))})]})};let ys=null;const Aj=5e3;async function Pt(){const e=Date.now();if(ys&&e-ys.time{const e=await Pt(),t=ta();if(!e)return console.log("[Offline] Loading notes from IndexedDB"),t?await O.getNotesByUserId(t):await O.getAllNotes();try{console.log("[Online] Loading notes from server");const{data:n}=await X.get("/notes"),r=n.map(s=>({...s,syncStatus:"synced"}));if(t){const s=await O.getNotesByUserId(t),o=new Set(r.map(i=>i.id));for(const i of s)typeof i.id=="string"&&i.id.startsWith("temp-")||o.has(i.id)||(console.log(`[OfflineAPI] Removing deleted note from IndexedDB: ${i.id}`),await O.deleteNote(i.id));await O.saveNotes(r)}return r}catch(n){return console.error("Error fetching notes from server, falling back to cache:",n),t?await O.getNotesByUserId(t):await O.getAllNotes()}},search:async e=>{const t=await Pt(),n=ta();if(!t){console.log("[Offline] Searching notes locally");const r=n?await O.getNotesByUserId(n):await O.getAllNotes();return Bh(r,e)}try{console.log("[Online] Searching notes on server");const{data:r}=await X.get("/notes/search",{params:e}),s=r.map(o=>({...o,syncStatus:"synced"}));return n&&await O.saveNotes(s),s}catch(r){console.error("Error searching notes, falling back to local:",r);const s=n?await O.getNotesByUserId(n):await O.getAllNotes();return Bh(s,e)}},create:async e=>{var r,s;const t=await Pt(),n=ta();if(!t){console.log("[Offline] Creating note locally");const o=Ji(),i=new Date().toISOString(),a={...e,id:o,user_id:n||0,created_at:i,updated_at:i,is_pinned:0,is_archived:0,images:[],files:[],syncStatus:"pending"};return await O.saveNote(a),await O.addToSyncQueue({type:"create",noteId:o,data:e,timestamp:Date.now(),retries:0}),te.dispatch(hc(a)),await Sn(),a}try{console.log("[Online] Creating note on server");const{data:o}=await X.post("/notes",e),i={...o,syncStatus:"synced"};return n&&await O.saveNote(i),te.dispatch(hc(i)),i}catch(o){if(!o.response&&(o.code==="ERR_NETWORK"||o.message==="Network Error"||((r=o.message)==null?void 0:r.includes("ERR_INTERNET_DISCONNECTED"))||((s=o.message)==null?void 0:s.includes("Failed to fetch")))){console.error("Network error creating note, falling back to local:",o),ys={time:Date.now(),status:!1},te.dispatch(As(!0)),console.log("[Offline] Creating note locally after network error");const a=Ji(),l=new Date().toISOString(),u={...e,id:a,user_id:n||0,created_at:l,updated_at:l,is_pinned:0,is_archived:0,images:[],files:[],syncStatus:"pending"};return await O.saveNote(u),await O.addToSyncQueue({type:"create",noteId:a,data:e,timestamp:Date.now(),retries:0}),te.dispatch(hc(u)),await Sn(),u}else throw console.error("Error creating note (not a network error):",o),o}},update:async(e,t,n)=>{if(!await Pt()){console.log("[Offline] Updating note locally");const s=await O.getNote(e);if(!s)throw new Error("Note not found");const o={...s,content:t,updated_at:new Date().toISOString(),syncStatus:"pending"};return await O.saveNote(o),await O.addToSyncQueue({type:"update",noteId:e,data:{content:t,skipTimestamp:n},timestamp:Date.now(),retries:0}),te.dispatch(qe(o)),await Sn(),o}try{if(console.log("[Online] Updating note on server"),$r(e))throw new Error("Cannot update temp note online");const{data:s}=await X.put(`/notes/${e}`,{content:t,skipTimestamp:n}),o={...s,syncStatus:"synced"};return await O.saveNote(o),te.dispatch(qe(o)),o}catch(s){return console.error("Error updating note, falling back to local:",s),tt.update(e,t,n)}},delete:async e=>{if(!await Pt()){console.log("[Offline] Queuing note for deletion"),await O.getNote(e)&&await O.addToSyncQueue({type:"delete",noteId:e,data:{},timestamp:Date.now(),retries:0}),await Sn();return}try{if(console.log("[Online] Deleting note on server"),$r(e))throw new Error("Cannot delete temp note online");await X.delete(`/notes/${e}`),await O.deleteNote(e)}catch(n){console.error("Error deleting note, falling back to local:",n),await tt.delete(e)}},pin:async e=>{if(!await Pt()){const n=await O.getNote(e);if(!n)throw new Error("Note not found");const r={...n,is_pinned:n.is_pinned===0?1:0,pinned_at:n.is_pinned===0?new Date().toISOString():void 0,updated_at:new Date().toISOString(),syncStatus:"pending"};return await O.saveNote(r),await O.addToSyncQueue({type:"update",noteId:e,data:{content:n.content,is_pinned:r.is_pinned},timestamp:Date.now(),retries:0}),te.dispatch(qe(r)),await Sn(),r}try{if($r(e))throw new Error("Cannot pin temp note online");const{data:n}=await X.put(`/notes/${e}/pin`),r=await O.getNote(e);if(!r)throw new Error("Note not found");const s={...r,is_pinned:n.is_pinned,pinned_at:n.is_pinned?new Date().toISOString():void 0,syncStatus:"synced"};return await O.saveNote(s),te.dispatch(qe(s)),s}catch(n){throw console.error("Error pinning note:",n),n}},archive:async e=>{if(!await Pt()){const n=await O.getNote(e);if(!n)throw new Error("Note not found");const r={...n,is_archived:1,updated_at:new Date().toISOString(),syncStatus:"pending"};return await O.saveNote(r),await O.addToSyncQueue({type:"update",noteId:e,data:{content:n.content,is_archived:1},timestamp:Date.now(),retries:0}),te.dispatch(qe(r)),await Sn(),r}try{if($r(e))throw new Error("Cannot archive temp note online");await X.put(`/notes/${e}/archive`);const n=await O.getNote(e);if(!n)throw new Error("Note not found");const r={...n,is_archived:1,is_pinned:0,pinned_at:void 0,syncStatus:"synced"};return await O.saveNote(r),te.dispatch(qe(r)),r}catch(n){throw console.error("Error archiving note:",n),n}},unarchive:async e=>{if(!await Pt()){const n=await O.getNote(e);if(!n)throw new Error("Note not found");const r={...n,is_archived:0,updated_at:new Date().toISOString(),syncStatus:"pending"};return await O.saveNote(r),await O.addToSyncQueue({type:"update",noteId:e,data:{content:n.content,is_archived:0},timestamp:Date.now(),retries:0}),te.dispatch(qe(r)),await Sn(),r}try{if($r(e))throw new Error("Cannot unarchive temp note online");await X.put(`/notes/${e}/unarchive`);const n=await O.getNote(e);if(!n)throw new Error("Note not found");const r={...n,is_archived:0,syncStatus:"synced"};return await O.saveNote(r),te.dispatch(qe(r)),r}catch(n){throw console.error("Error unarchiving note:",n),n}},uploadImages:async(e,t)=>{if(!await Pt()){console.log("[Offline] Converting images to base64");const r=await O.getNote(e);if(!r)throw new Error("Note not found");const s=[];for(const i of t){const a=await Ch(i),l={id:Ji(),note_id:e,filename:i.name,original_name:i.name,file_path:"",file_size:i.size,mime_type:i.type,created_at:new Date().toISOString(),base64Data:a};s.push(l)}const o={...r,images:[...r.images,...s],syncStatus:"pending"};await O.saveNote(o);for(const i of s)await O.addToSyncQueue({type:"uploadImage",noteId:e,data:{imageId:i.id},timestamp:Date.now(),retries:0});return te.dispatch(qe(o)),await Sn(),s}try{if($r(e))throw new Error("Cannot upload images for temp note online");const r=new FormData;t.forEach(a=>r.append("images",a));const{data:s}=await X.post(`/notes/${e}/images`,r,{headers:{"Content-Type":"multipart/form-data"}}),o=Array.isArray(s)?s:(s==null?void 0:s.images)||[],i=await O.getNote(e);if(i){const a={...i,images:[...i.images||[],...o],syncStatus:"synced"};await O.saveNote(a),te.dispatch(qe(a))}return o}catch(r){throw console.error("Error uploading images:",r),r}},uploadFiles:async(e,t)=>{if(!await Pt()){console.log("[Offline] Converting files to base64");const r=await O.getNote(e);if(!r)throw new Error("Note not found");const s=[];for(const i of t){const a=await Ch(i),l={id:Ji(),note_id:e,filename:i.name,original_name:i.name,file_path:"",file_size:i.size,mime_type:i.type,created_at:new Date().toISOString(),base64Data:a};s.push(l)}const o={...r,files:[...r.files,...s],syncStatus:"pending"};await O.saveNote(o);for(const i of s)await O.addToSyncQueue({type:"uploadFile",noteId:e,data:{fileId:i.id},timestamp:Date.now(),retries:0});return te.dispatch(qe(o)),await Sn(),s}try{if($r(e))throw new Error("Cannot upload files for temp note online");const r=new FormData;t.forEach(a=>r.append("files",a));const{data:s}=await X.post(`/notes/${e}/files`,r,{headers:{"Content-Type":"multipart/form-data"}}),o=Array.isArray(s)?s:(s==null?void 0:s.files)||[],i=await O.getNote(e);if(i){const a={...i,files:[...i.files||[],...o],syncStatus:"synced"};await O.saveNote(a),te.dispatch(qe(a))}return o}catch(r){throw console.error("Error uploading files:",r),r}},deleteImage:async(e,t)=>{if(!await Pt()){const r=await O.getNote(e);if(r){const s={...r,images:r.images.filter(o=>o.id!==t),syncStatus:"pending"};await O.saveNote(s),te.dispatch(qe(s)),await Sn()}return}try{await X.delete(`/notes/${e}/images/${t}`);const r=await O.getNote(e);if(r){const s={...r,images:r.images.filter(o=>o.id!==t),syncStatus:"synced"};await O.saveNote(s),te.dispatch(qe(s))}}catch(r){throw console.error("Error deleting image:",r),r}},deleteFile:async(e,t)=>{if(!await Pt()){const r=await O.getNote(e);if(r){const s={...r,files:r.files.filter(o=>o.id!==t),syncStatus:"pending"};await O.saveNote(s),te.dispatch(qe(s)),await Sn()}return}try{await X.delete(`/notes/${e}/files/${t}`);const r=await O.getNote(e);if(r){const s={...r,files:r.files.filter(o=>o.id!==t),syncStatus:"synced"};await O.saveNote(s),te.dispatch(qe(s))}}catch(r){throw console.error("Error deleting file:",r),r}},getArchived:async()=>{const e=await Pt(),t=ta();if(!e)return(t?await O.getNotesByUserId(t):await O.getAllNotes()).filter(r=>r.is_archived===1);try{const{data:n}=await X.get("/notes/archived");return n.map(s=>({...s,syncStatus:"synced"}))}catch(n){return console.error("Error fetching archived notes:",n),(t?await O.getNotesByUserId(t):await O.getAllNotes()).filter(s=>s.is_archived===1)}},deleteArchived:async e=>{if(!await Pt()){await tt.delete(e);return}try{await X.delete(`/notes/archived/${e}`),await O.deleteNote(e)}catch(n){throw console.error("Error deleting archived note:",n),n}},deleteAllArchived:async e=>{if(!await Pt())throw new Error("Cannot delete all archived in offline mode");try{const{data:n}=await X.delete("/notes/archived/all",{data:{password:e}});return n}catch(n){throw console.error("Error deleting all archived:",n),n}}};function Bh(e,t){let n=e;if(t.q){const r=t.q.toLowerCase();n=n.filter(s=>s.content.toLowerCase().includes(r))}if(t.tag){const r=t.tag.toLowerCase();n=n.filter(s=>$j(s.content).some(i=>i.toLowerCase()===r))}return t.date&&(n=n.filter(r=>r.date===t.date)),n}function $j(e){const t=/#(\w+)/g,n=[];let r;for(;(r=t.exec(e))!==null;)n.push(r[1]);return n}async function Sn(){const e=await O.getPendingSyncCount();te.dispatch(qd(e))}const hi={improveText:async e=>{const{data:t}=await X.post("/ai/improve",{text:e});return t.improvedText},mergeNotes:async e=>{const{data:t}=await X.post("/ai/merge",{notes:e});return t.mergedText},generateTags:async e=>{const{data:t}=await X.post("/ai/generate-tags",{text:e});return t.tags}},Gv=({isOpen:e,onClose:t,onSelectTags:n,suggestedTags:r,existingTags:s,isLoading:o=!1,hasError:i=!1})=>{const[a,l]=S.useState([]),{showNotification:u}=Hn();S.useEffect(()=>{if(e){const w=r.filter(h=>!s.some(m=>m.toLowerCase()===h.toLowerCase()));l(w)}else l([])},[e,r,s]);const d=w=>{l(h=>h.includes(w)?h.filter(m=>m!==w):[...h,w])},f=()=>{const w=r.filter(h=>!s.some(m=>m.toLowerCase()===h.toLowerCase()));l(w)},p=()=>{l([])},v=()=>{if(a.length===0){u("Выберите хотя бы один тег","warning");return}n(a),t()};if(S.useEffect(()=>{const w=h=>{h.key==="Escape"&&e&&t()};return e&&document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[e,t]),!e)return null;const g=r.filter(w=>!s.some(h=>h.toLowerCase()===w.toLowerCase())),y=r.filter(w=>s.some(h=>h.toLowerCase()===w.toLowerCase()));return c.jsx("div",{className:"modal",style:{display:"block"},onClick:t,children:c.jsxs("div",{className:"modal-content",style:{maxWidth:"600px"},onClick:w=>w.stopPropagation(),children:[c.jsxs("div",{className:"modal-header",children:[c.jsx("h3",{children:"Выберите теги"}),c.jsx("span",{className:"modal-close",onClick:t,children:"×"})]}),c.jsx("div",{className:"modal-body",children:o?c.jsxs("div",{style:{textAlign:"center",padding:"40px 20px"},children:[c.jsx("div",{className:"loading-spinner",style:{margin:"0 auto 20px"}}),c.jsx("p",{children:"Генерирую теги через ИИ..."})]}):i?c.jsxs("div",{style:{textAlign:"center",padding:"40px 20px"},children:[c.jsx("p",{style:{color:"#dc3545",marginBottom:"10px"},children:"Не удалось сгенерировать теги"}),c.jsx("p",{style:{fontSize:"14px",color:"#666"},children:"Произошла ошибка при генерации тегов. Проверьте настройки AI или попробуйте еще раз."})]}):r.length===0?c.jsxs("div",{style:{textAlign:"center",padding:"40px 20px"},children:[c.jsx("p",{style:{color:"#dc3545",marginBottom:"10px"},children:"Не удалось сгенерировать теги"}),c.jsx("p",{style:{fontSize:"14px",color:"#666"},children:"ИИ не смог предложить теги для этой заметки. Попробуйте еще раз или добавьте больше текста."})]}):c.jsxs(c.Fragment,{children:[g.length>0&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"15px"},children:[c.jsx("h4",{style:{margin:0,fontSize:"16px"},children:"Предлагаемые теги:"}),c.jsxs("div",{style:{display:"flex",gap:"10px"},children:[c.jsx("button",{className:"btn-secondary",onClick:f,style:{fontSize:"12px",padding:"5px 10px"},children:"Выбрать все"}),c.jsx("button",{className:"btn-secondary",onClick:p,style:{fontSize:"12px",padding:"5px 10px"},children:"Снять все"})]})]}),c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px",marginBottom:"20px",padding:"15px",border:"1px solid var(--border-color)",borderRadius:"8px",backgroundColor:"var(--bg-secondary)",minHeight:"60px"},children:g.map(w=>c.jsxs("button",{onClick:()=>d(w),className:`tag ${a.includes(w)?"active":""}`,style:{cursor:"pointer",padding:"6px 12px",borderRadius:"20px",border:a.includes(w)?"2px solid var(--accent-color)":"1px solid var(--border-color)",backgroundColor:a.includes(w)?"var(--accent-color)":"var(--bg-tertiary)",color:a.includes(w)?"#fff":"var(--text-primary)",transition:"all 0.2s"},children:["#",w]},w))})]}),y.length>0&&c.jsxs("div",{style:{marginTop:"20px"},children:[c.jsx("h4",{style:{margin:"0 0 10px 0",fontSize:"14px",color:"#666"},children:"Теги, которые уже есть в заметке:"}),c.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px",padding:"10px",backgroundColor:"var(--bg-tertiary)",borderRadius:"8px",opacity:.7},children:y.map(w=>c.jsxs("span",{className:"tag",style:{padding:"6px 12px",borderRadius:"20px",border:"1px solid var(--border-color)",backgroundColor:"var(--bg-secondary)",color:"var(--text-secondary)"},children:["#",w]},w))})]}),a.length>0&&c.jsx("div",{style:{marginTop:"20px",padding:"10px",backgroundColor:"var(--bg-hover)",borderRadius:"8px",fontSize:"14px"},children:c.jsxs("strong",{children:["Будет добавлено тегов: ",a.length]})})]})}),c.jsxs("div",{className:"modal-footer",children:[c.jsxs("button",{className:"btn-primary",onClick:v,disabled:o||a.length===0,children:["Применить (",a.length,")"]}),c.jsx("button",{className:"btn-secondary",onClick:t,disabled:o,children:"Отмена"})]})]})})},Fj=({isOpen:e,onClose:t,onApply:n,originalText:r,improvedText:s,isLoading:o=!1,hasError:i=!1,errorMessage:a})=>{const[l,u]=S.useState(s);S.useEffect(()=>{e&&u(s)},[e,s]);const d=()=>{l.trim()&&(n(l),t())};return S.useEffect(()=>{const f=p=>{p.key==="Escape"&&e&&t()};return e&&document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[e,t]),e?c.jsx("div",{className:"modal",style:{display:"block"},onClick:t,children:c.jsxs("div",{className:"modal-content",style:{maxWidth:"800px"},onClick:f=>f.stopPropagation(),children:[c.jsxs("div",{className:"modal-header",children:[c.jsx("h3",{children:"Улучшенный текст"}),c.jsx("span",{className:"modal-close",onClick:t,children:"×"})]}),c.jsx("div",{className:"modal-body",style:{maxHeight:"70vh",overflowY:"auto"},children:o?c.jsxs("div",{style:{textAlign:"center",padding:"40px 20px"},children:[c.jsx("div",{className:"loading-spinner",style:{margin:"0 auto 20px"}}),c.jsx("p",{children:"Улучшаю текст через ИИ..."})]}):i?c.jsxs("div",{style:{textAlign:"center",padding:"40px 20px"},children:[c.jsx(M,{icon:"mdi:alert-circle",style:{fontSize:"48px",color:"#dc3545",marginBottom:"15px"}}),c.jsx("p",{style:{color:"#dc3545",marginBottom:"10px",fontSize:"18px"},children:"Не удалось улучшить текст"}),c.jsx("p",{style:{fontSize:"14px",color:"#666"},children:a||"Произошла ошибка при улучшении текста. Проверьте настройки AI или попробуйте еще раз."})]}):c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{marginBottom:"20px"},children:[c.jsx("h4",{style:{margin:"0 0 10px 0",fontSize:"16px",color:"#666"},children:"Оригинальный текст:"}),c.jsx("div",{style:{padding:"15px",border:"1px solid var(--border-color)",borderRadius:"8px",backgroundColor:"var(--bg-secondary)",maxHeight:"200px",overflowY:"auto",whiteSpace:"pre-wrap",wordWrap:"break-word",fontSize:"14px",lineHeight:"1.6"},children:r||"(пусто)"})]}),c.jsxs("div",{children:[c.jsx("h4",{style:{margin:"0 0 10px 0",fontSize:"16px"},children:"Улучшенный текст:"}),c.jsx("textarea",{value:l,onChange:f=>u(f.target.value),style:{width:"100%",minHeight:"200px",maxHeight:"400px",padding:"15px",border:"1px solid var(--border-color)",borderRadius:"8px",backgroundColor:"var(--bg-primary)",color:"var(--text-primary)",fontSize:"14px",lineHeight:"1.6",fontFamily:"inherit",resize:"vertical",whiteSpace:"pre-wrap",wordWrap:"break-word",overflowY:"auto"},placeholder:"Улучшенный текст появится здесь..."}),c.jsx("p",{style:{fontSize:"12px",color:"#666",marginTop:"8px"},children:"Вы можете отредактировать улучшенный текст перед применением"})]})]})}),c.jsxs("div",{className:"modal-footer",children:[c.jsx("button",{className:"btn-primary",onClick:d,disabled:o||i||!l.trim(),children:"Применить"}),c.jsx("button",{className:"btn-secondary",onClick:t,disabled:o,children:"Отмена"})]})]})}):null},zj=({onSave:e})=>{const[t,n]=S.useState(""),[r,s]=S.useState([]),[o,i]=S.useState([]),[a,l]=S.useState(!1),[u,d]=S.useState(!1),[f,p]=S.useState([]),[v,g]=S.useState(!1),[y,w]=S.useState(!1),[h,m]=S.useState(!1),[x,C]=S.useState(""),[T,b]=S.useState(!1),[j,_]=S.useState(""),[I,R]=S.useState(!1),[Y,ue]=S.useState({top:0,left:0}),[ae,ne]=S.useState(!1),[F,V]=S.useState({bold:!1,italic:!1,strikethrough:!1}),$=S.useRef(null),D=ie(P=>P.ui.isPreviewMode),{showNotification:W}=Hn(),G=ie(P=>P.profile.aiEnabled),Z=ie(P=>P.profile.user),le=(Z==null?void 0:Z.floating_toolbar_enabled)!==void 0?Z.floating_toolbar_enabled===1:!0,ft=async()=>{if(!t.trim()){W("Введите текст заметки","warning");return}try{const P=new Date,q=P.toLocaleDateString("ru-RU"),H=P.toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"}),z=await tt.create({content:t,date:q,time:H});r.length>0&&await tt.uploadImages(z.id,r),o.length>0&&await tt.uploadFiles(z.id,o),W("Заметка сохранена!","success"),n(""),s([]),i([]),e()}catch(P){console.error("Ошибка сохранения заметки:",P),W("Ошибка сохранения заметки","error")}},Ue=async()=>{var P,q;if(!t.trim()){W("Введите текст для улучшения","warning");return}l(!0),b(!1),_(""),C(""),m(!0);try{const H=await hi.improveText(t);C(H),b(!1)}catch(H){console.error("Ошибка улучшения текста:",H),b(!0),_(((q=(P=H.response)==null?void 0:P.data)==null?void 0:q.error)||H.message||"Ошибка улучшения текста")}finally{l(!1)}},Nt=P=>{n(P),W("Текст улучшен!","success"),m(!1),C(""),b(!1),_("")},At=async()=>{var P,q,H;if(!t.trim()){W("Введите текст для генерации тегов","warning");return}g(!0),w(!1),p([]),d(!0);try{const z=await hi.generateTags(t);z&&z.length>0?(p(z),w(!1)):(w(!0),d(!1),W("ИИ не смог предложить теги для этой заметки","info"))}catch(z){console.error("Ошибка генерации тегов:",z),console.error("Детали ошибки:",(P=z.response)==null?void 0:P.data),w(!0),d(!1);const J=((H=(q=z.response)==null?void 0:q.data)==null?void 0:H.error)||z.message||"Ошибка генерации тегов";W(J,"error")}finally{g(!1)}},an=P=>{if(P.length===0)return;const q=Ys(t),H=P.filter(z=>!q.some(J=>J.toLowerCase()===z.toLowerCase())).map(z=>`#${z}`).join(" ");if(H){const z=t.trim()+(t.trim()?` `:"")+H;n(z),W(`Добавлено тегов: ${P.length}`,"success")}else W("Все предлагаемые теги уже есть в заметке","info")},$t=S.useCallback(()=>{const P=$.current;if(!P)return{bold:!1,italic:!1,strikethrough:!1};const q=P.selectionStart,H=P.selectionEnd;if(q===H)return{bold:!1,italic:!1,strikethrough:!1};const z=t.substring(q,H),J={bold:!1,italic:!1,strikethrough:!1},re=10,de=Math.max(0,q-re),Ee=Math.min(t.length,H+re),Se=t.substring(de,Ee),Oe=q-de,ge=Se.substring(0,Oe),Je=Se.substring(Oe+z.length),We=(ln,Gn)=>{let Ft=0;for(let k=ln.length-1;k>=0&&ln[k]===Gn;k--)Ft++;return Ft},rt=(ln,Gn)=>{let Ft=0;for(let k=0;k=4;(Le||He)&&(J.strikethrough=!0);const Ie=We(ge,"*"),Qe=rt(Je,"*"),E=rt(z,"*"),K=We(z,"*"),se=Ie>=2,ve=Qe>=2,Fe=E>=2&&K>=2;(se&&ve||Fe&&z.length>=4)&&(J.bold=!0);const pt=Ie===1||Ie>=3&&Ie%2===1,ht=Qe===1||Qe>=3&&Qe%2===1,On=E===1&&K===1||E>=3&&K>=3&&E%2===1&&K%2===1;return pt&&ht&&!J.bold?J.italic=!0:Ie>=3&&Qe>=3?(J.italic=!0,J.bold=!0):(On&&z.length>=2||E===1&&K===1&&z.length>=2&&!z.startsWith("**")&&!z.endsWith("**"))&&(J.italic=!0),J.bold&&(Ie>=3||Qe>=3||E>=3||K>=3)&&(J.italic=!0),J},[t]),nt=S.useCallback((P,q="")=>{const H=$.current;if(!H)return;const z=H.selectionStart,J=H.selectionEnd,re=t.substring(z,J),de=P.length,Ee=Math.max(0,z-de),Se=Math.min(t.length,J+de),Oe=t.substring(Ee,Se),ge=z-Ee,Je=Oe.substring(0,ge),We=Oe.substring(ge+re.length),rt=Je.endsWith(P),Ne=We.startsWith(q),Te=re.startsWith(P),Le=re.endsWith(q);let He=!1;if(P==="*"&&q==="*"){const K=z>1?t[z-2]:"",se=J+1=2&&!re.startsWith("**")&&!re.endsWith("**");He=ve&&Fe||pt}else P==="**"&&q==="**"||P==="~~"&&q==="~~"?He=rt&&Ne||Te&&Le&&re.length>=4:He=rt&&Ne||Te&&Le&&re.length>=de*2;let Ie,Qe,E;if(He)if(rt&&Ne)Ie=t.substring(0,z-de)+re+t.substring(J+de),Qe=z-de,E=J-de;else{const K=re.substring(de,re.length-de);Ie=t.substring(0,z)+K+t.substring(J),Qe=z,E=z+K.length}else{const K=/^[-*+]\s|^\d+\.\s|^- \[ \]\s|^>\s/.test(P),se=re.includes(` `);if(K&&se){const ve=re.split(` `);let Fe=[],pt=1,ht=!0;for(let ln=0;ln ")?Fe.push(L+"> "+Ft):Fe.push(L+P+Ft)}const On=Fe.join(` `);Ie=t.substring(0,z)+On+t.substring(J),Qe=z+P.length,E=z+On.length}else Ie=t.substring(0,z)+P+re+q+t.substring(J),Qe=z+P.length,E=J+P.length}n(Ie),setTimeout(()=>{H.focus(),H.setSelectionRange(Qe,E);const K=$t();V(K)},0)},[t,$t]),Be=S.useCallback(()=>{const P=document.createElement("input");P.type="color",P.style.display="none",document.body.appendChild(P),P.addEventListener("change",function(){const q=this.value,H=$.current;if(!H)return;const z=H.selectionStart,J=H.selectionEnd,re=t.substring(z,J),de=t.substring(0,z),Ee=t.substring(J);let Se;re.trim()===""?Se=`Текст`:Se=`${re}`;const Oe=de+Se+Ee;n(Oe),setTimeout(()=>{H.focus();const ge=z+Se.length;H.setSelectionRange(ge,ge)},0),document.body.removeChild(this)}),P.addEventListener("cancel",function(){document.body.removeChild(this)}),P.click()},[t]),Qn=P=>{if((P.altKey||P.ctrlKey)&&P.key==="Enter")P.preventDefault(),ft();else if(P.key==="Enter"){const q=P.currentTarget,H=q.selectionStart,z=q.value,J=z.split(` `);let re=0,de="";for(let ge=0;ge=H){de=J[ge];break}re+=Je+1}const Ee=[/^(\s*)- \[ \] /,/^(\s*)- \[x\] /i,/^(\s*)- /,/^(\s*)\* /,/^(\s*)\+ /,/^(\s*)(\d+)\. /,/^(\s*)(\w+)\. /,/^(\s*)1\. /];let Se=null,Oe=null;for(const ge of Ee){const Je=de.match(ge);if(Je){Se=Je,ge===Ee[0]||ge===Ee[1]?Oe="checkbox":ge===Ee[2]||ge===Ee[3]||ge===Ee[4]?Oe="unordered":ge===Ee[7]?Oe="numbered":Oe="ordered";break}}if(Se){P.preventDefault();const ge=Se[1]||"",Je=Se[0].slice(ge.length);if(de.slice(Se[0].length).trim()===""){const rt=z.substring(0,H),Ne=z.substring(H),Te=rt.replace(/\n\s*- \[ \] \s*$|\n\s*- \[x\] \s*$|\n\s*[-*+]\s*$|\n\s*\d+\.\s*$|\n\s*\w+\.\s*$/i,` `),Le=Te+Ne;n(Le),setTimeout(()=>{const He=Te.length;q.setSelectionRange(He,He)},0)}else{const rt=z.substring(0,H),Ne=z.substring(H);let Te="";if(Oe==="checkbox")Te=ge+"- [ ] ";else if(Oe==="unordered")Te=ge+Je;else if(Oe==="ordered"){const Ie=parseInt(Se[2])+1,Qe=Se[2].replace(/\d+/,Ie.toString());Te=ge+Qe+". "}else Oe==="numbered"&&(Te=ge+"1. ");const Le=rt+` `+Te+Ne;n(Le),setTimeout(()=>{const He=H+1+Te.length;q.setSelectionRange(He,He)},0)}}}},$e=S.useCallback(()=>{const P=$.current;if(!P)return null;const q=P.selectionStart,H=P.selectionEnd,z=q!==H,J=P.getBoundingClientRect(),re=window.getComputedStyle(P),de=parseInt(re.lineHeight)||20,Ee=parseInt(re.paddingTop)||0,Se=parseInt(re.paddingLeft)||0;parseInt(re.fontSize);const Oe=P.scrollTop,Je=P.value.substring(0,q).split(` `),We=Je.length-1,rt=Je[We],Ne=document.createElement("span");Ne.style.position="absolute",Ne.style.visibility="hidden",Ne.style.whiteSpace="pre",Ne.style.font=re.font,document.body.appendChild(Ne),Ne.textContent=rt;const Te=Ne.offsetWidth,He=P.value.substring(0,H).split(` `),Ie=He.length-1,Qe=He[Ie];Ne.textContent=Qe;const E=Ne.offsetWidth;document.body.removeChild(Ne);const K=J.top+Ee+We*de-Oe,se=J.top+Ee+Ie*de-Oe,ve=J.left+Se+Te,Fe=J.left+Se+E;if(z){const pt=Math.min(ve,Fe),ht=Math.max(ve,Fe),On=(pt+ht)/2;return{top:(K+se)/2,left:On,hasSelection:z,selectionTop:Math.min(K,se),selectionBottom:Math.max(K,se)+de,selectionLeft:pt,selectionRight:ht}}else{const pt=K,ht=ve;return{top:pt,left:ht,hasSelection:z,selectionTop:pt,selectionBottom:pt+de,selectionLeft:ht,selectionRight:ht}}},[]),Kt=S.useCallback(()=>{if(D||!le){R(!1);return}const P=t.trim().length>0,q=$e();if(q&&P)if(ue({top:q.top,left:q.left}),ne(q.hasSelection),R(!0),q.hasSelection){const H=$t();V(H)}else V({bold:!1,italic:!1,strikethrough:!1});else R(!1),ne(!1),V({bold:!1,italic:!1,strikethrough:!1})},[D,t,$e,$t,le]);S.useEffect(()=>{const P=$.current;if(!P||D)return;const q=()=>{setTimeout(Kt,0)},H=re=>{re.buttons===1&&setTimeout(Kt,0)},z=()=>{setTimeout(Kt,0)},J=re=>{const de=re.target;if(de===P||P.contains(de)){const Ee=P.value.trim().length>0,Se=P.selectionStart!==P.selectionEnd;Ee&&Se&&(re.preventDefault(),re.stopPropagation())}};return P.addEventListener("mouseup",q),P.addEventListener("mousemove",H),P.addEventListener("keyup",z),P.addEventListener("contextmenu",J),document.addEventListener("selectionchange",Kt),document.addEventListener("contextmenu",J,!0),()=>{P.removeEventListener("mouseup",q),P.removeEventListener("mousemove",H),P.removeEventListener("keyup",z),P.removeEventListener("contextmenu",J),document.removeEventListener("selectionchange",Kt),document.removeEventListener("contextmenu",J,!0)}},[D,Kt]),S.useEffect(()=>{const P=q=>{const H=$.current,z=q.target,J=document.querySelector(".floating-toolbar");J&&J.contains(z)||H&&!H.contains(z)&&setTimeout(()=>{H.selectionStart===H.selectionEnd&&R(!1)},0)};return document.addEventListener("mousedown",P),()=>{document.removeEventListener("mousedown",P)}},[]),S.useEffect(()=>{if(!I)return;const P=()=>{const H=$e();if(H&&(ue({top:H.top,left:H.left}),ne(H.hasSelection),H.hasSelection)){const z=$t();V(z)}},q=$.current;return q&&(q.addEventListener("scroll",P),window.addEventListener("scroll",P,!0)),()=>{q&&q.removeEventListener("scroll",P),window.removeEventListener("scroll",P,!0)}},[I,$e,$t]),Pn.useEffect(()=>{const P=$.current;if(!P)return;const q=()=>{P.style.height="auto",P.style.height=P.scrollHeight+"px"};return P.addEventListener("input",q),q(),()=>{P.removeEventListener("input",q)}},[t]);const Xt=S.useRef(null),Vn=S.useRef(null),qn=()=>{var P;(P=Xt.current)==null||P.click()},Jt=()=>{var P;(P=Vn.current)==null||P.click()},at=P=>{const H=Array.from(P.target.files||[]).filter(z=>z.type.startsWith("image/")&&z.size<=10*1024*1024);if(H.length+r.length>10){W("Можно загрузить максимум 10 изображений","warning");return}s([...r,...H]),Xt.current&&(Xt.current.value="")},oo=P=>{const q=Array.from(P.target.files||[]),H=/pdf|doc|docx|xls|xlsx|txt|zip|rar|7z/,z=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/plain","application/zip","application/x-zip-compressed","application/x-rar-compressed","application/x-7z-compressed"],J=q.filter(re=>{var de;return(z.includes(re.type)||H.test(((de=re.name.split(".").pop())==null?void 0:de.toLowerCase())||""))&&re.size<=50*1024*1024});i([...o,...J]),Vn.current&&(Vn.current.value="")};return c.jsxs("div",{className:"main",children:[c.jsx(Wv,{onInsert:nt,onImageClick:qn,onFileClick:Jt,onInsertColor:Be}),c.jsx("input",{ref:Xt,type:"file",id:"imageInput",accept:"image/*",multiple:!0,style:{display:"none"},onChange:at}),c.jsx("input",{ref:Vn,type:"file",id:"fileInput",accept:".pdf,.doc,.docx,.xls,.xlsx,.txt,.zip,.rar,.7z",multiple:!0,style:{display:"none"},onChange:oo}),!D&&c.jsxs(c.Fragment,{children:[c.jsx("textarea",{ref:$,className:"textInput",id:"noteInput",placeholder:"Ваша заметка...",value:t,onChange:P=>n(P.target.value),onKeyDown:Qn,onContextMenu:P=>{const q=$.current;if(q){const H=q.value.trim().length>0,z=q.selectionStart!==q.selectionEnd;H&&z&&P.preventDefault()}}}),le&&c.jsx(Hv,{textareaRef:$,onFormat:nt,visible:I,position:Y,onHide:()=>R(!1),onInsertColor:Be,activeFormats:F,hasSelection:ae})]}),D&&c.jsx(xf,{content:t}),c.jsx(Vv,{images:r,onChange:s}),c.jsx(qv,{files:o,onChange:i}),c.jsxs("div",{className:"save-button-container",children:[c.jsxs("div",{className:"action-buttons",children:[G&&c.jsxs(c.Fragment,{children:[c.jsxs("button",{className:"btnSave btnAI",onClick:Ue,disabled:a,title:"Улучшить или создать текст через ИИ",children:[c.jsx(M,{icon:"mdi:robot"}),c.jsx("span",{className:"btnAI-text",children:a?"Обработка...":"Помощь ИИ"})]}),c.jsxs("button",{className:"btnSave btnAI",onClick:At,disabled:v||a,title:"Сгенерировать теги через ИИ",children:[c.jsx(M,{icon:"mdi:tag-multiple"}),c.jsx("span",{className:"btnAI-text",children:v?"Генерация...":"Теги ИИ"})]})]}),c.jsx("button",{className:"btnSave",onClick:ft,children:"Сохранить"})]}),c.jsx("span",{className:"save-hint",children:"или нажмите Alt + Enter"})]}),c.jsx(Gv,{isOpen:u,onClose:()=>{d(!1),p([]),w(!1)},onSelectTags:an,suggestedTags:f,existingTags:Ys(t),isLoading:v,hasError:y}),c.jsx(Fj,{isOpen:h,onClose:()=>{m(!1),C(""),b(!1),_("")},onApply:Nt,originalText:t,improvedText:x,isLoading:a,hasError:T,errorMessage:j})]})},mi=({isOpen:e,onClose:t,onConfirm:n,title:r,message:s,confirmText:o="OK",cancelText:i="Отмена",confirmType:a="primary"})=>(S.useEffect(()=>{const l=u=>{u.key==="Escape"&&t()};return e&&document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,t]),e?c.jsx("div",{className:"modal",style:{display:"block"},onClick:t,children:c.jsxs("div",{className:"modal-content",onClick:l=>l.stopPropagation(),children:[c.jsxs("div",{className:"modal-header",children:[c.jsx("h3",{children:r}),c.jsx("span",{className:"modal-close",onClick:t,children:"×"})]}),c.jsx("div",{className:"modal-body",children:typeof s=="string"?c.jsx("p",{children:s}):s}),c.jsxs("div",{className:"modal-footer",children:[c.jsx("button",{className:a==="danger"?"btn-danger":"btn-primary",onClick:n,children:o}),c.jsx("button",{className:"btn-secondary",onClick:t,children:i})]})]})}):null);function Sc(e,t,n){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/api")||e.startsWith("/uploads")?e:e.startsWith("/")?`/api${e}`:`/api/notes/${t}/images/${n}`}function Uj(e,t,n){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/api")||e.startsWith("/uploads")?e:e.startsWith("/")?`/api${e}`:`/api/notes/${t}/files/${n}`}const Bj=({note:e,onDelete:t,onPin:n,onArchive:r,onReload:s,isSelected:o=!1,onSelect:i})=>{const[a,l]=S.useState(!1),[u,d]=S.useState(e.content),[f,p]=S.useState(!1),[v,g]=S.useState([]),[y,w]=S.useState([]),[h,m]=S.useState([]),[x,C]=S.useState([]),[T,b]=S.useState(!1),[j,_]=S.useState(!1),[I,R]=S.useState({top:0,left:0}),[Y,ue]=S.useState(!1),[ae,ne]=S.useState({bold:!1,italic:!1,strikethrough:!1}),[F,V]=S.useState(!1),[$,D]=S.useState(!1),[W,G]=S.useState(!1),[Z,le]=S.useState(!1),[ft,Ue]=S.useState([]),[Nt,At]=S.useState(!1),[an,$t]=S.useState(!1),nt=S.useRef(null),Be=S.useRef(null),Qn=S.useRef(null),$e=S.useRef(null),Kt=S.useRef(!1),Xt=ie(k=>k.notes.searchQuery),Vn=ie(k=>k.ui.isPreviewMode),qn=ie(k=>k.profile.aiEnabled),Jt=ie(k=>k.profile.user),{showNotification:at}=Hn(),oo=Et();Qv({onNoteUpdate:s});const P=(Jt==null?void 0:Jt.floating_toolbar_enabled)!==void 0?Jt.floating_toolbar_enabled===1:!0,q=()=>{l(!0),d(e.content),g([]),w([]),m([]),C([]),_(!1),ne({bold:!1,italic:!1,strikethrough:!1}),V(!1),Kt.current=!0},H=()=>{V(!F),_(!1)},z=async()=>{if(!u.trim()){at("Введите текст заметки","warning");return}try{await tt.update(e.id,u);for(const k of h)await tt.deleteImage(e.id,k);for(const k of x)await tt.deleteFile(e.id,k);v.length>0&&await tt.uploadImages(e.id,v),y.length>0&&await tt.uploadFiles(e.id,y),at("Заметка обновлена!","success"),l(!1),g([]),w([]),m([]),C([]),s()}catch(k){console.error("Ошибка обновления заметки:",k),at("Ошибка обновления заметки","error")}},J=()=>{l(!1),d(e.content),g([]),w([]),m([]),C([]),_(!1),ne({bold:!1,italic:!1,strikethrough:!1}),V(!1)},re=k=>{m([...h,k])},de=k=>{C([...x,k])},Ee=k=>{m(h.filter(L=>L!==k))},Se=k=>{C(x.filter(L=>L!==k))},Oe=async()=>{if(!u.trim()){at("Введите текст для улучшения","warning");return}b(!0);try{const k=await hi.improveText(u);d(k),at("Текст улучшен!","success")}catch(k){console.error("Ошибка улучшения текста:",k),at("Ошибка улучшения текста","error")}finally{b(!1)}},ge=async()=>{var k,L,U;if(!u.trim()){at("Введите текст для генерации тегов","warning");return}At(!0),$t(!1),Ue([]),le(!0);try{const B=await hi.generateTags(u);B&&B.length>0?(Ue(B),$t(!1)):($t(!0),le(!1),at("ИИ не смог предложить теги для этой заметки","info"))}catch(B){console.error("Ошибка генерации тегов:",B),console.error("Детали ошибки:",(k=B.response)==null?void 0:k.data),$t(!0),le(!1);const ee=((U=(L=B.response)==null?void 0:L.data)==null?void 0:U.error)||B.message||"Ошибка генерации тегов";at(ee,"error")}finally{At(!1)}},Je=k=>{if(k.length===0)return;const L=Ys(u),U=k.filter(B=>!L.some(ee=>ee.toLowerCase()===B.toLowerCase())).map(B=>`#${B}`).join(" ");if(U){const B=u.trim()+(u.trim()?` `:"")+U;d(B),at(`Добавлено тегов: ${k.length}`,"success")}else at("Все предлагаемые теги уже есть в заметке","info")},We=S.useCallback(()=>{const k=nt.current;if(!k)return{bold:!1,italic:!1,strikethrough:!1};const L=k.selectionStart,U=k.selectionEnd;if(L===U)return{bold:!1,italic:!1,strikethrough:!1};const B=u.substring(L,U),ee={bold:!1,italic:!1,strikethrough:!1},ce=10,we=Math.max(0,L-ce),lt=Math.min(u.length,U+ce),Ve=u.substring(we,lt),st=L-we,he=Ve.substring(0,st),jt=Ve.substring(st+B.length),Mr=(Yn,Ar)=>{let dn=0;for(let Ln=Yn.length-1;Ln>=0&&Yn[Ln]===Ar;Ln--)dn++;return dn},zt=(Yn,Ar)=>{let dn=0;for(let Ln=0;Ln=4;(cn||wt)&&(ee.strikethrough=!0);const Ut=Mr(he,"*"),Bt=zt(jt,"*"),un=zt(B,"*"),Tt=Mr(B,"*"),io=Ut>=2,ds=Bt>=2,wn=un>=2&&Tt>=2;(io&&ds||wn&&B.length>=4)&&(ee.bold=!0);const lr=Ut===1||Ut>=3&&Ut%2===1,fs=Bt===1||Bt>=3&&Bt%2===1,_i=un===1&&Tt===1||un>=3&&Tt>=3&&un%2===1&&Tt%2===1;return lr&&fs&&!ee.bold?ee.italic=!0:Ut>=3&&Bt>=3?(ee.italic=!0,ee.bold=!0):(_i&&B.length>=2||un===1&&Tt===1&&B.length>=2&&!B.startsWith("**")&&!B.endsWith("**"))&&(ee.italic=!0),ee.bold&&(Ut>=3||Bt>=3||un>=3||Tt>=3)&&(ee.italic=!0),ee},[u]),rt=S.useCallback((k,L="")=>{const U=nt.current;if(!U)return;const B=U.selectionStart,ee=U.selectionEnd,ce=u.substring(B,ee),we=k.length,lt=Math.max(0,B-we),Ve=Math.min(u.length,ee+we),st=u.substring(lt,Ve),he=B-lt,jt=st.substring(0,he),Mr=st.substring(he+ce.length),zt=jt.endsWith(k),Ze=Mr.startsWith(L),ct=ce.startsWith(k),cn=ce.endsWith(L);let wt=!1;if(k==="*"&&L==="*"){const Tt=B>1?u[B-2]:"",io=ee+1=2&&!ce.startsWith("**")&&!ce.endsWith("**");wt=ds&&wn||lr}else k==="**"&&L==="**"||k==="~~"&&L==="~~"?wt=zt&&Ze||ct&&cn&&ce.length>=4:wt=zt&&Ze||ct&&cn&&ce.length>=we*2;let Ut,Bt,un;if(wt)if(zt&&Ze)Ut=u.substring(0,B-we)+ce+u.substring(ee+we),Bt=B-we,un=ee-we;else{const Tt=ce.substring(we,ce.length-we);Ut=u.substring(0,B)+Tt+u.substring(ee),Bt=B,un=B+Tt.length}else{const Tt=/^[-*+]\s|^\d+\.\s|^- \[ \]\s|^>\s/.test(k),io=ce.includes(` `);if(Tt&&io){const ds=ce.split(` `);let wn=[],lr=1,fs=!0;for(let Yn=0;Yn ")?wn.push(ao+"> "+dn):wn.push(ao+k+dn)}const _i=wn.join(` `);Ut=u.substring(0,B)+_i+u.substring(ee),Bt=B+k.length,un=B+_i.length}else Ut=u.substring(0,B)+k+ce+L+u.substring(ee),Bt=B+k.length,un=ee+k.length}d(Ut),setTimeout(()=>{U.focus(),U.setSelectionRange(Bt,un);const Tt=We();ne(Tt)},0)},[u,We]),Ne=S.useCallback(()=>{const k=document.createElement("input");k.type="color",k.style.display="none",document.body.appendChild(k),k.addEventListener("change",function(){const L=this.value,U=nt.current;if(!U)return;const B=U.selectionStart,ee=U.selectionEnd,ce=u.substring(B,ee),we=u.substring(0,B),lt=u.substring(ee);let Ve;ce.trim()===""?Ve=`Текст`:Ve=`${ce}`;const st=we+Ve+lt;d(st),setTimeout(()=>{U.focus();const he=B+Ve.length;U.setSelectionRange(he,he)},0),document.body.removeChild(this)}),k.addEventListener("cancel",function(){document.body.removeChild(this)}),k.click()},[u]),Te=S.useCallback(()=>{const k=nt.current;if(!k)return null;const L=k.selectionStart,U=k.selectionEnd,B=L!==U,ee=B?Math.floor((L+U)/2):L,we=k.value.substring(0,ee).split(` `),lt=we.length-1,Ve=we[we.length-1],st=k.getBoundingClientRect(),he=window.getComputedStyle(k),jt=parseInt(he.lineHeight)||20,Mr=parseInt(he.paddingTop)||0,zt=parseInt(he.paddingLeft)||0;parseInt(he.fontSize);const Ze=document.createElement("span");Ze.style.position="absolute",Ze.style.visibility="hidden",Ze.style.whiteSpace="pre",Ze.style.font=he.font,Ze.textContent=Ve,document.body.appendChild(Ze);const ct=Ze.offsetWidth;document.body.removeChild(Ze);const cn=st.top+Mr+lt*jt+jt/2,wt=st.left+zt+ct;return{top:cn,left:wt,hasSelection:B}},[]),Le=S.useCallback(()=>{if(F||!P){_(!1);return}const k=u.trim().length>0,L=Te();if(L&&k)if(R({top:L.top,left:L.left}),ue(L.hasSelection),_(!0),L.hasSelection){const U=We();ne(U)}else ne({bold:!1,italic:!1,strikethrough:!1});else _(!1),ue(!1),ne({bold:!1,italic:!1,strikethrough:!1})},[F,u,Te,We,P]),He=()=>{var k;(k=Be.current)==null||k.click()},Ie=()=>{var k;(k=Qn.current)==null||k.click()},Qe=k=>{const U=Array.from(k.target.files||[]).filter(B=>B.type.startsWith("image/")&&B.size<=10*1024*1024);if(U.length+v.length>10){at("Можно загрузить максимум 10 изображений","warning");return}g([...v,...U]),Be.current&&(Be.current.value="")},E=k=>{const L=Array.from(k.target.files||[]),U=/pdf|doc|docx|xls|xlsx|txt|zip|rar|7z/,B=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/plain","application/zip","application/x-zip-compressed","application/x-rar-compressed","application/x-7z-compressed"],ee=L.filter(ce=>{var we;return(B.includes(ce.type)||U.test(((we=ce.name.split(".").pop())==null?void 0:we.toLowerCase())||""))&&ce.size<=50*1024*1024});w([...y,...ee]),Qn.current&&(Qn.current.value="")},K=k=>{if((k.altKey||k.ctrlKey)&&k.key==="Enter")k.preventDefault(),z();else if(k.key==="Escape")k.preventDefault(),J();else if(k.key==="Enter"){const L=k.currentTarget,U=L.selectionStart,B=L.value,ee=B.split(` `);let ce=0,we="";for(let he=0;he=U){we=ee[he];break}ce+=jt+1}const lt=[/^(\s*)- \[ \] /,/^(\s*)- \[x\] /i,/^(\s*)- /,/^(\s*)\* /,/^(\s*)\+ /,/^(\s*)(\d+)\. /,/^(\s*)(\w+)\. /,/^(\s*)1\. /];let Ve=null,st=null;for(const he of lt){const jt=we.match(he);if(jt){Ve=jt,he===lt[0]||he===lt[1]?st="checkbox":he===lt[2]||he===lt[3]||he===lt[4]?st="unordered":he===lt[7]?st="numbered":st="ordered";break}}if(Ve){k.preventDefault();const he=Ve[1]||"",jt=Ve[0].slice(he.length);if(we.slice(Ve[0].length).trim()===""){const zt=B.substring(0,U),Ze=B.substring(U),ct=zt.replace(/\n\s*- \[ \] \s*$|\n\s*- \[x\] \s*$|\n\s*[-*+]\s*$|\n\s*\d+\.\s*$|\n\s*\w+\.\s*$/i,` `),cn=ct+Ze;d(cn),setTimeout(()=>{const wt=ct.length;L.setSelectionRange(wt,wt)},0)}else{const zt=B.substring(0,U),Ze=B.substring(U);let ct="";if(st==="checkbox")ct=he+"- [ ] ";else if(st==="unordered")ct=he+jt;else if(st==="ordered"){const Ut=parseInt(Ve[2])+1,Bt=Ve[2].replace(/\d+/,Ut.toString());ct=he+Bt+". "}else st==="numbered"&&(ct=he+"1. ");const cn=zt+` `+ct+Ze;d(cn),setTimeout(()=>{const wt=U+1+ct.length;L.setSelectionRange(wt,wt)},0)}}}};S.useEffect(()=>{if(!a)return;const k=nt.current;if(!k)return;const L=()=>{k.style.height="auto",k.style.height=k.scrollHeight+"px"};return k.addEventListener("input",L),L(),()=>{k.removeEventListener("input",L)}},[a,u]),S.useEffect(()=>{a&&nt.current&&!F&&setTimeout(()=>{const k=nt.current;if(k&&(k.focus(),Kt.current)){const L=k.value.length;k.setSelectionRange(L,L),Kt.current=!1}},100)},[a,F]),S.useEffect(()=>{if(!a)return;const k=nt.current;if(!k||F)return;const L=()=>{setTimeout(Le,0)},U=ce=>{ce.buttons===1&&setTimeout(Le,0)},B=()=>{setTimeout(Le,0)},ee=ce=>{const we=ce.target;if(we===k||k.contains(we)){const lt=k.value.trim().length>0,Ve=k.selectionStart!==k.selectionEnd;lt&&Ve&&(ce.preventDefault(),ce.stopPropagation())}};return k.addEventListener("mouseup",L),k.addEventListener("mousemove",U),k.addEventListener("keyup",B),k.addEventListener("contextmenu",ee),document.addEventListener("selectionchange",Le),document.addEventListener("contextmenu",ee,!0),()=>{k.removeEventListener("mouseup",L),k.removeEventListener("mousemove",U),k.removeEventListener("keyup",B),k.removeEventListener("contextmenu",ee),document.removeEventListener("selectionchange",Le),document.removeEventListener("contextmenu",ee,!0)}},[a,Vn,Le]),S.useEffect(()=>{if(!a)return;const k=L=>{const U=nt.current,B=L.target,ee=document.querySelector(".floating-toolbar");ee&&ee.contains(B)||U&&!U.contains(B)&&setTimeout(()=>{U.selectionStart===U.selectionEnd&&_(!1)},0)};return document.addEventListener("mousedown",k),()=>{document.removeEventListener("mousedown",k)}},[a]),S.useEffect(()=>{if(!a||!j)return;const k=()=>{const U=Te();if(U&&(R({top:U.top,left:U.left}),ue(U.hasSelection),U.hasSelection)){const B=We();ne(B)}},L=nt.current;return L&&(L.addEventListener("scroll",k),window.addEventListener("scroll",k,!0)),()=>{L&&L.removeEventListener("scroll",k),window.removeEventListener("scroll",k,!0)}},[a,j,Te,We]);const se=()=>{p(!1),r(e.id)},ve=k=>k?k.length>5&&k.match(/^\d{2}:\d{2}/)?k.substring(0,5):k:k||"",Fe=()=>{if(e.created_at){const k=zu(e.created_at),U=Lh(k).replace(/(\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})\d*.*/,"$1");if(e.updated_at&&e.created_at!==e.updated_at){const B=(Jt==null?void 0:Jt.show_edit_date)!==void 0?Jt.show_edit_date===1:!0,ee=zu(e.updated_at),we=Lh(ee).replace(/(\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})\d*.*/,"$1");return B?c.jsxs(c.Fragment,{children:[U,c.jsx("span",{className:"date-separator",children:" | "}),c.jsx(M,{icon:"mdi:pencil",style:{fontSize:"12px",margin:"0 2px"}}),we]}):c.jsxs(c.Fragment,{children:[U,c.jsx(M,{icon:"mdi:pencil",style:{fontSize:"12px",margin:"0 2px"}})]})}else return U}else{const k=ve(e.time);return`${e.date} ${k}`}},pt=()=>{let k=e.content;Xt&&(k=Oj(k,Xt));const L=Rj(k);return wf(L)},ht=k=>{var U;const L=((U=k.split(".").pop())==null?void 0:U.toLowerCase())||"";return L==="pdf"?"mdi:file-pdf":["doc","docx"].includes(L)?"mdi:file-word":["xls","xlsx"].includes(L)?"mdi:file-excel":L==="txt"?"mdi:file-document":["zip","rar","7z"].includes(L)?"mdi:folder-zip":"mdi:file"},On=k=>(k/1024/1024).toFixed(2)+" MB",ln=k=>{const L=document.getElementById("imageModal"),U=document.getElementById("modalImage");L&&U&&(U.setAttribute("src",k),L.style.display="block")},Gn=(k,L)=>{k.stopPropagation(),oo(Ka(L.toLowerCase()))},Ft=()=>{D(!$)};return S.useEffect(()=>{if(a){D(!1),G(!1);return}if(!$e.current)return;const L=setTimeout(()=>{const U=$e.current;if(!U)return;const B=U.classList.contains("collapsed");B&&U.classList.remove("collapsed");const ee=U.scrollHeight;B&&!$&&U.classList.add("collapsed");const ce=ee>300;G(ce)},100);return()=>clearTimeout(L)},[e.content,a,$]),S.useEffect(()=>{D(!1)},[e.id]),c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:`container ${e.is_pinned?"note-pinned":""}`,"data-note-id":e.id,children:[c.jsxs("div",{className:"date",children:[c.jsxs("span",{className:"date-text",children:[Fe(),e.is_pinned?c.jsxs("span",{className:"pin-indicator",children:[c.jsx(M,{icon:"mdi:pin"}),"Закреплено"]}):null,e.syncStatus==="pending"&&c.jsx("span",{className:"sync-indicator",title:"Ожидает синхронизации",children:c.jsx(M,{icon:"mdi:cloud-upload"})}),e.syncStatus==="error"&&c.jsx("span",{className:"sync-error-indicator",title:"Ошибка синхронизации",children:c.jsx(M,{icon:"mdi:cloud-alert"})})]}),c.jsxs("div",{className:"note-actions",children:[c.jsx("div",{className:"notesHeaderBtn",onClick:()=>n(e.id),title:e.is_pinned?"Открепить":"Закрепить",children:c.jsx(M,{icon:e.is_pinned?"mdi:pin-off":"mdi:pin"})}),c.jsx("div",{className:"notesHeaderBtn",onClick:q,title:"Редактировать",children:c.jsx(M,{icon:"mdi:pencil"})}),c.jsx("input",{type:"checkbox",checked:o,onChange:()=>i&&i(e.id),onClick:k=>k.stopPropagation()})]})]}),a?c.jsxs("div",{className:"note-edit-mode",children:[c.jsx(Wv,{onInsert:rt,onImageClick:He,onFileClick:Ie,onPreviewToggle:H,isPreviewMode:F}),c.jsx("input",{ref:Be,type:"file",id:"imageInput",accept:"image/*",multiple:!0,style:{display:"none"},onChange:Qe}),c.jsx("input",{ref:Qn,type:"file",id:"fileInput",accept:".pdf,.doc,.docx,.xls,.xlsx,.txt,.zip,.rar,.7z",multiple:!0,style:{display:"none"},onChange:E}),!F&&c.jsxs(c.Fragment,{children:[c.jsx("textarea",{ref:nt,className:"textInput",value:u,onChange:k=>d(k.target.value),onKeyDown:K,style:{minHeight:"100px"},onContextMenu:k=>{const L=nt.current;if(L){const U=L.value.trim().length>0,B=L.selectionStart!==L.selectionEnd;U&&B&&k.preventDefault()}}}),P&&c.jsx(Hv,{textareaRef:nt,onFormat:rt,visible:j,position:I,onHide:()=>_(!1),onInsertColor:Ne,activeFormats:ae,hasSelection:Y})]}),F&&c.jsx(xf,{content:u}),e.images&&e.images.length>0&&c.jsxs("div",{className:"image-preview-container",style:{display:"block"},children:[c.jsx("div",{className:"image-preview-header",children:c.jsx("span",{children:"Прикрепленные изображения:"})}),c.jsx("div",{className:"image-preview-list",children:e.images.filter(k=>!h.includes(k.id)).map(k=>{const L=Sc(k.file_path,Number(e.id),Number(k.id));return c.jsxs("div",{className:"image-preview-item",children:[c.jsx("img",{src:L,alt:k.original_name,className:"image-preview-thumbnail"}),c.jsx("button",{className:"image-preview-remove",onClick:()=>re(k.id),title:"Удалить",children:c.jsx(M,{icon:"mdi:close"})})]},k.id)})})]}),h.length>0&&c.jsxs("div",{className:"image-preview-container",style:{display:"block",opacity:.5},children:[c.jsx("div",{className:"image-preview-header",children:c.jsx("span",{children:"Изображения для удаления:"})}),c.jsx("div",{className:"image-preview-list",children:e.images.filter(k=>h.includes(k.id)).map(k=>{const L=Sc(k.file_path,Number(e.id),Number(k.id));return c.jsxs("div",{className:"image-preview-item",children:[c.jsx("img",{src:L,alt:k.original_name,className:"image-preview-thumbnail",style:{opacity:.5}}),c.jsx("button",{className:"image-preview-remove restore-btn",onClick:()=>Ee(k.id),title:"Восстановить",children:c.jsx(M,{icon:"mdi:restore"})})]},k.id)})})]}),e.files&&e.files.length>0&&c.jsxs("div",{className:"file-preview-container",style:{display:"block"},children:[c.jsx("div",{className:"file-preview-header",children:c.jsx("span",{children:"Прикрепленные файлы:"})}),c.jsx("div",{className:"file-preview-list",children:e.files.filter(k=>!x.includes(k.id)).map(k=>c.jsxs("div",{className:"file-preview-item",children:[c.jsx(M,{icon:ht(k.original_name),className:"file-icon"}),c.jsxs("div",{className:"file-info",children:[c.jsx("div",{className:"file-name",children:k.original_name}),c.jsx("div",{className:"file-size",children:On(k.file_size)})]}),c.jsx("button",{className:"file-preview-remove",onClick:()=>de(k.id),title:"Удалить",children:c.jsx(M,{icon:"mdi:close"})})]},k.id))})]}),x.length>0&&c.jsxs("div",{className:"file-preview-container",style:{display:"block",opacity:.5},children:[c.jsx("div",{className:"file-preview-header",children:c.jsx("span",{children:"Файлы для удаления:"})}),c.jsx("div",{className:"file-preview-list",children:e.files.filter(k=>x.includes(k.id)).map(k=>c.jsxs("div",{className:"file-preview-item",children:[c.jsx(M,{icon:ht(k.original_name),className:"file-icon",style:{opacity:.5}}),c.jsxs("div",{className:"file-info",children:[c.jsx("div",{className:"file-name",style:{opacity:.5},children:k.original_name}),c.jsx("div",{className:"file-size",style:{opacity:.5},children:On(k.file_size)})]}),c.jsx("button",{className:"file-preview-remove restore-btn",onClick:()=>Se(k.id),title:"Восстановить",children:c.jsx(M,{icon:"mdi:restore"})})]},k.id))})]}),c.jsx(Vv,{images:v,onChange:g}),c.jsx(qv,{files:y,onChange:w}),c.jsxs("div",{className:"save-button-container",children:[c.jsxs("div",{className:"action-buttons",children:[qn&&c.jsxs(c.Fragment,{children:[c.jsxs("button",{className:"btnSave btnAI",onClick:Oe,disabled:T,title:"Улучшить или создать текст через ИИ",children:[c.jsx(M,{icon:"mdi:robot"}),c.jsx("span",{className:"btnAI-text",children:T?"Обработка...":"Помощь ИИ"})]}),c.jsxs("button",{className:"btnSave btnAI",onClick:ge,disabled:Nt||T,title:"Сгенерировать теги через ИИ",children:[c.jsx(M,{icon:"mdi:tag-multiple"}),c.jsx("span",{className:"btnAI-text",children:Nt?"Генерация...":"Теги ИИ"})]})]}),c.jsx("button",{className:"btnSave",onClick:z,children:"Сохранить"}),c.jsx("button",{className:"btn-secondary",onClick:J,children:"Отмена"})]}),c.jsx("span",{className:"save-hint",children:"Alt + Enter для сохранения, Esc для отмены"})]})]}):c.jsxs(c.Fragment,{children:[c.jsx("div",{ref:$e,className:`textNote ${W&&!$?"collapsed":""}`,"data-original-content":e.content,dangerouslySetInnerHTML:{__html:pt()},onClick:k=>{const L=k.target;if(L.classList.contains("tag-in-note")){const U=L.getAttribute("data-tag");U&&Gn(k,U)}}}),W&&c.jsxs("button",{className:"show-more-btn",onClick:Ft,type:"button",children:[c.jsx(M,{icon:$?"mdi:chevron-up":"mdi:chevron-down"}),c.jsx("span",{children:$?"Скрыть":"Раскрыть"})]}),e.images&&e.images.length>0&&c.jsx("div",{className:"note-images-container",children:e.images.map(k=>{const L=Sc(k.file_path,Number(e.id),Number(k.id));return c.jsx("div",{className:"note-image-item",children:c.jsx("img",{src:L,alt:k.original_name,className:"note-image lazy","data-src":L,"data-image-id":k.id,loading:"lazy",onClick:()=>ln(L)})},k.id)})}),e.files&&e.files.length>0&&c.jsx("div",{className:"note-files-container",children:e.files.map(k=>{const L=Uj(k.file_path,Number(e.id),Number(k.id));return c.jsx("div",{className:"note-file-item",children:c.jsxs("a",{href:L,download:k.original_name,className:"note-file-link","data-file-id":k.id,children:[c.jsx(M,{icon:ht(k.original_name),className:"file-icon"}),c.jsxs("div",{className:"file-info",children:[c.jsx("div",{className:"file-name",children:k.original_name}),c.jsx("div",{className:"file-size",children:On(k.file_size)})]})]})},k.id)})})]})]}),c.jsx(mi,{isOpen:f,onClose:()=>p(!1),onConfirm:se,title:"Подтверждение архивирования",message:"Архивировать эту заметку? Её можно будет восстановить из настроек.",confirmText:"Архивировать",cancelText:"Отмена"}),c.jsx(Gv,{isOpen:Z,onClose:()=>{le(!1),Ue([]),$t(!1)},onSelectTags:Je,suggestedTags:ft,existingTags:Ys(u),isLoading:Nt,hasError:an})]})},Wj=S.forwardRef(({selectedNoteIds:e=[],onNoteSelect:t},n)=>{const r=ie(y=>y.notes.notes),s=ie(y=>y.auth.userId),o=ie(y=>y.notes.searchQuery),i=ie(y=>y.notes.selectedDate),a=ie(y=>y.notes.selectedTag),l=Et(),{showNotification:u}=Hn(),d=async()=>{try{const y=await tt.getAll();let w=y;s&&(w=y.filter(m=>m.user_id===s)),l(B1(w));let h;if(o||i||a){if(h=await tt.search({q:o||void 0,date:i||void 0,tag:a||void 0}),s&&(h=h.filter(m=>m.user_id===s)),a){const m=a.toLowerCase();h=h.filter(x=>Ys(x.content).some(T=>T.toLowerCase()===m))}}else h=w;h=h.filter(m=>m.is_archived===0),l(U1(h))}catch(y){console.error("Ошибка загрузки заметок:",y),u("Ошибка загрузки заметок","error")}};S.useEffect(()=>{s&&d()},[s,o,i,a]),S.useImperativeHandle(n,()=>({reloadNotes:d}));const f=async y=>{try{await tt.delete(y),u("Заметка удалена","success"),d()}catch(w){console.error("Ошибка удаления заметки:",w),u("Ошибка удаления заметки","error")}},p=async y=>{try{await tt.pin(y),d()}catch(w){console.error("Ошибка закрепления заметки:",w),u("Ошибка закрепления заметки","error")}},v=async y=>{try{await tt.archive(y),u("Заметка архивирована","success"),d()}catch(w){console.error("Ошибка архивирования заметки:",w),u("Ошибка архивирования заметки","error")}};if(r.length===0){let y="Заметок пока нет. Создайте первую!";return i&&a?y=`Нет заметок за ${i} с тегом #${a}`:i?y=`Нет заметок за выбранную дату (${i})`:a?y=`Нет заметок с тегом #${a}`:o&&(y="Ничего не найдено по запросу"),c.jsx("div",{className:"notes-container",children:c.jsx("p",{className:"empty-message",children:y})})}const g=[...r].sort((y,w)=>{if(y.is_pinned!==w.is_pinned)return w.is_pinned-y.is_pinned;if(y.is_pinned&&w.is_pinned){const x=y.pinned_at?new Date(y.pinned_at).getTime():0;return(w.pinned_at?new Date(w.pinned_at).getTime():0)-x}const h=new Date(y.created_at).getTime();return new Date(w.created_at).getTime()-h});return c.jsx("div",{className:"notes-container",children:g.map(y=>c.jsx(Bj,{note:y,onDelete:f,onPin:p,onArchive:v,onReload:d,isSelected:e.includes(y.id),onSelect:t},y.id))})}),Hj=()=>{const[e,t]=S.useState(!1),[n,r]=S.useState("");S.useEffect(()=>{const i=a=>{const l=a.target;if(l.classList.contains("note-image")){const u=l.getAttribute("src")||l.getAttribute("data-src");u&&(r(u),t(!0))}};return document.addEventListener("click",i),()=>{document.removeEventListener("click",i)}},[]),S.useEffect(()=>{const i=a=>{a.key==="Escape"&&e&&t(!1)};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[e]);const s=()=>{t(!1)},o=i=>{i.target===i.currentTarget&&s()};return e?c.jsxs("div",{id:"imageModal",className:"image-modal",style:{display:"block"},onClick:o,children:[c.jsx("span",{className:"image-modal-close",onClick:s,children:"×"}),c.jsx("img",{className:"image-modal-content",id:"modalImage",src:n,alt:"Preview"})]}):null},Qj=({isOpen:e,onClose:t,selectedNotes:n,onSuccess:r})=>{const[s,o]=S.useState(""),[i,a]=S.useState(!1),[l,u]=S.useState(!1),[d,f]=S.useState(!1),p=S.useRef(!1),{showNotification:v}=Hn();S.useEffect(()=>{e&&n.length>=2?(p.current=!1,y()):(o(""),a(!1),u(!1),f(!1),p.current=!1)},[e]);const g=()=>{p.current=!0,a(!1),u(!1),o(""),f(!1),t()},y=async()=>{a(!0),o("");try{const h=n.map(x=>x.content),m=await hi.mergeNotes(h);p.current||o(m)}catch(h){if(p.current)return;console.error("Ошибка объединения заметок:",h),v("Ошибка объединения заметок","error"),g()}finally{p.current||a(!1)}},w=async()=>{if(!s.trim()){v("Нет контента для сохранения","warning");return}u(!0);try{const h=new Date,m=h.toLocaleDateString("ru-RU"),x=h.toLocaleTimeString("ru-RU",{hour:"2-digit",minute:"2-digit"});if(await tt.create({content:s,date:m,time:x}),d)try{await Promise.all(n.map(C=>tt.delete(C.id))),v(`Объединенная заметка сохранена! Удалено ${n.length} исходных заметок.`,"success")}catch(C){console.error("Ошибка удаления исходных заметок:",C),v("Объединенная заметка сохранена, но произошла ошибка при удалении исходных заметок","warning")}else v("Объединенная заметка сохранена!","success");r(),g()}catch(h){console.error("Ошибка сохранения заметки:",h),v("Ошибка сохранения заметки","error")}finally{u(!1)}};return S.useEffect(()=>{const h=m=>{m.key==="Escape"&&g()};return e&&document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[e]),e?c.jsx("div",{className:"modal",style:{display:"block"},onClick:g,children:c.jsxs("div",{className:"modal-content",style:{maxWidth:"800px",maxHeight:"80vh",overflow:"auto"},onClick:h=>h.stopPropagation(),children:[c.jsxs("div",{className:"modal-header",children:[c.jsx("h3",{children:"Объединение заметок"}),c.jsx("span",{className:"modal-close",onClick:g,children:"×"})]}),c.jsx("div",{className:"modal-body",children:i?c.jsxs("div",{style:{textAlign:"center",padding:"40px 20px"},children:[c.jsx("div",{className:"loading-spinner",style:{margin:"0 auto 20px"}}),c.jsx("p",{children:"Объединяю заметки через ИИ..."}),c.jsxs("p",{style:{fontSize:"14px",color:"#666",marginTop:"10px"},children:["Выбрано заметок: ",n.length]})]}):c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{marginBottom:"15px",color:"#666"},children:c.jsxs("p",{children:["Результат объединения ",n.length," ",(n.length===2||n.length>4,"заметок"),":"]})}),c.jsx("div",{style:{border:"1px solid var(--border-color)",borderRadius:"8px",padding:"15px",backgroundColor:"var(--bg-secondary)",maxHeight:"400px",overflow:"auto"},children:c.jsx(xf,{content:s})}),c.jsx("div",{className:"form-group ai-toggle-group",style:{marginTop:"20px",marginBottom:"10px"},children:c.jsxs("label",{className:"ai-toggle-label",children:[c.jsxs("div",{className:"toggle-label-content",children:[c.jsx("span",{className:"toggle-text-main",children:"Удалить исходные заметки"}),c.jsx("span",{className:"toggle-text-desc",children:d?"Исходные заметки будут удалены после сохранения объединенной заметки":"Исходные заметки останутся в списке после сохранения объединенной заметки"})]}),c.jsxs("div",{className:"toggle-switch-wrapper",children:[c.jsx("input",{type:"checkbox",id:"delete-original-notes-toggle",className:"toggle-checkbox",checked:d,onChange:h=>f(h.target.checked),disabled:l}),c.jsx("span",{className:"toggle-slider"})]})]})})]})}),c.jsxs("div",{className:"modal-footer",children:[c.jsx("button",{className:"btn-primary",onClick:w,disabled:i||l||!s,children:l?"Сохранение...":"Сохранить"}),c.jsx("button",{className:"btn-secondary",onClick:g,disabled:l,children:i?"Отменить":"Отмена"})]})]})}):null},Vj=()=>{const e=ie($=>$.notes.allNotes),t=ie($=>$.notes.notes),n=S.useRef(null),[r,s]=S.useState(!1),[o,i]=S.useState([]),[a,l]=S.useState(!1),[u,d]=S.useState(!1),[f,p]=S.useState(!1),v=Et(),{theme:g}=lf(),{showNotification:y}=Hn(),w=ie($=>$.notes.selectedDate),h=ie($=>$.notes.selectedTag),m=ie($=>$.notes.searchQuery),x=ie($=>$.profile.aiEnabled),C=!!(w||h||m),T=()=>{v(Nu(null)),v(Ka(null)),v(ju(""))},j=(()=>{const $=[];return m&&$.push(`Поиск: "${m}"`),w&&$.push(`Дата: ${w}`),h&&$.push(`Тег: #${h}`),$})(),_=()=>{n.current&&n.current.reloadNotes()},I=()=>{s(!r)},R=()=>{s(!1)},Y=$=>{i(D=>D.includes($)?D.filter(W=>W!==$):[...D,$])},ue=()=>{o.length<2||l(!0)},ae=()=>{i([]),n.current&&n.current.reloadNotes()},ne=()=>{o.length!==0&&d(!0)},F=async()=>{if(o.length!==0){p(!0);try{await Promise.all(o.map($=>tt.archive($))),y(`Архивировано заметок: ${o.length}`,"success"),i([]),d(!1),n.current&&n.current.reloadNotes()}catch($){console.error("Ошибка архивирования заметок:",$),y("Ошибка архивирования заметок","error")}finally{p(!1)}}},V=t.filter($=>o.includes($.id));return c.jsxs(c.Fragment,{children:[c.jsx(Dj,{isOpen:r,onClose:R}),c.jsx(Lj,{notes:e}),c.jsxs("div",{className:"center",children:[c.jsxs("div",{className:"container",children:[c.jsx(FC,{onToggleSidebar:I}),C&&c.jsxs("div",{className:"filter-indicator",children:[c.jsxs("span",{className:"filter-indicator-text",children:["Фильтр: ",j.join(", ")]})," ",c.jsx("button",{onClick:T,children:"✕"})]}),o.length>0&&c.jsxs("div",{className:"filter-indicator",children:[c.jsxs("span",{className:"filter-indicator-text",children:["Выделено заметок: ",o.length]})," ",c.jsx("button",{onClick:()=>i([]),title:"Снять выделение",children:"✕"})]}),c.jsx(zj,{onSave:_})]}),c.jsx(Wj,{ref:n,selectedNoteIds:o,onNoteSelect:Y})]}),o.length>0&&c.jsxs("div",{style:{position:"fixed",bottom:"20px",right:"20px",display:"flex",flexDirection:"column",gap:"12px",zIndex:1e3},children:[o.length>=2&&x&&c.jsx("button",{onClick:ue,style:{width:"56px",height:"56px",borderRadius:"50%",backgroundColor:g==="dark"?"#4CAF50":"#2196F3",color:"white",border:"none",cursor:"pointer",boxShadow:g==="dark"?"0 4px 12px rgba(76, 175, 80, 0.4)":"0 4px 12px rgba(33, 150, 243, 0.4)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"24px",transition:"all 0.3s ease"},onMouseEnter:$=>{$.currentTarget.style.transform="scale(1.1)",$.currentTarget.style.boxShadow=g==="dark"?"0 6px 16px rgba(76, 175, 80, 0.6)":"0 6px 16px rgba(33, 150, 243, 0.6)"},onMouseLeave:$=>{$.currentTarget.style.transform="scale(1)",$.currentTarget.style.boxShadow=g==="dark"?"0 4px 12px rgba(76, 175, 80, 0.4)":"0 4px 12px rgba(33, 150, 243, 0.4)"},title:`Объединить ${o.length} заметок`,children:c.jsx(M,{icon:"mdi:link-variant"})}),c.jsx("button",{onClick:ne,disabled:f,style:{width:"56px",height:"56px",borderRadius:"50%",backgroundColor:"#FF9800",color:"white",border:"none",cursor:f?"not-allowed":"pointer",opacity:f?.6:1,boxShadow:"0 4px 12px rgba(255, 152, 0, 0.4)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"24px",transition:"all 0.3s ease"},onMouseEnter:$=>{f||($.currentTarget.style.transform="scale(1.1)",$.currentTarget.style.boxShadow="0 6px 16px rgba(255, 152, 0, 0.6)")},onMouseLeave:$=>{$.currentTarget.style.transform="scale(1)",$.currentTarget.style.boxShadow="0 4px 12px rgba(255, 152, 0, 0.4)"},title:`Архивировать ${o.length} ${o.length===1?"заметку":o.length>4?"заметок":"заметки"}`,children:c.jsx(M,{icon:"mdi:archive"})})]}),c.jsx(Hj,{}),c.jsx(Qj,{isOpen:a,onClose:()=>l(!1),selectedNotes:V,onSuccess:ae}),c.jsx(mi,{isOpen:u,onClose:()=>d(!1),onConfirm:F,title:"Архивирование заметок",message:c.jsxs("p",{children:["Вы уверены, что хотите архивировать"," ",c.jsx("strong",{children:o.length})," ",o.length===1?"заметку":o.length>4?"заметок":"заметки","? Заметки можно будет восстановить из архива в настройках."]}),confirmText:f?"Архивирование...":"Архивировать",cancelText:"Отмена",confirmType:"primary"})]})},qj=()=>{const e=Dr(),t=Et(),{showNotification:n}=Hn();ie(F=>F.profile.user);const[r,s]=S.useState(""),[o,i]=S.useState(""),[a,l]=S.useState(null),[u,d]=S.useState(!1),[f,p]=S.useState(""),[v,g]=S.useState(""),[y,w]=S.useState(""),[h,m]=S.useState(!1),[x,C]=S.useState(""),[T,b]=S.useState(!1),j=S.useRef(null);S.useEffect(()=>{_()},[]);const _=async()=>{try{const F=await Rt.getProfile();t(Gd(F)),s(F.username||""),i(F.email||"");const V=F.accent_color||"#007bff";t(Xa(V)),pi(V),F.avatar?(l(F.avatar),d(!0)):(l(null),d(!1));try{const $=await Rt.getAiSettings();t(Yd($))}catch($){console.error("Ошибка загрузки AI настроек:",$)}}catch(F){console.error("Ошибка загрузки профиля:",F),n("Ошибка загрузки данных профиля","error")}},I=async F=>{var D,W,G;const V=(D=F.target.files)==null?void 0:D[0];if(!V)return;if(V.size>5*1024*1024){n("Файл слишком большой. Максимальный размер: 5 МБ","error");return}if(!["image/jpeg","image/jpg","image/png","image/gif"].includes(V.type)){n("Недопустимый формат файла. Используйте JPG, PNG или GIF","error");return}try{const Z=await Rt.uploadAvatar(V);l(Z.avatar+"?t="+Date.now()),d(!0),await _(),n("Аватарка успешно загружена","success")}catch(Z){console.error("Ошибка загрузки аватарки:",Z),n(((G=(W=Z.response)==null?void 0:W.data)==null?void 0:G.error)||"Ошибка загрузки аватарки","error")}j.current&&(j.current.value="")},R=async()=>{var F,V;try{await Rt.deleteAvatar(),l(null),d(!1),await _(),n("Аватарка успешно удалена","success")}catch($){console.error("Ошибка удаления аватарки:",$),n(((V=(F=$.response)==null?void 0:F.data)==null?void 0:V.error)||"Ошибка удаления аватарки","error")}},Y=async()=>{var F,V;if(!r.trim()){n("Логин не может быть пустым","error");return}if(r.length<3){n("Логин должен быть не менее 3 символов","error");return}if(o&&!ne(o)){n("Некорректный email адрес","error");return}try{await Rt.updateProfile({username:r.trim(),email:o.trim()||void 0}),await _(),n("Профиль успешно обновлен","success")}catch($){console.error("Ошибка обновления профиля:",$),n(((V=(F=$.response)==null?void 0:F.data)==null?void 0:V.error)||"Ошибка обновления профиля","error")}},ue=async()=>{var F,V;if(!f){n("Введите текущий пароль","error");return}if(!v){n("Введите новый пароль","error");return}if(v.length<6){n("Новый пароль должен быть не менее 6 символов","error");return}if(v!==y){n("Новый пароль и подтверждение не совпадают","error");return}try{await Rt.updateProfile({currentPassword:f,newPassword:v}),p(""),g(""),w(""),n("Пароль успешно изменен","success")}catch($){console.error("Ошибка изменения пароля:",$),n(((V=(F=$.response)==null?void 0:F.data)==null?void 0:V.error)||"Ошибка изменения пароля","error")}},ae=async()=>{var F,V;if(!x.trim()){n("Введите пароль","warning");return}b(!0);try{await Rt.deleteAccount(x),await O.clearAll(),n("Аккаунт успешно удален","success"),t(ui()),setTimeout(()=>{e("/")},2e3)}catch($){console.error("Ошибка удаления аккаунта:",$),n(((V=(F=$.response)==null?void 0:F.data)==null?void 0:V.error)||"Ошибка удаления аккаунта","error"),b(!1)}},ne=F=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(F);return c.jsxs("div",{className:"container",children:[c.jsxs("header",{className:"notes-header",children:[c.jsxs("span",{children:[c.jsx(M,{icon:"mdi:account"})," Личный кабинет"]}),c.jsxs("div",{className:"user-info",children:[c.jsx(ji,{}),c.jsx("button",{className:"notes-btn",onClick:()=>e("/notes"),title:"К заметкам",children:c.jsx(M,{icon:"mdi:note-text"})}),c.jsx("button",{className:"settings-btn",onClick:()=>e("/settings"),title:"Настройки",children:c.jsx(M,{icon:"mdi:cog"})}),c.jsx("button",{className:"logout-btn",title:"Выйти",onClick:async()=>{try{await os.logout()}catch(F){console.error("Ошибка выхода:",F)}finally{O.clearAll().catch(F=>{console.error("Ошибка очистки IndexedDB при выходе:",F)}),t(ui()),e("/")}},children:c.jsx(M,{icon:"mdi:logout"})})]})]}),c.jsxs("div",{className:"profile-container",children:[c.jsxs("div",{className:"avatar-section",children:[c.jsx("div",{className:"avatar-wrapper",children:u&&a?c.jsx("img",{src:a,alt:"Аватар",className:"avatar-preview",loading:"lazy"}):c.jsx("div",{className:"avatar-placeholder",children:c.jsx(M,{icon:"mdi:account"})})}),c.jsxs("div",{className:"avatar-buttons",children:[c.jsxs("label",{htmlFor:"avatarInput",className:"btn-upload",children:[c.jsx(M,{icon:"mdi:upload"})," Загрузить аватар"]}),c.jsx("input",{ref:j,type:"file",id:"avatarInput",accept:"image/*",style:{display:"none"},onChange:I}),u&&c.jsxs("button",{className:"btn-delete",onClick:R,children:[c.jsx(M,{icon:"mdi:delete"})," Удалить"]})]}),c.jsx("p",{className:"avatar-hint",children:"Максимальный размер: 5 МБ. Форматы: JPG, PNG, GIF"})]}),c.jsxs("div",{className:"profile-form",children:[c.jsx("h3",{children:"Данные профиля"}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"username",children:"Логин"}),c.jsx("input",{type:"text",id:"username",placeholder:"Логин",minLength:3,value:r,onChange:F=>s(F.target.value)})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"email",children:"Email (необязательно)"}),c.jsx("input",{type:"email",id:"email",placeholder:"example@example.com",value:o,onChange:F=>i(F.target.value)})]}),c.jsx("button",{className:"btnSave",onClick:Y,children:"Сохранить изменения"}),c.jsx("hr",{className:"separator"}),c.jsx("h3",{children:"Изменить пароль"}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"currentPassword",children:"Текущий пароль"}),c.jsx("input",{type:"password",id:"currentPassword",placeholder:"Текущий пароль",value:f,onChange:F=>p(F.target.value)})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"newPassword",children:"Новый пароль"}),c.jsx("input",{type:"password",id:"newPassword",placeholder:"Новый пароль (минимум 6 символов)",minLength:6,value:v,onChange:F=>g(F.target.value)})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"confirmPassword",children:"Подтвердите новый пароль"}),c.jsx("input",{type:"password",id:"confirmPassword",placeholder:"Подтвердите новый пароль",value:y,onChange:F=>w(F.target.value)})]}),c.jsx("button",{className:"btnSave",onClick:ue,children:"Изменить пароль"}),c.jsx("hr",{className:"separator"}),c.jsxs("button",{className:"btn-danger",onClick:()=>m(!0),children:[c.jsx(M,{icon:"mdi:account-remove"})," Удалить аккаунт"]}),c.jsx("p",{style:{color:"#666",fontSize:"14px",marginBottom:"15px"},children:"Удаление аккаунта - это необратимое действие. Все ваши заметки, изображения и данные будут удалены навсегда."})]})]}),c.jsx(mi,{isOpen:h,onClose:()=>{m(!1),C("")},onConfirm:ae,title:"Удаление аккаунта",message:c.jsxs(c.Fragment,{children:[c.jsx("p",{style:{color:"#dc3545",fontWeight:"bold",marginBottom:"15px"},children:"⚠️ ВНИМАНИЕ: Это действие нельзя отменить!"}),c.jsx("p",{style:{marginBottom:"20px"},children:"Вы действительно хотите удалить свой аккаунт? Все ваши заметки, изображения, настройки и данные будут удалены навсегда."}),c.jsxs("div",{style:{marginBottom:"15px"},children:[c.jsx("label",{htmlFor:"deleteAccountPassword",style:{display:"block",marginBottom:"5px",fontWeight:"bold"},children:"Введите пароль для подтверждения:"}),c.jsx("input",{type:"password",id:"deleteAccountPassword",placeholder:"Пароль от аккаунта",className:"modal-password-input",value:x,onChange:F=>C(F.target.value),onKeyPress:F=>{F.key==="Enter"&&!T&&ae()}})]})]}),confirmText:T?"Удаление...":"Удалить аккаунт",cancelText:"Отмена",confirmType:"danger"})]})},Gj=()=>{const e=Dr(),t=Et(),{showNotification:n}=Hn();ie(E=>E.profile.user);const r=ie(E=>E.auth.userId);ie(E=>E.ui.accentColor);const[s,o]=S.useState(()=>{const E=localStorage.getItem("settings_active_tab");return E&&["appearance","ai","archive","logs","offline"].includes(E)?E:"appearance"});S.useEffect(()=>{localStorage.setItem("settings_active_tab",s)},[s]);const[i,a]=S.useState("#007bff"),[l,u]=S.useState(!0),[d,f]=S.useState(!0),[p,v]=S.useState(!0),[g,y]=S.useState(""),[w,h]=S.useState(""),[m,x]=S.useState(""),[C,T]=S.useState(!1),[b,j]=S.useState([]),[_,I]=S.useState(!1),[R,Y]=S.useState([]),[ue,ae]=S.useState(0),[ne,F]=S.useState(!0),[V,$]=S.useState(""),[D,W]=S.useState(!1),[G,Z]=S.useState(!1),[le,ft]=S.useState(""),[Ue,Nt]=S.useState(!1),[At,an]=S.useState(!1),[$t,nt]=S.useState(!1),[Be,Qn]=S.useState(null),[$e,Kt]=S.useState(null),[Xt,Vn]=S.useState(!1),[qn,Jt]=S.useState(!1),at=50,oo=[{color:"#007bff",title:"Синий"},{color:"#28a745",title:"Зеленый"},{color:"#dc3545",title:"Красный"},{color:"#fd7e14",title:"Оранжевый"},{color:"#6f42c1",title:"Фиолетовый"},{color:"#e83e8c",title:"Розовый"}];S.useEffect(()=>{P()},[]),S.useEffect(()=>{s==="archive"?Se():s==="logs"?We(!0):s==="ai"?q():s==="offline"&&Le()},[s]);const P=async()=>{try{const E=await Rt.getProfile();t(Gd(E));const K=E.accent_color||"#007bff";a(K),t(Xa(K)),pi(K),u(E.show_edit_date!==void 0?E.show_edit_date===1:!0);const se=E.colored_icons!==void 0?E.colored_icons===1:!0;f(se),z(se);const ve=E.floating_toolbar_enabled!==void 0?E.floating_toolbar_enabled===1:!0;v(ve);try{const Fe=await Rt.getAiSettings();t(Yd(Fe))}catch(Fe){console.error("Ошибка загрузки AI настроек:",Fe)}}catch(E){console.error("Ошибка загрузки информации о пользователе:",E)}},q=async()=>{try{const E=await Rt.getAiSettings();y(E.openai_api_key||""),h(E.openai_base_url||""),x(E.openai_model||""),T(E.ai_enabled===1),localStorage.setItem("ai_enabled",E.ai_enabled?"1":"0")}catch(E){console.error("Ошибка загрузки AI настроек:",E)}},H=async()=>{var E,K;try{await Rt.updateProfile({accent_color:i,show_edit_date:l,colored_icons:d,floating_toolbar_enabled:p}),t(Xa(i)),pi(i),await P(),z(d),n("Настройки внешнего вида успешно обновлены","success")}catch(se){console.error("Ошибка обновления настроек внешнего вида:",se),n(((K=(E=se.response)==null?void 0:E.data)==null?void 0:K.error)||"Ошибка обновления","error")}},z=E=>{E?document.body.classList.add("colored-icons"):document.body.classList.remove("colored-icons")},J=async()=>{var E,K;if(!g.trim()){n("API ключ обязателен","error");return}if(!w.trim()){n("Base URL обязателен","error");return}if(!m.trim()){n("Название модели обязательно","error");return}try{await Rt.updateAiSettings({openai_api_key:g,openai_base_url:w,openai_model:m}),n("AI настройки успешно сохранены","success"),Ee()}catch(se){console.error("Ошибка сохранения AI настроек:",se),n(((K=(E=se.response)==null?void 0:E.data)==null?void 0:K.error)||"Ошибка сохранения","error")}},re=async E=>{var K,se;if(E&&!de()){n("Сначала заполните все AI настройки","warning");return}try{await Rt.updateAiSettings({ai_enabled:E?1:0}),T(E),localStorage.setItem("ai_enabled",E?"1":"0"),n(E?"Функции ИИ включены":"Функции ИИ отключены","success")}catch(ve){console.error("Ошибка сохранения настройки AI:",ve),n(((se=(K=ve.response)==null?void 0:K.data)==null?void 0:se.error)||"Ошибка сохранения","error"),T(!E)}},de=()=>g.trim()&&w.trim()&&m.trim(),Ee=()=>{de()||T(!1)},Se=async()=>{I(!0);try{const E=await gs.getArchived();j(E)}catch(E){console.error("Ошибка загрузки архивных заметок:",E),n("Ошибка загрузки архивных заметок","error")}finally{I(!1)}},Oe=async E=>{var K,se;try{await gs.unarchive(Number(E)),await Se(),n("Заметка восстановлена!","success")}catch(ve){console.error("Ошибка восстановления заметки:",ve),n(((se=(K=ve.response)==null?void 0:K.data)==null?void 0:se.error)||"Ошибка восстановления","error")}},ge=async E=>{var K,se;try{await gs.deleteArchived(Number(E)),await Se(),n("Заметка удалена окончательно","success")}catch(ve){console.error("Ошибка удаления заметки:",ve),n(((se=(K=ve.response)==null?void 0:K.data)==null?void 0:se.error)||"Ошибка удаления","error")}},Je=async()=>{var E,K;if(!le.trim()){n("Введите пароль","warning");return}Nt(!0);try{await gs.deleteAllArchived(le),n("Все архивные заметки удалены","success"),Z(!1),ft(""),await Se()}catch(se){console.error("Ошибка:",se),n(((K=(E=se.response)==null?void 0:E.data)==null?void 0:K.error)||"Ошибка удаления","error")}finally{Nt(!1)}},We=S.useCallback(async(E=!1)=>{W(!0);try{const K=E?0:ue,se=await Mj.getLogs({action_type:V||void 0,limit:at,offset:K});E?(Y(se),ae(se.length)):(Y(ve=>[...ve,...se]),ae(ve=>ve+se.length)),F(se.length===at)}catch(K){console.error("Ошибка загрузки логов:",K),n("Ошибка загрузки логов","error")}finally{W(!1)}},[V,at,n,ue]),rt=E=>{$(E),ae(0),F(!0)};S.useEffect(()=>{s==="logs"&&We(!0)},[V,s,We]);const Ne=E=>({login:"Вход",logout:"Выход",register:"Регистрация",note_create:"Создание заметки",note_update:"Редактирование",note_delete:"Удаление",note_pin:"Закрепление",note_archive:"Архивирование",note_unarchive:"Восстановление",note_delete_permanent:"Окончательное удаление",profile_update:"Обновление профиля",ai_improve:"Улучшение через AI"})[E]||E,Te=async()=>{nt(!0);try{await O.clearAllNotes(),await O.clearSyncQueue(),n("Локальный кэш IndexedDB успешно очищен","success"),an(!1),await Le()}catch(E){console.error("Ошибка очистки IndexedDB:",E),n("Ошибка очистки IndexedDB","error")}finally{nt(!1)}},Le=async()=>{Vn(!0);try{try{const E=await gs.getDataVersion();Qn(E)}catch(E){console.error("Ошибка загрузки версии с сервера:",E),Qn(null)}try{const E=r?await O.getDataVersionByUserId(r):await O.getDataVersion();Kt(E)}catch(E){console.error("Ошибка загрузки версии из IndexedDB:",E),Kt(null)}}catch(E){console.error("Ошибка загрузки версий данных:",E)}finally{Vn(!1)}},He=async()=>{if(!navigator.onLine){n("Нет подключения к интернету","error");return}Jt(!0);try{n("Начинаем принудительную синхронизацию...","info"),await el.startSync(),console.log("[ForceSync] Loading all notes from server..."),await tt.getAll(),await Le(),n("Синхронизация завершена успешно","success")}catch(E){console.error("Ошибка принудительной синхронизации:",E),n("Ошибка при синхронизации","error")}finally{Jt(!1)}},Ie=E=>{if(!E)return"Нет данных";try{const K=new Date(E.replace(" ","T")+"Z");return new Intl.DateTimeFormat("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(K)}catch{return E}},Qe=()=>{if(!Be||!$e)return{status:"Неизвестно",color:"#999"};if(Be.total_notes!==$e.total_notes)return{status:"Не синхронизировано",color:"#dc3545"};const E=Be.last_updated_at?new Date(Be.last_updated_at.replace(" ","T")+"Z").getTime():0,K=$e.last_updated_at?new Date($e.last_updated_at.replace(" ","T")+"Z").getTime():0;return E===0&&K===0?{status:"Нет данных",color:"#999"}:Math.abs(E-K)<12e4?{status:"Синхронизировано",color:"#28a745"}:{status:"Не синхронизировано",color:"#dc3545"}};return c.jsxs("div",{className:"container",children:[c.jsxs("header",{className:"notes-header",children:[c.jsxs("span",{children:[c.jsx(M,{icon:"mdi:cog"})," Настройки"]}),c.jsxs("div",{className:"user-info",children:[c.jsx(ji,{}),c.jsx("button",{className:"notes-btn",onClick:()=>e("/notes"),title:"К заметкам",children:c.jsx(M,{icon:"mdi:note-text"})}),c.jsx("button",{className:"profile-btn",onClick:()=>e("/profile"),title:"Профиль",children:c.jsx(M,{icon:"mdi:account"})}),c.jsx("button",{className:"logout-btn",title:"Выйти",onClick:async()=>{try{await os.logout()}catch(E){console.error("Ошибка выхода:",E)}finally{O.clearAll().catch(E=>{console.error("Ошибка очистки IndexedDB при выходе:",E)}),t(ui()),e("/")}},children:c.jsx(M,{icon:"mdi:logout"})})]})]}),c.jsxs("div",{className:"settings-tabs",children:[c.jsxs("button",{className:`settings-tab ${s==="appearance"?"active":""}`,onClick:()=>o("appearance"),children:[c.jsx(M,{icon:"mdi:palette"})," Внешний вид"]}),c.jsxs("button",{className:`settings-tab ${s==="ai"?"active":""}`,onClick:()=>o("ai"),children:[c.jsx(M,{icon:"mdi:robot"})," AI настройки"]}),c.jsxs("button",{className:`settings-tab ${s==="archive"?"active":""}`,onClick:()=>o("archive"),children:[c.jsx(M,{icon:"mdi:archive"})," Архив заметок"]}),c.jsxs("button",{className:`settings-tab ${s==="logs"?"active":""}`,onClick:()=>o("logs"),children:[c.jsx(M,{icon:"mdi:history"})," История действий"]}),c.jsxs("button",{className:`settings-tab ${s==="offline"?"active":""}`,onClick:()=>o("offline"),children:[c.jsx(M,{icon:"mdi:database-off"})," Оффлайн режим"]})]}),c.jsxs("div",{className:"settings-content",children:[s==="appearance"&&c.jsxs("div",{className:"tab-content active",children:[c.jsx("h3",{children:"Внешний вид"}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"settings-accentColor",children:"Цветовой акцент"}),c.jsx("div",{className:"accent-color-picker",children:oo.map(E=>c.jsx("div",{className:`color-option ${i===E.color?"selected":""}`,"data-color":E.color,style:{backgroundColor:E.color},title:E.title,onClick:()=>a(E.color)},E.color))})]}),c.jsx("div",{className:"form-group ai-toggle-group",children:c.jsxs("label",{className:"ai-toggle-label",children:[c.jsxs("div",{className:"toggle-label-content",children:[c.jsx("span",{className:"toggle-text-main",children:"Показывать дату редактирования"}),c.jsx("span",{className:"toggle-text-desc",children:l?"Отображать дату последнего редактирования заметки рядом с датой создания":"Показывать только иконку карандаша без даты редактирования"})]}),c.jsxs("div",{className:"toggle-switch-wrapper",children:[c.jsx("input",{type:"checkbox",id:"show-edit-date-toggle",className:"toggle-checkbox",checked:l,onChange:E=>u(E.target.checked)}),c.jsx("span",{className:"toggle-slider"})]})]})}),c.jsx("div",{className:"form-group ai-toggle-group",children:c.jsxs("label",{className:"ai-toggle-label",children:[c.jsxs("div",{className:"toggle-label-content",children:[c.jsx("span",{className:"toggle-text-main",children:"Цветные иконки"}),c.jsx("span",{className:"toggle-text-desc",children:d?"Иконки отображаются разными цветами для лучшей визуальной дифференциации":"Все иконки отображаются в монохромном стиле"})]}),c.jsxs("div",{className:"toggle-switch-wrapper",children:[c.jsx("input",{type:"checkbox",id:"colored-icons-toggle",className:"toggle-checkbox",checked:d,onChange:E=>{f(E.target.checked),z(E.target.checked)}}),c.jsx("span",{className:"toggle-slider"})]})]})}),c.jsx("div",{className:"form-group ai-toggle-group",children:c.jsxs("label",{className:"ai-toggle-label",children:[c.jsxs("div",{className:"toggle-label-content",children:[c.jsx("span",{className:"toggle-text-main",children:"Плавающая панель редактирования"}),c.jsx("span",{className:"toggle-text-desc",children:p?"Показывать плавающую панель инструментов при выделении текста в редакторе":"Скрывать плавающую панель инструментов при выделении текста"})]}),c.jsxs("div",{className:"toggle-switch-wrapper",children:[c.jsx("input",{type:"checkbox",id:"floating-toolbar-toggle",className:"toggle-checkbox",checked:p,onChange:E=>v(E.target.checked)}),c.jsx("span",{className:"toggle-slider"})]})]})}),c.jsx("button",{className:"btnSave",onClick:H,children:"Сохранить изменения"})]}),s==="ai"&&c.jsxs("div",{className:"tab-content active",children:[c.jsx("h3",{children:"Настройки AI"}),c.jsx("div",{className:"form-group ai-toggle-group",children:c.jsxs("label",{className:`ai-toggle-label ${de()?"":"disabled"}`,children:[c.jsxs("div",{className:"toggle-label-content",children:[c.jsx("span",{className:"toggle-text-main",children:"Включить функции ИИ"}),c.jsx("span",{className:"toggle-text-desc",children:de()?c.jsxs("ul",{style:{margin:"8px 0 0 20px",padding:0},children:[c.jsx("li",{children:"Улучшение текста заметок"}),c.jsx("li",{children:"Объединение заметок"})]}):"Сначала заполните API Key, Base URL и Модель ниже"})]}),c.jsxs("div",{className:"toggle-switch-wrapper",children:[c.jsx("input",{type:"checkbox",id:"ai-enabled-toggle",className:"toggle-checkbox",checked:C,disabled:!de(),onChange:E=>re(E.target.checked)}),c.jsx("span",{className:"toggle-slider"})]})]})}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"openai-api-key",children:"OpenAI API Key"}),c.jsx("input",{type:"password",id:"openai-api-key",placeholder:"sk-...",className:"form-input",value:g,onChange:E=>{y(E.target.value),Ee()}}),c.jsx("p",{style:{color:"#666",fontSize:"12px",marginTop:"5px"},children:"Введите ваш OpenAI API ключ"})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"openai-base-url",children:"OpenAI Base URL"}),c.jsx("input",{type:"text",id:"openai-base-url",placeholder:"https://api.openai.com/v1",className:"form-input",value:w,onChange:E=>{h(E.target.value),Ee()}}),c.jsx("p",{style:{color:"#666",fontSize:"12px",marginTop:"5px"},children:"URL для API запросов (например, https://api.openai.com/v1)"})]}),c.jsxs("div",{className:"form-group",children:[c.jsx("label",{htmlFor:"openai-model",children:"Модель"}),c.jsx("input",{type:"text",id:"openai-model",placeholder:"gpt-3.5-turbo",className:"form-input",value:m,onChange:E=>{x(E.target.value),Ee()}}),c.jsxs("p",{style:{color:"#666",fontSize:"12px",marginTop:"5px"},children:["Название модели (например, gpt-4, deepseek/deepseek-chat).",c.jsxs("a",{href:"https://openrouter.ai/models",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent-color)"},children:[" ","Список доступных моделей"]})]})]}),c.jsx("button",{className:"btnSave",onClick:J,children:"Сохранить AI настройки"})]}),s==="archive"&&c.jsxs("div",{className:"tab-content active",children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"10px"},children:[c.jsx("h3",{children:"Архивные заметки"}),c.jsxs("button",{className:"btn-danger",style:{fontSize:"14px",padding:"8px 16px"},onClick:()=>Z(!0),children:[c.jsx(M,{icon:"mdi:delete-sweep"})," Удалить все"]})]}),c.jsx("p",{style:{color:"#666",fontSize:"14px",marginBottom:"20px"},children:"Архивированные заметки можно восстановить или удалить окончательно"}),c.jsx("div",{className:"archived-notes-list",children:_?c.jsx("p",{style:{textAlign:"center",color:"#999"},children:"Загрузка..."}):b.length===0?c.jsx("p",{style:{textAlign:"center",color:"#999"},children:"Архив пуст"}):b.map(E=>{const K=new Date(E.created_at.replace(" ","T")+"Z"),se=new Intl.DateTimeFormat("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}).format(K),ve=wf(E.content),Fe=ve.substring(0,200)+(ve.length>200?"...":"");return c.jsxs("div",{className:"archived-note-item",children:[c.jsxs("div",{className:"archived-note-header",children:[c.jsx("span",{className:"archived-note-date",children:se}),c.jsxs("div",{className:"archived-note-actions",children:[c.jsxs("button",{className:"btn-restore",onClick:()=>Oe(Number(E.id)),title:"Восстановить",children:[c.jsx(M,{icon:"mdi:restore"})," Восстановить"]}),c.jsxs("button",{className:"btn-delete-permanent",onClick:()=>ge(Number(E.id)),title:"Удалить навсегда",children:[c.jsx(M,{icon:"mdi:delete-forever"})," Удалить"]})]})]}),c.jsx("div",{className:"archived-note-content",dangerouslySetInnerHTML:{__html:Fe}}),E.images&&E.images.length>0&&c.jsxs("div",{className:"archived-note-images",children:[E.images.length," изображений"]})]},E.id)})})]}),s==="logs"&&c.jsxs("div",{className:"tab-content active",children:[c.jsx("h3",{children:"История действий"}),c.jsxs("div",{className:"logs-filters",children:[c.jsxs("select",{id:"logTypeFilter",className:"log-filter-select",value:V,onChange:E=>rt(E.target.value),children:[c.jsx("option",{value:"",children:"Все действия"}),c.jsx("option",{value:"login",children:"Вход"}),c.jsx("option",{value:"logout",children:"Выход"}),c.jsx("option",{value:"register",children:"Регистрация"}),c.jsx("option",{value:"note_create",children:"Создание заметки"}),c.jsx("option",{value:"note_update",children:"Редактирование заметки"}),c.jsx("option",{value:"note_delete",children:"Удаление заметки"}),c.jsx("option",{value:"note_pin",children:"Закрепление"}),c.jsx("option",{value:"note_archive",children:"Архивирование"}),c.jsx("option",{value:"note_unarchive",children:"Восстановление"}),c.jsx("option",{value:"note_delete_permanent",children:"Окончательное удаление"}),c.jsx("option",{value:"profile_update",children:"Обновление профиля"}),c.jsx("option",{value:"ai_improve",children:"Улучшение через AI"})]}),c.jsxs("button",{className:"btnSave",onClick:()=>We(!0),children:[c.jsx(M,{icon:"mdi:refresh"})," Обновить"]})]}),c.jsx("div",{className:"logs-table-container",children:c.jsxs("table",{className:"logs-table",children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Дата и время"}),c.jsx("th",{children:"Действие"}),c.jsx("th",{children:"Детали"})]})}),c.jsx("tbody",{children:D&&R.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:3,style:{textAlign:"center"},children:"Загрузка..."})}):R.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:3,style:{textAlign:"center",color:"#999"},children:"Логов пока нет"})}):R.map(E=>{const K=new Date(E.created_at.replace(" ","T")+"Z"),se=new Intl.DateTimeFormat("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(K);return c.jsxs("tr",{children:[c.jsx("td",{children:se}),c.jsx("td",{children:c.jsx("span",{className:`log-action-badge log-action-${E.action_type}`,children:Ne(E.action_type)})}),c.jsx("td",{children:E.details||"-"})]},E.id)})})]})}),ne&&R.length>0&&c.jsx("div",{className:"load-more-container",children:c.jsx("button",{className:"btnSave",onClick:()=>We(!1),children:"Загрузить еще"})})]}),s==="offline"&&c.jsxs("div",{className:"tab-content active",children:[c.jsx("h3",{children:"Оффлайн режим"}),c.jsxs("div",{style:{backgroundColor:"var(--card-bg)",border:"1px solid var(--border-color)",borderRadius:"8px",padding:"20px",marginBottom:"20px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"15px"},children:[c.jsxs("h4",{style:{margin:0,fontSize:"16px",fontWeight:"600"},children:[c.jsx(M,{icon:"mdi:database-sync",style:{marginRight:"8px",verticalAlign:"middle"}}),"Версии данных"]}),c.jsx("button",{onClick:Le,disabled:Xt,style:{padding:"6px 12px",fontSize:"12px",border:"1px solid var(--border-color)",borderRadius:"4px",backgroundColor:"transparent",cursor:Xt?"not-allowed":"pointer",opacity:Xt?.6:1},title:"Обновить",children:c.jsx(M,{icon:Xt?"mdi:loading":"mdi:refresh"})})]}),Xt?c.jsx("p",{style:{textAlign:"center",color:"#999",margin:"20px 0"},children:"Загрузка..."}):c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{marginBottom:"15px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"5px"},children:[c.jsxs("span",{style:{fontWeight:"600",color:"var(--text-color)"},children:[c.jsx(M,{icon:"mdi:server",style:{marginRight:"6px",verticalAlign:"middle"}}),"Сервер:"]}),c.jsxs("span",{style:{fontSize:"12px",color:"#666"},children:[(Be==null?void 0:Be.total_notes)||0," заметок"]})]}),c.jsxs("div",{style:{fontSize:"13px",color:"#666",marginLeft:"24px"},children:[c.jsxs("div",{children:["Обновлено:"," ",Ie((Be==null?void 0:Be.last_updated_at)||null)]}),c.jsxs("div",{children:["Создано:"," ",Ie((Be==null?void 0:Be.last_created_at)||null)]})]})]}),c.jsxs("div",{style:{marginBottom:"15px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"5px"},children:[c.jsxs("span",{style:{fontWeight:"600",color:"var(--text-color)"},children:[c.jsx(M,{icon:"mdi:database",style:{marginRight:"6px",verticalAlign:"middle"}}),"IndexedDB (локально):"]}),c.jsxs("span",{style:{fontSize:"12px",color:"#666"},children:[($e==null?void 0:$e.total_notes)||0," заметок"]})]}),c.jsxs("div",{style:{fontSize:"13px",color:"#666",marginLeft:"24px"},children:[c.jsxs("div",{children:["Обновлено:"," ",Ie(($e==null?void 0:$e.last_updated_at)||null)]}),c.jsxs("div",{children:["Создано:"," ",Ie(($e==null?void 0:$e.last_created_at)||null)]})]})]}),c.jsx("div",{style:{padding:"10px",backgroundColor:"var(--bg-color)",borderRadius:"6px",border:"1px solid var(--border-color)",marginTop:"15px"},children:c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[c.jsx("span",{style:{fontWeight:"600",fontSize:"14px"},children:"Статус синхронизации:"}),c.jsx("span",{style:{color:Qe().color,fontWeight:"600",fontSize:"13px"},children:Qe().status})]})}),c.jsxs("div",{style:{marginTop:"15px",paddingTop:"15px",borderTop:"1px solid var(--border-color)"},children:[c.jsxs("button",{onClick:He,disabled:qn,style:{width:"100%",padding:"10px",fontSize:"14px",fontWeight:"600",border:"1px solid var(--border-color)",borderRadius:"6px",backgroundColor:"var(--accent-color)",color:"#fff",cursor:qn?"not-allowed":"pointer",opacity:qn?.6:1,display:"flex",alignItems:"center",justifyContent:"center",gap:"8px"},children:[c.jsx(M,{icon:qn?"mdi:loading":"mdi:sync",style:{fontSize:"18px"}}),qn?"Синхронизация...":"Принудительная синхронизация"]}),c.jsx("p",{style:{color:"#666",fontSize:"12px",marginTop:"8px",textAlign:"center"},children:"Запустить немедленную синхронизацию данных с сервером"})]})]})]}),c.jsx("p",{style:{color:"#666",fontSize:"14px",marginBottom:"20px"},children:"Очистка локального кэша IndexedDB. Это удалит все заметки, сохраненные в браузере для оффлайн-режима. Данные на сервере не будут затронуты."}),c.jsxs("button",{className:"btn-danger",onClick:()=>an(!0),style:{fontSize:"14px",padding:"10px 20px"},children:[c.jsx(M,{icon:"mdi:database-remove"})," Очистить локальный кэш (IndexedDB)"]})]})]}),c.jsx(mi,{isOpen:G,onClose:()=>{Z(!1),ft("")},onConfirm:Je,title:"Подтверждение удаления",message:c.jsxs(c.Fragment,{children:[c.jsx("p",{style:{color:"#dc3545",fontWeight:"bold",marginBottom:"15px"},children:"⚠️ ВНИМАНИЕ: Это действие нельзя отменить!"}),c.jsx("p",{style:{marginBottom:"20px"},children:"Вы действительно хотите удалить ВСЕ архивные заметки? Все заметки и их изображения будут удалены навсегда."}),c.jsxs("div",{style:{marginBottom:"15px"},children:[c.jsx("label",{htmlFor:"deleteAllPassword",style:{display:"block",marginBottom:"5px",fontWeight:"bold"},children:"Введите пароль для подтверждения:"}),c.jsx("input",{type:"password",id:"deleteAllPassword",placeholder:"Пароль от аккаунта",className:"modal-password-input",value:le,onChange:E=>ft(E.target.value),onKeyPress:E=>{E.key==="Enter"&&!Ue&&Je()}})]})]}),confirmText:Ue?"Удаление...":"Удалить все",cancelText:"Отмена",confirmType:"danger"}),c.jsx(mi,{isOpen:At,onClose:()=>{an(!1)},onConfirm:Te,title:"Подтверждение очистки IndexedDB",message:c.jsxs(c.Fragment,{children:[c.jsx("p",{style:{color:"#dc3545",fontWeight:"bold",marginBottom:"15px"},children:"⚠️ ВНИМАНИЕ: Это действие нельзя отменить!"}),c.jsxs("p",{style:{marginBottom:"20px"},children:["Вы действительно хотите очистить локальный кэш IndexedDB? Все заметки, сохраненные в браузере для оффлайн-режима, будут удалены.",c.jsx("br",{}),c.jsx("br",{}),c.jsx("strong",{children:"Данные на сервере не будут затронуты."})," После очистки данные будут автоматически загружены с сервера при следующем подключении к интернету."]})]}),confirmText:$t?"Очистка...":"Очистить",cancelText:"Отмена",confirmType:"danger"})]})},Yj=()=>{const e=ie(n=>n.ui.notifications),t=Et();return c.jsx("div",{className:"notification-stack",children:e.map((n,r)=>c.jsx(Kj,{notification:n,index:r,onRemove:()=>t(Iy(n.id))},n.id))})},Kj=({notification:e,index:t,onRemove:n})=>{const[r,s]=S.useState(!1);S.useEffect(()=>{setTimeout(()=>s(!0),100)},[]),S.useEffect(()=>{const i=setTimeout(()=>{o()},4e3);return()=>clearTimeout(i)},[]);const o=()=>{s(!1),setTimeout(n,300)};return c.jsx("div",{className:`notification notification-${e.type} ${r?"visible":""}`,style:{top:`${20+t*70}px`},onClick:o,children:e.message})},Xj=()=>{const[e,t]=S.useState(null),[n,r]=S.useState(!1);S.useEffect(()=>{const i=a=>{if(a.preventDefault(),window.matchMedia("(display-mode: standalone)").matches)return;const l=localStorage.getItem("pwa-install-dismissed");if(l){const u=new Date(l).getTime(),d=new Date().getTime(),f=7*24*60*60*1e3;if(d-ur(!0),2e3)};return window.addEventListener("beforeinstallprompt",i),()=>{window.removeEventListener("beforeinstallprompt",i)}},[]);const s=async()=>{if(!e)return;e.prompt();const{outcome:i}=await e.userChoice;if(i==="accepted"){console.log("Пользователь принял предложение об установке");const a=new Date().toISOString();localStorage.setItem("pwa-install-dismissed",a)}else console.log("Пользователь отклонил предложение об установке");t(null),r(!1)},o=()=>{r(!1);const i=new Date().toISOString();localStorage.setItem("pwa-install-dismissed",i)};return!n||!e?null:c.jsxs("div",{style:{position:"fixed",bottom:"20px",left:"50%",transform:"translateX(-50%)",backgroundColor:"var(--bg-primary)",border:"1px solid var(--border-primary)",borderRadius:"12px",padding:"16px 20px",boxShadow:"0 4px 20px var(--shadow-light)",zIndex:1e3,maxWidth:"90%",width:"400px",display:"flex",alignItems:"center",gap:"12px"},children:[c.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"4px"},children:[c.jsx("div",{style:{fontWeight:600,fontSize:"14px",color:"var(--text-primary)"},children:"Установить NoteJS?"}),c.jsx("div",{style:{fontSize:"12px",color:"var(--text-primary)",opacity:.7},children:"Установите приложение для быстрого доступа"})]}),c.jsxs("div",{style:{display:"flex",gap:"8px"},children:[c.jsxs("button",{onClick:s,style:{padding:"8px 16px",backgroundColor:"var(--accent-color)",color:"white",border:"none",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,display:"flex",alignItems:"center",gap:"6px"},children:[c.jsx(M,{icon:"mdi:download",width:"18",height:"18"}),"Установить"]}),c.jsx("button",{onClick:o,style:{padding:"8px",backgroundColor:"transparent",color:"var(--text-primary)",border:"none",borderRadius:"8px",cursor:"pointer",display:"flex",alignItems:"center",opacity:.6},"aria-label":"Закрыть",children:c.jsx(M,{icon:"mdi:close",width:"20",height:"20"})})]})]})},Jj=()=>c.jsx("div",{className:"loading-overlay",children:c.jsx("div",{className:"loading-content",children:c.jsx("div",{className:"loading-spinner"})})}),kc=({children:e})=>{const t=ie(i=>i.auth.isAuthenticated),n=ie(i=>i.auth.userId),r=Et(),[s,o]=S.useState(!0);return S.useEffect(()=>{(async()=>{try{const a=await os.checkStatus();if(a.authenticated){const l=a.userId;n&&n!==l&&(console.log(`[ProtectedRoute] User changed from ${n} to ${l}, clearing IndexedDB`),await O.clearAll()),r(Vd({userId:l,username:a.username}))}else r(ui())}catch{r(ui())}finally{o(!1)}})()},[r,n]),s?c.jsx(Jj,{}):t?c.jsx(c.Fragment,{children:e}):c.jsx(dy,{to:"/",replace:!0})},Zj=()=>(lf(),c.jsxs(c.Fragment,{children:[c.jsx(Yj,{}),c.jsx(Xj,{}),c.jsx(CS,{children:c.jsxs(gS,{children:[c.jsx(Ur,{path:"/",element:c.jsx(OC,{})}),c.jsx(Ur,{path:"/register",element:c.jsx(LC,{})}),c.jsx(Ur,{path:"/notes",element:c.jsx(kc,{children:c.jsx(Vj,{})})}),c.jsx(Ur,{path:"/profile",element:c.jsx(kc,{children:c.jsx(qj,{})})}),c.jsx(Ur,{path:"/settings",element:c.jsx(kc,{children:c.jsx(Gj,{})})}),c.jsx(Ur,{path:"*",element:c.jsx(dy,{to:"/",replace:!0})})]})})]})),eT=()=>c.jsx(GS,{store:te,children:c.jsx(Zj,{})});async function tT(){try{console.log("[Init] Initializing offline mode..."),await O.init(),console.log("[Init] IndexedDB initialized");let e=navigator.onLine;if(!navigator.onLine)e=!1;else try{e=await Fu()}catch(n){console.warn("[Init] Network status check failed, assuming offline:",n),e=!1}navigator.onLine||(e=!1),te.dispatch(As(!e)),console.log(`[Init] Network status: ${e?"online":"offline"}`),Nh.onOnline(async()=>{console.log("[Network] Online event detected");const n=await Fu();te.dispatch(As(!n)),n&&(te.dispatch($s({message:"Подключение восстановлено, начинаем синхронизацию...",type:"info"})),await el.startSync())}),Nh.onOffline(()=>{console.log("[Network] Offline event detected"),te.dispatch(As(!0)),te.dispatch($s({message:"Работаем в offline режиме",type:"warning"}))});const t=await O.getPendingSyncCount();te.dispatch(qd(t)),t>0&&console.log(`[Init] Found ${t} pending sync items`),e&&t>0&&(console.log("[Init] Starting initial sync..."),setTimeout(()=>{el.startSync()},2e3)),console.log("[Init] Offline mode initialized successfully")}catch(e){console.error("[Init] Error initializing offline mode:",e)}}tT();bc.createRoot(document.getElementById("root")).render(c.jsx(Pn.StrictMode,{children:c.jsx(eT,{})}));