From ffcd7d21b34d8cad786ad7947d80611faa453c2f Mon Sep 17 00:00:00 2001 From: Alex Newman Date: Sun, 30 Nov 2025 17:06:01 -0500 Subject: [PATCH] Restore Community Button and Responsive Mobile Navigation (#152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Restore community button and responsive mobile navigation Restores the Discord community button and responsive layout features from commit f117051: - Community button in header with Discord icon and link - Responsive breakpoints: community button moves to sidebar at 600px - Projects dropdown moves to sidebar at 480px - Sidebar proper width constraints (100% width, 400px max-width) - Icon links use CSS classes instead of inline styles - Full-height layout styling for proper flex behavior This brings back the mobile-first navigation reorganization that creates a Discord-like mobile experience where the sidebar becomes the primary navigation container on smaller screens. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * fix: Pass projects props to Sidebar component The Sidebar component was trying to map over projects array but App.tsx wasn't passing the projects, currentFilter, and onFilterChange props to the Sidebar component. This caused a TypeError when the sidebar tried to render the project filter dropdown. Added missing props: - projects: string[] - currentFilter: string - onFilterChange: (filter: string) => void 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * chore: Update UI build artifacts Update compiled viewer bundle and templates after fixing Sidebar props. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --------- Co-authored-by: Claude --- plugin/ui/viewer-bundle.js | 12 +- plugin/ui/viewer.html | 442 +++++++++++++++++++++++++-- src/ui/viewer-template.html | 442 +++++++++++++++++++++++++-- src/ui/viewer/App.tsx | 52 ++-- src/ui/viewer/components/Header.tsx | 42 +-- src/ui/viewer/components/Sidebar.tsx | 236 ++++---------- 6 files changed, 956 insertions(+), 270 deletions(-) diff --git a/plugin/ui/viewer-bundle.js b/plugin/ui/viewer-bundle.js index 446c6666..9898f65e 100644 --- a/plugin/ui/viewer-bundle.js +++ b/plugin/ui/viewer-bundle.js @@ -1,13 +1,13 @@ -"use strict";(()=>{var Cd=Object.create;var Eu=Object.defineProperty;var Nd=Object.getOwnPropertyDescriptor;var Td=Object.getOwnPropertyNames;var Pd=Object.getPrototypeOf,Ld=Object.prototype.hasOwnProperty;var It=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Md=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Td(t))!Ld.call(e,l)&&l!==n&&Eu(e,l,{get:()=>t[l],enumerable:!(r=Nd(t,l))||r.enumerable});return e};var ne=(e,t,n)=>(n=e!=null?Cd(Pd(e)):{},Md(t||!e||!e.__esModule?Eu(n,"default",{value:e,enumerable:!0}):n,e));var Iu=It(P=>{"use strict";var Dn=Symbol.for("react.element"),Od=Symbol.for("react.portal"),zd=Symbol.for("react.fragment"),Dd=Symbol.for("react.strict_mode"),Id=Symbol.for("react.profiler"),Ad=Symbol.for("react.provider"),Ud=Symbol.for("react.context"),jd=Symbol.for("react.forward_ref"),Fd=Symbol.for("react.suspense"),Bd=Symbol.for("react.memo"),Vd=Symbol.for("react.lazy"),xu=Symbol.iterator;function Hd(e){return e===null||typeof e!="object"?null:(e=xu&&e[xu]||e["@@iterator"],typeof e=="function"?e:null)}var Nu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Tu=Object.assign,Pu={};function Zt(e,t,n){this.props=e,this.context=t,this.refs=Pu,this.updater=n||Nu}Zt.prototype.isReactComponent={};Zt.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")};Zt.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Lu(){}Lu.prototype=Zt.prototype;function eo(e,t,n){this.props=e,this.context=t,this.refs=Pu,this.updater=n||Nu}var to=eo.prototype=new Lu;to.constructor=eo;Tu(to,Zt.prototype);to.isPureReactComponent=!0;var _u=Array.isArray,Mu=Object.prototype.hasOwnProperty,no={current:null},Ou={key:!0,ref:!0,__self:!0,__source:!0};function zu(e,t,n){var r,l={},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)Mu.call(t,r)&&!Ou.hasOwnProperty(r)&&(l[r]=t[r]);var u=arguments.length-2;if(u===1)l.children=n;else if(1{"use strict";Au.exports=Iu()});var Ru=It(I=>{"use strict";function uo(e,t){var n=e.length;e.push(t);e:for(;0>>1,l=e[r];if(0>>1;rOr(u,n))sOr(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[i]=n,r=i);else if(sOr(c,n))e[r]=c,e[s]=n,r=s;else break e}}return t}function Or(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(Uu=performance,I.unstable_now=function(){return Uu.now()}):(lo=Date,ju=lo.now(),I.unstable_now=function(){return lo.now()-ju});var Uu,lo,ju,Ge=[],dt=[],Kd=1,Le=null,ue=3,Ir=!1,At=!1,An=!1,Vu=typeof setTimeout=="function"?setTimeout:null,Hu=typeof clearTimeout=="function"?clearTimeout:null,Fu=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function so(e){for(var t=je(dt);t!==null;){if(t.callback===null)Dr(dt);else if(t.startTime<=e)Dr(dt),t.sortIndex=t.expirationTime,uo(Ge,t);else break;t=je(dt)}}function ao(e){if(An=!1,so(e),!At)if(je(Ge)!==null)At=!0,fo(co);else{var t=je(dt);t!==null&&po(ao,t.startTime-e)}}function co(e,t){At=!1,An&&(An=!1,Hu(Un),Un=-1),Ir=!0;var n=ue;try{for(so(t),Le=je(Ge);Le!==null&&(!(Le.expirationTime>t)||e&&!Qu());){var r=Le.callback;if(typeof r=="function"){Le.callback=null,ue=Le.priorityLevel;var l=r(Le.expirationTime<=t);t=I.unstable_now(),typeof l=="function"?Le.callback=l:Le===je(Ge)&&Dr(Ge),so(t)}else Dr(Ge);Le=je(Ge)}if(Le!==null)var o=!0;else{var i=je(dt);i!==null&&po(ao,i.startTime-t),o=!1}return o}finally{Le=null,ue=n,Ir=!1}}var Ar=!1,zr=null,Un=-1,$u=5,Wu=-1;function Qu(){return!(I.unstable_now()-Wu<$u)}function oo(){if(zr!==null){var e=I.unstable_now();Wu=e;var t=!0;try{t=zr(!0,e)}finally{t?In():(Ar=!1,zr=null)}}else Ar=!1}var In;typeof Fu=="function"?In=function(){Fu(oo)}:typeof MessageChannel<"u"?(io=new MessageChannel,Bu=io.port2,io.port1.onmessage=oo,In=function(){Bu.postMessage(null)}):In=function(){Vu(oo,0)};var io,Bu;function fo(e){zr=e,Ar||(Ar=!0,In())}function po(e,t){Un=Vu(function(){e(I.unstable_now())},t)}I.unstable_IdlePriority=5;I.unstable_ImmediatePriority=1;I.unstable_LowPriority=4;I.unstable_NormalPriority=3;I.unstable_Profiling=null;I.unstable_UserBlockingPriority=2;I.unstable_cancelCallback=function(e){e.callback=null};I.unstable_continueExecution=function(){At||Ir||(At=!0,fo(co))};I.unstable_forceFrameRate=function(e){0>e||125r?(e.sortIndex=n,uo(dt,e),je(Ge)===null&&e===je(dt)&&(An?(Hu(Un),Un=-1):An=!0,po(ao,n-r))):(e.sortIndex=l,uo(Ge,e),At||Ir||(At=!0,fo(co))),e};I.unstable_shouldYield=Qu;I.unstable_wrapCallback=function(e){var t=ue;return function(){var n=ue;ue=t;try{return e.apply(this,arguments)}finally{ue=n}}}});var Gu=It((tm,Ku)=>{"use strict";Ku.exports=Ru()});var Jc=It(Ne=>{"use strict";var Gd=q(),_e=Gu();function y(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"),Uo=Object.prototype.hasOwnProperty,Yd=/^[: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]*$/,Yu={},Xu={};function Xd(e){return Uo.call(Xu,e)?!0:Uo.call(Yu,e)?!1:Yd.test(e)?Xu[e]=!0:(Yu[e]=!0,!1)}function Zd(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 Jd(e,t,n,r){if(t===null||typeof t>"u"||Zd(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 ve(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var oe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){oe[e]=new ve(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];oe[t]=new ve(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){oe[e]=new ve(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){oe[e]=new ve(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){oe[e]=new ve(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){oe[e]=new ve(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){oe[e]=new ve(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){oe[e]=new ve(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){oe[e]=new ve(e,5,!1,e.toLowerCase(),null,!1,!1)});var Pi=/[\-:]([a-z])/g;function Li(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(Pi,Li);oe[t]=new ve(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(Pi,Li);oe[t]=new ve(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(Pi,Li);oe[t]=new ve(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){oe[e]=new ve(e,1,!1,e.toLowerCase(),null,!1,!1)});oe.xlinkHref=new ve("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){oe[e]=new ve(e,1,!1,e.toLowerCase(),null,!0,!0)});function Mi(e,t,n,r){var l=oe.hasOwnProperty(t)?oe[t]:null;(l!==null?l.type!==0:r||!(2{var Nf=Object.create;var wu=Object.defineProperty;var Tf=Object.getOwnPropertyDescriptor;var Pf=Object.getOwnPropertyNames;var Lf=Object.getPrototypeOf,Mf=Object.prototype.hasOwnProperty;var zt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Of=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of Pf(t))!Mf.call(e,l)&&l!==n&&wu(e,l,{get:()=>t[l],enumerable:!(r=Tf(t,l))||r.enumerable});return e};var ee=(e,t,n)=>(n=e!=null?Nf(Lf(e)):{},Of(t||!e||!e.__esModule?wu(n,"default",{value:e,enumerable:!0}):n,e));var Du=zt(P=>{"use strict";var On=Symbol.for("react.element"),zf=Symbol.for("react.portal"),Df=Symbol.for("react.fragment"),If=Symbol.for("react.strict_mode"),Af=Symbol.for("react.profiler"),jf=Symbol.for("react.provider"),Ff=Symbol.for("react.context"),Uf=Symbol.for("react.forward_ref"),Bf=Symbol.for("react.suspense"),Vf=Symbol.for("react.memo"),Hf=Symbol.for("react.lazy"),Eu=Symbol.iterator;function Wf(e){return e===null||typeof e!="object"?null:(e=Eu&&e[Eu]||e["@@iterator"],typeof e=="function"?e:null)}var xu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Nu=Object.assign,Tu={};function Yt(e,t,n){this.props=e,this.context=t,this.refs=Tu,this.updater=n||xu}Yt.prototype.isReactComponent={};Yt.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")};Yt.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Pu(){}Pu.prototype=Yt.prototype;function Zl(e,t,n){this.props=e,this.context=t,this.refs=Tu,this.updater=n||xu}var Jl=Zl.prototype=new Pu;Jl.constructor=Zl;Nu(Jl,Yt.prototype);Jl.isPureReactComponent=!0;var _u=Array.isArray,Lu=Object.prototype.hasOwnProperty,ql={current:null},Mu={key:!0,ref:!0,__self:!0,__source:!0};function Ou(e,t,n){var r,l={},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)Lu.call(t,r)&&!Mu.hasOwnProperty(r)&&(l[r]=t[r]);var u=arguments.length-2;if(u===1)l.children=n;else if(1{"use strict";Iu.exports=Du()});var Qu=zt(I=>{"use strict";function ro(e,t){var n=e.length;e.push(t);e:for(;0>>1,l=e[r];if(0>>1;rTr(u,n))sTr(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[i]=n,r=i);else if(sTr(c,n))e[r]=c,e[s]=n,r=s;else break e}}return t}function Tr(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(Au=performance,I.unstable_now=function(){return Au.now()}):(eo=Date,ju=eo.now(),I.unstable_now=function(){return eo.now()-ju});var Au,eo,ju,Qe=[],st=[],Gf=1,Te=null,oe=3,Mr=!1,Dt=!1,Dn=!1,Bu=typeof setTimeout=="function"?setTimeout:null,Vu=typeof clearTimeout=="function"?clearTimeout:null,Fu=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function lo(e){for(var t=Ae(st);t!==null;){if(t.callback===null)Lr(st);else if(t.startTime<=e)Lr(st),t.sortIndex=t.expirationTime,ro(Qe,t);else break;t=Ae(st)}}function oo(e){if(Dn=!1,lo(e),!Dt)if(Ae(Qe)!==null)Dt=!0,uo(io);else{var t=Ae(st);t!==null&&so(oo,t.startTime-e)}}function io(e,t){Dt=!1,Dn&&(Dn=!1,Vu(In),In=-1),Mr=!0;var n=oe;try{for(lo(t),Te=Ae(Qe);Te!==null&&(!(Te.expirationTime>t)||e&&!$u());){var r=Te.callback;if(typeof r=="function"){Te.callback=null,oe=Te.priorityLevel;var l=r(Te.expirationTime<=t);t=I.unstable_now(),typeof l=="function"?Te.callback=l:Te===Ae(Qe)&&Lr(Qe),lo(t)}else Lr(Qe);Te=Ae(Qe)}if(Te!==null)var o=!0;else{var i=Ae(st);i!==null&&so(oo,i.startTime-t),o=!1}return o}finally{Te=null,oe=n,Mr=!1}}var Or=!1,Pr=null,In=-1,Hu=5,Wu=-1;function $u(){return!(I.unstable_now()-Wue||125r?(e.sortIndex=n,ro(st,e),Ae(Qe)===null&&e===Ae(st)&&(Dn?(Vu(In),In=-1):Dn=!0,so(oo,n-r))):(e.sortIndex=l,ro(Qe,e),Dt||Mr||(Dt=!0,uo(io))),e};I.unstable_shouldYield=$u;I.unstable_wrapCallback=function(e){var t=oe;return function(){var n=oe;oe=t;try{return e.apply(this,arguments)}finally{oe=n}}}});var Ku=zt((tm,Ru)=>{"use strict";Ru.exports=Qu()});var Zc=zt(xe=>{"use strict";var Xf=Z(),_e=Ku();function y(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"),zo=Object.prototype.hasOwnProperty,Yf=/^[: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]*$/,Gu={},Xu={};function Zf(e){return zo.call(Xu,e)?!0:zo.call(Gu,e)?!1:Yf.test(e)?Xu[e]=!0:(Gu[e]=!0,!1)}function Jf(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 qf(e,t,n,r){if(t===null||typeof t>"u"||Jf(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 pe(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var re={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){re[e]=new pe(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];re[t]=new pe(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){re[e]=new pe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){re[e]=new pe(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){re[e]=new pe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){re[e]=new pe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){re[e]=new pe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){re[e]=new pe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){re[e]=new pe(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ci=/[\-:]([a-z])/g;function xi(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(Ci,xi);re[t]=new pe(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(Ci,xi);re[t]=new pe(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(Ci,xi);re[t]=new pe(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){re[e]=new pe(e,1,!1,e.toLowerCase(),null,!1,!1)});re.xlinkHref=new pe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){re[e]=new pe(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ni(e,t,n,r){var l=re.hasOwnProperty(t)?re[t]:null;(l!==null?l.type!==0:r||!(2u||l[i]!==o[u]){var s=` -`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{vo=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Rn(e):""}function qd(e){switch(e.tag){case 5:return Rn(e.type);case 16:return Rn("Lazy");case 13:return Rn("Suspense");case 19:return Rn("SuspenseList");case 0:case 2:case 15:return e=ho(e.type,!1),e;case 11:return e=ho(e.type.render,!1),e;case 1:return e=ho(e.type,!0),e;default:return""}}function Vo(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 en:return"Fragment";case bt:return"Portal";case jo:return"Profiler";case Oi:return"StrictMode";case Fo:return"Suspense";case Bo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case na:return(e.displayName||"Context")+".Consumer";case ta:return(e._context.displayName||"Context")+".Provider";case zi:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Di:return t=e.displayName||null,t!==null?t:Vo(e.type)||"Memo";case pt:t=e._payload,e=e._init;try{return Vo(e(t))}catch{}}return null}function bd(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 Vo(t);case 8:return t===Oi?"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 Tt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function la(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ef(e){var t=la(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 l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.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 jr(e){e._valueTracker||(e._valueTracker=ef(e))}function oa(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=la(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function dl(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 Ho(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ju(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Tt(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 ia(e,t){t=t.checked,t!=null&&Mi(e,"checked",t,!1)}function $o(e,t){ia(e,t);var n=Tt(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")?Wo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Wo(e,t.type,Tt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function qu(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 Wo(e,t,n){(t!=="number"||dl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Kn=Array.isArray;function fn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Fr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function or(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Xn={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},tf=["Webkit","ms","Moz","O"];Object.keys(Xn).forEach(function(e){tf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Xn[t]=Xn[e]})});function ca(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Xn.hasOwnProperty(e)&&Xn[e]?(""+t).trim():t+"px"}function da(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ca(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var nf=W({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 Ko(e,t){if(t){if(nf[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(y(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(y(61))}if(t.style!=null&&typeof t.style!="object")throw Error(y(62))}}function Go(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 Yo=null;function Ii(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Xo=null,pn=null,mn=null;function ts(e){if(e=xr(e)){if(typeof Xo!="function")throw Error(y(280));var t=e.stateNode;t&&(t=Bl(t),Xo(e.stateNode,e.type,t))}}function fa(e){pn?mn?mn.push(e):mn=[e]:pn=e}function pa(){if(pn){var e=pn,t=mn;if(mn=pn=null,ts(e),t)for(e=0;e>>=0,e===0?32:31-(mf(e)/vf|0)|0}var Br=64,Vr=4194304;function Gn(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 vl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~l;u!==0?r=Gn(u):(o&=i,o!==0&&(r=Gn(o)))}else i=n&~l,i!==0?r=Gn(i):o!==0&&(r=Gn(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function kr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-$e(t),e[t]=n}function Sf(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=Jn),cs=" ",ds=!1;function Da(e,t){switch(e){case"keyup":return Gf.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ia(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var tn=!1;function Xf(e,t){switch(e){case"compositionend":return Ia(t);case"keypress":return t.which!==32?null:(ds=!0,cs);case"textInput":return e=t.data,e===cs&&ds?null:e;default:return null}}function Zf(e,t){if(tn)return e==="compositionend"||!$i&&Da(e,t)?(e=Oa(),nl=Bi=gt=null,tn=!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=ms(n)}}function Fa(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Fa(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ba(){for(var e=window,t=dl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=dl(e.document)}return t}function Wi(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 op(e){var t=Ba(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Fa(n.ownerDocument.documentElement,n)){if(r!==null&&Wi(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 l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=vs(n,o);var i=vs(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.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,nn=null,ti=null,bn=null,ni=!1;function hs(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ni||nn==null||nn!==dl(r)||(r=nn,"selectionStart"in r&&Wi(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}),bn&&dr(bn,r)||(bn=r,r=yl(ti,"onSelect"),0on||(e.current=si[on],si[on]=null,on--)}function A(e,t){on++,si[on]=e.current,e.current=t}var Pt={},de=Mt(Pt),ye=Mt(!1),Wt=Pt;function Sn(e,t){var n=e.type.contextTypes;if(!n)return Pt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Se(e){return e=e.childContextTypes,e!=null}function wl(){F(ye),F(de)}function Cs(e,t,n){if(de.current!==Pt)throw Error(y(168));A(de,t),A(ye,n)}function Ya(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(y(108,bd(e)||"Unknown",l));return W({},n,r)}function kl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Pt,Wt=de.current,A(de,e),A(ye,ye.current),!0}function Ns(e,t,n){var r=e.stateNode;if(!r)throw Error(y(169));n?(e=Ya(e,t,Wt),r.__reactInternalMemoizedMergedChildContext=e,F(ye),F(de),A(de,e)):F(ye),A(ye,n)}var et=null,Vl=!1,To=!1;function Xa(e){et===null?et=[e]:et.push(e)}function vp(e){Vl=!0,Xa(e)}function Ot(){if(!To&&et!==null){To=!0;var e=0,t=D;try{var n=et;for(D=1;e>=i,l-=i,tt=1<<32-$e(t)+l|n<T?(V=_,_=null):V=_.sibling;var C=v(f,_,d[T],h);if(C===null){_===null&&(_=V);break}e&&_&&C.alternate===null&&t(f,_),a=o(C,a,T),N===null?k=C:N.sibling=C,N=C,_=V}if(T===d.length)return n(f,_),B&&Ut(f,T),k;if(_===null){for(;TT?(V=_,_=null):V=_.sibling;var Pe=v(f,_,C.value,h);if(Pe===null){_===null&&(_=V);break}e&&_&&Pe.alternate===null&&t(f,_),a=o(Pe,a,T),N===null?k=Pe:N.sibling=Pe,N=Pe,_=V}if(C.done)return n(f,_),B&&Ut(f,T),k;if(_===null){for(;!C.done;T++,C=d.next())C=m(f,C.value,h),C!==null&&(a=o(C,a,T),N===null?k=C:N.sibling=C,N=C);return B&&Ut(f,T),k}for(_=r(f,_);!C.done;T++,C=d.next())C=S(_,f,T,C.value,h),C!==null&&(e&&C.alternate!==null&&_.delete(C.key===null?T:C.key),a=o(C,a,T),N===null?k=C:N.sibling=C,N=C);return e&&_.forEach(function(On){return t(f,On)}),B&&Ut(f,T),k}function O(f,a,d,h){if(typeof d=="object"&&d!==null&&d.type===en&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case Ur:e:{for(var k=d.key,N=a;N!==null;){if(N.key===k){if(k=d.type,k===en){if(N.tag===7){n(f,N.sibling),a=l(N,d.props.children),a.return=f,f=a;break e}}else if(N.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===pt&&Ls(k)===N.type){n(f,N.sibling),a=l(N,d.props),a.ref=Hn(f,N,d),a.return=f,f=a;break e}n(f,N);break}else t(f,N);N=N.sibling}d.type===en?(a=$t(d.props.children,f.mode,h,d.key),a.return=f,f=a):(h=cl(d.type,d.key,d.props,null,f.mode,h),h.ref=Hn(f,a,d),h.return=f,f=h)}return i(f);case bt:e:{for(N=d.key;a!==null;){if(a.key===N)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){n(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=Ao(d,f.mode,h),a.return=f,f=a}return i(f);case pt:return N=d._init,O(f,a,N(d._payload),h)}if(Kn(d))return w(f,a,d,h);if(jn(d))return E(f,a,d,h);Jr(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,d),a.return=f,f=a):(n(f,a),a=Io(d,f.mode,h),a.return=f,f=a),i(f)):n(f,a)}return O}var kn=ba(!0),ec=ba(!1),_l=Mt(null),Cl=null,an=null,Gi=null;function Yi(){Gi=an=Cl=null}function Xi(e){var t=_l.current;F(_l),e._currentValue=t}function di(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 hn(e,t){Cl=e,Gi=an=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(ge=!0),e.firstContext=null)}function Ie(e){var t=e._currentValue;if(Gi!==e)if(e={context:e,memoizedValue:t,next:null},an===null){if(Cl===null)throw Error(y(308));an=e,Cl.dependencies={lanes:0,firstContext:e}}else an=an.next=e;return t}var Bt=null;function Zi(e){Bt===null?Bt=[e]:Bt.push(e)}function tc(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Zi(t)):(n.next=l.next,l.next=n),t.interleaved=n,it(e,r)}function it(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 mt=!1;function Ji(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function nc(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 rt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function xt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(M&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,it(e,n)}return l=r.interleaved,l===null?(t.next=t,Zi(r)):(t.next=l.next,l.next=t),r.interleaved=t,it(e,n)}function ll(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,Ui(e,n)}}function Ms(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=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?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,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 Nl(e,t,n,r){var l=e.updateQueue;mt=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,u=l.shared.pending;if(u!==null){l.shared.pending=null;var s=u,c=s.next;s.next=null,i===null?o=c:i.next=c,i=s;var p=e.alternate;p!==null&&(p=p.updateQueue,u=p.lastBaseUpdate,u!==i&&(u===null?p.firstBaseUpdate=c:u.next=c,p.lastBaseUpdate=s))}if(o!==null){var m=l.baseState;i=0,p=c=s=null,u=o;do{var v=u.lane,S=u.eventTime;if((r&v)===v){p!==null&&(p=p.next={eventTime:S,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var w=e,E=u;switch(v=t,S=n,E.tag){case 1:if(w=E.payload,typeof w=="function"){m=w.call(S,m,v);break e}m=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=E.payload,v=typeof w=="function"?w.call(S,m,v):w,v==null)break e;m=W({},m,v);break e;case 2:mt=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,v=l.effects,v===null?l.effects=[u]:v.push(u))}else S={eventTime:S,lane:v,tag:u.tag,payload:u.payload,callback:u.callback,next:null},p===null?(c=p=S,s=m):p=p.next=S,i|=v;if(u=u.next,u===null){if(u=l.shared.pending,u===null)break;v=u,u=v.next,v.next=null,l.lastBaseUpdate=v,l.shared.pending=null}}while(!0);if(p===null&&(s=m),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=p,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);Kt|=i,e.lanes=i,e.memoizedState=m}}function Os(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Lo.transition;Lo.transition={};try{e(!1),t()}finally{D=n,Lo.transition=r}}function Sc(){return Ae().memoizedState}function Sp(e,t,n){var r=Ct(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},wc(e))kc(t,n);else if(n=tc(e,t,n,r),n!==null){var l=me();We(n,e,r,l),Ec(n,t,r)}}function wp(e,t,n){var r=Ct(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(wc(e))kc(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,u=o(i,n);if(l.hasEagerState=!0,l.eagerState=u,Qe(u,i)){var s=t.interleaved;s===null?(l.next=l,Zi(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=tc(e,t,l,r),n!==null&&(l=me(),We(n,e,r,l),Ec(n,t,r))}}function wc(e){var t=e.alternate;return e===$||t!==null&&t===$}function kc(e,t){er=Pl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ec(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ui(e,n)}}var Ll={readContext:Ie,useCallback:se,useContext:se,useEffect:se,useImperativeHandle:se,useInsertionEffect:se,useLayoutEffect:se,useMemo:se,useReducer:se,useRef:se,useState:se,useDebugValue:se,useDeferredValue:se,useTransition:se,useMutableSource:se,useSyncExternalStore:se,useId:se,unstable_isNewReconciler:!1},kp={readContext:Ie,useCallback:function(e,t){return Xe().memoizedState=[e,t===void 0?null:t],e},useContext:Ie,useEffect:Ds,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,il(4194308,4,mc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return il(4194308,4,e,t)},useInsertionEffect:function(e,t){return il(4,2,e,t)},useMemo:function(e,t){var n=Xe();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Xe();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=Sp.bind(null,$,e),[r.memoizedState,e]},useRef:function(e){var t=Xe();return e={current:e},t.memoizedState=e},useState:zs,useDebugValue:ou,useDeferredValue:function(e){return Xe().memoizedState=e},useTransition:function(){var e=zs(!1),t=e[0];return e=yp.bind(null,e[1]),Xe().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=$,l=Xe();if(B){if(n===void 0)throw Error(y(407));n=n()}else{if(n=t(),ee===null)throw Error(y(349));(Rt&30)!==0||ic(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Ds(sc.bind(null,r,o,e),[e]),r.flags|=2048,Sr(9,uc.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Xe(),t=ee.identifierPrefix;if(B){var n=nt,r=tt;n=(r&~(1<<32-$e(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=gr++,0")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{co=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?$n(e):""}function bf(e){switch(e.tag){case 5:return $n(e.type);case 16:return $n("Lazy");case 13:return $n("Suspense");case 19:return $n("SuspenseList");case 0:case 2:case 15:return e=fo(e.type,!1),e;case 11:return e=fo(e.type.render,!1),e;case 1:return e=fo(e.type,!0),e;default:return""}}function jo(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 bt:return"Fragment";case qt:return"Portal";case Do:return"Profiler";case Ti:return"StrictMode";case Io:return"Suspense";case Ao:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ta:return(e.displayName||"Context")+".Consumer";case ea:return(e._context.displayName||"Context")+".Provider";case Pi:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Li:return t=e.displayName||null,t!==null?t:jo(e.type)||"Memo";case ct:t=e._payload,e=e._init;try{return jo(e(t))}catch{}}return null}function ed(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 jo(t);case 8:return t===Ti?"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 Ct(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ra(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function td(e){var t=ra(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 l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.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 Dr(e){e._valueTracker||(e._valueTracker=td(e))}function la(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ra(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ul(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 Fo(e,t){var n=t.checked;return H({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ct(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 oa(e,t){t=t.checked,t!=null&&Ni(e,"checked",t,!1)}function Uo(e,t){oa(e,t);var n=Ct(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")?Bo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Bo(e,t.type,Ct(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ju(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 Bo(e,t,n){(t!=="number"||ul(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Qn=Array.isArray;function fn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Ir.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function rr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Gn={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},nd=["Webkit","ms","Moz","O"];Object.keys(Gn).forEach(function(e){nd.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Gn[t]=Gn[e]})});function aa(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Gn.hasOwnProperty(e)&&Gn[e]?(""+t).trim():t+"px"}function ca(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=aa(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var rd=H({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 Wo(e,t){if(t){if(rd[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(y(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(y(61))}if(t.style!=null&&typeof t.style!="object")throw Error(y(62))}}function $o(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 Qo=null;function Mi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ro=null,dn=null,pn=null;function es(e){if(e=wr(e)){if(typeof Ro!="function")throw Error(y(280));var t=e.stateNode;t&&(t=Al(t),Ro(e.stateNode,e.type,t))}}function fa(e){dn?pn?pn.push(e):pn=[e]:dn=e}function da(){if(dn){var e=dn,t=pn;if(pn=dn=null,es(e),t)for(e=0;e>>=0,e===0?32:31-(md(e)/vd|0)|0}var Ar=64,jr=4194304;function Rn(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 fl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~l;u!==0?r=Rn(u):(o&=i,o!==0&&(r=Rn(o)))}else i=n&~l,i!==0?r=Rn(i):o!==0&&(r=Rn(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ve(t),e[t]=n}function Sd(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=Yn),as=" ",cs=!1;function za(e,t){switch(e){case"keyup":return Gd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Da(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var en=!1;function Yd(e,t){switch(e){case"compositionend":return Da(t);case"keypress":return t.which!==32?null:(cs=!0,as);case"textInput":return e=t.data,e===as&&cs?null:e;default:return null}}function Zd(e,t){if(en)return e==="compositionend"||!Ui&&za(e,t)?(e=Ma(),qr=Ai=mt=null,en=!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=ps(n)}}function Fa(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Fa(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ua(){for(var e=window,t=ul();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ul(e.document)}return t}function Bi(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 op(e){var t=Ua(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Fa(n.ownerDocument.documentElement,n)){if(r!==null&&Bi(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 l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=ms(n,o);var i=ms(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.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,tn=null,Jo=null,Jn=null,qo=!1;function vs(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;qo||tn==null||tn!==ul(r)||(r=tn,"selectionStart"in r&&Bi(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}),Jn&&ar(Jn,r)||(Jn=r,r=ml(Jo,"onSelect"),0ln||(e.current=li[ln],li[ln]=null,ln--)}function A(e,t){ln++,li[ln]=e.current,e.current=t}var xt={},ae=Tt(xt),ge=Tt(!1),Ht=xt;function yn(e,t){var n=e.type.contextTypes;if(!n)return xt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function ye(e){return e=e.childContextTypes,e!=null}function hl(){F(ge),F(ae)}function Cs(e,t,n){if(ae.current!==xt)throw Error(y(168));A(ae,t),A(ge,n)}function Ga(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(y(108,ed(e)||"Unknown",l));return H({},n,r)}function gl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||xt,Ht=ae.current,A(ae,e),A(ge,ge.current),!0}function xs(e,t,n){var r=e.stateNode;if(!r)throw Error(y(169));n?(e=Ga(e,t,Ht),r.__reactInternalMemoizedMergedChildContext=e,F(ge),F(ae),A(ae,e)):F(ge),A(ge,n)}var Je=null,jl=!1,_o=!1;function Xa(e){Je===null?Je=[e]:Je.push(e)}function vp(e){jl=!0,Xa(e)}function Pt(){if(!_o&&Je!==null){_o=!0;var e=0,t=D;try{var n=Je;for(D=1;e>=i,l-=i,qe=1<<32-Ve(t)+l|n<T?(W=x,x=null):W=x.sibling;var _=v(d,x,f[T],h);if(_===null){x===null&&(x=W);break}e&&x&&_.alternate===null&&t(d,x),a=o(_,a,T),N===null?E=_:N.sibling=_,N=_,x=W}if(T===f.length)return n(d,x),U&&It(d,T),E;if(x===null){for(;TT?(W=x,x=null):W=x.sibling;var me=v(d,x,_.value,h);if(me===null){x===null&&(x=W);break}e&&x&&me.alternate===null&&t(d,x),a=o(me,a,T),N===null?E=me:N.sibling=me,N=me,x=W}if(_.done)return n(d,x),U&&It(d,T),E;if(x===null){for(;!_.done;T++,_=f.next())_=m(d,_.value,h),_!==null&&(a=o(_,a,T),N===null?E=_:N.sibling=_,N=_);return U&&It(d,T),E}for(x=r(d,x);!_.done;T++,_=f.next())_=S(x,d,T,_.value,h),_!==null&&(e&&_.alternate!==null&&x.delete(_.key===null?T:_.key),a=o(_,a,T),N===null?E=_:N.sibling=_,N=_);return e&&x.forEach(function(Ot){return t(d,Ot)}),U&&It(d,T),E}function O(d,a,f,h){if(typeof f=="object"&&f!==null&&f.type===bt&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case zr:e:{for(var E=f.key,N=a;N!==null;){if(N.key===E){if(E=f.type,E===bt){if(N.tag===7){n(d,N.sibling),a=l(N,f.props.children),a.return=d,d=a;break e}}else if(N.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===ct&&Ps(E)===N.type){n(d,N.sibling),a=l(N,f.props),a.ref=Bn(d,N,f),a.return=d,d=a;break e}n(d,N);break}else t(d,N);N=N.sibling}f.type===bt?(a=Vt(f.props.children,d.mode,h,f.key),a.return=d,d=a):(h=il(f.type,f.key,f.props,null,d.mode,h),h.ref=Bn(d,a,f),h.return=d,d=h)}return i(d);case qt:e:{for(N=f.key;a!==null;){if(a.key===N)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){n(d,a.sibling),a=l(a,f.children||[]),a.return=d,d=a;break e}else{n(d,a);break}else t(d,a);a=a.sibling}a=Oo(f,d.mode,h),a.return=d,d=a}return i(d);case ct:return N=f._init,O(d,a,N(f._payload),h)}if(Qn(f))return k(d,a,f,h);if(An(f))return w(d,a,f,h);Gr(d,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(n(d,a.sibling),a=l(a,f),a.return=d,d=a):(n(d,a),a=Mo(f,d.mode,h),a.return=d,d=a),i(d)):n(d,a)}return O}var kn=qa(!0),ba=qa(!1),kl=Tt(null),wl=null,sn=null,$i=null;function Qi(){$i=sn=wl=null}function Ri(e){var t=kl.current;F(kl),e._currentValue=t}function ui(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 vn(e,t){wl=e,$i=sn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(he=!0),e.firstContext=null)}function ze(e){var t=e._currentValue;if($i!==e)if(e={context:e,memoizedValue:t,next:null},sn===null){if(wl===null)throw Error(y(308));sn=e,wl.dependencies={lanes:0,firstContext:e}}else sn=sn.next=e;return t}var Ft=null;function Ki(e){Ft===null?Ft=[e]:Ft.push(e)}function ec(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Ki(t)):(n.next=l.next,l.next=n),t.interleaved=n,rt(e,r)}function rt(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 ft=!1;function Gi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function tc(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 et(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function kt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(M&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,rt(e,n)}return l=r.interleaved,l===null?(t.next=t,Ki(r)):(t.next=l.next,l.next=t),r.interleaved=t,rt(e,n)}function el(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,zi(e,n)}}function Ls(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=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?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,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 El(e,t,n,r){var l=e.updateQueue;ft=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,u=l.shared.pending;if(u!==null){l.shared.pending=null;var s=u,c=s.next;s.next=null,i===null?o=c:i.next=c,i=s;var p=e.alternate;p!==null&&(p=p.updateQueue,u=p.lastBaseUpdate,u!==i&&(u===null?p.firstBaseUpdate=c:u.next=c,p.lastBaseUpdate=s))}if(o!==null){var m=l.baseState;i=0,p=c=s=null,u=o;do{var v=u.lane,S=u.eventTime;if((r&v)===v){p!==null&&(p=p.next={eventTime:S,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var k=e,w=u;switch(v=t,S=n,w.tag){case 1:if(k=w.payload,typeof k=="function"){m=k.call(S,m,v);break e}m=k;break e;case 3:k.flags=k.flags&-65537|128;case 0:if(k=w.payload,v=typeof k=="function"?k.call(S,m,v):k,v==null)break e;m=H({},m,v);break e;case 2:ft=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,v=l.effects,v===null?l.effects=[u]:v.push(u))}else S={eventTime:S,lane:v,tag:u.tag,payload:u.payload,callback:u.callback,next:null},p===null?(c=p=S,s=m):p=p.next=S,i|=v;if(u=u.next,u===null){if(u=l.shared.pending,u===null)break;v=u,u=v.next,v.next=null,l.lastBaseUpdate=v,l.shared.pending=null}}while(!0);if(p===null&&(s=m),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=p,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);Qt|=i,e.lanes=i,e.memoizedState=m}}function Ms(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=xo.transition;xo.transition={};try{e(!1),t()}finally{D=n,xo.transition=r}}function yc(){return De().memoizedState}function Sp(e,t,n){var r=Et(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Sc(e))kc(t,n);else if(n=ec(e,t,n,r),n!==null){var l=de();He(n,e,r,l),wc(n,t,r)}}function kp(e,t,n){var r=Et(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Sc(e))kc(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,u=o(i,n);if(l.hasEagerState=!0,l.eagerState=u,We(u,i)){var s=t.interleaved;s===null?(l.next=l,Ki(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ec(e,t,l,r),n!==null&&(l=de(),He(n,e,r,l),wc(n,t,r))}}function Sc(e){var t=e.alternate;return e===V||t!==null&&t===V}function kc(e,t){qn=Cl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function wc(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,zi(e,n)}}var xl={readContext:ze,useCallback:ie,useContext:ie,useEffect:ie,useImperativeHandle:ie,useInsertionEffect:ie,useLayoutEffect:ie,useMemo:ie,useReducer:ie,useRef:ie,useState:ie,useDebugValue:ie,useDeferredValue:ie,useTransition:ie,useMutableSource:ie,useSyncExternalStore:ie,useId:ie,unstable_isNewReconciler:!1},wp={readContext:ze,useCallback:function(e,t){return Ke().memoizedState=[e,t===void 0?null:t],e},useContext:ze,useEffect:zs,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,nl(4194308,4,pc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return nl(4194308,4,e,t)},useInsertionEffect:function(e,t){return nl(4,2,e,t)},useMemo:function(e,t){var n=Ke();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ke();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=Sp.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=Ke();return e={current:e},t.memoizedState=e},useState:Os,useDebugValue:tu,useDeferredValue:function(e){return Ke().memoizedState=e},useTransition:function(){var e=Os(!1),t=e[0];return e=yp.bind(null,e[1]),Ke().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=V,l=Ke();if(U){if(n===void 0)throw Error(y(407));n=n()}else{if(n=t(),q===null)throw Error(y(349));($t&30)!==0||oc(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,zs(uc.bind(null,r,o,e),[e]),r.flags|=2048,gr(9,ic.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ke(),t=q.identifierPrefix;if(U){var n=be,r=qe;n=(r&~(1<<32-Ve(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=vr++,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[Ze]=t,e[mr]=r,zc(e,t,!1,!1),t.stateNode=e;e:{switch(i=Go(n,r),n){case"dialog":j("cancel",e),j("close",e),l=r;break;case"iframe":case"object":case"embed":j("load",e),l=r;break;case"video":case"audio":for(l=0;l_n&&(t.flags|=128,r=!0,$n(o,!1),t.lanes=4194304)}else{if(!r)if(e=Tl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),$n(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!B)return ae(t),null}else 2*R()-o.renderingStartTime>_n&&n!==1073741824&&(t.flags|=128,r=!0,$n(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=R(),t.sibling=null,n=H.current,A(H,r?n&1|2:n&1),t):(ae(t),null);case 22:case 23:return du(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(ke&1073741824)!==0&&(ae(t),t.subtreeFlags&6&&(t.flags|=8192)):ae(t),null;case 24:return null;case 25:return null}throw Error(y(156,t.tag))}function Lp(e,t){switch(Ri(t),t.tag){case 1:return Se(t.type)&&wl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return En(),F(ye),F(de),eu(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return bi(t),null;case 13:if(F(H),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(y(340));wn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return F(H),null;case 4:return En(),null;case 10:return Xi(t.type._context),null;case 22:case 23:return du(),null;case 24:return null;default:return null}}var br=!1,ce=!1,Mp=typeof WeakSet=="function"?WeakSet:Set,x=null;function cn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Q(e,t,r)}else n.current=null}function wi(e,t,n){try{n()}catch(r){Q(e,t,r)}}var Qs=!1;function Op(e,t){if(ri=hl,e=Ba(),Wi(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 l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,u=-1,s=-1,c=0,p=0,m=e,v=null;t:for(;;){for(var S;m!==n||l!==0&&m.nodeType!==3||(u=i+l),m!==o||r!==0&&m.nodeType!==3||(s=i+r),m.nodeType===3&&(i+=m.nodeValue.length),(S=m.firstChild)!==null;)v=m,m=S;for(;;){if(m===e)break t;if(v===n&&++c===l&&(u=i),v===o&&++p===r&&(s=i),(S=m.nextSibling)!==null)break;m=v,v=m.parentNode}m=S}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(li={focusedElem:e,selectionRange:n},hl=!1,x=t;x!==null;)if(t=x,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,x=e;else for(;x!==null;){t=x;try{var w=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var E=w.memoizedProps,O=w.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?E:Be(t.type,E),O);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(h){Q(t,t.return,h)}if(e=t.sibling,e!==null){e.return=t.return,x=e;break}x=t.return}return w=Qs,Qs=!1,w}function tr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&wi(t,n,o)}l=l.next}while(l!==r)}}function Wl(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 ki(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 Ac(e){var t=e.alternate;t!==null&&(e.alternate=null,Ac(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ze],delete t[mr],delete t[ui],delete t[pp],delete t[mp])),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 Uc(e){return e.tag===5||e.tag===3||e.tag===4}function Rs(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Uc(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 Ei(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=Sl));else if(r!==4&&(e=e.child,e!==null))for(Ei(e,t,n),e=e.sibling;e!==null;)Ei(e,t,n),e=e.sibling}function xi(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(xi(e,t,n),e=e.sibling;e!==null;)xi(e,t,n),e=e.sibling}var re=null,Ve=!1;function ft(e,t,n){for(n=n.child;n!==null;)jc(e,t,n),n=n.sibling}function jc(e,t,n){if(Je&&typeof Je.onCommitFiberUnmount=="function")try{Je.onCommitFiberUnmount(Al,n)}catch{}switch(n.tag){case 5:ce||cn(n,t);case 6:var r=re,l=Ve;re=null,ft(e,t,n),re=r,Ve=l,re!==null&&(Ve?(e=re,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):re.removeChild(n.stateNode));break;case 18:re!==null&&(Ve?(e=re,n=n.stateNode,e.nodeType===8?No(e.parentNode,n):e.nodeType===1&&No(e,n),ar(e)):No(re,n.stateNode));break;case 4:r=re,l=Ve,re=n.stateNode.containerInfo,Ve=!0,ft(e,t,n),re=r,Ve=l;break;case 0:case 11:case 14:case 15:if(!ce&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&wi(n,t,i),l=l.next}while(l!==r)}ft(e,t,n);break;case 1:if(!ce&&(cn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){Q(n,t,u)}ft(e,t,n);break;case 21:ft(e,t,n);break;case 22:n.mode&1?(ce=(r=ce)||n.memoizedState!==null,ft(e,t,n),ce=r):ft(e,t,n);break;default:ft(e,t,n)}}function Ks(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Mp),t.forEach(function(r){var l=Vp.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Fe(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=R()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Dp(r/1960))-r,10e?16:e,yt===null)var r=!1;else{if(e=yt,yt=null,zl=0,(M&6)!==0)throw Error(y(331));var l=M;for(M|=4,x=e.current;x!==null;){var o=x,i=o.child;if((x.flags&16)!==0){var u=o.deletions;if(u!==null){for(var s=0;sR()-au?Ht(e,0):su|=n),we(e,t)}function Rc(e,t){t===0&&((e.mode&1)===0?t=1:(t=Vr,Vr<<=1,(Vr&130023424)===0&&(Vr=4194304)));var n=me();e=it(e,t),e!==null&&(kr(e,t,n),we(e,n))}function Bp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Rc(e,n)}function Vp(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(t),Rc(e,n)}var Kc;Kc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ye.current)ge=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return ge=!1,Tp(e,t,n);ge=(e.flags&131072)!==0}else ge=!1,B&&(t.flags&1048576)!==0&&Za(t,xl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ul(e,t),e=t.pendingProps;var l=Sn(t,de.current);hn(t,n),l=nu(null,t,r,e,l,n);var o=ru();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Se(r)?(o=!0,kl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Ji(t),l.updater=$l,t.stateNode=l,l._reactInternals=t,pi(t,r,e,n),t=hi(null,t,r,!0,o,n)):(t.tag=0,B&&o&&Qi(t),pe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ul(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=$p(r),e=Be(r,e),l){case 0:t=vi(null,t,r,e,n);break e;case 1:t=Hs(null,t,r,e,n);break e;case 11:t=Bs(null,t,r,e,n);break e;case 14:t=Vs(null,t,r,Be(r.type,e),n);break e}throw Error(y(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Be(r,l),vi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Be(r,l),Hs(e,t,r,l,n);case 3:e:{if(Lc(t),e===null)throw Error(y(387));r=t.pendingProps,o=t.memoizedState,l=o.element,nc(e,t),Nl(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){l=xn(Error(y(423)),t),t=$s(e,t,r,n,l);break e}else if(r!==l){l=xn(Error(y(424)),t),t=$s(e,t,r,n,l);break e}else for(Ee=Et(t.stateNode.containerInfo.firstChild),xe=t,B=!0,He=null,n=ec(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(wn(),r===l){t=ut(e,t,n);break e}pe(e,t,r,n)}t=t.child}return t;case 5:return rc(t),e===null&&ci(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,oi(r,l)?i=null:o!==null&&oi(r,o)&&(t.flags|=32),Pc(e,t),pe(e,t,i,n),t.child;case 6:return e===null&&ci(t),null;case 13:return Mc(e,t,n);case 4:return qi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=kn(t,null,r,n):pe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Be(r,l),Bs(e,t,r,l,n);case 7:return pe(e,t,t.pendingProps,n),t.child;case 8:return pe(e,t,t.pendingProps.children,n),t.child;case 12:return pe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,A(_l,r._currentValue),r._currentValue=i,o!==null)if(Qe(o.value,i)){if(o.children===l.children&&!ye.current){t=ut(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=rt(-1,n&-n),s.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var p=c.pending;p===null?s.next=s:(s.next=p.next,p.next=s),c.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),di(o.return,n,t),u.lanes|=n;break}s=s.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(y(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),di(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}pe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,hn(t,n),l=Ie(l),r=r(l),t.flags|=1,pe(e,t,r,n),t.child;case 14:return r=t.type,l=Be(r,t.pendingProps),l=Be(r.type,l),Vs(e,t,r,l,n);case 15:return Nc(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Be(r,l),ul(e,t),t.tag=1,Se(r)?(e=!0,kl(t)):e=!1,hn(t,n),xc(t,r,l),pi(t,r,l,n),hi(null,t,r,!0,e,n);case 19:return Oc(e,t,n);case 22:return Tc(e,t,n)}throw Error(y(156,t.tag))};function Gc(e,t){return wa(e,t)}function Hp(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 ze(e,t,n,r){return new Hp(e,t,n,r)}function pu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function $p(e){if(typeof e=="function")return pu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===zi)return 11;if(e===Di)return 14}return 2}function Nt(e,t){var n=e.alternate;return n===null?(n=ze(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 cl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")pu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case en:return $t(n.children,l,o,t);case Oi:i=8,l|=8;break;case jo:return e=ze(12,n,t,l|2),e.elementType=jo,e.lanes=o,e;case Fo:return e=ze(13,n,t,l),e.elementType=Fo,e.lanes=o,e;case Bo:return e=ze(19,n,t,l),e.elementType=Bo,e.lanes=o,e;case ra:return Rl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ta:i=10;break e;case na:i=9;break e;case zi:i=11;break e;case Di:i=14;break e;case pt:i=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return t=ze(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function $t(e,t,n,r){return e=ze(7,e,r,t),e.lanes=n,e}function Rl(e,t,n,r){return e=ze(22,e,r,t),e.elementType=ra,e.lanes=n,e.stateNode={isHidden:!1},e}function Io(e,t,n){return e=ze(6,e,null,t),e.lanes=n,e}function Ao(e,t,n){return t=ze(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Wp(e,t,n,r,l){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=yo(0),this.expirationTimes=yo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yo(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function mu(e,t,n,r,l,o,i,u,s){return e=new Wp(e,t,n,u,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ze(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ji(o),e}function Qp(e,t,n){var r=3{"use strict";function qc(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(qc)}catch(e){console.error(e)}}qc(),bc.exports=Jc()});var nd=It(yu=>{"use strict";var td=ed();yu.createRoot=td.createRoot,yu.hydrateRoot=td.hydrateRoot;var lm});var wu=ne(q(),1),xd=ne(nd(),1);var G=ne(q(),1);var U=ne(q(),1);var te=ne(q(),1);function rd({preference:e,onThemeChange:t}){let n=()=>{let o=["system","light","dark"],u=(o.indexOf(e)+1)%o.length;t(o[u])},r=()=>{switch(e){case"light":return te.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},te.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),te.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),te.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),te.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),te.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),te.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),te.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),te.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),te.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return te.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},te.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));case"system":default:return te.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},te.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),te.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),te.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},l=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";case"system":default:return"Theme: System (click for Light)"}};return te.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:l(),"aria-label":l()},r())}function ld({isConnected:e,projects:t,currentFilter:n,onFilterChange:r,onSettingsToggle:l,sidebarOpen:o,isProcessing:i,queueDepth:u,themePreference:s,onThemeChange:c}){return U.default.createElement("div",{className:"header"},U.default.createElement("h1",null,U.default.createElement("div",{style:{position:"relative",display:"inline-block"}},U.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${i?"spinning":""}`}),u>0&&U.default.createElement("div",{className:"queue-bubble"},u)),U.default.createElement("span",{className:"logo-text"},"claude-mem")),U.default.createElement("div",{className:"status"},U.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",title:"Documentation",style:{display:"block",padding:"8px 4px 8px 8px",color:"#a0a0a0",transition:"color 0.2s",lineHeight:0},onMouseEnter:p=>p.currentTarget.style.color="#606060",onMouseLeave:p=>p.currentTarget.style.color="#a0a0a0"},U.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},U.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),U.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),U.default.createElement("a",{href:"https://github.com/thedotmack/claude-mem/",target:"_blank",rel:"noopener noreferrer",title:"GitHub",style:{display:"block",padding:"8px 4px",color:"#a0a0a0",transition:"color 0.2s",lineHeight:0},onMouseEnter:p=>p.currentTarget.style.color="#606060",onMouseLeave:p=>p.currentTarget.style.color="#a0a0a0"},U.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},U.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))),U.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",title:"X (Twitter)",style:{display:"block",padding:"8px 8px 8px 4px",color:"#a0a0a0",transition:"color 0.2s",lineHeight:0},onMouseEnter:p=>p.currentTarget.style.color="#606060",onMouseLeave:p=>p.currentTarget.style.color="#a0a0a0"},U.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},U.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),U.default.createElement("select",{value:n,onChange:p=>r(p.target.value)},U.default.createElement("option",{value:""},"All Projects"),t.map(p=>U.default.createElement("option",{key:p,value:p},p))),U.default.createElement(rd,{preference:s,onThemeChange:c}),U.default.createElement("button",{className:`settings-btn ${o?"active":""}`,onClick:l,title:"Settings"},U.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},U.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),U.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var K=ne(q(),1);var L=ne(q(),1);function Tn(e){return new Date(e).toLocaleString()}function od(e){if(!e)return"-";let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return`${t}h ${n}m`}function id(e){return e?e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/(1024*1024)).toFixed(1)+" MB":"-"}function ud(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let l of t){let o=e.indexOf(l);if(o!==-1)return e.substring(o+1)}let n=e.indexOf("claude-mem/");if(n!==-1)return e.substring(n+11);let r=e.split("/");return r.length>3?r.slice(-3).join("/"):e}function sd({observation:e}){let[t,n]=(0,L.useState)(!1),[r,l]=(0,L.useState)(!1),o=Tn(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],u=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read).map(ud):[],c=e.files_modified?JSON.parse(e.files_modified).map(ud):[],p=i.length>0||u.length>0||s.length>0||c.length>0;return L.default.createElement("div",{className:"card"},L.default.createElement("div",{className:"card-header"},L.default.createElement("div",{className:"card-header-left"},L.default.createElement("span",{className:`card-type type-${e.type}`},e.type),L.default.createElement("span",{className:"card-project"},e.project)),L.default.createElement("div",{className:"view-mode-toggles"},p&&L.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||l(!1)}},L.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},L.default.createElement("polyline",{points:"9 11 12 14 22 4"}),L.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),L.default.createElement("span",null,"facts")),e.narrative&&L.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{l(!r),r||n(!1)}},L.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},L.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),L.default.createElement("polyline",{points:"14 2 14 8 20 8"}),L.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),L.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),L.default.createElement("span",null,"narrative")))),L.default.createElement("div",{className:"card-title"},e.title||"Untitled"),L.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&L.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&L.default.createElement("ul",{className:"facts-list"},i.map((m,v)=>L.default.createElement("li",{key:v},m))),r&&e.narrative&&L.default.createElement("div",{className:"narrative"},e.narrative)),L.default.createElement("div",{className:"card-meta"},L.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",o),t&&(u.length>0||s.length>0||c.length>0)&&L.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},u.map((m,v)=>L.default.createElement("span",{key:v,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},m)),s.length>0&&L.default.createElement("span",{className:"meta-files"},L.default.createElement("span",{className:"file-label"},"read:")," ",s.join(", ")),c.length>0&&L.default.createElement("span",{className:"meta-files"},L.default.createElement("span",{className:"file-label"},"modified:")," ",c.join(", ")))))}var ie=ne(q(),1);function ad({summary:e}){let t=Tn(e.created_at_epoch),n=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(r=>r.content);return ie.default.createElement("article",{className:"card summary-card"},ie.default.createElement("header",{className:"summary-card-header"},ie.default.createElement("div",{className:"summary-badge-row"},ie.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),ie.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&ie.default.createElement("h2",{className:"summary-title"},e.request)),ie.default.createElement("div",{className:"summary-sections"},n.map((r,l)=>ie.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${l*50}ms`}},ie.default.createElement("div",{className:"summary-section-header"},ie.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),ie.default.createElement("h3",{className:"summary-section-label"},r.label)),ie.default.createElement("div",{className:"summary-section-content"},r.content)))),ie.default.createElement("footer",{className:"summary-card-footer"},ie.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),ie.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),ie.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var at=ne(q(),1);function cd({prompt:e}){let t=Tn(e.created_at_epoch);return at.default.createElement("div",{className:"card prompt-card"},at.default.createElement("div",{className:"card-header"},at.default.createElement("div",{className:"card-header-left"},at.default.createElement("span",{className:"card-type"},"Prompt"),at.default.createElement("span",{className:"card-project"},e.project))),at.default.createElement("div",{className:"card-content"},e.prompt_text),at.default.createElement("div",{className:"card-meta"},at.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var zt=ne(q(),1);function dd({targetRef:e}){let[t,n]=(0,zt.useState)(!1);(0,zt.useEffect)(()=>{let l=()=>{let i=e.current;i&&n(i.scrollTop>300)},o=e.current;if(o)return o.addEventListener("scroll",l),()=>o.removeEventListener("scroll",l)},[]);let r=()=>{let l=e.current;l&&l.scrollTo({top:0,behavior:"smooth"})};return t?zt.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},zt.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},zt.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var Cr={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function fd({observations:e,summaries:t,prompts:n,onLoadMore:r,isLoading:l,hasMore:o}){let i=(0,K.useRef)(null),u=(0,K.useRef)(null),s=(0,K.useRef)(r);(0,K.useEffect)(()=>{s.current=r},[r]),(0,K.useEffect)(()=>{let p=i.current;if(!p)return;let m=new IntersectionObserver(v=>{v[0].isIntersecting&&o&&!l&&s.current?.()},{threshold:Cr.LOAD_MORE_THRESHOLD});return m.observe(p),()=>{p&&m.unobserve(p),m.disconnect()}},[o,l]);let c=(0,K.useMemo)(()=>[...e.map(m=>({...m,itemType:"observation"})),...t.map(m=>({...m,itemType:"summary"})),...n.map(m=>({...m,itemType:"prompt"}))].sort((m,v)=>v.created_at_epoch-m.created_at_epoch),[e,t,n]);return K.default.createElement("div",{className:"feed",ref:u},K.default.createElement(dd,{targetRef:u}),K.default.createElement("div",{className:"feed-content"},c.map(p=>{let m=`${p.itemType}-${p.id}`;return p.itemType==="observation"?K.default.createElement(sd,{key:m,observation:p}):p.itemType==="summary"?K.default.createElement(ad,{key:m,summary:p}):K.default.createElement(cd,{key:m,prompt:p})}),c.length===0&&!l&&K.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),l&&K.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},K.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),o&&!l&&c.length>0&&K.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!o&&c.length>0&&K.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var g=ne(q(),1);var Ue={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777"};function pd({isOpen:e,settings:t,stats:n,isSaving:r,saveStatus:l,isConnected:o,onSave:i,onClose:u,onRefreshStats:s}){let[c,p]=(0,g.useState)(t.CLAUDE_MEM_MODEL||Ue.CLAUDE_MEM_MODEL),[m,v]=(0,g.useState)(t.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Ue.CLAUDE_MEM_CONTEXT_OBSERVATIONS),[S,w]=(0,g.useState)(t.CLAUDE_MEM_WORKER_PORT||Ue.CLAUDE_MEM_WORKER_PORT),[E,O]=(0,g.useState)(!0),[f,a]=(0,g.useState)(!1),[d,h]=(0,g.useState)(""),[k,N]=(0,g.useState)(null),[_,T]=(0,g.useState)(!1),[V,C]=(0,g.useState)("");(0,g.useEffect)(()=>{p(t.CLAUDE_MEM_MODEL||Ue.CLAUDE_MEM_MODEL),v(t.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Ue.CLAUDE_MEM_CONTEXT_OBSERVATIONS),w(t.CLAUDE_MEM_WORKER_PORT||Ue.CLAUDE_MEM_WORKER_PORT)},[t]),(0,g.useEffect)(()=>{fetch("/api/mcp/status").then(z=>z.json()).then(z=>O(z.enabled)).catch(z=>console.error("Failed to load MCP status:",z))},[]),(0,g.useEffect)(()=>{fetch("/api/branch/status").then(z=>z.json()).then(z=>N(z)).catch(z=>console.error("Failed to load branch status:",z))},[]),(0,g.useEffect)(()=>{e&&s()},[e,s]);let Pe=()=>{i({CLAUDE_MEM_MODEL:c,CLAUDE_MEM_CONTEXT_OBSERVATIONS:m,CLAUDE_MEM_WORKER_PORT:S})},On=async z=>{a(!0),h("Toggling...");try{let Ke=await(await fetch("/api/mcp/toggle",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:z})})).json();Ke.success?(O(Ke.enabled),h("\u2713 Updated (restart Claude Code to apply)"),setTimeout(()=>h(""),3e3)):(h(`\u2717 Error: ${Ke.error}`),setTimeout(()=>h(""),3e3))}catch(J){h(`\u2717 Error: ${J instanceof Error?J.message:"Unknown error"}`),setTimeout(()=>h(""),3e3)}finally{a(!1)}},Nr=async z=>{T(!0),C("Switching branches...");try{let Ke=await(await fetch("/api/branch/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:z})})).json();Ke.success?(C(`\u2713 ${Ke.message}`),setTimeout(()=>{C("Restarting worker...")},1e3)):(C(`\u2717 Error: ${Ke.error}`),setTimeout(()=>C(""),5e3),T(!1))}catch(J){C(`\u2717 Error: ${J instanceof Error?J.message:"Unknown error"}`),setTimeout(()=>C(""),5e3),T(!1)}},Tr=async()=>{T(!0),C("Checking for updates...");try{let J=await(await fetch("/api/branch/update",{method:"POST",headers:{"Content-Type":"application/json"}})).json();J.success?(C(`\u2713 ${J.message}`),setTimeout(()=>{C("Restarting worker...")},1e3)):(C(`\u2717 Error: ${J.error}`),setTimeout(()=>C(""),5e3),T(!1))}catch(z){C(`\u2717 Error: ${z instanceof Error?z.message:"Unknown error"}`),setTimeout(()=>C(""),5e3),T(!1)}};return g.default.createElement("div",{className:`sidebar ${e?"open":""}`},g.default.createElement("div",{className:"sidebar-header"},g.default.createElement("h1",null,"Settings"),g.default.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center"}},g.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px"}},g.default.createElement("span",{className:`status-dot ${o?"connected":""}`}),g.default.createElement("span",{style:{fontSize:"11px",opacity:.5,fontWeight:300}},o?"Connected":"Disconnected")),g.default.createElement("button",{onClick:Pe,disabled:r},r?"Saving...":"Save"),g.default.createElement("button",{onClick:u,title:"Close settings",style:{background:"transparent",border:"1px solid #404040",padding:"8px",width:"36px",height:"36px",display:"flex",alignItems:"center",justifyContent:"center"}},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},g.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),g.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),g.default.createElement("div",{className:"stats-scroll"},g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Environment Variables"),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"model"},"CLAUDE_MEM_MODEL"),g.default.createElement("div",{className:"setting-description"},"Model used for AI compression of tool observations. Haiku is fast and cheap, Sonnet offers better quality, Opus is most capable but expensive."),g.default.createElement("select",{id:"model",value:c,onChange:z=>p(z.target.value)},g.default.createElement("option",{value:"claude-haiku-4-5"},"claude-haiku-4-5"),g.default.createElement("option",{value:"claude-sonnet-4-5"},"claude-sonnet-4-5"),g.default.createElement("option",{value:"claude-opus-4"},"claude-opus-4"))),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"contextObs"},"CLAUDE_MEM_CONTEXT_OBSERVATIONS"),g.default.createElement("div",{className:"setting-description"},"Number of recent observations to inject at session start. Higher values provide more context but increase token usage. Default: 50"),g.default.createElement("input",{type:"number",id:"contextObs",min:"1",max:"200",value:m,onChange:z=>v(z.target.value)})),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"workerPort"},"CLAUDE_MEM_WORKER_PORT"),g.default.createElement("div",{className:"setting-description"},"Port number for the background worker service. Change only if port 37777 conflicts with another service."),g.default.createElement("input",{type:"number",id:"workerPort",min:"1024",max:"65535",value:S,onChange:z=>w(z.target.value)})),l&&g.default.createElement("div",{className:"save-status"},l)),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"MCP Search Server"),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"mcpEnabled",style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"}},g.default.createElement("input",{type:"checkbox",id:"mcpEnabled",checked:E,onChange:z=>On(z.target.checked),disabled:f,style:{cursor:f?"not-allowed":"pointer"}}),"Enable MCP Search Server"),g.default.createElement("div",{className:"setting-description"},"claude-mem suggests using skill-based search (saves ~2,500 tokens at session start), but some users prefer MCP. Disable to only use skill-based search. Requires Claude Code restart to apply changes."),d&&g.default.createElement("div",{className:"save-status"},d))),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Version Channel"),g.default.createElement("div",{className:"form-group"},k?g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"}},g.default.createElement("span",{style:{padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:600,background:k.isBeta?"#6b4500":"#1a4d1a",color:k.isBeta?"#ffb84d":"#4ade80",border:`1px solid ${k.isBeta?"#ffb84d":"#4ade80"}`}},k.isBeta?"Beta":"Stable"),g.default.createElement("span",{style:{fontSize:"12px",opacity:.7}},k.branch||"main")),k.isBeta?g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{className:"setting-description",style:{marginBottom:"12px"}},"You're running the beta with Endless Mode. Your memory data is preserved when switching versions."),g.default.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},g.default.createElement("button",{onClick:()=>Nr("main"),disabled:_,style:{background:"#2a2a2a",border:"1px solid #404040",padding:"8px 16px",cursor:_?"not-allowed":"pointer",opacity:_?.5:1}},"Switch to Stable"),g.default.createElement("button",{onClick:Tr,disabled:_,style:{background:"#2a2a2a",border:"1px solid #404040",padding:"8px 16px",cursor:_?"not-allowed":"pointer",opacity:_?.5:1}},"Check for Updates"))):g.default.createElement(g.default.Fragment,null,g.default.createElement("div",{className:"setting-description",style:{marginBottom:"12px"}},"Try the beta to access experimental features like Endless Mode. Your memory data is preserved when switching."),g.default.createElement("button",{onClick:()=>Nr("beta/7.0"),disabled:_,style:{background:"#4a3500",border:"1px solid #ffb84d",color:"#ffb84d",padding:"8px 16px",cursor:_?"not-allowed":"pointer",opacity:_?.5:1}},"Try Beta (Endless Mode)")),V&&g.default.createElement("div",{className:"save-status",style:{marginTop:"8px"}},V)):g.default.createElement("div",{style:{fontSize:"12px",opacity:.5}},"Loading branch info..."))),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Worker Stats"),g.default.createElement("div",{className:"stats-grid"},g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Version"),g.default.createElement("div",{className:"stat-value"},n.worker?.version||"-")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Uptime"),g.default.createElement("div",{className:"stat-value"},od(n.worker?.uptime))),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Active Sessions"),g.default.createElement("div",{className:"stat-value"},n.worker?.activeSessions||"0")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"SSE Clients"),g.default.createElement("div",{className:"stat-value"},n.worker?.sseClients||"0")))),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Database Stats"),g.default.createElement("div",{className:"stats-grid"},g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"DB Size"),g.default.createElement("div",{className:"stat-value"},id(n.database?.size))),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Observations"),g.default.createElement("div",{className:"stat-value"},n.database?.observations||"0")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Sessions"),g.default.createElement("div",{className:"stat-value"},n.database?.sessions||"0")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Summaries"),g.default.createElement("div",{className:"stat-value"},n.database?.summaries||"0"))))))}var Te=ne(q(),1);var Re={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Zl={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function md(){let[e,t]=(0,Te.useState)([]),[n,r]=(0,Te.useState)([]),[l,o]=(0,Te.useState)([]),[i,u]=(0,Te.useState)([]),[s,c]=(0,Te.useState)(!1),[p,m]=(0,Te.useState)(!1),[v,S]=(0,Te.useState)(0),w=(0,Te.useRef)(null),E=(0,Te.useRef)();return(0,Te.useEffect)(()=>{let O=()=>{w.current&&w.current.close();let f=new EventSource(Re.STREAM);w.current=f,f.onopen=()=>{console.log("[SSE] Connected"),c(!0),E.current&&clearTimeout(E.current)},f.onerror=a=>{console.error("[SSE] Connection error:",a),c(!1),f.close(),E.current=setTimeout(()=>{E.current=void 0,console.log("[SSE] Attempting to reconnect..."),O()},Zl.SSE_RECONNECT_DELAY_MS)},f.onmessage=a=>{try{let d=JSON.parse(a.data);switch(d.type){case"initial_load":console.log("[SSE] Initial load:",{projects:d.projects?.length||0}),u(d.projects||[]);break;case"new_observation":d.observation&&(console.log("[SSE] New observation:",d.observation.id),t(h=>[d.observation,...h]));break;case"new_summary":if(d.summary){let h=d.summary;console.log("[SSE] New summary:",h.id),r(k=>[h,...k])}break;case"new_prompt":if(d.prompt){let h=d.prompt;console.log("[SSE] New prompt:",h.id),o(k=>[h,...k])}break;case"processing_status":typeof d.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",d.isProcessing,"Queue depth:",d.queueDepth),m(d.isProcessing),S(d.queueDepth||0));break}}catch(d){console.error("[SSE] Failed to parse message:",d)}}};return O(),()=>{w.current&&w.current.close(),E.current&&clearTimeout(E.current)}},[]),{observations:e,summaries:n,prompts:l,projects:i,isProcessing:p,queueDepth:v,isConnected:s}}var Pn=ne(q(),1);function vd(){let[e,t]=(0,Pn.useState)(Ue),[n,r]=(0,Pn.useState)(!1),[l,o]=(0,Pn.useState)("");return(0,Pn.useEffect)(()=>{fetch(Re.SETTINGS).then(u=>u.json()).then(u=>{t({CLAUDE_MEM_MODEL:u.CLAUDE_MEM_MODEL||Ue.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:u.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Ue.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:u.CLAUDE_MEM_WORKER_PORT||Ue.CLAUDE_MEM_WORKER_PORT})}).catch(u=>{console.error("Failed to load settings:",u)})},[]),{settings:e,saveSettings:async u=>{r(!0),o("Saving...");try{let c=await(await fetch(Re.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)})).json();c.success?(t(u),o("\u2713 Saved"),setTimeout(()=>o(""),Zl.SAVE_STATUS_DISPLAY_DURATION_MS)):o(`\u2717 Error: ${c.error}`)}catch(s){o(`\u2717 Error: ${s instanceof Error?s.message:"Unknown error"}`)}finally{r(!1)}},isSaving:n,saveStatus:l}}var Ln=ne(q(),1);function hd(){let[e,t]=(0,Ln.useState)({}),n=(0,Ln.useCallback)(async()=>{try{let l=await(await fetch(Re.STATS)).json();t(l)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Ln.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var Dt=ne(q(),1);function Su(e,t,n){let[r,l]=(0,Dt.useState)({isLoading:!1,hasMore:!0}),o=(0,Dt.useRef)(0),i=(0,Dt.useRef)(n),u=(0,Dt.useRef)(r),s=(0,Dt.useCallback)(async()=>{let c=i.current!==n;if(c){o.current=0,i.current=n;let p={isLoading:!1,hasMore:!0};l(p),u.current=p}if(!c&&(u.current.isLoading||!u.current.hasMore))return[];l(p=>({...p,isLoading:!0}));try{let p=new URLSearchParams({offset:o.current.toString(),limit:Cr.PAGINATION_PAGE_SIZE.toString()});n&&p.append("project",n);let m=await fetch(`${e}?${p}`);if(!m.ok)throw new Error(`Failed to load ${t}: ${m.statusText}`);let v=await m.json();return l(S=>({...S,isLoading:!1,hasMore:v.hasMore})),o.current+=Cr.PAGINATION_PAGE_SIZE,v.items}catch(p){return console.error(`Failed to load ${t}:`,p),l(m=>({...m,isLoading:!1})),[]}},[n,e,t]);return{...r,loadMore:s}}function gd(e){let t=Su(Re.OBSERVATIONS,"observations",e),n=Su(Re.SUMMARIES,"summaries",e),r=Su(Re.PROMPTS,"prompts",e);return{observations:t,summaries:n,prompts:r}}var Mn=ne(q(),1),wd="claude-mem-theme";function Xp(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function yd(){try{let e=localStorage.getItem(wd);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Sd(e){return e==="system"?Xp():e}function kd(){let[e,t]=(0,Mn.useState)(yd),[n,r]=(0,Mn.useState)(()=>Sd(yd()));return(0,Mn.useEffect)(()=>{let o=Sd(e);r(o),document.documentElement.setAttribute("data-theme",o)},[e]),(0,Mn.useEffect)(()=>{if(e!=="system")return;let o=window.matchMedia("(prefers-color-scheme: dark)"),i=u=>{let s=u.matches?"dark":"light";r(s),document.documentElement.setAttribute("data-theme",s)};return o.addEventListener("change",i),()=>o.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:n,setThemePreference:o=>{try{localStorage.setItem(wd,o),t(o)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(o)}}}}function Jl(e,t){let n=new Set;return[...e,...t].filter(r=>n.has(r.id)?!1:(n.add(r.id),!0))}function Ed(){let[e,t]=(0,G.useState)(""),[n,r]=(0,G.useState)(!1),[l,o]=(0,G.useState)([]),[i,u]=(0,G.useState)([]),[s,c]=(0,G.useState)([]),{observations:p,summaries:m,prompts:v,projects:S,isProcessing:w,queueDepth:E,isConnected:O}=md(),{settings:f,saveSettings:a,isSaving:d,saveStatus:h}=vd(),{stats:k,refreshStats:N}=hd(),{preference:_,resolvedTheme:T,setThemePreference:V}=kd(),C=gd(e),Pe=(0,G.useMemo)(()=>e?l:Jl(p,l),[p,l,e]),On=(0,G.useMemo)(()=>e?i:Jl(m,i),[m,i,e]),Nr=(0,G.useMemo)(()=>e?s:Jl(v,s),[v,s,e]),Tr=(0,G.useCallback)(()=>{r(J=>!J)},[]),z=(0,G.useCallback)(async()=>{try{let[J,Ke,ku]=await Promise.all([C.observations.loadMore(),C.summaries.loadMore(),C.prompts.loadMore()]);J.length>0&&o(zn=>[...zn,...J]),Ke.length>0&&u(zn=>[...zn,...Ke]),ku.length>0&&c(zn=>[...zn,...ku])}catch(J){console.error("Failed to load more data:",J)}},[e,C.observations,C.summaries,C.prompts]);return(0,G.useEffect)(()=>{o([]),u([]),c([]),z()},[e]),G.default.createElement("div",{className:"container"},G.default.createElement("div",{className:"main-col"},G.default.createElement(ld,{isConnected:O,projects:S,currentFilter:e,onFilterChange:t,onSettingsToggle:Tr,sidebarOpen:n,isProcessing:w,queueDepth:E,themePreference:_,onThemeChange:V}),G.default.createElement(fd,{observations:Pe,summaries:On,prompts:Nr,onLoadMore:z,isLoading:C.observations.isLoading||C.summaries.isLoading||C.prompts.isLoading,hasMore:C.observations.hasMore||C.summaries.hasMore||C.prompts.hasMore})),G.default.createElement(pd,{isOpen:n,settings:f,stats:k,isSaving:d,saveStatus:h,isConnected:O,onSave:a,onClose:Tr,onRefreshStats:N}))}var ct=ne(q(),1),ql=class extends ct.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] Caught error:",t,n),this.setState({error:t,errorInfo:n})}render(){return this.state.hasError?ct.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},ct.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),ct.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&ct.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},ct.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),ct.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` +`+o.stack}return{value:e,source:t,stack:l,digest:null}}function Po(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function ci(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Cp=typeof WeakMap=="function"?WeakMap:Map;function _c(e,t,n){n=et(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Tl||(Tl=!0,ki=r),ci(e,t)},n}function Cc(e,t,n){n=et(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){ci(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){ci(e,t),typeof r!="function"&&(wt===null?wt=new Set([this]):wt.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function As(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Cp;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=Up.bind(null,e,t,n),t.then(e,e))}function js(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Fs(e,t,n,r,l){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=et(-1,1),t.tag=2,kt(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var xp=ot.ReactCurrentOwner,he=!1;function fe(e,t,n,r){t.child=e===null?ba(t,null,n,r):kn(t,e.child,n,r)}function Us(e,t,n,r,l){n=n.render;var o=t.ref;return vn(t,l),r=qi(e,t,n,r,o,l),n=bi(),e!==null&&!he?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,lt(e,t,l)):(U&&n&&Vi(t),t.flags|=1,fe(e,t,r,l),t.child)}function Bs(e,t,n,r,l){if(e===null){var o=n.type;return typeof o=="function"&&!au(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,xc(e,t,o,r,l)):(e=il(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,(e.lanes&l)===0){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:ar,n(i,r)&&e.ref===t.ref)return lt(e,t,l)}return t.flags|=1,e=_t(o,r),e.ref=t.ref,e.return=t,t.child=e}function xc(e,t,n,r,l){if(e!==null){var o=e.memoizedProps;if(ar(o,r)&&e.ref===t.ref)if(he=!1,t.pendingProps=r=o,(e.lanes&l)!==0)(e.flags&131072)!==0&&(he=!0);else return t.lanes=e.lanes,lt(e,t,l)}return fi(e,t,n,r,l)}function Nc(e,t,n){var r=t.pendingProps,l=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},A(cn,ke),ke|=n;else{if((n&1073741824)===0)return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,A(cn,ke),ke|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,A(cn,ke),ke|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,A(cn,ke),ke|=r;return fe(e,t,l,n),t.child}function Tc(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function fi(e,t,n,r,l){var o=ye(n)?Ht:ae.current;return o=yn(t,o),vn(t,l),n=qi(e,t,n,r,o,l),r=bi(),e!==null&&!he?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,lt(e,t,l)):(U&&r&&Vi(t),t.flags|=1,fe(e,t,n,l),t.child)}function Vs(e,t,n,r,l){if(ye(n)){var o=!0;gl(t)}else o=!1;if(vn(t,l),t.stateNode===null)rl(e,t),Ec(t,n,r),ai(t,n,r,l),r=!0;else if(e===null){var i=t.stateNode,u=t.memoizedProps;i.props=u;var s=i.context,c=n.contextType;typeof c=="object"&&c!==null?c=ze(c):(c=ye(n)?Ht:ae.current,c=yn(t,c));var p=n.getDerivedStateFromProps,m=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function";m||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==r||s!==c)&&Is(t,i,r,c),ft=!1;var v=t.memoizedState;i.state=v,El(t,r,i,l),s=t.memoizedState,u!==r||v!==s||ge.current||ft?(typeof p=="function"&&(si(t,n,p,r),s=t.memoizedState),(u=ft||Ds(t,n,u,r,v,s,c))?(m||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,tc(e,t),u=t.memoizedProps,c=t.type===t.elementType?u:Fe(t.type,u),i.props=c,m=t.pendingProps,v=i.context,s=n.contextType,typeof s=="object"&&s!==null?s=ze(s):(s=ye(n)?Ht:ae.current,s=yn(t,s));var S=n.getDerivedStateFromProps;(p=typeof S=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==m||v!==s)&&Is(t,i,r,s),ft=!1,v=t.memoizedState,i.state=v,El(t,r,i,l);var k=t.memoizedState;u!==m||v!==k||ge.current||ft?(typeof S=="function"&&(si(t,n,S,r),k=t.memoizedState),(c=ft||Ds(t,n,c,r,v,k,s)||!1)?(p||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,k,s),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,k,s)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&v===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&v===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=k),i.props=r,i.state=k,i.context=s,r=c):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&v===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&v===e.memoizedState||(t.flags|=1024),r=!1)}return di(e,t,n,r,o,l)}function di(e,t,n,r,l,o){Tc(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return l&&xs(t,n,!1),lt(e,t,o);r=t.stateNode,xp.current=t;var u=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=kn(t,e.child,null,o),t.child=kn(t,null,u,o)):fe(e,t,u,o),t.memoizedState=r.state,l&&xs(t,n,!0),t.child}function Pc(e){var t=e.stateNode;t.pendingContext?Cs(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Cs(e,t.context,!1),Xi(e,t.containerInfo)}function Hs(e,t,n,r,l){return Sn(),Wi(l),t.flags|=256,fe(e,t,n,r),t.child}var pi={dehydrated:null,treeContext:null,retryLane:0};function mi(e){return{baseLanes:e,cachePool:null,transitions:null}}function Lc(e,t,n){var r=t.pendingProps,l=B.current,o=!1,i=(t.flags&128)!==0,u;if((u=i)||(u=e!==null&&e.memoizedState===null?!1:(l&2)!==0),u?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),A(B,l&1),e===null)return ii(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},(r&1)===0&&o!==null?(o.childLanes=0,o.pendingProps=i):o=Hl(i,r,0,null),e=Vt(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=mi(n),t.memoizedState=pi,e):nu(t,i));if(l=e.memoizedState,l!==null&&(u=l.dehydrated,u!==null))return Np(e,t,i,r,u,l,n);if(o){o=r.fallback,i=t.mode,l=e.child,u=l.sibling;var s={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=_t(l,s),r.subtreeFlags=l.subtreeFlags&14680064),u!==null?o=_t(u,o):(o=Vt(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?mi(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=pi,r}return o=e.child,e=o.sibling,r=_t(o,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function nu(e,t){return t=Hl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Xr(e,t,n,r){return r!==null&&Wi(r),kn(t,e.child,null,n),e=nu(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Np(e,t,n,r,l,o,i){if(n)return t.flags&256?(t.flags&=-257,r=Po(Error(y(422))),Xr(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,l=t.mode,r=Hl({mode:"visible",children:r.children},l,0,null),o=Vt(o,l,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,(t.mode&1)!==0&&kn(t,e.child,null,i),t.child.memoizedState=mi(i),t.memoizedState=pi,o);if((t.mode&1)===0)return Xr(e,t,i,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var u=r.dgst;return r=u,o=Error(y(419)),r=Po(o,r,void 0),Xr(e,t,i,r)}if(u=(i&e.childLanes)!==0,he||u){if(r=q,r!==null){switch(i&-i){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=(l&(r.suspendedLanes|i))!==0?0:l,l!==0&&l!==o.retryLane&&(o.retryLane=l,rt(e,l),He(r,e,l,-1))}return su(),r=Po(Error(y(421))),Xr(e,t,i,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Bp.bind(null,e),l._reactRetry=t,null):(e=o.treeContext,we=St(l.nextSibling),Ee=t,U=!0,Be=null,e!==null&&(Pe[Le++]=qe,Pe[Le++]=be,Pe[Le++]=Wt,qe=e.id,be=e.overflow,Wt=t),t=nu(t,r.children),t.flags|=4096,t)}function Ws(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ui(e.return,t,n)}function Lo(e,t,n,r,l){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=l)}function Mc(e,t,n){var r=t.pendingProps,l=r.revealOrder,o=r.tail;if(fe(e,t,r.children,n),r=B.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Ws(e,n,t);else if(e.tag===19)Ws(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(A(B,r),(t.mode&1)===0)t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&_l(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),Lo(t,!1,l,n,o);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&_l(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}Lo(t,!0,n,null,o);break;case"together":Lo(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function rl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function lt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Qt|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(y(153));if(t.child!==null){for(e=t.child,n=_t(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=_t(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Tp(e,t,n){switch(t.tag){case 3:Pc(t),Sn();break;case 5:nc(t);break;case 1:ye(t.type)&&gl(t);break;case 4:Xi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;A(kl,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(A(B,B.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Lc(e,t,n):(A(B,B.current&1),e=lt(e,t,n),e!==null?e.sibling:null);A(B,B.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return Mc(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),A(B,B.current),r)break;return null;case 22:case 23:return t.lanes=0,Nc(e,t,n)}return lt(e,t,n)}var Oc,vi,zc,Dc;Oc=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};vi=function(){};zc=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,Ut(Ye.current);var o=null;switch(n){case"input":l=Fo(e,l),r=Fo(e,r),o=[];break;case"select":l=H({},l,{value:void 0}),r=H({},r,{value:void 0}),o=[];break;case"textarea":l=Vo(e,l),r=Vo(e,r),o=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=vl)}Wo(n,r);var i;n=null;for(c in l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&l[c]!=null)if(c==="style"){var u=l[c];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(nr.hasOwnProperty(c)?o||(o=[]):(o=o||[]).push(c,null));for(c in r){var s=r[c];if(u=l?.[c],r.hasOwnProperty(c)&&s!==u&&(s!=null||u!=null))if(c==="style")if(u){for(i in u)!u.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in s)s.hasOwnProperty(i)&&u[i]!==s[i]&&(n||(n={}),n[i]=s[i])}else n||(o||(o=[]),o.push(c,n)),n=s;else c==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,u=u?u.__html:void 0,s!=null&&u!==s&&(o=o||[]).push(c,s)):c==="children"?typeof s!="string"&&typeof s!="number"||(o=o||[]).push(c,""+s):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(nr.hasOwnProperty(c)?(s!=null&&c==="onScroll"&&j("scroll",e),o||u===s||(o=[])):(o=o||[]).push(c,s))}n&&(o=o||[]).push("style",n);var c=o;(t.updateQueue=c)&&(t.flags|=4)}};Dc=function(e,t,n,r){n!==r&&(t.flags|=4)};function Vn(e,t){if(!U)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ue(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Pp(e,t,n){var r=t.pendingProps;switch(Hi(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ue(t),null;case 1:return ye(t.type)&&hl(),ue(t),null;case 3:return r=t.stateNode,wn(),F(ge),F(ae),Zi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Kr(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Be!==null&&(_i(Be),Be=null))),vi(e,t),ue(t),null;case 5:Yi(t);var l=Ut(mr.current);if(n=t.type,e!==null&&t.stateNode!=null)zc(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(y(166));return ue(t),null}if(e=Ut(Ye.current),Kr(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[Ge]=t,r[dr]=o,e=(t.mode&1)!==0,n){case"dialog":j("cancel",r),j("close",r);break;case"iframe":case"object":case"embed":j("load",r);break;case"video":case"audio":for(l=0;l<\/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[Ge]=t,e[dr]=r,Oc(e,t,!1,!1),t.stateNode=e;e:{switch(i=$o(n,r),n){case"dialog":j("cancel",e),j("close",e),l=r;break;case"iframe":case"object":case"embed":j("load",e),l=r;break;case"video":case"audio":for(l=0;l_n&&(t.flags|=128,r=!0,Vn(o,!1),t.lanes=4194304)}else{if(!r)if(e=_l(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Vn(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!U)return ue(t),null}else 2*Q()-o.renderingStartTime>_n&&n!==1073741824&&(t.flags|=128,r=!0,Vn(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=Q(),t.sibling=null,n=B.current,A(B,r?n&1|2:n&1),t):(ue(t),null);case 22:case 23:return uu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(ke&1073741824)!==0&&(ue(t),t.subtreeFlags&6&&(t.flags|=8192)):ue(t),null;case 24:return null;case 25:return null}throw Error(y(156,t.tag))}function Lp(e,t){switch(Hi(t),t.tag){case 1:return ye(t.type)&&hl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return wn(),F(ge),F(ae),Zi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Yi(t),null;case 13:if(F(B),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(y(340));Sn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return F(B),null;case 4:return wn(),null;case 10:return Ri(t.type._context),null;case 22:case 23:return uu(),null;case 24:return null;default:return null}}var Yr=!1,se=!1,Mp=typeof WeakSet=="function"?WeakSet:Set,C=null;function an(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){$(e,t,r)}else n.current=null}function hi(e,t,n){try{n()}catch(r){$(e,t,r)}}var $s=!1;function Op(e,t){if(bo=dl,e=Ua(),Bi(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 l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,u=-1,s=-1,c=0,p=0,m=e,v=null;t:for(;;){for(var S;m!==n||l!==0&&m.nodeType!==3||(u=i+l),m!==o||r!==0&&m.nodeType!==3||(s=i+r),m.nodeType===3&&(i+=m.nodeValue.length),(S=m.firstChild)!==null;)v=m,m=S;for(;;){if(m===e)break t;if(v===n&&++c===l&&(u=i),v===o&&++p===r&&(s=i),(S=m.nextSibling)!==null)break;m=v,v=m.parentNode}m=S}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(ei={focusedElem:e,selectionRange:n},dl=!1,C=t;C!==null;)if(t=C,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,C=e;else for(;C!==null;){t=C;try{var k=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(k!==null){var w=k.memoizedProps,O=k.memoizedState,d=t.stateNode,a=d.getSnapshotBeforeUpdate(t.elementType===t.type?w:Fe(t.type,w),O);d.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(h){$(t,t.return,h)}if(e=t.sibling,e!==null){e.return=t.return,C=e;break}C=t.return}return k=$s,$s=!1,k}function bn(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&hi(t,n,o)}l=l.next}while(l!==r)}}function Bl(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 gi(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 Ic(e){var t=e.alternate;t!==null&&(e.alternate=null,Ic(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ge],delete t[dr],delete t[ri],delete t[pp],delete t[mp])),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 Ac(e){return e.tag===5||e.tag===3||e.tag===4}function Qs(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ac(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 yi(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=vl));else if(r!==4&&(e=e.child,e!==null))for(yi(e,t,n),e=e.sibling;e!==null;)yi(e,t,n),e=e.sibling}function Si(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(Si(e,t,n),e=e.sibling;e!==null;)Si(e,t,n),e=e.sibling}var te=null,Ue=!1;function at(e,t,n){for(n=n.child;n!==null;)jc(e,t,n),n=n.sibling}function jc(e,t,n){if(Xe&&typeof Xe.onCommitFiberUnmount=="function")try{Xe.onCommitFiberUnmount(Ol,n)}catch{}switch(n.tag){case 5:se||an(n,t);case 6:var r=te,l=Ue;te=null,at(e,t,n),te=r,Ue=l,te!==null&&(Ue?(e=te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):te.removeChild(n.stateNode));break;case 18:te!==null&&(Ue?(e=te,n=n.stateNode,e.nodeType===8?Eo(e.parentNode,n):e.nodeType===1&&Eo(e,n),ur(e)):Eo(te,n.stateNode));break;case 4:r=te,l=Ue,te=n.stateNode.containerInfo,Ue=!0,at(e,t,n),te=r,Ue=l;break;case 0:case 11:case 14:case 15:if(!se&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&hi(n,t,i),l=l.next}while(l!==r)}at(e,t,n);break;case 1:if(!se&&(an(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){$(n,t,u)}at(e,t,n);break;case 21:at(e,t,n);break;case 22:n.mode&1?(se=(r=se)||n.memoizedState!==null,at(e,t,n),se=r):at(e,t,n);break;default:at(e,t,n)}}function Rs(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Mp),t.forEach(function(r){var l=Vp.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function je(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=Q()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Dp(r/1960))-r,10e?16:e,vt===null)var r=!1;else{if(e=vt,vt=null,Pl=0,(M&6)!==0)throw Error(y(331));var l=M;for(M|=4,C=e.current;C!==null;){var o=C,i=o.child;if((C.flags&16)!==0){var u=o.deletions;if(u!==null){for(var s=0;sQ()-ou?Bt(e,0):lu|=n),Se(e,t)}function Qc(e,t){t===0&&((e.mode&1)===0?t=1:(t=jr,jr<<=1,(jr&130023424)===0&&(jr=4194304)));var n=de();e=rt(e,t),e!==null&&(Sr(e,t,n),Se(e,n))}function Bp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Qc(e,n)}function Vp(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(t),Qc(e,n)}var Rc;Rc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ge.current)he=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return he=!1,Tp(e,t,n);he=(e.flags&131072)!==0}else he=!1,U&&(t.flags&1048576)!==0&&Ya(t,Sl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;rl(e,t),e=t.pendingProps;var l=yn(t,ae.current);vn(t,n),l=qi(null,t,r,e,l,n);var o=bi();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ye(r)?(o=!0,gl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Gi(t),l.updater=Ul,t.stateNode=l,l._reactInternals=t,ai(t,r,e,n),t=di(null,t,r,!0,o,n)):(t.tag=0,U&&o&&Vi(t),fe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(rl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Wp(r),e=Fe(r,e),l){case 0:t=fi(null,t,r,e,n);break e;case 1:t=Vs(null,t,r,e,n);break e;case 11:t=Us(null,t,r,e,n);break e;case 14:t=Bs(null,t,r,Fe(r.type,e),n);break e}throw Error(y(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Fe(r,l),fi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Fe(r,l),Vs(e,t,r,l,n);case 3:e:{if(Pc(t),e===null)throw Error(y(387));r=t.pendingProps,o=t.memoizedState,l=o.element,tc(e,t),El(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){l=En(Error(y(423)),t),t=Hs(e,t,r,n,l);break e}else if(r!==l){l=En(Error(y(424)),t),t=Hs(e,t,r,n,l);break e}else for(we=St(t.stateNode.containerInfo.firstChild),Ee=t,U=!0,Be=null,n=ba(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sn(),r===l){t=lt(e,t,n);break e}fe(e,t,r,n)}t=t.child}return t;case 5:return nc(t),e===null&&ii(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,ti(r,l)?i=null:o!==null&&ti(r,o)&&(t.flags|=32),Tc(e,t),fe(e,t,i,n),t.child;case 6:return e===null&&ii(t),null;case 13:return Lc(e,t,n);case 4:return Xi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=kn(t,null,r,n):fe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Fe(r,l),Us(e,t,r,l,n);case 7:return fe(e,t,t.pendingProps,n),t.child;case 8:return fe(e,t,t.pendingProps.children,n),t.child;case 12:return fe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,A(kl,r._currentValue),r._currentValue=i,o!==null)if(We(o.value,i)){if(o.children===l.children&&!ge.current){t=lt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=et(-1,n&-n),s.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var p=c.pending;p===null?s.next=s:(s.next=p.next,p.next=s),c.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),ui(o.return,n,t),u.lanes|=n;break}s=s.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(y(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),ui(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}fe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,vn(t,n),l=ze(l),r=r(l),t.flags|=1,fe(e,t,r,n),t.child;case 14:return r=t.type,l=Fe(r,t.pendingProps),l=Fe(r.type,l),Bs(e,t,r,l,n);case 15:return xc(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Fe(r,l),rl(e,t),t.tag=1,ye(r)?(e=!0,gl(t)):e=!1,vn(t,n),Ec(t,r,l),ai(t,r,l,n),di(null,t,r,!0,e,n);case 19:return Mc(e,t,n);case 22:return Nc(e,t,n)}throw Error(y(156,t.tag))};function Kc(e,t){return Sa(e,t)}function Hp(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 Me(e,t,n,r){return new Hp(e,t,n,r)}function au(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Wp(e){if(typeof e=="function")return au(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Pi)return 11;if(e===Li)return 14}return 2}function _t(e,t){var n=e.alternate;return n===null?(n=Me(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 il(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")au(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case bt:return Vt(n.children,l,o,t);case Ti:i=8,l|=8;break;case Do:return e=Me(12,n,t,l|2),e.elementType=Do,e.lanes=o,e;case Io:return e=Me(13,n,t,l),e.elementType=Io,e.lanes=o,e;case Ao:return e=Me(19,n,t,l),e.elementType=Ao,e.lanes=o,e;case na:return Hl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ea:i=10;break e;case ta:i=9;break e;case Pi:i=11;break e;case Li:i=14;break e;case ct:i=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return t=Me(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function Vt(e,t,n,r){return e=Me(7,e,r,t),e.lanes=n,e}function Hl(e,t,n,r){return e=Me(22,e,r,t),e.elementType=na,e.lanes=n,e.stateNode={isHidden:!1},e}function Mo(e,t,n){return e=Me(6,e,null,t),e.lanes=n,e}function Oo(e,t,n){return t=Me(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $p(e,t,n,r,l){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=mo(0),this.expirationTimes=mo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=mo(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function cu(e,t,n,r,l,o,i,u,s){return e=new $p(e,t,n,u,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Me(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Gi(o),e}function Qp(e,t,n){var r=3{"use strict";function Jc(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Jc)}catch(e){console.error(e)}}Jc(),qc.exports=Zc()});var tf=zt(mu=>{"use strict";var ef=bc();mu.createRoot=ef.createRoot,mu.hydrateRoot=ef.hydrateRoot;var lm});var hu=ee(Z(),1),_f=ee(tf(),1);var K=ee(Z(),1);var z=ee(Z(),1);var b=ee(Z(),1);function nf({preference:e,onThemeChange:t}){let n=()=>{let o=["system","light","dark"],u=(o.indexOf(e)+1)%o.length;t(o[u])},r=()=>{switch(e){case"light":return b.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},b.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),b.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),b.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),b.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),b.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),b.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),b.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),b.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),b.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return b.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},b.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));case"system":default:return b.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},b.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),b.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),b.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},l=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";case"system":default:return"Theme: System (click for Light)"}};return b.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:l(),"aria-label":l()},r())}function rf({isConnected:e,projects:t,currentFilter:n,onFilterChange:r,onSettingsToggle:l,sidebarOpen:o,isProcessing:i,queueDepth:u,themePreference:s,onThemeChange:c}){return z.default.createElement("div",{className:"header"},z.default.createElement("h1",null,z.default.createElement("div",{style:{position:"relative",display:"inline-block"}},z.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${i?"spinning":""}`}),u>0&&z.default.createElement("div",{className:"queue-bubble"},u)),z.default.createElement("span",{className:"logo-text"},"claude-mem")),z.default.createElement("div",{className:"status"},z.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",title:"Documentation",className:"icon-link"},z.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),z.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),z.default.createElement("a",{href:"https://github.com/thedotmack/claude-mem/",target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},z.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},z.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))),z.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",title:"X (Twitter)",className:"icon-link"},z.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},z.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),z.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"community-btn",title:"Join our Discord community"},z.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},z.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"})),z.default.createElement("span",null,"Community")),z.default.createElement("select",{value:n,onChange:p=>r(p.target.value)},z.default.createElement("option",{value:""},"All Projects"),t.map(p=>z.default.createElement("option",{key:p,value:p},p))),z.default.createElement(nf,{preference:s,onThemeChange:c}),z.default.createElement("button",{className:`settings-btn ${o?"active":""}`,onClick:l,title:"Settings"},z.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),z.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var R=ee(Z(),1);var L=ee(Z(),1);function Nn(e){return new Date(e).toLocaleString()}function lf(e){if(!e)return"-";let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return`${t}h ${n}m`}function of(e){return e?e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/(1024*1024)).toFixed(1)+" MB":"-"}function uf(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let l of t){let o=e.indexOf(l);if(o!==-1)return e.substring(o+1)}let n=e.indexOf("claude-mem/");if(n!==-1)return e.substring(n+11);let r=e.split("/");return r.length>3?r.slice(-3).join("/"):e}function sf({observation:e}){let[t,n]=(0,L.useState)(!1),[r,l]=(0,L.useState)(!1),o=Nn(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],u=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read).map(uf):[],c=e.files_modified?JSON.parse(e.files_modified).map(uf):[],p=i.length>0||u.length>0||s.length>0||c.length>0;return L.default.createElement("div",{className:"card"},L.default.createElement("div",{className:"card-header"},L.default.createElement("div",{className:"card-header-left"},L.default.createElement("span",{className:`card-type type-${e.type}`},e.type),L.default.createElement("span",{className:"card-project"},e.project)),L.default.createElement("div",{className:"view-mode-toggles"},p&&L.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||l(!1)}},L.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},L.default.createElement("polyline",{points:"9 11 12 14 22 4"}),L.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),L.default.createElement("span",null,"facts")),e.narrative&&L.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{l(!r),r||n(!1)}},L.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},L.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),L.default.createElement("polyline",{points:"14 2 14 8 20 8"}),L.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),L.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),L.default.createElement("span",null,"narrative")))),L.default.createElement("div",{className:"card-title"},e.title||"Untitled"),L.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&L.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&L.default.createElement("ul",{className:"facts-list"},i.map((m,v)=>L.default.createElement("li",{key:v},m))),r&&e.narrative&&L.default.createElement("div",{className:"narrative"},e.narrative)),L.default.createElement("div",{className:"card-meta"},L.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",o),t&&(u.length>0||s.length>0||c.length>0)&&L.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},u.map((m,v)=>L.default.createElement("span",{key:v,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},m)),s.length>0&&L.default.createElement("span",{className:"meta-files"},L.default.createElement("span",{className:"file-label"},"read:")," ",s.join(", ")),c.length>0&&L.default.createElement("span",{className:"meta-files"},L.default.createElement("span",{className:"file-label"},"modified:")," ",c.join(", ")))))}var le=ee(Z(),1);function af({summary:e}){let t=Nn(e.created_at_epoch),n=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(r=>r.content);return le.default.createElement("article",{className:"card summary-card"},le.default.createElement("header",{className:"summary-card-header"},le.default.createElement("div",{className:"summary-badge-row"},le.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),le.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&le.default.createElement("h2",{className:"summary-title"},e.request)),le.default.createElement("div",{className:"summary-sections"},n.map((r,l)=>le.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${l*50}ms`}},le.default.createElement("div",{className:"summary-section-header"},le.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),le.default.createElement("h3",{className:"summary-section-label"},r.label)),le.default.createElement("div",{className:"summary-section-content"},r.content)))),le.default.createElement("footer",{className:"summary-card-footer"},le.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),le.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),le.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var it=ee(Z(),1);function cf({prompt:e}){let t=Nn(e.created_at_epoch);return it.default.createElement("div",{className:"card prompt-card"},it.default.createElement("div",{className:"card-header"},it.default.createElement("div",{className:"card-header-left"},it.default.createElement("span",{className:"card-type"},"Prompt"),it.default.createElement("span",{className:"card-project"},e.project))),it.default.createElement("div",{className:"card-content"},e.prompt_text),it.default.createElement("div",{className:"card-meta"},it.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Lt=ee(Z(),1);function ff({targetRef:e}){let[t,n]=(0,Lt.useState)(!1);(0,Lt.useEffect)(()=>{let l=()=>{let i=e.current;i&&n(i.scrollTop>300)},o=e.current;if(o)return o.addEventListener("scroll",l),()=>o.removeEventListener("scroll",l)},[]);let r=()=>{let l=e.current;l&&l.scrollTo({top:0,behavior:"smooth"})};return t?Lt.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},Lt.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Lt.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var _r={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function df({observations:e,summaries:t,prompts:n,onLoadMore:r,isLoading:l,hasMore:o}){let i=(0,R.useRef)(null),u=(0,R.useRef)(null),s=(0,R.useRef)(r);(0,R.useEffect)(()=>{s.current=r},[r]),(0,R.useEffect)(()=>{let p=i.current;if(!p)return;let m=new IntersectionObserver(v=>{v[0].isIntersecting&&o&&!l&&s.current?.()},{threshold:_r.LOAD_MORE_THRESHOLD});return m.observe(p),()=>{p&&m.unobserve(p),m.disconnect()}},[o,l]);let c=(0,R.useMemo)(()=>[...e.map(m=>({...m,itemType:"observation"})),...t.map(m=>({...m,itemType:"summary"})),...n.map(m=>({...m,itemType:"prompt"}))].sort((m,v)=>v.created_at_epoch-m.created_at_epoch),[e,t,n]);return R.default.createElement("div",{className:"feed",ref:u},R.default.createElement(ff,{targetRef:u}),R.default.createElement("div",{className:"feed-content"},c.map(p=>{let m=`${p.itemType}-${p.id}`;return p.itemType==="observation"?R.default.createElement(sf,{key:m,observation:p}):p.itemType==="summary"?R.default.createElement(af,{key:m,summary:p}):R.default.createElement(cf,{key:m,prompt:p})}),c.length===0&&!l&&R.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),l&&R.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},R.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),o&&!l&&c.length>0&&R.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!o&&c.length>0&&R.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var g=ee(Z(),1);var Ie={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777"};function pf({isOpen:e,settings:t,stats:n,isSaving:r,saveStatus:l,isConnected:o,projects:i,currentFilter:u,onFilterChange:s,onSave:c,onClose:p,onRefreshStats:m}){let[v,S]=(0,g.useState)(t.CLAUDE_MEM_MODEL||Ie.CLAUDE_MEM_MODEL),[k,w]=(0,g.useState)(t.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Ie.CLAUDE_MEM_CONTEXT_OBSERVATIONS),[O,d]=(0,g.useState)(t.CLAUDE_MEM_WORKER_PORT||Ie.CLAUDE_MEM_WORKER_PORT),[a,f]=(0,g.useState)(!0),[h,E]=(0,g.useState)(!1),[N,x]=(0,g.useState)("");(0,g.useEffect)(()=>{S(t.CLAUDE_MEM_MODEL||Ie.CLAUDE_MEM_MODEL),w(t.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Ie.CLAUDE_MEM_CONTEXT_OBSERVATIONS),d(t.CLAUDE_MEM_WORKER_PORT||Ie.CLAUDE_MEM_WORKER_PORT)},[t]),(0,g.useEffect)(()=>{fetch("/api/mcp/status").then(_=>_.json()).then(_=>f(_.enabled)).catch(_=>console.error("Failed to load MCP status:",_))},[]),(0,g.useEffect)(()=>{e&&m()},[e,m]);let T=()=>{c({CLAUDE_MEM_MODEL:v,CLAUDE_MEM_CONTEXT_OBSERVATIONS:k,CLAUDE_MEM_WORKER_PORT:O})},W=async _=>{E(!0),x("Toggling...");try{let Ot=await(await fetch("/api/mcp/toggle",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:_})})).json();Ot.success?(f(Ot.enabled),x("\u2713 Updated (restart Claude Code to apply)"),setTimeout(()=>x(""),3e3)):(x(`\u2717 Error: ${Ot.error}`),setTimeout(()=>x(""),3e3))}catch(me){x(`\u2717 Error: ${me instanceof Error?me.message:"Unknown error"}`),setTimeout(()=>x(""),3e3)}finally{E(!1)}};return g.default.createElement("div",{className:`sidebar ${e?"open":""}`},g.default.createElement("div",{className:"sidebar-header"},g.default.createElement("h1",null,"Settings"),g.default.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center"}},g.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px"}},g.default.createElement("span",{className:`status-dot ${o?"connected":""}`}),g.default.createElement("span",{style:{fontSize:"11px",opacity:.5,fontWeight:300}},o?"Connected":"Disconnected")),g.default.createElement("button",{onClick:T,disabled:r},r?"Saving...":"Save"),g.default.createElement("button",{onClick:p,title:"Close settings",style:{background:"transparent",border:"1px solid #404040",padding:"8px",width:"36px",height:"36px",display:"flex",alignItems:"center",justifyContent:"center"}},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},g.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),g.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),g.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"sidebar-community-btn",title:"Join our Discord community"},g.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},g.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"})),g.default.createElement("span",null,"Community")),g.default.createElement("div",{className:"sidebar-social-links"},g.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",title:"Documentation",className:"icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},g.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),g.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),g.default.createElement("a",{href:"https://github.com/thedotmack/claude-mem/",target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},g.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))),g.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",title:"X (Twitter)",className:"icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},g.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})))),g.default.createElement("div",{className:"sidebar-project-filter"},g.default.createElement("label",{htmlFor:"sidebar-project-select"},"Filter by Project"),g.default.createElement("select",{id:"sidebar-project-select",value:u,onChange:_=>s(_.target.value)},g.default.createElement("option",{value:""},"All Projects"),i.map(_=>g.default.createElement("option",{key:_,value:_},_)))),g.default.createElement("div",{className:"stats-scroll"},g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Environment Variables"),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"model"},"CLAUDE_MEM_MODEL"),g.default.createElement("div",{className:"setting-description"},"Model used for AI compression of tool observations. Haiku is fast and cheap, Sonnet offers better quality, Opus is most capable but expensive."),g.default.createElement("select",{id:"model",value:v,onChange:_=>S(_.target.value)},g.default.createElement("option",{value:"claude-haiku-4-5"},"claude-haiku-4-5"),g.default.createElement("option",{value:"claude-sonnet-4-5"},"claude-sonnet-4-5"),g.default.createElement("option",{value:"claude-opus-4"},"claude-opus-4"))),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"contextObs"},"CLAUDE_MEM_CONTEXT_OBSERVATIONS"),g.default.createElement("div",{className:"setting-description"},"Number of recent observations to inject at session start. Higher values provide more context but increase token usage. Default: 50"),g.default.createElement("input",{type:"number",id:"contextObs",min:"1",max:"200",value:k,onChange:_=>w(_.target.value)})),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"workerPort"},"CLAUDE_MEM_WORKER_PORT"),g.default.createElement("div",{className:"setting-description"},"Port number for the background worker service. Change only if port 37777 conflicts with another service."),g.default.createElement("input",{type:"number",id:"workerPort",min:"1024",max:"65535",value:O,onChange:_=>d(_.target.value)})),l&&g.default.createElement("div",{className:"save-status"},l)),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"MCP Search Server"),g.default.createElement("div",{className:"form-group"},g.default.createElement("label",{htmlFor:"mcpEnabled",style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"}},g.default.createElement("input",{type:"checkbox",id:"mcpEnabled",checked:a,onChange:_=>W(_.target.checked),disabled:h,style:{cursor:h?"not-allowed":"pointer"}}),"Enable MCP Search Server"),g.default.createElement("div",{className:"setting-description"},"claude-mem suggests using skill-based search (saves ~2,500 tokens at session start), but some users prefer MCP. Disable to only use skill-based search. Requires Claude Code restart to apply changes."),N&&g.default.createElement("div",{className:"save-status"},N))),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Worker Stats"),g.default.createElement("div",{className:"stats-grid"},g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Version"),g.default.createElement("div",{className:"stat-value"},n.worker?.version||"-")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Uptime"),g.default.createElement("div",{className:"stat-value"},lf(n.worker?.uptime))),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Active Sessions"),g.default.createElement("div",{className:"stat-value"},n.worker?.activeSessions||"0")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"SSE Clients"),g.default.createElement("div",{className:"stat-value"},n.worker?.sseClients||"0")))),g.default.createElement("div",{className:"settings-section"},g.default.createElement("h3",null,"Database Stats"),g.default.createElement("div",{className:"stats-grid"},g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"DB Size"),g.default.createElement("div",{className:"stat-value"},of(n.database?.size))),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Observations"),g.default.createElement("div",{className:"stat-value"},n.database?.observations||"0")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Sessions"),g.default.createElement("div",{className:"stat-value"},n.database?.sessions||"0")),g.default.createElement("div",{className:"stat"},g.default.createElement("div",{className:"stat-label"},"Summaries"),g.default.createElement("div",{className:"stat-value"},n.database?.summaries||"0"))))))}var Ne=ee(Z(),1);var $e={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Kl={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function mf(){let[e,t]=(0,Ne.useState)([]),[n,r]=(0,Ne.useState)([]),[l,o]=(0,Ne.useState)([]),[i,u]=(0,Ne.useState)([]),[s,c]=(0,Ne.useState)(!1),[p,m]=(0,Ne.useState)(!1),[v,S]=(0,Ne.useState)(0),k=(0,Ne.useRef)(null),w=(0,Ne.useRef)();return(0,Ne.useEffect)(()=>{let O=()=>{k.current&&k.current.close();let d=new EventSource($e.STREAM);k.current=d,d.onopen=()=>{console.log("[SSE] Connected"),c(!0),w.current&&clearTimeout(w.current)},d.onerror=a=>{console.error("[SSE] Connection error:",a),c(!1),d.close(),w.current=setTimeout(()=>{w.current=void 0,console.log("[SSE] Attempting to reconnect..."),O()},Kl.SSE_RECONNECT_DELAY_MS)},d.onmessage=a=>{try{let f=JSON.parse(a.data);switch(f.type){case"initial_load":console.log("[SSE] Initial load:",{projects:f.projects?.length||0}),u(f.projects||[]);break;case"new_observation":f.observation&&(console.log("[SSE] New observation:",f.observation.id),t(h=>[f.observation,...h]));break;case"new_summary":if(f.summary){let h=f.summary;console.log("[SSE] New summary:",h.id),r(E=>[h,...E])}break;case"new_prompt":if(f.prompt){let h=f.prompt;console.log("[SSE] New prompt:",h.id),o(E=>[h,...E])}break;case"processing_status":typeof f.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",f.isProcessing,"Queue depth:",f.queueDepth),m(f.isProcessing),S(f.queueDepth||0));break}}catch(f){console.error("[SSE] Failed to parse message:",f)}}};return O(),()=>{k.current&&k.current.close(),w.current&&clearTimeout(w.current)}},[]),{observations:e,summaries:n,prompts:l,projects:i,isProcessing:p,queueDepth:v,isConnected:s}}var Tn=ee(Z(),1);function vf(){let[e,t]=(0,Tn.useState)(Ie),[n,r]=(0,Tn.useState)(!1),[l,o]=(0,Tn.useState)("");return(0,Tn.useEffect)(()=>{fetch($e.SETTINGS).then(u=>u.json()).then(u=>{t({CLAUDE_MEM_MODEL:u.CLAUDE_MEM_MODEL||Ie.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:u.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Ie.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:u.CLAUDE_MEM_WORKER_PORT||Ie.CLAUDE_MEM_WORKER_PORT})}).catch(u=>{console.error("Failed to load settings:",u)})},[]),{settings:e,saveSettings:async u=>{r(!0),o("Saving...");try{let c=await(await fetch($e.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)})).json();c.success?(t(u),o("\u2713 Saved"),setTimeout(()=>o(""),Kl.SAVE_STATUS_DISPLAY_DURATION_MS)):o(`\u2717 Error: ${c.error}`)}catch(s){o(`\u2717 Error: ${s instanceof Error?s.message:"Unknown error"}`)}finally{r(!1)}},isSaving:n,saveStatus:l}}var Pn=ee(Z(),1);function hf(){let[e,t]=(0,Pn.useState)({}),n=(0,Pn.useCallback)(async()=>{try{let l=await(await fetch($e.STATS)).json();t(l)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Pn.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var Mt=ee(Z(),1);function vu(e,t,n){let[r,l]=(0,Mt.useState)({isLoading:!1,hasMore:!0}),o=(0,Mt.useRef)(0),i=(0,Mt.useRef)(n),u=(0,Mt.useRef)(r),s=(0,Mt.useCallback)(async()=>{let c=i.current!==n;if(c){o.current=0,i.current=n;let p={isLoading:!1,hasMore:!0};l(p),u.current=p}if(!c&&(u.current.isLoading||!u.current.hasMore))return[];l(p=>({...p,isLoading:!0}));try{let p=new URLSearchParams({offset:o.current.toString(),limit:_r.PAGINATION_PAGE_SIZE.toString()});n&&p.append("project",n);let m=await fetch(`${e}?${p}`);if(!m.ok)throw new Error(`Failed to load ${t}: ${m.statusText}`);let v=await m.json();return l(S=>({...S,isLoading:!1,hasMore:v.hasMore})),o.current+=_r.PAGINATION_PAGE_SIZE,v.items}catch(p){return console.error(`Failed to load ${t}:`,p),l(m=>({...m,isLoading:!1})),[]}},[n,e,t]);return{...r,loadMore:s}}function gf(e){let t=vu($e.OBSERVATIONS,"observations",e),n=vu($e.SUMMARIES,"summaries",e),r=vu($e.PROMPTS,"prompts",e);return{observations:t,summaries:n,prompts:r}}var Ln=ee(Z(),1),kf="claude-mem-theme";function Yp(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function yf(){try{let e=localStorage.getItem(kf);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Sf(e){return e==="system"?Yp():e}function wf(){let[e,t]=(0,Ln.useState)(yf),[n,r]=(0,Ln.useState)(()=>Sf(yf()));return(0,Ln.useEffect)(()=>{let o=Sf(e);r(o),document.documentElement.setAttribute("data-theme",o)},[e]),(0,Ln.useEffect)(()=>{if(e!=="system")return;let o=window.matchMedia("(prefers-color-scheme: dark)"),i=u=>{let s=u.matches?"dark":"light";r(s),document.documentElement.setAttribute("data-theme",s)};return o.addEventListener("change",i),()=>o.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:n,setThemePreference:o=>{try{localStorage.setItem(kf,o),t(o)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(o)}}}}function Gl(e,t){let n=new Set;return[...e,...t].filter(r=>n.has(r.id)?!1:(n.add(r.id),!0))}function Ef(){let[e,t]=(0,K.useState)(""),[n,r]=(0,K.useState)(!1),[l,o]=(0,K.useState)([]),[i,u]=(0,K.useState)([]),[s,c]=(0,K.useState)([]),{observations:p,summaries:m,prompts:v,projects:S,isProcessing:k,queueDepth:w,isConnected:O}=mf(),{settings:d,saveSettings:a,isSaving:f,saveStatus:h}=vf(),{stats:E,refreshStats:N}=hf(),{preference:x,resolvedTheme:T,setThemePreference:W}=wf(),_=gf(e),me=(0,K.useMemo)(()=>e?l:Gl(p,l),[p,l,e]),Ot=(0,K.useMemo)(()=>e?i:Gl(m,i),[m,i,e]),xf=(0,K.useMemo)(()=>e?s:Gl(v,s),[v,s,e]),gu=(0,K.useCallback)(()=>{r(Xt=>!Xt)},[]),yu=(0,K.useCallback)(async()=>{try{let[Xt,Su,ku]=await Promise.all([_.observations.loadMore(),_.summaries.loadMore(),_.prompts.loadMore()]);Xt.length>0&&o(Mn=>[...Mn,...Xt]),Su.length>0&&u(Mn=>[...Mn,...Su]),ku.length>0&&c(Mn=>[...Mn,...ku])}catch(Xt){console.error("Failed to load more data:",Xt)}},[e,_.observations,_.summaries,_.prompts]);return(0,K.useEffect)(()=>{o([]),u([]),c([]),yu()},[e]),K.default.createElement(K.default.Fragment,null,K.default.createElement(rf,{isConnected:O,projects:S,currentFilter:e,onFilterChange:t,onSettingsToggle:gu,sidebarOpen:n,isProcessing:k,queueDepth:w,themePreference:x,onThemeChange:W}),K.default.createElement(df,{observations:me,summaries:Ot,prompts:xf,onLoadMore:yu,isLoading:_.observations.isLoading||_.summaries.isLoading||_.prompts.isLoading,hasMore:_.observations.hasMore||_.summaries.hasMore||_.prompts.hasMore}),K.default.createElement(pf,{isOpen:n,settings:d,stats:E,isSaving:f,saveStatus:h,isConnected:O,projects:S,currentFilter:e,onFilterChange:t,onSave:a,onClose:gu,onRefreshStats:N}))}var ut=ee(Z(),1),Xl=class extends ut.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] Caught error:",t,n),this.setState({error:t,errorInfo:n})}render(){return this.state.hasError?ut.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},ut.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),ut.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&ut.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},ut.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),ut.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` -`+this.state.errorInfo.componentStack))):this.props.children}};var _d=document.getElementById("root");if(!_d)throw new Error("Root element not found");var Zp=(0,xd.createRoot)(_d);Zp.render(wu.default.createElement(ql,null,wu.default.createElement(Ed,null)));})(); +`+this.state.errorInfo.componentStack))):this.props.children}};var Cf=document.getElementById("root");if(!Cf)throw new Error("Root element not found");var Zp=(0,_f.createRoot)(Cf);Zp.render(hu.default.createElement(Xl,null,hu.default.createElement(Ef,null)));})(); /*! Bundled license information: react/cjs/react.production.min.js: diff --git a/plugin/ui/viewer.html b/plugin/ui/viewer.html index 3028591a..a7878104 100644 --- a/plugin/ui/viewer.html +++ b/plugin/ui/viewer.html @@ -297,10 +297,9 @@ overflow: hidden; } - .container { + .full-height-flex-layout { display: flex; - height: 100vh; - width: 100vw; + height: 100%; position: relative; } @@ -314,8 +313,9 @@ position: fixed; right: 0; top: 0; - width: 400px; height: 100vh; + width: 100%; + max-width: 400px; background: var(--color-bg-primary); border-left: 1px solid var(--color-border-primary); display: flex; @@ -331,12 +331,16 @@ } .header { - padding: 14px 18px; + padding: 16px 24px; border-bottom: 1px solid var(--color-border-primary); display: flex; justify-content: space-between; align-items: center; - background: var(--color-bg-header); + background: linear-gradient(to bottom, + var(--color-bg-header) 0%, + var(--color-bg-primary) 100%); + backdrop-filter: blur(8px); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03); } .sidebar-header { @@ -354,13 +358,124 @@ color: var(--color-text-header); } + .sidebar-community-btn { + display: none; + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 14px; + height: 36px; + cursor: pointer; + align-items: center; + justify-content: center; + color: var(--color-text-secondary); + font-size: 13px; + font-weight: 500; + text-decoration: none; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + white-space: nowrap; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + margin: 16px 18px; + } + + .sidebar-community-btn:hover { + background: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + } + + .sidebar-community-btn:active { + transform: translateY(0); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + @media (max-width: 600px) { + .sidebar-community-btn { + display: flex; + } + } + + .sidebar-project-filter { + display: none; + padding: 16px 18px; + border-bottom: 1px solid var(--color-border-primary); + } + + .sidebar-project-filter label { + display: block; + margin-bottom: 8px; + font-size: 12px; + color: var(--color-text-muted); + font-family: 'Monaco', 'Menlo', 'Consolas', monospace; + font-weight: 500; + } + + .sidebar-project-filter select { + width: 100%; + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 32px 0 12px; + height: 36px; + font-size: 13px; + font-weight: 500; + color: var(--color-text-secondary); + cursor: pointer; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + } + + .sidebar-project-filter select:hover { + background-color: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + } + + .sidebar-project-filter select:focus { + outline: none; + border-color: var(--color-border-focus); + box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.1); + } + + @media (max-width: 480px) { + .sidebar-project-filter { + display: block; + } + } + + .sidebar-social-links { + display: none; + padding: 16px 18px; + border-bottom: 1px solid var(--color-border-primary); + gap: 8px; + justify-content: center; + } + + .sidebar-social-links .icon-link { + flex: 1; + max-width: 80px; + } + + @media (max-width: 768px) { + .sidebar-social-links { + display: flex; + } + } + .header h1 { - font-size: 16px; + font-size: 17px; font-weight: 500; color: var(--color-text-header); display: flex; align-items: center; - gap: 10px; + gap: 12px; + line-height: 1; } @@ -385,7 +500,6 @@ font-size: 10px; font-weight: 600; font-family: 'Monaspace Radon', monospace; - min-width: 18px; height: 18px; border-radius: 9px; display: flex; @@ -409,43 +523,106 @@ .logo-text { font-family: 'Monaspace Radon', monospace; font-weight: 100; - font-size: 20px; + font-size: 21px; letter-spacing: -0.03em; color: var(--color-text-logo); + line-height: 1; + padding-top: 1px; } .status { display: flex; align-items: center; - gap: 12px; + gap: 8px; font-size: 13px; } .settings-btn, .theme-toggle-btn { - background: transparent; + background: var(--color-bg-card); border: 1px solid var(--color-border-primary); - padding: 8px; + border-radius: 6px; + padding: 0; width: 36px; height: 36px; cursor: pointer; display: flex; align-items: center; justify-content: center; - color: var(--color-text-primary); - transition: all 0.15s ease; + color: var(--color-text-secondary); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); } .settings-btn:hover, .theme-toggle-btn:hover { - background: var(--color-bg-secondary); + background: var(--color-bg-card-hover); border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); } .settings-btn.active { - background: var(--color-bg-button); + background: linear-gradient(135deg, var(--color-bg-button) 0%, var(--color-accent-primary) 100%); border-color: var(--color-bg-button); color: var(--color-text-button); + box-shadow: 0 2px 8px rgba(9, 105, 218, 0.25); + } + + .community-btn { + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 14px; + height: 36px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: var(--color-text-secondary); + font-size: 13px; + font-weight: 500; + text-decoration: none; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + white-space: nowrap; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + .community-btn:hover { + background: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + } + + .community-btn:active { + transform: translateY(0); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + .icon-link { + display: flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + color: var(--color-text-secondary); + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + text-decoration: none; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + .icon-link:hover { + background: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); } .settings-icon, @@ -492,6 +669,40 @@ transition: all 0.15s ease; } + .status select { + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 32px 0 12px; + height: 36px; + font-size: 13px; + font-weight: 500; + color: var(--color-text-secondary); + cursor: pointer; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + max-width: 180px; + } + + .status select:hover { + background-color: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + } + + .status select:focus { + outline: none; + border-color: var(--color-border-focus); + box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.1); + transform: translateY(-1px); + } + select:hover, input:hover { border-color: var(--color-border-focus); @@ -527,15 +738,15 @@ .feed { flex: 1; - overflow-y: auto; + overflow-y: scroll; + height: 100vh; padding: 24px 18px; display: flex; justify-content: center; } .feed-content { - width: 100%; - max-width: 42rem; + max-width: 650px; } .card { @@ -579,7 +790,6 @@ display: flex; align-items: center; gap: 10px; - min-width: 10%; } .card-subheading-left { @@ -1190,6 +1400,196 @@ transform: translateY(0); } } + + /* Utility: Container */ + .container { + width: 100%; + max-width: 600px; + margin: 0 auto; + } + + + /* Tablet Responsive Styles - 481px to 768px */ + @media (max-width: 768px) and (min-width: 481px) { + /* Header stays on one line, hide icon links to save space */ + .header { + padding: 14px 20px; + } + + .status { + gap: 6px; + } + + .status select { + max-width: 160px; + } + + /* Hide icon links (docs, github, twitter) on tablet */ + .icon-link { + display: none; + } + + /* Sidebar full width on tablet */ + .sidebar { + } + + /* Feed adjustments */ + .feed { + padding: 20px 16px; + } + + .feed-content { + } + + /* Card adjustments */ + .card { + padding: 20px; + } + } + + /* Mobile & Small Tablet - 600px and below */ + @media (max-width: 600px) { + /* Hide community button in header, will show in sidebar */ + .community-btn { + display: none; + } + } + + /* Mobile Responsive Styles - 480px and below */ + @media (max-width: 480px) { + /* Hide project dropdown in header, will show in sidebar */ + .status select { + display: none; + } + + /* Header stays on one line */ + .header { + padding: 12px 16px; + } + + .header h1 { + font-size: 15px; + gap: 8px; + } + + .logomark { + height: 28px; + } + + .logo-text { + font-size: 18px; + } + + .status { + display: flex; + gap: 6px; + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + scrollbar-width: none; + padding-bottom: 4px; + } + + .status::-webkit-scrollbar { + display: none; + } + + .status select { + max-width: 140px; + flex-shrink: 0; + padding: 0 28px 0 10px; + height: 32px; + font-size: 12px; + } + + /* Hide icon links on mobile */ + .icon-link { + display: none; + } + + .settings-btn, + .theme-toggle-btn, + .icon-link { + width: 32px; + height: 32px; + flex-shrink: 0; + } + + .community-btn { + height: 32px; + padding: 0 12px; + font-size: 12px; + flex-shrink: 0; + } + + .community-btn svg { + width: 12px; + height: 12px; + } + + .settings-icon, + .theme-toggle-btn svg, + .icon-link svg { + width: 16px; + height: 16px; + } + + /* Sidebar adjustments for mobile */ + .sidebar { + } + + .sidebar-header { + padding: 12px 16px; + } + + .settings-section { + padding: 16px; + } + + /* Feed adjustments */ + .feed { + padding: 16px 12px; + } + + + /* Card adjustments */ + .card { + padding: 16px; + margin-bottom: 16px; + } + + .card-title { + font-size: 15px; + } + + .card-header { + flex-wrap: wrap; + gap: 8px; + } + + .card-header-left { + flex-wrap: wrap; + } + + /* Stats grid to single column */ + .stats-grid { + grid-template-columns: 1fr; + } + + /* Form inputs full width */ + .form-group input, + .form-group select { + width: 100%; + } + + /* Scroll to top button position */ + .scroll-to-top { + bottom: 16px; + right: 16px; + width: 44px; + height: 44px; + } + } diff --git a/src/ui/viewer-template.html b/src/ui/viewer-template.html index 3028591a..a7878104 100644 --- a/src/ui/viewer-template.html +++ b/src/ui/viewer-template.html @@ -297,10 +297,9 @@ overflow: hidden; } - .container { + .full-height-flex-layout { display: flex; - height: 100vh; - width: 100vw; + height: 100%; position: relative; } @@ -314,8 +313,9 @@ position: fixed; right: 0; top: 0; - width: 400px; height: 100vh; + width: 100%; + max-width: 400px; background: var(--color-bg-primary); border-left: 1px solid var(--color-border-primary); display: flex; @@ -331,12 +331,16 @@ } .header { - padding: 14px 18px; + padding: 16px 24px; border-bottom: 1px solid var(--color-border-primary); display: flex; justify-content: space-between; align-items: center; - background: var(--color-bg-header); + background: linear-gradient(to bottom, + var(--color-bg-header) 0%, + var(--color-bg-primary) 100%); + backdrop-filter: blur(8px); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03); } .sidebar-header { @@ -354,13 +358,124 @@ color: var(--color-text-header); } + .sidebar-community-btn { + display: none; + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 14px; + height: 36px; + cursor: pointer; + align-items: center; + justify-content: center; + color: var(--color-text-secondary); + font-size: 13px; + font-weight: 500; + text-decoration: none; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + white-space: nowrap; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + margin: 16px 18px; + } + + .sidebar-community-btn:hover { + background: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + } + + .sidebar-community-btn:active { + transform: translateY(0); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + @media (max-width: 600px) { + .sidebar-community-btn { + display: flex; + } + } + + .sidebar-project-filter { + display: none; + padding: 16px 18px; + border-bottom: 1px solid var(--color-border-primary); + } + + .sidebar-project-filter label { + display: block; + margin-bottom: 8px; + font-size: 12px; + color: var(--color-text-muted); + font-family: 'Monaco', 'Menlo', 'Consolas', monospace; + font-weight: 500; + } + + .sidebar-project-filter select { + width: 100%; + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 32px 0 12px; + height: 36px; + font-size: 13px; + font-weight: 500; + color: var(--color-text-secondary); + cursor: pointer; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + } + + .sidebar-project-filter select:hover { + background-color: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + } + + .sidebar-project-filter select:focus { + outline: none; + border-color: var(--color-border-focus); + box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.1); + } + + @media (max-width: 480px) { + .sidebar-project-filter { + display: block; + } + } + + .sidebar-social-links { + display: none; + padding: 16px 18px; + border-bottom: 1px solid var(--color-border-primary); + gap: 8px; + justify-content: center; + } + + .sidebar-social-links .icon-link { + flex: 1; + max-width: 80px; + } + + @media (max-width: 768px) { + .sidebar-social-links { + display: flex; + } + } + .header h1 { - font-size: 16px; + font-size: 17px; font-weight: 500; color: var(--color-text-header); display: flex; align-items: center; - gap: 10px; + gap: 12px; + line-height: 1; } @@ -385,7 +500,6 @@ font-size: 10px; font-weight: 600; font-family: 'Monaspace Radon', monospace; - min-width: 18px; height: 18px; border-radius: 9px; display: flex; @@ -409,43 +523,106 @@ .logo-text { font-family: 'Monaspace Radon', monospace; font-weight: 100; - font-size: 20px; + font-size: 21px; letter-spacing: -0.03em; color: var(--color-text-logo); + line-height: 1; + padding-top: 1px; } .status { display: flex; align-items: center; - gap: 12px; + gap: 8px; font-size: 13px; } .settings-btn, .theme-toggle-btn { - background: transparent; + background: var(--color-bg-card); border: 1px solid var(--color-border-primary); - padding: 8px; + border-radius: 6px; + padding: 0; width: 36px; height: 36px; cursor: pointer; display: flex; align-items: center; justify-content: center; - color: var(--color-text-primary); - transition: all 0.15s ease; + color: var(--color-text-secondary); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); } .settings-btn:hover, .theme-toggle-btn:hover { - background: var(--color-bg-secondary); + background: var(--color-bg-card-hover); border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); } .settings-btn.active { - background: var(--color-bg-button); + background: linear-gradient(135deg, var(--color-bg-button) 0%, var(--color-accent-primary) 100%); border-color: var(--color-bg-button); color: var(--color-text-button); + box-shadow: 0 2px 8px rgba(9, 105, 218, 0.25); + } + + .community-btn { + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 14px; + height: 36px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: var(--color-text-secondary); + font-size: 13px; + font-weight: 500; + text-decoration: none; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + white-space: nowrap; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + .community-btn:hover { + background: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + } + + .community-btn:active { + transform: translateY(0); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + .icon-link { + display: flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + color: var(--color-text-secondary); + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + text-decoration: none; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + } + + .icon-link:hover { + background: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); } .settings-icon, @@ -492,6 +669,40 @@ transition: all 0.15s ease; } + .status select { + background: var(--color-bg-card); + border: 1px solid var(--color-border-primary); + border-radius: 6px; + padding: 0 32px 0 12px; + height: 36px; + font-size: 13px; + font-weight: 500; + color: var(--color-text-secondary); + cursor: pointer; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 10px center; + max-width: 180px; + } + + .status select:hover { + background-color: var(--color-bg-card-hover); + border-color: var(--color-border-focus); + color: var(--color-text-primary); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); + } + + .status select:focus { + outline: none; + border-color: var(--color-border-focus); + box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.1); + transform: translateY(-1px); + } + select:hover, input:hover { border-color: var(--color-border-focus); @@ -527,15 +738,15 @@ .feed { flex: 1; - overflow-y: auto; + overflow-y: scroll; + height: 100vh; padding: 24px 18px; display: flex; justify-content: center; } .feed-content { - width: 100%; - max-width: 42rem; + max-width: 650px; } .card { @@ -579,7 +790,6 @@ display: flex; align-items: center; gap: 10px; - min-width: 10%; } .card-subheading-left { @@ -1190,6 +1400,196 @@ transform: translateY(0); } } + + /* Utility: Container */ + .container { + width: 100%; + max-width: 600px; + margin: 0 auto; + } + + + /* Tablet Responsive Styles - 481px to 768px */ + @media (max-width: 768px) and (min-width: 481px) { + /* Header stays on one line, hide icon links to save space */ + .header { + padding: 14px 20px; + } + + .status { + gap: 6px; + } + + .status select { + max-width: 160px; + } + + /* Hide icon links (docs, github, twitter) on tablet */ + .icon-link { + display: none; + } + + /* Sidebar full width on tablet */ + .sidebar { + } + + /* Feed adjustments */ + .feed { + padding: 20px 16px; + } + + .feed-content { + } + + /* Card adjustments */ + .card { + padding: 20px; + } + } + + /* Mobile & Small Tablet - 600px and below */ + @media (max-width: 600px) { + /* Hide community button in header, will show in sidebar */ + .community-btn { + display: none; + } + } + + /* Mobile Responsive Styles - 480px and below */ + @media (max-width: 480px) { + /* Hide project dropdown in header, will show in sidebar */ + .status select { + display: none; + } + + /* Header stays on one line */ + .header { + padding: 12px 16px; + } + + .header h1 { + font-size: 15px; + gap: 8px; + } + + .logomark { + height: 28px; + } + + .logo-text { + font-size: 18px; + } + + .status { + display: flex; + gap: 6px; + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + scrollbar-width: none; + padding-bottom: 4px; + } + + .status::-webkit-scrollbar { + display: none; + } + + .status select { + max-width: 140px; + flex-shrink: 0; + padding: 0 28px 0 10px; + height: 32px; + font-size: 12px; + } + + /* Hide icon links on mobile */ + .icon-link { + display: none; + } + + .settings-btn, + .theme-toggle-btn, + .icon-link { + width: 32px; + height: 32px; + flex-shrink: 0; + } + + .community-btn { + height: 32px; + padding: 0 12px; + font-size: 12px; + flex-shrink: 0; + } + + .community-btn svg { + width: 12px; + height: 12px; + } + + .settings-icon, + .theme-toggle-btn svg, + .icon-link svg { + width: 16px; + height: 16px; + } + + /* Sidebar adjustments for mobile */ + .sidebar { + } + + .sidebar-header { + padding: 12px 16px; + } + + .settings-section { + padding: 16px; + } + + /* Feed adjustments */ + .feed { + padding: 16px 12px; + } + + + /* Card adjustments */ + .card { + padding: 16px; + margin-bottom: 16px; + } + + .card-title { + font-size: 15px; + } + + .card-header { + flex-wrap: wrap; + gap: 8px; + } + + .card-header-left { + flex-wrap: wrap; + } + + /* Stats grid to single column */ + .stats-grid { + grid-template-columns: 1fr; + } + + /* Form inputs full width */ + .form-group input, + .form-group select { + width: 100%; + } + + /* Scroll to top button position */ + .scroll-to-top { + bottom: 16px; + right: 16px; + width: 44px; + height: 44px; + } + } diff --git a/src/ui/viewer/App.tsx b/src/ui/viewer/App.tsx index 49418efa..7954395f 100644 --- a/src/ui/viewer/App.tsx +++ b/src/ui/viewer/App.tsx @@ -86,29 +86,30 @@ export function App() { }, [currentFilter]); return ( -
-
-
- -
+ <> +
+ + + + -
+ ); } diff --git a/src/ui/viewer/components/Header.tsx b/src/ui/viewer/components/Header.tsx index 852ab3ad..de62a709 100644 --- a/src/ui/viewer/components/Header.tsx +++ b/src/ui/viewer/components/Header.tsx @@ -46,15 +46,7 @@ export function Header({ target="_blank" rel="noopener noreferrer" title="Documentation" - style={{ - display: 'block', - padding: '8px 4px 8px 8px', - color: '#a0a0a0', - transition: 'color 0.2s', - lineHeight: 0 - }} - onMouseEnter={(e) => e.currentTarget.style.color = '#606060'} - onMouseLeave={(e) => e.currentTarget.style.color = '#a0a0a0'} + className="icon-link" > @@ -66,15 +58,7 @@ export function Header({ target="_blank" rel="noopener noreferrer" title="GitHub" - style={{ - display: 'block', - padding: '8px 4px', - color: '#a0a0a0', - transition: 'color 0.2s', - lineHeight: 0 - }} - onMouseEnter={(e) => e.currentTarget.style.color = '#606060'} - onMouseLeave={(e) => e.currentTarget.style.color = '#a0a0a0'} + className="icon-link" > @@ -85,20 +69,24 @@ export function Header({ target="_blank" rel="noopener noreferrer" title="X (Twitter)" - style={{ - display: 'block', - padding: '8px 8px 8px 4px', - color: '#a0a0a0', - transition: 'color 0.2s', - lineHeight: 0 - }} - onMouseEnter={(e) => e.currentTarget.style.color = '#606060'} - onMouseLeave={(e) => e.currentTarget.style.color = '#a0a0a0'} + className="icon-link" > + + + + + Community + onFilterChange(e.target.value)} + > + + {projects.map(project => ( + + ))} + +
@@ -275,94 +257,6 @@ export function Sidebar({ isOpen, settings, stats, isSaving, saveStatus, isConne
-
-

Version Channel

-
- {branchInfo ? ( - <> -
- - {branchInfo.isBeta ? 'Beta' : 'Stable'} - - - {branchInfo.branch || 'main'} - -
- - {branchInfo.isBeta ? ( - <> -
- You're running the beta with Endless Mode. Your memory data is preserved when switching versions. -
-
- - -
- - ) : ( - <> -
- Try the beta to access experimental features like Endless Mode. Your memory data is preserved when switching. -
- - - )} - - {branchStatus && ( -
{branchStatus}
- )} - - ) : ( -
Loading branch info...
- )} -
-
-

Worker Stats