om-memory-system 5.3.0 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/claude-code/hook-client.d.ts +1 -1
  3. package/dist/adapters/claude-code/hook-client.js +15 -2
  4. package/dist/adapters/opencode/tui-recall.js +13 -3
  5. package/dist/adapters/pi/extension.d.ts +1 -0
  6. package/dist/adapters/pi/extension.js +28 -11
  7. package/dist/adapters/pi/recall-rows.d.ts +31 -0
  8. package/dist/adapters/pi/recall-rows.js +148 -0
  9. package/dist/adapters/pi/session-context.d.ts +22 -0
  10. package/dist/adapters/pi/session-context.js +125 -0
  11. package/dist/config-template.d.ts +1 -1
  12. package/dist/config-template.js +18 -3
  13. package/dist/config.d.ts +6 -0
  14. package/dist/config.js +5 -4
  15. package/dist/core/context-budget.d.ts +2 -0
  16. package/dist/core/context-budget.js +2 -1
  17. package/dist/core/opening-context.d.ts +45 -0
  18. package/dist/core/opening-context.js +60 -0
  19. package/dist/core/recall-summary.d.ts +11 -7
  20. package/dist/core/recall-summary.js +14 -8
  21. package/dist/core/retrieval.d.ts +16 -0
  22. package/dist/core/retrieval.js +33 -11
  23. package/dist/importer/claude-hook-api.d.ts +5 -4
  24. package/dist/importer/claude-hook-api.js +58 -41
  25. package/dist/importer/claude-hook-context.d.ts +49 -0
  26. package/dist/importer/claude-hook-context.js +264 -0
  27. package/dist/services/ai/local-api-url.d.ts +2 -0
  28. package/dist/services/ai/local-api-url.js +12 -0
  29. package/dist/services/ai/provider-config.d.ts +2 -0
  30. package/dist/services/ai/provider-config.js +3 -1
  31. package/dist/services/ai/providers/google-gemini.js +2 -1
  32. package/dist/services/ai/providers/openai-responses.js +2 -1
  33. package/dist/services/chat/chat-runtime.js +5 -1
  34. package/dist/services/chat/chat-status.js +4 -1
  35. package/dist/services/global-config-writer.js +39 -14
  36. package/dist/services/injection-options-config.d.ts +53 -0
  37. package/dist/services/injection-options-config.js +56 -0
  38. package/dist/services/settings-snapshot.js +44 -12
  39. package/dist/services/visible-recall-config.d.ts +7 -2
  40. package/dist/services/visible-recall-config.js +2 -1
  41. package/dist/utils/memory-limits.d.ts +2 -1
  42. package/dist/utils/memory-limits.js +6 -3
  43. package/dist/v2/adapter.d.ts +2 -0
  44. package/dist/v2/adapter.js +107 -33
  45. package/dist/v2/memory-bridge.d.ts +13 -0
  46. package/dist/v2/memory-bridge.js +17 -0
  47. package/dist/v2/recall-reporter.d.ts +6 -3
  48. package/dist/v2/recall-reporter.js +4 -27
  49. package/dist/v2/session-parent.d.ts +14 -0
  50. package/dist/v2/session-parent.js +26 -0
  51. package/dist/web/assets/index-7p-aYnWZ.css +2 -0
  52. package/dist/web/assets/{index-CJ_K-hMG.js → index-CaFFlcl1.js} +17 -17
  53. package/dist/web/index.html +2 -2
  54. package/package.json +1 -1
  55. package/dist/web/assets/index-ccH97VE2.css +0 -2
@@ -52,7 +52,7 @@ Error generating stack: `+e.message+`
52
52
  `||e===`\r`||e===` `||e===`\b`||e===`\f`}function yu(e,t){let n=e.charCodeAt(t);return n===Yl||n===Xl||n===Zl||n===Ql}function bu(e,t){let n=e.charCodeAt(t);return n===Yl||n===Zl||n===Ql}function xu(e,t){let n=e.charCodeAt(t);return n===$l||n===eu||n>=tu&&n<=nu||n===ru||n===iu||n===au||n===ou}function Su(e){return Cu(e)||Tu(e)}function Cu(e){return e===`"`||e===`“`||e===`”`}function wu(e){return e===`"`}function Tu(e){return e===`'`||e===`‘`||e===`’`||e==="`"||e===`´`}function Eu(e){return e===`'`}function Du(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=e.lastIndexOf(t);return r===-1?e:e.substring(0,r)+(n?``:e.substring(r+1))}function Ou(e,t){let n=e.length;if(!yu(e,n-1))return e+t;for(;yu(e,n-1);)n--;return e.substring(0,n)+t+e.substring(n)}function ku(e,t,n){return e.substring(0,t)+e.substring(t+n)}function Au(e){return/[,\n][ \t\r]*$/.test(e)}var ju={"&quot;":`"`,"&amp;":`&`,"&lt;":`<`,"&gt;":`>`,"&apos;":`'`};function Mu(e){if(e.charAt(0)!==`&`)return null;let t=e.indexOf(`;`);if(t===-1)return null;let n=e.substring(0,t+1),r=ju[n];if(r!==void 0)return{char:r,length:n.length};if(e.charAt(1)===`#`){let r=e.substring(2,t),i=r.charAt(0)===`x`||r.charAt(0)===`X`,a=i?r.substring(1):r;if(a.length>0){let e=Number.parseInt(a,i?16:10);if(!Number.isNaN(e)&&e>=0&&e<=1114111)return{char:String.fromCodePoint(e),length:n.length}}}return null}function Nu(e){return e!==null&&e.char===`"`}function Pu(e){return e!==null&&e.char===`'`}function Fu(e,t){let n=0;for(let r=0;r<e.length;r++)e.charAt(r)===t&&n++;return n}function Iu(e,t){switch(t){case`)`:return Fu(e,`(`)>Fu(e,`)`);case`]`:return Fu(e,`[`)>Fu(e,`]`);case`}`:return Fu(e,`{`)>Fu(e,`}`);default:return!1}}var Lu={"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},Ru={'"':`"`,"\\":`\\`,"/":`/`,b:`\b`,f:`\f`,n:`
53
53
  `,r:`\r`,t:` `};function zu(e){let t=0,n=``;c(["```","[```","{```"]),i()||k(),c(["```","```]","```}"]);let r=u(`,`);for(r&&a(),gu(e[t])&&Au(n)?(r||(n=Ou(n,`,`)),g()):r&&(n=Du(n,`,`));e[t]===`}`||e[t]===`]`;)t++,a();if(t>=e.length)return n;O();function i(){a();let e=m()||h()||_()||y()||b()||S(!1)||C();return a(),e}function a(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=t,r=o(e);do r=s(),r&&=o(e);while(r);return t>n}function o(r){let i=r?yu:bu,a=``;for(;;)if(i(e,t))a+=e[t],t++;else if(xu(e,t))a+=` `,t++;else break;return a.length>0&&(n+=a,!0)}function s(){if(e[t]===`/`&&e[t+1]===`*`){for(;t<e.length&&!Bu(e,t);)t++;return t+=2,!0}if(e[t]===`/`&&e[t+1]===`/`){for(;t<e.length&&e[t]!==`
54
54
  `;)t++;return!0}return!1}function c(n){if(l(n)){if(du(e[t]))for(;t<e.length&&fu(e[t]);)t++;return a(),!0}return!1}function l(n){o(!0);for(let r of n){let n=t+r.length;if(e.slice(t,n)===r)return t=n,!0}return!1}function u(r){return e[t]===r&&(n+=e[t],t++,!0)}function d(n){return e[t]===n&&(t++,!0)}function f(){return d(`\\`)}function p(){return a(),e[t]===`.`&&e[t+1]===`.`&&e[t+2]===`.`&&(t+=3,a(),d(`,`),!0)}function m(){if(e[t]===`{`){n+=`{`,t++,a(),d(`,`)&&a();let r=!0;for(;t<e.length&&e[t]!==`}`;){let o;if(r?o=!0:(o=u(`,`),o||(n=Ou(n,`,`)),a()),p(),!(_()||S(!0))){e[t]===`}`||e[t]===`{`||e[t]===`]`||e[t]===`[`||e[t]===void 0?r||(n=Du(n,`,`)):A();break}a();let s=u(`:`),c=t>=e.length;s||(gu(e[t])||c?n=Ou(n,`:`):j()),i()||(s||c?n+=`null`:j()),r=!1}return e[t]===`}`?(n+=`}`,t++):n=Ou(n,`}`),!0}return!1}function h(){if(e[t]===`[`){n+=`[`,t++,a(),d(`,`)&&a();let r=!0;for(;t<e.length&&e[t]!==`]`;){if(r||u(`,`)||(n=Ou(n,`,`)),p(),!i()){r||(n=Du(n,`,`));break}r=!1}return e[t]===`]`?(n+=`]`,t++):n=Ou(n,`]`),!0}return!1}function g(){let e=!0,t=!0;for(;t;)e?e=!1:u(`,`)||(n=Ou(n,`,`)),t=i();t||(n=Du(n,`,`)),n=`[\n${n}\n]`}function _(){let r=arguments.length>0&&arguments[0]!==void 0&&arguments[0],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=e[t]===`\\`;o&&(t++,Su(e[t])||O());let s=e[t]===`&`?Mu(e.slice(t,t+12)):null,c=Nu(s)||Pu(s);if(Su(e[t])||c){let l=wu(e[t])?wu:Eu(e[t])?Eu:Tu(e[t])?Tu:Cu,u=t,d=n.length,p=`"`;for(t+=c&&s?s.length:1;;){if(t>=e.length){let i=w(t-1);return!r&&uu(e.charAt(i))?(t=u,n=n.substring(0,d),_(!0)):(p=Ou(p,`"`),n+=p,!0)}if(t===i)return p=Ou(p,`"`),n+=p,!0;let m=c&&e[t]===`&`?Mu(e.slice(t,t+12)):null;if(m&&s?m.char===s.char:l(e[t])){let i=t,o=p.length;if(p+=`"`,t+=m?m.length:1,n+=p,a(!1),r||t>=e.length||uu(e[t])&&!Iu(p,e[t])||Su(e[t])&&!T(t)||cu(e[t]))return v(),!0;e[t]===`\\`&&O();let s=w(i-1),c=e.charAt(s);if(c===`,`)return t=u,n=n.substring(0,d),_(!1,s);if(uu(c))return t=u,n=n.substring(0,d),_(!0);n=n.substring(0,d),t=i+(m?m.length:1),p=`${p.substring(0,o)}\\${p.substring(o)}`}else if(r&&hu(e[t])){if(e[t-1]===`:`&&pu.test(e.substring(u+1,t+2)))for(;t<e.length&&mu.test(e[t]);)p+=e[t],t++;return p=Ou(p,`"`),n+=p,v(),!0}else if(m){let e=m.char;e===`"`?p+=`\\"`:vu(e)?p+=Lu[e]:p+=e,t+=m.length}else if(e[t]===`\\`){let n=e.charAt(t+1);if(Ru[n]!==void 0)p+=e.slice(t,t+2),t+=2;else if(n===`u`){let n=2;for(;n<6&&su(e[t+n]);)n++;n===6?(p+=e.slice(t,t+6),t+=6):t+n>=e.length?t=e.length:M()}else n===`
55
- `?(p+=`\\n`,t+=2):(p+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(p+=`\\${n}`,t++):vu(n)?(p+=Lu[n],t++):(lu(n)||D(n),p+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=Du(n,`"`,!0);let e=n.length;n=_()?ku(n,e,1):Ou(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!cu(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&cu(e[t+1])&&(a=!0);cu(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,cu(e[t])||(i+=`0`);cu(e[t]);)i+=e[t],t++;if(t>r){if(e[t]===`e`||e[t]===`E`)for(i===`-`&&(a=!0),i+=e[t],t++,(e[t]===`-`||e[t]===`+`)&&(i+=e[t],t++),cu(e[t])||(i+=`0`);cu(e[t]);)i+=e[t],t++;return E()?(n+=a?`"${e.substring(r,t)}"`:i,!0):(t=r,!1)}return!1}function b(){return x(`true`,`true`)||x(`false`,`false`)||x(`null`,`null`)||x(`True`,`true`)||x(`False`,`false`)||x(`None`,`null`)}function x(r,i){return e.slice(t,t+r.length)===r&&!fu(e[t+r.length])&&(n+=i,t+=r.length,!0)}function S(r){let a=t;if(du(e[t])){for(;t<e.length&&fu(e[t]);)t++;let n=t;for(;yu(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!hu(e[t])&&!Su(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&pu.test(e.substring(a,t+2)))for(;t<e.length&&mu.test(e[t]);)t++;if(t>a){for(;yu(e,t-1)&&t>0;)t--;let r=e.slice(a,t);return n+=r===`undefined`?`null`:JSON.stringify(r),e[t]===`"`&&t++,!0}}function C(){if(e[t]===`/`){let r=t;for(t++;t<e.length&&(e[t]!==`/`||e[t-1]===`\\`);)t++;return t++,n+=JSON.stringify(e.substring(r,t)),!0}}function w(t){let n=t;for(;n>0&&yu(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&yu(e,n);)n++;return n>=e.length||uu(e[n])}function E(){return t>=e.length||uu(e[t])||yu(e,t)}function D(e){throw new Jl(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new Jl(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new Jl(`Unexpected end of json string`,e.length)}function A(){throw new Jl(`Object key expected`,t)}function j(){throw new Jl(`Colon expected`,t)}function M(){throw new Jl(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function Bu(e,t){return e[t]===`*`&&e[t+1]===`/`}function Vu(e){if(!e)return[];let t=e,n=null;for(;typeof t==`string`&&t!==n;){n=t;try{t=JSON.parse(zu(t))}catch{break}}if(!Array.isArray(t))return[];let r=[],i=e=>{Array.isArray(e)?e.forEach(i):e&&typeof e==`object`&&r.push(e)};return i(t),r}function Hu(e,t){if(!t||!e.includes(`_`))return null;let[n,r]=e.split(`_`),i=parseInt(r,10);return Number.isNaN(i)?null:n===`pref`?t.preferences?.[i]?.description??null:n===`pat`?t.patterns?.[i]?.description??null:n===`wf`?t.workflows?.[i]?.description??null:null}function Uu(e,t){if(!t||!e.includes(`_`))return null;let[n,r]=e.split(`_`),i=parseInt(r,10);return Number.isNaN(i)||n!==`wf`?null:t.workflows?.[i]?.steps||null}var Wu=`manual-write`;function Gu(e){let t=e.evidence;return(Array.isArray(t)?t:t?[t]:[]).filter(e=>e.trim().length>0).map(e=>({kind:e.trim()===Wu?`manual-write`:`text`,text:e}))}function Ku(e){return e>=80?`high`:e>=60?`medium`:e>=40?`low`:`poor`}var qu={high:`border-green-600/40 bg-green-500/15 text-green-700 dark:text-green-400`,medium:`border-blue-600/40 bg-blue-500/15 text-blue-700 dark:text-blue-400`,low:`border-orange-600/40 bg-orange-500/15 text-orange-700 dark:text-orange-400`,poor:`border-red-600/40 bg-red-500/15 text-red-700 dark:text-red-400`};function Ju(e,t){return e.length>t?e.substring(0,t)+`...`:e}function Yu(e){let{open:t=!1,profile:n=null,onOpenChange:r,onApplied:i,onMinimise:a}=e,{t:o}=G(),s=ga(t),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)([]),[f,p]=(0,v.useState)(new Set),[m,h]=(0,v.useState)(new Set),[g,_]=(0,v.useState)(new Set),[y,b]=(0,v.useState)(!1),[x,S]=(0,v.useState)(!1),C=(0,v.useRef)(!1),w=s.job,T=la(w,s.startError),E=c||!!w&&!s.checked,D=E?{phase:`running`,done:0,total:0}:T,O=D.phase===`review`?D.result:null,k=(0,v.useMemo)(()=>{let e={};for(let t of u){let n=t.category||`(none)`;e[n]||(e[n]={pref:[],pat:[],wf:[]}),e[n][t._type].push(t)}return e},[u]),A=(0,v.useMemo)(()=>Object.keys(k).sort(),[k]),j=f.size,M=m.size+g.size,N=(O?.changes.merged?.length||0)+(O?.changes.removed?.length||0);function P(){let e=n?.profileData;if(!e){U.error(`No profile data loaded`),F(!1);return}let t=(e.preferences||[]).map((e,t)=>({...e,_id:`pref_${t}`,_type:`pref`})),r=(e.patterns||[]).map((e,t)=>({...e,_id:`pat_${t}`,_type:`pat`})),i=(e.workflows||[]).map((e,t)=>({...e,_id:`wf_${t}`,_type:`wf`})),a=[...t,...r,...i];d(a),p(new Set(a.filter(e=>(e.frequency||0)<=3).map(e=>e._id))),b(!1)}(0,v.useEffect)(()=>{t&&!C.current?P():!t&&C.current&&S(!1),C.current=t},[t]);let ee=w?.status.state===`done`?w.id:null;(0,v.useEffect)(()=>{if(w?.status.state!==`done`)return;let{changes:e}=w.status.result;h(new Set((e.merged||[]).map((e,t)=>t))),_(new Set((e.removed||[]).map((e,t)=>t)))},[ee]);function F(e){r?.(e)}function I(e,t){p(n=>ql(n,e,t))}function te(){p(new Set(u.map(e=>e._id)))}function L(){p(new Set)}function ne(){p(new Set(u.filter(e=>(e.frequency||0)<=3).map(e=>e._id)))}function re(){p(Kl(u))}async function R(e){if(e.length===0){U.warning(`No items selected`);return}l(!0),await s.start(e,n?.version,o(`toast-ai-cleanup-failed`)),l(!1)}function ie(){p(pa(w,f)),s.discard()}function ae(e){if(!e.includes(`_`))return`?`;let t=e.split(`_`)[0];return t===`pref`?o(`profile-type-pref`)||`Pref`:t===`pat`?o(`profile-type-pat`)||`Pat`:t===`wf`?o(`profile-type-wf`)||`Wf`:`?`}function se(e,t){h(n=>ql(n,e,t))}function ue(e,t){_(n=>ql(n,e,t))}function de(){h(new Set((O?.changes.merged||[]).map((e,t)=>t))),_(new Set((O?.changes.removed||[]).map((e,t)=>t)))}function fe(){h(new Set),_(new Set)}async function pe(){if(!O||M===0)return;S(!0);let e=[...m].map(e=>O.changes.merged?.[e]?.ids).filter(e=>!!e),t=[...g].map(e=>O.changes.removed?.[e]?.id).filter(e=>!!e),n=await li.apply(e,t);if(S(!1),n.success){let{applied:e=0,skipped:t=0}=n.data??{};U.success(t>0?o(`toast-ai-cleanup-skipped`,{applied:e,skipped:t}):o(`toast-ai-cleanup-success`)),s.clear(),F(!1),i?.()}else U.error(n.error||o(`toast-cleanup-apply-failed`))}return(0,H.jsx)(zl,{open:t,onOpenChange:F,children:(0,H.jsxs)(q,{className:`grid! sm:max-w-2xl max-h-[90vh] grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden gap-4`,onMinimise:D.phase===`running`&&!E?a:void 0,children:[(0,H.jsx)(Hl,{className:`pe-20`,children:(0,H.jsx)(Wl,{children:o(`label-ai-cleanup-title`)})}),D.phase===`running`?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-6 animate-spin`}),(0,H.jsx)(`span`,{className:`text-sm`,children:o(`label-ai-cleanup-loading`)}),D.total>0?(0,H.jsx)(`span`,{className:`text-sm font-medium text-foreground`,"aria-live":`polite`,children:o(`label-ai-cleanup-progress`,{done:D.done,total:D.total})}):null,(0,H.jsx)(`span`,{className:`text-xs`,children:o(`label-ai-cleanup-running-hint`)})]}):D.phase===`failed`?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-10 text-center`,role:`alert`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium text-destructive`,children:o(`toast-ai-cleanup-failed`)}),(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground break-words`,children:D.error})]}):D.phase===`select`?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3 overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:o(`label-ai-cleanup-select`)}),(0,H.jsx)(Ha,{onSelectAll:te,onSelectNone:L,onSelectLow:ne,onSelectSameCat:re})]}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto pr-1`,children:A.map(e=>{let t=[...k[e].pref,...k[e].pat,...k[e].wf];return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs rounded-full bg-muted px-2 py-0.5`,children:e}),(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[t.length,` items`]})]}),t.map(e=>{let t=f.has(e._id);return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border/60 px-2 py-1.5 text-sm cursor-pointer hover:bg-muted/40`,role:`checkbox`,"aria-checked":t,tabIndex:0,onClick:()=>I(e._id,!t),onKeyDown:n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),I(e._id,!t))},children:[(0,H.jsx)(`span`,{className:`pointer-events-none inline-flex`,children:(0,H.jsx)(Qo,{checked:t,tabIndex:-1})}),(0,H.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground w-4`,children:e._type===`pref`?`P`:e._type===`pat`?`T`:`W`}),(0,H.jsx)(`span`,{className:`flex-1 truncate`,children:(e.description||``).substring(0,80)}),(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-muted-foreground shrink-0`,children:[(0,H.jsx)(It,{className:`size-3`}),e.frequency||0,e.confidence==null?``:` | ${Math.round(e.confidence*100)}%`]})]},e._id)})]},e)})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-1`,children:[(0,H.jsx)(`span`,{className:`rounded-md border border-status-success/30 bg-status-success/10 px-2 py-0.5 text-xs font-medium text-status-success`,children:o(`label-ai-cleanup-selected`,{count:j})}),(0,H.jsx)(K,{onClick:()=>R([...f]),children:o(`label-ai-cleanup-analyze`)})]})]}):D.phase===`review`&&O?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3 overflow-hidden`,children:[D.notice?(0,H.jsx)(`div`,{className:`rounded-lg border border-status-warning/30 bg-status-warning/10 px-3 py-2 text-xs text-status-warning`,children:o(`label-ai-cleanup-failed-batches`,D.notice)}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`label-ai-cleanup-changes-selected`,{selected:M,total:N})}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{variant:`link`,size:`xs`,onClick:de,children:o(`label-ai-cleanup-select-all`)}),(0,H.jsx)(K,{variant:`link`,size:`xs`,onClick:fe,children:o(`label-ai-cleanup-deselect-all`)})]})]}),(0,H.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto pr-1`,children:[(O.changes.merged||[]).length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-subsection-title font-semibold`,children:[(0,H.jsx)(Pe,{className:`size-3.5`}),o(`label-ai-cleanup-merged-header`,{count:O.changes.merged?.length||0})]}),(O.changes.merged||[]).map((e,t)=>{let n=e.ids.slice(1),r=e.result||``,i=m.has(t);return(0,H.jsxs)(`div`,{className:`rounded-xl border border-border p-3 space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-sm cursor-pointer`,role:`checkbox`,"aria-checked":i,tabIndex:0,onClick:()=>se(t,!i),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),se(t,!i))},children:[(0,H.jsx)(`span`,{className:`pointer-events-none inline-flex`,children:(0,H.jsx)(Qo,{checked:i,tabIndex:-1})}),(0,H.jsx)(`span`,{children:o(`label-ai-cleanup-merge-check`)})]}),(0,H.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-[1fr_auto_1fr] items-start text-sm`,children:[(0,H.jsx)(`div`,{className:`space-y-1.5`,children:n.map(e=>{let t=Hu(e,O.old);return t?(0,H.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2 space-y-1`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`span`,{className:`text-[10px] rounded bg-muted px-1.5 py-0.5`,children:ae(e)}),` `,Ju(t,80)]}),(0,H.jsx)(Ua,{steps:Uu(e,O.old)})]},e):null})}),(0,H.jsx)(`div`,{className:`text-muted-foreground self-center grid place-items-center`,children:(0,H.jsx)(ce,{className:`size-4`})}),(0,H.jsxs)(`div`,{className:`rounded-lg bg-primary/10 p-2 space-y-1`,children:[(0,H.jsx)(`div`,{children:Ju(r,120)}),(0,H.jsx)(Ua,{steps:Uu(e.ids[0],O.old)})]})]})]},t)})]}):null,(O.changes.removed||[]).length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-subsection-title font-semibold`,children:[(0,H.jsx)(Rt,{className:`size-3.5`}),o(`label-ai-cleanup-removed-header`,{count:O.changes.removed?.length||0})]}),(O.changes.removed||[]).map((e,t)=>{let n=Hu(e.id,O.old),r=g.has(t);return(0,H.jsxs)(`div`,{className:`rounded-xl border border-border p-3 space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-sm cursor-pointer`,role:`checkbox`,"aria-checked":r,tabIndex:0,onClick:()=>ue(t,!r),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),ue(t,!r))},children:[(0,H.jsx)(`span`,{className:`pointer-events-none inline-flex`,children:(0,H.jsx)(Qo,{checked:r,tabIndex:-1})}),(0,H.jsx)(`span`,{children:o(`label-ai-cleanup-remove-check`)})]}),(0,H.jsx)(`div`,{className:`text-sm`,children:n||e.id}),(0,H.jsx)(Ua,{steps:Uu(e.id,O.old)}),(0,H.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.reason})]},t)})]}):null,(O.changes.kept||[]).length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 text-sm font-medium`,onClick:()=>b(e=>!e),children:[o(`label-ai-cleanup-kept`),(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,O.changes.kept?.length||0,`)`]}),y?(0,H.jsx)(le,{className:`size-3.5`}):(0,H.jsx)(oe,{className:`size-3.5`})]}),y?(0,H.jsx)(`div`,{className:`space-y-1`,children:(O.changes.kept||[]).map((e,t)=>(0,H.jsx)(`div`,{className:`text-xs text-muted-foreground rounded bg-muted/40 px-2 py-1`,children:e},t))}):null]}):null]})]}):null,(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{variant:`secondary`,onClick:()=>F(!1),children:o(`btn-cancel`)}),D.phase===`running`&&!E?(0,H.jsx)(K,{variant:`outline`,onClick:ie,children:o(`btn-ai-cleanup-stop`)}):null,D.phase===`failed`||D.phase===`review`?(0,H.jsx)(K,{variant:`outline`,onClick:ie,children:o(`btn-ai-cleanup-back`)}):null,D.phase===`failed`?(0,H.jsx)(K,{onClick:()=>R(ma(w,f)),children:o(`btn-ai-cleanup-retry`)}):null,D.phase===`review`?(0,H.jsx)(K,{disabled:M===0||x,onClick:pe,children:M>0?`${o(`label-ai-cleanup-apply`)} (${M})`:o(`label-ai-cleanup-apply`)||`Apply`}):null]})]})})}function Xu({onOpen:e,onGone:t}){let{t:n}=G(),r=ga(!0,!0),i=ua(r.job,r.checked),a=i===null;if((0,v.useEffect)(()=>{a&&t()},[a,t]),!i)return null;let o=i.kind===`failed`,s=i.kind===`running`?i.total>0?n(`label-ai-cleanup-pill-progress`,{done:i.done,total:i.total}):n(`label-ai-cleanup-pill-running`):i.kind===`ready`?n(`label-ai-cleanup-pill-ready`):n(o?`label-ai-cleanup-pill-failed`:`label-ai-cleanup-pill`);return(0,H.jsx)(`div`,{className:`fixed top-3 end-3 z-40 max-w-[calc(100%-1.5rem)]`,role:`status`,children:(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:e,className:V(`max-w-full bg-popover shadow-md`,o&&`border-destructive text-destructive hover:text-destructive`),children:[i.kind===`ready`?(0,H.jsx)(fe,{"aria-hidden":`true`}):o?(0,H.jsx)(ue,{"aria-hidden":`true`}):(0,H.jsx)(Ye,{"aria-hidden":`true`,className:`animate-spin`}),(0,H.jsx)(`span`,{className:`truncate`,children:s})]})})}function Zu(e){let t=new Set;return e.forEach((e,n)=>{e.checked&&t.add(n)}),t}function Qu(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function $u(e,t,n){return t.reduce((e,t,r)=>e-(n.has(r)?t.labels.length-1:0),e)}function ed(e,t,n){return[...t].map(t=>({labels:e[t].labels.map(e=>e.label),name:n[t].trim()}))}function td(e){let t=0;for(let n of e.trim().toLowerCase())t=t*31+n.codePointAt(0)|0;return Math.abs(t)%360}function nd({keyword:e,active:t=!1,title:n,onClick:r,"aria-describedby":i,"aria-label":a}){let o=td(e);return(0,H.jsx)(`button`,{type:`button`,title:n,"aria-describedby":i,"aria-label":a,"aria-pressed":t,onClick:()=>r?.(e),className:V(`inline-flex min-h-6 max-w-full cursor-pointer items-center rounded-[7px] border px-2 text-xs break-words transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))]`,t&&`ring-2 ring-offset-1 ring-offset-background`),style:{backgroundColor:`oklch(0.72 0.14 ${o} / 0.18)`,borderColor:`oklch(0.72 0.14 ${o} / 0.45)`,"--keyword-hue":String(o),"--tw-ring-color":`oklch(0.72 0.14 ${o} / 0.7)`},children:e})}var rd=Ba(`h-5 gap-1 rounded-2xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none`,{variants:{variant:{default:`bg-primary/10 border-primary/25 text-primary-label [a]:hover:bg-primary/16`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 border-destructive/25 [a]:hover:bg-destructive/16 text-destructive-label`,info:`bg-status-info/10 border-status-info/25 text-status-info [a]:hover:bg-status-info/16`,warning:`bg-status-warning/10 border-status-warning/25 text-status-warning [a]:hover:bg-status-warning/16`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function id({className:e,variant:t,asChild:n=!1,...r}){return(0,H.jsx)(n?Ta:`span`,{"data-slot":`badge`,className:V(rd({variant:t}),e),...r})}function ad({className:e,type:t,...n}){return(0,H.jsx)(`input`,{type:t,"data-slot":`input`,className:V(`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-selection selection:text-foreground flex h-9 w-full min-w-0 rounded-[10px] border bg-card px-2.5 py-1 text-ui transition-colors duration-150 outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-ui file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,`focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,`aria-invalid:ring-destructive aria-invalid:ring-1 aria-invalid:border-destructive`,e),...n})}var od=3e3;function sd({label:e,count:t}){return(0,H.jsxs)(id,{variant:`outline`,className:`bg-transparent border-current [color:oklch(0.42_0.13_var(--category-hue))] dark:[color:oklch(0.8_0.13_var(--category-hue))]`,style:{"--category-hue":String(td(e))},children:[(0,H.jsx)(`bdi`,{children:e}),(0,H.jsx)(`span`,{className:`ms-1 font-mono opacity-70`,children:t})]})}function cd({open:e=!1,onOpenChange:t,onApplied:n}){let{t:r}=G(),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(new Set),[c,l]=(0,v.useState)([]),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null),g=(0,v.useRef)(!1),_=(0,v.useRef)(0);(0,v.useEffect)(()=>{e&&!g.current&&b(!1),e||_.current++,g.current=e},[e]);function y(e){a(e),s(Zu(e.groups)),l(e.groups.map(e=>e.name))}async function b(e){let t=++_.current;a(null),p(null),h(null);let n=null;if(!e){let e=await oi(`/api/user-profile/category-cleanup`);n=e.success?e.data??null:null}if(!n||n.status.state===`failed`){let e=await oi(`/api/user-profile/category-cleanup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});if(!e.success||!e.data){h(e.error||r(`toast-category-cleanup-failed`));return}n=e.data}for(;t===_.current;){let e=n.status;if(e.state===`done`)return y(e.preview);if(e.state===`failed`)return h(e.error);p(e.state===`checking`&&e.total>0?{done:e.done,total:e.total}:null),await new Promise(e=>setTimeout(e,od));let t=await oi(`/api/user-profile/category-cleanup`);if(!t.success||!t.data)return h(t.error||r(`toast-category-cleanup-failed`));n=t.data}}function x(e){s(t=>Qu(t,e))}let S=i?$u(i.before,i.groups,o):0,C=[...o].every(e=>(c[e]??``).trim().length>0);async function w(){if(!i||o.size===0||!C)return;d(!0);let e=ed(i.groups,o,c),a=await oi(`/api/user-profile/category-cleanup/apply`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({groups:e})});if(d(!1),!a.success||!a.data){U.error(a.error||r(`toast-category-cleanup-failed`));return}U.success(r(`toast-category-cleanup-applied`,{count:a.data.renamed})),t?.(!1),n?.()}async function T(){d(!0);let e=await oi(`/api/user-profile/category-cleanup/undo`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});if(d(!1),!e.success||!e.data){U.info(e.error||r(`toast-category-cleanup-failed`));return}U.success(r(`toast-category-cleanup-undone`,e.data)),t?.(!1),n?.()}return(0,H.jsx)(zl,{open:e,onOpenChange:t,children:(0,H.jsxs)(q,{className:`grid! sm:max-w-2xl max-h-[90vh] grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden gap-4`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:r(`label-category-cleanup-title`)})}),m?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-sm`,children:[(0,H.jsx)(`span`,{className:`text-destructive`,children:m}),(0,H.jsx)(K,{variant:`secondary`,size:`sm`,onClick:()=>void b(!0),children:r(`btn-category-cleanup-rebuild`)})]}):i?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3 overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`p`,{className:`text-sm`,children:r(`label-category-cleanup-counts`,{before:i.before,after:S})}),(0,H.jsx)(K,{variant:`link`,size:`xs`,onClick:()=>void b(!0),children:r(`btn-category-cleanup-rebuild`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`label-category-cleanup-note`)}),i.groups.length===0?(0,H.jsx)(`p`,{className:`py-6 text-center text-sm text-muted-foreground`,children:r(`label-category-cleanup-empty`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r(`label-category-cleanup-selected`,{selected:o.size,total:i.groups.length})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto pe-1`,children:i.groups.map((e,t)=>(0,H.jsxs)(`div`,{className:`rounded-xl border border-border p-3 space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(Qo,{checked:o.has(t),onCheckedChange:()=>x(t),"aria-label":r(`label-category-cleanup-accept`)}),(0,H.jsx)(ad,{dir:`auto`,className:`h-8 min-w-0 flex-1 sm:max-w-64`,value:c[t]??``,"aria-label":r(`label-category-cleanup-name`),disabled:!o.has(t),onChange:e=>l(n=>n.map((n,r)=>r===t?e.target.value:n))}),e.checked?null:(0,H.jsx)(`span`,{className:`basis-full text-xs text-muted-foreground sm:basis-auto`,children:r(`label-category-cleanup-unchecked`)})]}),(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.labels.map(e=>(0,H.jsx)(sd,{label:e.label,count:e.count},e.label))})]},e.id))})]})]}):(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-center text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-6 animate-spin`}),(0,H.jsx)(`span`,{className:`text-sm`,children:f?r(`label-category-cleanup-progress`,f):r(`label-category-cleanup-loading`)}),(0,H.jsx)(`span`,{className:`text-xs`,children:r(`label-category-cleanup-background`)})]}),(0,H.jsxs)(Ul,{className:`gap-2 sm:justify-between`,children:[(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,disabled:u,onClick:()=>void T(),children:[(0,H.jsx)(Vt,{className:`size-3.5`}),r(`btn-category-cleanup-undo`)]}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{variant:`secondary`,size:`sm`,onClick:()=>t?.(!1),children:r(`btn-cancel`)}),(0,H.jsx)(K,{size:`sm`,disabled:u||!i||o.size===0||!C,onClick:()=>void w(),children:r(`btn-category-cleanup-apply`)})]})]})]})})}var J={home:`/`,project:`/project-memories`,profile:`/user-profile`,settings:`/settings`,memory:`/memory`,chat:`/chat`,skills:`/skills`},ld=[`pi`,`opencode`,`claude-code`,`shared`];function ud(e){return`${J.memory}/${e}`}var dd=e=>e===J.memory||e.startsWith(`${J.memory}/`);function fd(e){let t=/^\/memory\/([^/]+)$/.exec(pd(e))?.[1];return ld.includes(t??``)?t:null}function pd(e){let t=e.replace(/\/+$/,``)||`/`;return t.startsWith(`/`)?t:`/${t}`}function md(e){let t=pd(e);return dd(t)?`memory`:t===J.settings?`settings`:t===J.chat?`chat`:t===J.skills?`skills`:t===J.profile?`profile`:`project`}function hd(e){let t=pd(e);return t===J.home||t===J.project||t===J.profile||t===J.settings||dd(t)||t===J.chat||t===J.skills}function gd(e){let t=pd(e);return t===J.home?J.project:dd(t)?fd(t)?t:J.memory:hd(t)?t:J.project}function _d(e,t){let[n,r]=(0,v.useState)(()=>{try{let t=localStorage.getItem(e);return t===null?null:t===`1`}catch{return null}}),i=n??t;return[i,()=>{let t=!i;r(t);try{localStorage.setItem(e,t?`1`:`0`)}catch{}}]}function vd({link:e,sections:t,open:n,onToggle:r,label:i,hideWhenCollapsed:a,onSectionClick:o,id:s=`sidebar-profile-tree`,base:c=J.profile}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[e,t.length>0&&(0,H.jsx)(`button`,{type:`button`,className:V(`inline-flex min-h-11 min-w-11 md:min-h-7 md:min-w-7 shrink-0 items-center justify-center rounded-lg p-1.5 text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,a),onClick:r,"aria-expanded":n,"aria-controls":s,"aria-label":i,title:i,children:(0,H.jsx)(ce,{className:V(`size-4 transition-transform rtl:-scale-x-100`,n&&`rotate-90 rtl:rotate-90`)})})]}),n&&t.length>0&&(0,H.jsx)(`ul`,{id:s,className:V(`ms-5 space-y-0.5 border-s border-sidebar-border ps-2`,a),children:t.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`${c}#${e.id}`,className:`flex min-h-11 md:min-h-7 items-center break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,onClick:t=>o(t,e.id),children:e.label})},e.id))})]})}function yd({sections:e,currentView:t,memoryViewId:n,warningLabel:r,className:i,onSectionClick:a}){return(0,H.jsx)(`ul`,{id:`sidebar-memory-tree`,className:i,children:e.map(e=>(0,H.jsxs)(`li`,{children:[(0,H.jsxs)(`a`,{href:`${J.memory}/${e.id}`,"aria-current":t===`memory`&&n===e.id?`page`:void 0,className:`flex min-h-11 md:min-h-7 items-center gap-2 break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring aria-[current=page]:bg-sidebar-accent aria-[current=page]:text-sidebar-accent-foreground`,onClick:t=>a(t,e.id,`memory`),children:[e.avatar,e.label,e.warning&&(0,H.jsx)(`span`,{role:`img`,"aria-label":r,title:r,className:`ms-auto size-2 shrink-0 rounded-full bg-[var(--status-warning)]`})]}),e.items&&e.items.length>0&&(0,H.jsx)(`ul`,{"aria-label":e.label,className:`ms-4 mt-0.5 space-y-0.5 border-s border-sidebar-border ps-2`,children:e.items.map(t=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`${J.memory}/${e.id}#${t.id}`,className:`flex min-h-11 md:min-h-7 items-center break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:n=>a(n,`${e.id}#${t.id}`,`memory`),children:t.label})},t.id))})]},e.id))})}function bd({className:e,...t}){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,className:V(`size-4 shrink-0`,e),...t,children:(0,H.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}var xd=15e3,Sd=5e3,Cd=500,wd=3e4,Td=2e3,Ed=42e4,Dd=new Set([`idle`,`installing`,`restarting`,`failed`]);function Od(e){if(!e||typeof e!=`object`)return;let t=e;if(!(typeof t.state!=`string`||!Dd.has(t.state)))return{available:typeof t.available==`string`?t.available:null,state:t.state,code:typeof t.code==`string`?t.code:null,canInstall:t.canInstall===!0}}var kd=()=>({"x-omms-token":window.__OMMS_TOKEN__??``});async function Ad(){try{let e=await fetch(`/api/web/status`,{headers:kd(),signal:AbortSignal.timeout(Sd)});if(!e.ok)return null;let t=await e.json();if(typeof t.version!=`string`||typeof t.canControl!=`boolean`)return null;let n=Od(t.update);return{version:t.version,canControl:t.canControl,...typeof t.instance==`string`?{instance:t.instance}:{},...n?{update:n}:{}}}catch{return null}}async function jd(e){try{return(await fetch(`/api/web/${e}`,{method:`POST`,headers:{...kd(),"Content-Type":`application/json`},body:`{}`,signal:AbortSignal.timeout(Sd)})).status===202}catch{return!1}}async function Md(e,t={}){let n=t.sleep??(e=>new Promise(t=>setTimeout(t,e))),r;for(let t=0;;t+=Cd){if(r=await Ad(),r&&r.instance!==e)return`restarted`;if(t>=wd)break;await n(Cd)}return r?`unchanged`:`down`}async function Nd(){try{return(await fetch(`/api/web/update`,{method:`POST`,headers:{...kd(),"Content-Type":`application/json`},body:`{}`,signal:AbortSignal.timeout(Sd)})).status===202}catch{return!1}}async function Pd(e,t={}){let n=t.sleep??(e=>new Promise(t=>setTimeout(t,e)));for(let t=0;t<=Ed;t+=Td){let t=await Ad();if(t&&t.instance!==e)return{kind:`restarted`};if(t?.update?.state===`failed`)return{kind:`failed`,code:t.update.code??`unknown`};await n(Td)}return{kind:`timeout`}}var Fd={ok:!0,status:null},Id=new Set,Ld=null,Rd=0,zd=0;async function Bd(){let e=++Rd,t=await Ad();if(!(e<zd)){zd=e,Fd=t?{ok:!0,status:t}:{...Fd,ok:!1};for(let e of Id)e(Fd)}}function Vd(e){return Id.add(e),e(Fd),Bd(),Ld??=setInterval(()=>void Bd(),xd),()=>{Id.delete(e),Id.size===0&&Ld!==null&&(clearInterval(Ld),Ld=null)}}var Hd=()=>Fd;function Ud(){return(0,v.useSyncExternalStore)(Vd,Hd,Hd)}var Wd=`om-memory-system web`;function Gd(){let{t:e}=G(),{ok:t,status:n}=Ud(),r=n?.canControl??!1,i=n?.instance??null,[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(`idle`),[l,u]=(0,v.useState)(``);async function d(e){if(s!==`idle`)return;if(c(`working`),u(``),!await jd(e)){c(`idle`),u(`power-request-failed`);return}if(o(!1),e===`stop`){c(`stopped`);return}c(`restarting`);let t=await Md(i);if(t===`restarted`){window.location.reload();return}if(t===`unchanged`){u(`power-restart-failed`),c(`idle`),o(!0);return}u(`power-restart-timeout`),c(`stopped`)}return!r&&s===`idle`?null:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,"data-power":t?`on`:`off`,className:`inline-flex min-h-11 min-w-11 md:min-h-8 md:min-w-7 items-center justify-center self-stretch border-s border-sidebar-border px-1.5 text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{u(``),o(!0)},"aria-label":e(`power-button`),title:e(`power-button`),children:(0,H.jsx)(yt,{className:V(`size-4`,t&&`text-emerald-500`)})}),(0,H.jsx)(zl,{open:a,onOpenChange:e=>s===`idle`&&o(e),children:(0,H.jsxs)(q,{showCloseButton:!1,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:e(`power-dialog-title`)})}),(0,H.jsx)(`p`,{children:e(`power-dialog-body`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`power-note`)}),l?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:e(l)}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,H.jsx)(K,{variant:`ghost`,disabled:s!==`idle`,onClick:()=>o(!1),children:e(`power-cancel`)}),(0,H.jsx)(K,{variant:`destructive`,disabled:s!==`idle`,onClick:()=>void d(`stop`),children:e(`power-stop`)}),(0,H.jsx)(K,{autoFocus:!0,disabled:s!==`idle`,onClick:()=>void d(`restart`),children:e(`power-restart`)})]})]})}),s===`restarting`||s===`stopped`?(0,H.jsx)(`div`,{role:`alert`,className:`fixed inset-0 z-[60] flex flex-col items-center justify-center gap-3 bg-background p-6 text-center`,children:s===`restarting`?(0,H.jsx)(`p`,{children:e(`power-restarting`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`power-stopped-title`)}),l?(0,H.jsx)(`p`,{children:e(l)}):null,(0,H.jsx)(`p`,{children:e(`power-stopped-command`)}),(0,H.jsx)(`code`,{className:`rounded-md bg-muted px-2 py-1`,children:Wd}),(0,H.jsx)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:e(`power-note`)})]})}):null]})}function Kd({brand:e,className:t}){let{status:n}=Ud();return(0,H.jsxs)(`span`,{className:V(`flex min-w-0 items-baseline gap-1.5`,t),children:[(0,H.jsx)(`span`,{className:`truncate text-ui font-medium tracking-wide text-brand-label`,children:e}),n?(0,H.jsxs)(`span`,{className:`shrink-0 text-xs text-foreground`,"data-testid":`sidebar-version`,children:[`v`,n.version]}):null]})}function qd({href:e,label:t,icon:n,active:r,collapsed:i,className:a,onNavigate:o}){return(0,H.jsxs)(`a`,{href:e,className:a,"aria-current":r?`page`:void 0,title:i?t:void 0,onClick:t=>o(t,e),children:[(0,H.jsx)(n,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsx)(`span`,{className:V(`min-w-0 break-words text-start`,i&&`md:sr-only`),children:t})]})}var Jd={opencode:`OpenCode`,pi:`Pi`,"claude-code":`Claude Code`};function Yd(e){return Jd[e]}function Xd(e){return Object.hasOwn(Jd,e)?Jd[e]:e}var Zd=ld.map(e=>({id:e,title:e===`shared`?`Shared`:Yd(e)})),Qd=[{id:`shared-profile`,title:`Profile learning`},{id:`shared-limits`,title:`Memory limits`},{id:`shared-keywords`,title:`Keyword matching`},{id:`shared-reranker`,title:`Reranker`},{id:`shared-directory-maps`,title:`Directory maps`}];Qd.map(e=>e.id);var $d=e=>`${ud(`shared`)}#${e}`,ef=`/memory`,tf={"settings-section-import":ef,"settings-section-auto-import":ef,"settings-section-profile":$d(`shared-profile`),"settings-section-memory":$d(`shared-limits`),"settings-section-directory-maps":$d(`shared-directory-maps`)},nf={"memory-section-import":ef,"memory-section-auto-import":ef,"memory-section-profile":$d(`shared-profile`),"memory-section-limits":$d(`shared-limits`),"memory-section-keywords":$d(`shared-keywords`),"memory-section-reranker":$d(`shared-reranker`),"memory-section-project-folders":$d(`shared-directory-maps`)};function rf(e,t){if(e!==`/settings`&&e!==ef)return null;let n=t.replace(/^#/,``),r=/^directory-maps-(pi|opencode|claude-code)$/.exec(n)?.[1];return r?`${ud(r)}#host-unresolved`:(e===`/settings`?tf:nf)[n]??null}var af={block:`start`};function of(e){let t=e.classList;t&&(t.remove(`anchor-flash`),e.offsetWidth,t.add(`anchor-flash`),setTimeout(()=>t.remove(`anchor-flash`),1600))}function sf(e,t){let n=e.startsWith(`#`)?e.slice(1):``;if(!/^(settings|memory)-section-[a-z0-9-]+$/.test(n))return!1;let r=t.getElementById(n);return r?(r.scrollIntoView(af),of(r),!0):!1}function cf(e){if(typeof document>`u`||typeof requestAnimationFrame>`u`)return;let t=e.replace(/^#/,``);if(!/^(?:(?:settings|memory|skills)-section-[a-z0-9-]+|directory-maps-(?:pi|opencode|claude-code)|shared-(?:profile|limits|keywords|reranker|directory-maps)|host-unresolved|profile-(?:preferences|patterns|workflows))$/.test(t))return;let n=0,r=()=>{let e=document.getElementById(t);if(!e){n++<50&&requestAnimationFrame(r);return}if(t.startsWith(`shared-`)){let t=e.closest(`details`);t&&(t.open=!0)}if(t.startsWith(`directory-maps-`)){let t=e.parentElement;t&&(t.open=!0),e.focus({preventScroll:!0})}e.scrollIntoView(af),of(e)};requestAnimationFrame(r)}function lf(e,t=``){return rf(pd(e),t)??`${gd(e)}${t}`}var uf=typeof window<`u`?lf(window.location.pathname,window.location.hash):J.project,df=new Set;function ff(){for(let e of df)e()}function pf(e){uf!==e&&(uf=e,ff())}function mf(e){return df.add(e),()=>{df.delete(e)}}function hf(){return uf}function gf(){return J.project}function _f(e,t=!1){let[n,r=``]=e.split(/(?=#)/),i=lf(n,r),a=rf(pd(n),r);`${pd(window.location.pathname)}${window.location.hash}`!==i&&(t||a?window.history.replaceState({},``,i):window.history.pushState({},``,i)),pf(i);let o=i.indexOf(`#`);o>=0&&cf(i.slice(o))}function vf(){let e=()=>{let e=`${pd(window.location.pathname)}${window.location.hash}`,t=lf(window.location.pathname,window.location.hash);e!==t&&window.history.replaceState({},``,t),pf(t),window.location.hash&&cf(window.location.hash)};return e(),window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)}function yf(){return(0,v.useSyncExternalStore)(mf,hf,gf)}function bf(){return md(yf().split(`#`)[0])}var xf=[{view:`project`,href:J.project,icon:Ae},{view:`chat`,href:J.chat,icon:Qe},{view:`profile`,href:J.profile,icon:Ut},{view:`skills`,href:J.skills,icon:At}];function Sf({currentView:e,labels:t,collapsed:n,navClass:r,onNavigate:i,profileTree:a,skillsTree:o}){return xf.map(({view:s,href:c,icon:l})=>{let u=t[s],d=(0,H.jsx)(qd,{href:c,label:u,icon:l,collapsed:n,onNavigate:i,active:e===s,className:r(e===s)},s);return s===`profile`?(0,H.jsx)(vd,{link:d,label:u,...a},s):s===`skills`?(0,H.jsx)(vd,{link:d,label:u,id:`sidebar-skills-tree`,base:J.skills,...o},s):d})}var Cf=[{label:`update-host-claude`,command:`claude plugin update omms@omms`},{label:`update-host-opencode`,command:`opencode plugin update om-memory-system`},{label:`update-host-pi`,command:`pi update npm:om-memory-system`},{label:`update-host-global`,command:`npm i -g om-memory-system@latest && om-memory-system web install`}],wf={row:`mb-2 flex min-h-11 w-full rounded-lg border border-sidebar-border/80 bg-card/70 px-2`,inline:`inline-flex min-h-8 self-stretch border-s border-sidebar-border px-2`,icon:`inline-flex min-h-8 min-w-7 self-stretch px-1.5 py-1.5`};function Tf(){let{ok:e,status:t}=Ud(),n=t?.update;return!t?.canControl||!n?.available?null:{ok:e,status:t,update:n,available:n.available}}function Ef({variant:e=`row`,className:t,onOpen:n}){let{t:r}=G(),i=Tf();return i?.ok?(0,H.jsx)(`button`,{type:`button`,"data-update":i.available,"data-variant":e,className:V(`items-center justify-center text-xs font-medium text-brand-label transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,wf[e],t),onClick:n,"aria-label":r(`update-button`,{version:i.available}),title:r(`update-button`,{version:i.available}),children:e===`icon`?(0,H.jsx)(de,{className:`size-4`}):r(`update-label`)}):null}function Df({open:e,onOpenChange:t}){let{t:n}=G(),r=Tf(),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(null);if(!r)return null;let{status:u,update:d,available:f}=r,p=d.state===`failed`?d.code:null,m=i||d.state===`installing`||d.state===`restarting`;async function h(){if(m)return;if(a(!0),s(``),!await Nd()){a(!1),s(n(`update-request-failed`));return}let e=await Pd(u?.instance??null);if(e.kind===`restarted`){window.location.reload();return}a(!1),s(e.kind===`failed`?n(`update-failed`,{code:e.code}):n(`update-timeout`))}function g(e){navigator.clipboard?.writeText(e),l(e)}let _=o||(p?n(`update-failed`,{code:p}):``);return(0,H.jsx)(H.Fragment,{children:(0,H.jsx)(zl,{open:e,onOpenChange:e=>!m&&t(e),children:(0,H.jsxs)(q,{showCloseButton:!1,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:n(`update-dialog-title`)})}),(0,H.jsx)(`p`,{children:n(`update-versions`,{running:u.version,available:f})}),(0,H.jsx)(`p`,{className:`text-sm`,children:n(`update-hosts-intro`)}),(0,H.jsx)(`ul`,{className:`flex flex-col gap-2`,children:Cf.map(({label:e,command:t})=>(0,H.jsxs)(`li`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n(e)}),(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(`code`,{className:`min-w-0 flex-1 break-all rounded-md bg-muted px-2 py-1 text-xs`,children:t}),(0,H.jsxs)(K,{variant:`ghost`,size:`sm`,onClick:()=>g(t),"aria-label":`${n(`update-copy`)}: ${t}`,children:[(0,H.jsx)(_e,{className:`size-3.5`}),n(c===t?`update-copied`:`update-copy`)]})]})]},t))}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`update-hosts-note`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:d.canInstall?n(`update-install-note`):n(`update-cannot-install`)}),m?(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:n(`update-installing`)}):null,_&&!m?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:_}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,H.jsx)(K,{variant:`ghost`,disabled:m,onClick:()=>t(!1),children:n(`update-close`)}),(0,H.jsx)(K,{autoFocus:!0,disabled:m||!d.canInstall,onClick:()=>void h(),children:n(`update-install`)})]})]})})})}var Of=Object.defineProperty,kf=(e,t)=>Of(e,`name`,{value:t,configurable:!0}),Af=`horizontal`,jf=[`horizontal`,`vertical`],Mf=v.forwardRef(kf(function(e,t){let{decorative:n,orientation:r=Af,...i}=e,a=Nf(r)?r:Af,o=n?{role:`none`}:{"aria-orientation":a===`vertical`?a:void 0,role:`separator`};return(0,H.jsx)(Mo.div,{"data-orientation":a,...o,...i,ref:t})},`Separator`));function Nf(e){return jf.includes(e)}kf(Nf,`isValidOrientation`);var Pf=Mf;function Ff({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,H.jsx)(Pf,{"data-slot":`separator`,decorative:n,orientation:t,className:V(`bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}function If(e){return e===`light`||e===`dark`?e:null}function Lf(e,t){return e??(t?`dark`:`light`)}var Rf=[{id:`aura-light`,name:`Aura`,variant:`light`,colours:{canvas:`#f6f3fe`,elevated:`#ede9f5`,muted:`#f1eef9`,text:`#474056`,textSecondary:`#605a71`,border:`#00000013`,borderHover:`#0000002e`,accent:`#7557b7`,accentHover:`#6c50a8`,accentActive:`#62499a`,selection:`#dfdce9`,hover:`#0000000a`,active:`#00000014`,focus:`#cdbefe`,error:`#ad0620`,warning:`#8b6113`,success:`#087846`,info:`#356ba6`}},{id:`aura-dark`,name:`Aura`,variant:`dark`,colours:{canvas:`#121117`,elevated:`#1c1b21`,muted:`#0c0b11`,text:`#dbdbdc`,textSecondary:`#88878b`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#a277ff`,accentHover:`#a982ff`,accentActive:`#b18dff`,selection:`#47454bb6`,hover:`#ffffff0f`,active:`#ffffff13`,focus:`#cdbefb`,error:`#ff6767`,warning:`#ffca85`,success:`#61ffca`,info:`#82e2ff`}},{id:`ayu-light`,name:`Ayu`,variant:`light`,colours:{canvas:`#fdfbf5`,elevated:`#f5f4ed`,muted:`#f8f6f1`,text:`#3f4851`,textSecondary:`#5c6570`,border:`#00000013`,borderHover:`#0000002e`,accent:`#1b7793`,accentHover:`#196d87`,accentActive:`#17647b`,selection:`#e8eae3`,hover:`#0000000a`,active:`#00000014`,focus:`#73d8fc`,error:`#c21f38`,warning:`#996219`,success:`#157f3f`,info:`#147794`}},{id:`ayu-dark`,name:`Ayu`,variant:`dark`,colours:{canvas:`#0b1015`,elevated:`#151a1f`,muted:`#06090d`,text:`#d9d9db`,textSecondary:`#81868b`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#3fb7e3`,accentHover:`#4ebde5`,accentActive:`#5ec3e7`,selection:`#3c4147c9`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#7dd6fc`,error:`#f58572`,warning:`#e4a75c`,success:`#78d05c`,info:`#66c6f1`}},{id:`carbonfox-light`,name:`Carbonfox`,variant:`light`,colours:{canvas:`#eeeeee`,elevated:`#e4e4e4`,muted:`#e9e9e9`,text:`#404040`,textSecondary:`#5a5a5a`,border:`#00000013`,borderHover:`#0000002f`,accent:`#1159e3`,accentHover:`#1052d1`,accentActive:`#0e4bbf`,selection:`#d5d5d5`,hover:`#0000000a`,active:`#00000014`,focus:`#accaff`,error:`#980313`,warning:`#7a6211`,success:`#105223`,info:`#0c42a8`}},{id:`carbonfox-dark`,name:`Carbonfox`,variant:`dark`,colours:{canvas:`#292929`,elevated:`#2f2f2f`,muted:`#252525`,text:`#f7f7f7`,textSecondary:`#999a9c`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#33b1ff`,accentHover:`#43b7ff`,accentActive:`#54bdff`,selection:`#5b5c5b97`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#adcafa`,error:`#ff8389`,warning:`#f1c21b`,success:`#42be65`,info:`#78a9ff`}},{id:`catppuccin-light`,name:`Catppuccin`,variant:`light`,colours:{canvas:`#eff1f5`,elevated:`#e5e7eb`,muted:`#e9ebef`,text:`#4c4f69`,textSecondary:`#616274`,border:`#66677023`,borderHover:`#66677026`,accent:`#7130c7`,accentHover:`#6e32bf`,accentActive:`#6b35b8`,selection:`#ccd0da`,hover:`#0000000a`,active:`#00000014`,focus:`#8839ef`,error:`#cb0f37`,warning:`#af4508`,success:`#2f7520`,info:`#1850c1`}},{id:`catppuccin-dark`,name:`Catppuccin`,variant:`dark`,colours:{canvas:`#1e1e2e`,elevated:`#181825`,muted:`#181825`,text:`#cdd6f4`,textSecondary:`#a6adc8`,border:`#7f849c19`,borderHover:`#7f849c1d`,accent:`#cba6f7`,accentHover:`#dec7fa`,accentActive:`#dec7fa`,selection:`#313244`,hover:`#cdd6f412`,active:`#cdd6f41f`,focus:`#cba6f7`,error:`#f38ba8`,warning:`#fab387`,success:`#a6e3a1`,info:`#89b4fa`}},{id:`cursor-light`,name:`Cursor`,variant:`light`,author:`cedricverlinden`,colours:{canvas:`#fcfcfc`,elevated:`#f2f2f2`,muted:`#f6f6f6`,text:`#454a50`,textSecondary:`#66696f`,border:`#5058601e`,borderHover:`#50586040`,accent:`#2567a8`,accentHover:`#1d568e`,accentActive:`#194b7c`,selection:`#e1e1e1`,hover:`#0000000a`,active:`#00000014`,focus:`#2567a8b3`,error:`#a3424b`,warning:`#806015`,success:`#467037`,info:`#315d9b`}},{id:`cursor-dark`,name:`Cursor`,variant:`dark`,author:`cedricverlinden`,colours:{canvas:`#1a1a1a`,elevated:`#232323`,muted:`#151515`,text:`#e1e1e2`,textSecondary:`#8e8e8e`,border:`#8484841a`,borderHover:`#8484841f`,accent:`#4c9df3`,accentHover:`#66aefa`,accentActive:`#66aefa`,selection:`#ffffff1d`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#4c9df399`,error:`#c6747b`,warning:`#ebcb8b`,success:`#a3be8c`,info:`#81a1c1`}},{id:`dracula-light`,name:`Dracula`,variant:`light`,colours:{canvas:`#f9f9f4`,elevated:`#eeefe9`,muted:`#f3f4ee`,text:`#45454f`,textSecondary:`#5f5f6a`,border:`#00000013`,borderHover:`#0000002e`,accent:`#6957d7`,accentHover:`#6150c6`,accentActive:`#5849b5`,selection:`#dee1db`,hover:`#0000000a`,active:`#00000014`,focus:`#c2c2fd`,error:`#ad1446`,warning:`#9e5a04`,success:`#167a46`,info:`#366da9`}},{id:`dracula-dark`,name:`Dracula`,variant:`dark`,colours:{canvas:`#151720`,elevated:`#1c2029`,muted:`#12121b`,text:`#e0e0e2`,textSecondary:`#8a8b8a`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#bd93f9`,accentHover:`#c29cf9`,accentActive:`#c8a4fa`,selection:`#4650559f`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#d3bcfa`,error:`#ff5555`,warning:`#ffb86c`,success:`#50fa7b`,info:`#8be9fd`}},{id:`everforest-light`,name:`Everforest`,variant:`light`,colours:{canvas:`#fdf8e8`,elevated:`#f5f2e2`,muted:`#f7f3e4`,text:`#3b474e`,textSecondary:`#656b62`,border:`#00000013`,borderHover:`#0000002e`,accent:`#65740b`,accentHover:`#5d6b0a`,accentActive:`#556109`,selection:`#e9e8d5`,hover:`#0000000a`,active:`#00000014`,focus:`#bfd747`,error:`#c4222a`,warning:`#ad5410`,success:`#66731b`,info:`#366eaa`}},{id:`everforest-dark`,name:`Everforest`,variant:`dark`,colours:{canvas:`#1c252b`,elevated:`#222c32`,muted:`#1a2127`,text:`#f0efed`,textSecondary:`#8f978e`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#a7c080`,accentHover:`#aec58a`,accentActive:`#b5ca94`,selection:`#3e5151c5`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#bad492`,error:`#e67e80`,warning:`#e69875`,success:`#a7c080`,info:`#83afe0`}},{id:`fields-of-the-shire-light`,name:`Fields of the Shire`,variant:`light`,author:`OpenChamber`,colours:{canvas:`#f9f5eb`,elevated:`#efebe2`,muted:`#f3efe5`,text:`#514a40`,textSecondary:`#6c6459`,border:`#1a161215`,borderHover:`#1a161230`,accent:`#4a6030`,accentHover:`#5e773f`,accentActive:`#708a50`,selection:`#1a16121a`,hover:`#0000000a`,active:`#00000014`,focus:`#4a603040`,error:`#a24d3f`,warning:`#8c5520`,success:`#4a6030`,info:`#3d4f5a`}},{id:`fields-of-the-shire-dark`,name:`Fields of the Shire`,variant:`dark`,author:`OpenChamber`,colours:{canvas:`#1b1815`,elevated:`#24211e`,muted:`#161311`,text:`#e9decf`,textSecondary:`#948b7c`,border:`#2e2b28d4`,borderHover:`#f0e6d830`,accent:`#809062`,accentHover:`#8a996f`,accentActive:`#94a27b`,selection:`#f0e6d81f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#8090624d`,error:`#c47466`,warning:`#c47a3a`,success:`#7f905e`,info:`#798d99`}},{id:`flexoki-light`,name:`Flexoki`,variant:`light`,colours:{canvas:`#fffdf4`,elevated:`#f5f3ea`,muted:`#f9f7ee`,text:`#494741`,textSecondary:`#6a6962`,border:`#e6e4db`,borderHover:`#cecdc3`,accent:`#b54f14`,accentHover:`#a74912`,accentActive:`#984211`,selection:`#76736f30`,hover:`#0000000a`,active:`#00000014`,focus:`#b54f1440`,error:`#af3029`,warning:`#b54f14`,success:`#5e760a`,info:`#205ea6`}},{id:`flexoki-dark`,name:`Flexoki`,variant:`dark`,colours:{canvas:`#171515`,elevated:`#201e1e`,muted:`#121111`,text:`#dedcd3`,textSecondary:`#8b8a83`,border:`#2b2a28d4`,borderHover:`#403e3c`,accent:`#da702c`,accentHover:`#da702c`,accentActive:`#f9ae77`,selection:`#f4f4f41f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#da702c50`,error:`#d76459`,warning:`#da702c`,success:`#a0af54`,info:`#4d8cc1`}},{id:`github-light`,name:`GitHub`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f4`,muted:`#fafaf9`,text:`#464a4e`,textSecondary:`#5c646e`,border:`#00000013`,borderHover:`#0000002e`,accent:`#0f69d8`,accentHover:`#0e61c7`,accentActive:`#0d58b5`,selection:`#e7e7e6`,hover:`#0000000a`,active:`#00000014`,focus:`#a9cbfd`,error:`#8f0617`,warning:`#664407`,success:`#105122`,info:`#09448f`}},{id:`github-dark`,name:`GitHub`,variant:`dark`,colours:{canvas:`#0a0e14`,elevated:`#13171e`,muted:`#05070c`,text:`#d7d8da`,textSecondary:`#7d848e`,border:`#ffffff0d`,borderHover:`#ffffff33`,accent:`#58a6ff`,accentHover:`#65adff`,accentActive:`#73b4ff`,selection:`#373d44d8`,hover:`#ffffff0f`,active:`#ffffff15`,focus:`#a3cdfe`,error:`#f85149`,warning:`#e3b341`,success:`#3fb950`,info:`#83afe0`}},{id:`gruvbox-light`,name:`Gruvbox`,variant:`light`,colours:{canvas:`#fcf5d7`,elevated:`#f4eccf`,muted:`#f8f0d3`,text:`#47433c`,textSecondary:`#615d58`,border:`#00000013`,borderHover:`#0000002e`,accent:`#12697a`,accentHover:`#116170`,accentActive:`#0f5866`,selection:`#e8dfc5`,hover:`#0000000a`,active:`#00000014`,focus:`#83d8ed`,error:`#650304`,warning:`#805104`,success:`#4f4c0c`,info:`#013d48`}},{id:`gruvbox-dark`,name:`Gruvbox`,variant:`dark`,colours:{canvas:`#1f1e1d`,elevated:`#272623`,muted:`#1a1a1a`,text:`#e9e8e4`,textSecondary:`#9b9074`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#83a598`,accentHover:`#8daca0`,accentActive:`#97b3a8`,selection:`#514d43b4`,hover:`#ffffff0e`,active:`#ffffff12`,focus:`#aed2c4`,error:`#fb533f`,warning:`#fabd2f`,success:`#b8bb26`,info:`#83afe0`}},{id:`jetbrains-light`,name:`JetBrains`,variant:`light`,author:`Artem Evsevev, adapted for OpenChamber`,colours:{canvas:`#fff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#45474b`,textSecondary:`#696a6f`,border:`#dde0eadc`,borderHover:`#aeb3c2ad`,accent:`#195ce3`,accentHover:`#2d61f0`,accentActive:`#0055ff`,selection:`#dfe1e5`,hover:`#0000000a`,active:`#00000014`,focus:`#0055ff40`,error:`#ce0606`,warning:`#9d620a`,success:`#077d18`,info:`#29769f`}},{id:`jetbrains-dark`,name:`JetBrains`,variant:`dark`,author:`Artem Evsevev, adapted for OpenChamber`,colours:{canvas:`#1e1f22`,elevated:`#27282b`,muted:`#18191b`,text:`#e5e7eb`,textSecondary:`#90939a`,border:`#303238b8`,borderHover:`#4b5059`,accent:`#6796f5`,accentHover:`#70aeff`,accentActive:`#5594fa`,selection:`#43454a`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#6796f550`,error:`#fa6675`,warning:`#f2c55c`,success:`#639d69`,info:`#4199c8`}},{id:`kanagawa-light`,name:`Kanagawa`,variant:`light`,colours:{canvas:`#f4ede3`,elevated:`#ede5db`,muted:`#efe8df`,text:`#4c3d33`,textSecondary:`#64635e`,border:`#00000013`,borderHover:`#0000002f`,accent:`#326384`,accentHover:`#2e5b79`,accentActive:`#2a536f`,selection:`#e2dad0`,hover:`#0000000a`,active:`#00000014`,focus:`#a6cfed`,error:`#a40d11`,warning:`#8e4e14`,success:`#456114`,info:`#073652`}},{id:`kanagawa-dark`,name:`Kanagawa`,variant:`dark`,colours:{canvas:`#17161e`,elevated:`#221e28`,muted:`#111119`,text:`#e0dfde`,textSecondary:`#8a8a83`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#7e9cd8`,accentHover:`#88a4db`,accentActive:`#93acde`,selection:`#4f414ac7`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#afc9fd`,error:`#ed5252`,warning:`#d7a657`,success:`#98bb6c`,info:`#83afe0`}},{id:`material-light`,name:`Material`,variant:`light`,colours:{canvas:`#fafafa`,elevated:`#f1f1f0`,muted:`#f5f5f5`,text:`#3e484c`,textSecondary:`#5f6c72`,border:`#00000013`,borderHover:`#0000002e`,accent:`#19787f`,accentHover:`#176e75`,accentActive:`#15656b`,selection:`#e3e3e2`,hover:`#0000000a`,active:`#00000014`,focus:`#65dee7`,error:`#aa0d15`,warning:`#8f6510`,success:`#537702`,info:`#12787f`}},{id:`material-dark`,name:`Material`,variant:`dark`,colours:{canvas:`#1a252a`,elevated:`#212c31`,muted:`#162126`,text:`#edeff0`,textSecondary:`#85989f`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#82aaff`,accentHover:`#8cb1ff`,accentActive:`#96b8ff`,selection:`#4e5b6094`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#80d6f9`,error:`#f07178`,warning:`#ffcb6b`,success:`#c3e88d`,info:`#83afe0`}},{id:`mono-light`,name:`Mono`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#454545`,textSecondary:`#656565`,border:`#e3e3e3f2`,borderHover:`#b3b3b3ac`,accent:`#000000`,accentHover:`#1a1a1a`,accentActive:`#333333`,selection:`#00000015`,hover:`#0000000a`,active:`#00000014`,focus:`#00000040`,error:`#999999`,warning:`#666666`,success:`#1a1a1a`,info:`#595959`}},{id:`mono-dark`,name:`Mono`,variant:`dark`,colours:{canvas:`#000000`,elevated:`#141414`,muted:`#0a0a0a`,text:`#d0d0d0`,textSecondary:`#828282`,border:`#232323c6`,borderHover:`#333333`,accent:`#ffffff`,accentHover:`#e5e5e5`,accentActive:`#cccccc`,selection:`#ffffff1f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#ffffff50`,error:`#666666`,warning:`#999999`,success:`#e5e5e5`,info:`#a6a6a6`}},{id:`mono-plus-light`,name:`Mono Plus`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#454545`,textSecondary:`#6a6a6a`,border:`#e3e3e3f2`,borderHover:`#b3b3b3ac`,accent:`#4a6a9e`,accentHover:`#1a1a1a`,accentActive:`#333333`,selection:`#00000015`,hover:`#0000000a`,active:`#00000014`,focus:`#00000040`,error:`#8a5a5a`,warning:`#7c6d51`,success:`#577757`,info:`#5a6a8a`}},{id:`mono-plus-dark`,name:`Mono Plus`,variant:`dark`,colours:{canvas:`#000000`,elevated:`#141414`,muted:`#0a0a0a`,text:`#cecece`,textSecondary:`#828282`,border:`#232323c6`,borderHover:`#333333`,accent:`#a2bee8`,accentHover:`#e5e5e5`,accentActive:`#cccccc`,selection:`#ffffff1f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#ffffff50`,error:`#a47373`,warning:`#9e8a6a`,success:`#6a8e6a`,info:`#6d80a0`}},{id:`monokai-light`,name:`Monokai`,variant:`light`,colours:{canvas:`#fdf9ef`,elevated:`#f3efe5`,muted:`#f8f4ea`,text:`#4b463c`,textSecondary:`#656056`,border:`#00000013`,borderHover:`#0000002e`,accent:`#8556b0`,accentHover:`#7a4fa2`,accentActive:`#704894`,selection:`#e5e0d6`,hover:`#0000000a`,active:`#00000014`,focus:`#d9b9fd`,error:`#b21523`,warning:`#936115`,success:`#1b7c1b`,info:`#366eaa`}},{id:`monokai-dark`,name:`Monokai`,variant:`dark`,colours:{canvas:`#1d1e19`,elevated:`#252620`,muted:`#191a15`,text:`#e7e7e7`,textSecondary:`#90918b`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#ae81ff`,accentHover:`#b48bff`,accentActive:`#bb95ff`,selection:`#53544e9a`,hover:`#ffffff0e`,active:`#ffffff12`,focus:`#d0bdfc`,error:`#fa4888`,warning:`#fd971f`,success:`#a6e22e`,info:`#66d9ef`}},{id:`nightowl-light`,name:`Night Owl`,variant:`light`,colours:{canvas:`#f1f1f1`,elevated:`#e9e9e8`,muted:`#ececeb`,text:`#41404f`,textSecondary:`#5a5a6b`,border:`#00000013`,borderHover:`#0000002f`,accent:`#2c60d4`,accentHover:`#2858c3`,accentActive:`#2551b2`,selection:`#dfdddb`,hover:`#0000000a`,active:`#00000014`,focus:`#aec9fe`,error:`#a4151c`,warning:`#856215`,success:`#327443`,info:`#0941c4`}},{id:`nightowl-dark`,name:`Night Owl`,variant:`dark`,colours:{canvas:`#04101c`,elevated:`#0d1a26`,muted:`#010a12`,text:`#d7d9dc`,textSecondary:`#7e8692`,border:`#ffffff0d`,borderHover:`#ffffff33`,accent:`#82aaff`,accentHover:`#8cb1ff`,accentActive:`#96b8ff`,selection:`#36424fc6`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#afc9fd`,error:`#ef5350`,warning:`#ecc48d`,success:`#c5e478`,info:`#82aaff`}},{id:`nord-light`,name:`Nord`,variant:`light`,colours:{canvas:`#eef1f5`,elevated:`#e5e8ed`,muted:`#e9ecf1`,text:`#3c424c`,textSecondary:`#565c67`,border:`#00000013`,borderHover:`#0000002f`,accent:`#426999`,accentHover:`#3d618d`,accentActive:`#375881`,selection:`#d8dce1`,hover:`#0000000a`,active:`#00000014`,focus:`#a4ccfe`,error:`#a0203b`,warning:`#a54d31`,success:`#327443`,info:`#29588f`}},{id:`nord-dark`,name:`Nord`,variant:`dark`,colours:{canvas:`#1f2530`,elevated:`#262c37`,muted:`#1c212c`,text:`#f0f1f2`,textSecondary:`#93979f`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#88c0d0`,accentHover:`#92c5d4`,accentActive:`#9bcad8`,selection:`#505661a3`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#9ad4e4`,error:`#cb7f86`,warning:`#d08770`,success:`#a3be8c`,info:`#81a1c1`}},{id:`onedarkpro-light`,name:`One Dark Pro`,variant:`light`,colours:{canvas:`#f5f6f8`,elevated:`#ebecee`,muted:`#eff0f2`,text:`#454c58`,textSecondary:`#616770`,border:`#d5d8dedb`,borderHover:`#d4d9e3`,accent:`#3c67bc`,accentHover:`#375fad`,accentActive:`#32579e`,selection:`#d8dde6`,hover:`#0000000a`,active:`#00000014`,focus:`#3c67bc40`,error:`#a54f56`,warning:`#866241`,success:`#38754d`,info:`#336da3`}},{id:`onedarkpro-dark`,name:`One Dark Pro`,variant:`dark`,colours:{canvas:`#1e222a`,elevated:`#272b33`,muted:`#181b22`,text:`#e4ebf8`,textSecondary:`#8d97a2`,border:`#3138489b`,borderHover:`#363d52`,accent:`#61afef`,accentHover:`#579ad1`,accentActive:`#77baf1`,selection:`#a8aec533`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#61afef40`,error:`#e17179`,warning:`#e5c07b`,success:`#98c379`,info:`#61afef`}},{id:`openchamber-light`,name:`OpenChamber`,variant:`light`,author:`OpenChamber`,colours:{canvas:`#fdfcfa`,elevated:`#f3f2f0`,muted:`#f7f6f4`,text:`#44443d`,textSecondary:`#696960`,border:`#e5e1debf`,borderHover:`#cbc7c2`,accent:`#b35017`,accentHover:`#9a4310`,accentActive:`#85390c`,selection:`#a9998f2b`,hover:`#0000000a`,active:`#00000014`,focus:`#b3501755`,error:`#b7493f`,warning:`#886914`,success:`#517734`,info:`#2c6ebd`}},{id:`openchamber-dark`,name:`OpenChamber`,variant:`dark`,author:`OpenChamber`,colours:{canvas:`#120f0e`,elevated:`#1b1918`,muted:`#0e0c0b`,text:`#dbd7cc`,textSecondary:`#89867c`,border:`#242323bf`,borderHover:`#504e4c`,accent:`#da7c47`,accentHover:`#eb8c57`,accentActive:`#fd9b66`,selection:`#c8c6c52b`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#da7c4755`,error:`#da5b4a`,warning:`#c67f13`,success:`#76ad4f`,info:`#479fe6`}},{id:`opencode-light`,name:`OpenCode`,variant:`light`,author:`OpenCode`,colours:{canvas:`#ffffff`,elevated:`#fafafa`,muted:`#fafafa`,text:`#4a4a4a`,textSecondary:`#646464`,border:`#00000013`,borderHover:`#0000002e`,accent:`#3b5cf6ff`,accentHover:`#3655e2`,accentActive:`#324dcf`,selection:`#eeeeeeff`,hover:`#0000000a`,active:`#00000014`,focus:`#7698fdff`,error:`#b82d35ff`,warning:`#8c6e24`,success:`#18833f`,info:`#3250dfff`}},{id:`opencode-dark`,name:`OpenCode`,variant:`dark`,author:`OpenCode`,colours:{canvas:`#161616`,elevated:`#1f1f1f`,muted:`#0a0a0a`,text:`#dfdfdf`,textSecondary:`#8a8a8a`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#637ef8`,accentHover:`#6f88f9`,accentActive:`#7c93f9`,selection:`#3a3a3af6`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#7698fdff`,error:`#f17471ff`,warning:`#f2cf76ff`,success:`#6bd586ff`,info:`#7698fdff`}},{id:`osaka-jade-refined-light`,name:`Osaka Jade`,variant:`light`,author:`tbcode-org`,colours:{canvas:`#f1eee8`,elevated:`#e7e4de`,muted:`#ebe9e3`,text:`#40463e`,textSecondary:`#53685b`,border:`#00000013`,borderHover:`#0000002e`,accent:`#197160`,accentHover:`#176858`,accentActive:`#155f51`,selection:`#d8d5d0`,hover:`#0000000a`,active:`#00000014`,focus:`#5ce4c6`,error:`#8f110b`,warning:`#73650e`,success:`#02532a`,info:`#33679f`}},{id:`osaka-jade-refined`,name:`Osaka Jade`,variant:`dark`,author:`tbcode-org`,colours:{canvas:`#0a1611`,elevated:`#121f18`,muted:`#07100c`,text:`#d9dbd6`,textSecondary:`#7b8c81`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#2dd5b7`,accentHover:`#3ed8bd`,accentActive:`#4fdcc3`,selection:`#324235e1`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#90d9d1`,error:`#ff5345`,warning:`#e7c831`,success:`#63b07a`,info:`#82aecb`}},{id:`rosepine-light`,name:`Rose Pine`,variant:`light`,colours:{canvas:`#fbf5ef`,elevated:`#f5ede7`,muted:`#f7f0eb`,text:`#464061`,textSecondary:`#6a6673`,border:`#00000013`,borderHover:`#0000002e`,accent:`#177394`,accentHover:`#156a88`,accentActive:`#13617c`,selection:`#ece2db`,hover:`#0000000a`,active:`#00000014`,focus:`#8cd4f4`,error:`#942a50`,warning:`#965f0b`,success:`#347846`,info:`#0c4b62`}},{id:`rosepine-dark`,name:`Rose Pine`,variant:`dark`,colours:{canvas:`#12101d`,elevated:`#1c1a28`,muted:`#0c0b15`,text:`#dbdade`,textSecondary:`#87849b`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#9ccfd8`,accentHover:`#a4d3db`,accentActive:`#acd7de`,selection:`#444252c0`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#9fd3dd`,error:`#eb6f92`,warning:`#f6c177`,success:`#80b888`,info:`#9ccfd8`}},{id:`solarized-light`,name:`Solarized`,variant:`light`,colours:{canvas:`#fdf8e8`,elevated:`#f5f2e2`,muted:`#f7f3e4`,text:`#33494f`,textSecondary:`#596c73`,border:`#00000013`,borderHover:`#0000002e`,accent:`#0a72b1`,accentHover:`#0969a3`,accentActive:`#086095`,selection:`#e6e8da`,hover:`#0000000a`,active:`#00000014`,focus:`#98d0ff`,error:`#9b1a1a`,warning:`#806318`,success:`#5f6c17`,info:`#136196`}},{id:`solarized-dark`,name:`Solarized`,variant:`dark`,colours:{canvas:`#041d24`,elevated:`#0c242b`,muted:`#021820`,text:`#e0e4e5`,textSecondary:`#818e8f`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#7e83cb`,accentHover:`#888dcf`,accentActive:`#9397d3`,selection:`#293f44`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#bec4fa`,error:`#e35e5b`,warning:`#b58900`,success:`#859900`,info:`#2aa198`}},{id:`tokyonight-light`,name:`Tokyonight`,variant:`light`,colours:{canvas:`#e5e6ea`,elevated:`#dcdee3`,muted:`#e0e2e6`,text:`#343a56`,textSecondary:`#4b5472`,border:`#00000013`,borderHover:`#0000002f`,accent:`#195fba`,accentHover:`#1757ab`,accentActive:`#15509c`,selection:`#d0d2da`,hover:`#0000000a`,active:`#00000014`,focus:`#abcbfa`,error:`#97073a`,warning:`#65440a`,success:`#314e04`,info:`#0a54ae`}},{id:`tokyonight-dark`,name:`Tokyonight`,variant:`dark`,colours:{canvas:`#13141e`,elevated:`#1b1d28`,muted:`#0f0f18`,text:`#dcdde3`,textSecondary:`#8187a8`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#7aa2f7`,accentHover:`#85a9f8`,accentActive:`#8fb1f8`,selection:`#3d4053d5`,hover:`#ffffff0f`,active:`#ffffff13`,focus:`#afc9fe`,error:`#f7768e`,warning:`#e0af68`,success:`#9ece6a`,info:`#7dcfff`}},{id:`vercel-light`,name:`Vercel`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f4f4f4`,muted:`#f9f9f9`,text:`#4a4a4a`,textSecondary:`#666666`,border:`#00000013`,borderHover:`#0000002e`,accent:`#0769e1`,accentHover:`#0661cf`,accentActive:`#0658bd`,selection:`#e4e4e4`,hover:`#0000000a`,active:`#00000014`,focus:`#a9cbfd`,error:`#a10725`,warning:`#a35d02`,success:`#14621b`,info:`#0a4ca2`}},{id:`vercel-dark`,name:`Vercel`,variant:`dark`,colours:{canvas:`#000000`,elevated:`#070707`,muted:`#000000`,text:`#cfcfcf`,textSecondary:`#7b7b7b`,border:`#ffffff12`,borderHover:`#ffffff33`,accent:`#0674f3`,accentHover:`#1a7ff4`,accentActive:`#2e8af5`,selection:`#2c2c2c`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#a1cdfe`,error:`#e5484d`,warning:`#ffb224`,success:`#46a758`,info:`#52a8ff`}},{id:`vesper-light`,name:`Vesper`,variant:`light`,colours:{canvas:`#f1f1f1`,elevated:`#e7e7e7`,muted:`#ebebeb`,text:`#424242`,textSecondary:`#5c5c5c`,border:`#00000013`,borderHover:`#0000002f`,accent:`#8a5c35`,accentHover:`#7f5531`,accentActive:`#744d2d`,selection:`#d7d7d7`,hover:`#0000000a`,active:`#00000014`,focus:`#f6bb8a`,error:`#c91b35`,warning:`#955817`,success:`#327343`,info:`#3469a2`}},{id:`vesper-dark`,name:`Vesper`,variant:`dark`,colours:{canvas:`#0f0f0f`,elevated:`#191919`,muted:`#080808`,text:`#d9d9d9`,textSecondary:`#858585`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#ffc799`,accentHover:`#ffcba1`,accentActive:`#ffd0a9`,selection:`#484848a8`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#f4bc8d`,error:`#ff8080`,warning:`#ffc799`,success:`#80b888`,info:`#83afe0`}},{id:`vitesse-light-light`,name:`Vitesse`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#484843`,textSecondary:`#6b6b64`,border:`#e6e2e2f1`,borderHover:`#cbc7c7f5`,accent:`#1c6b48`,accentHover:`#1c6b48`,accentActive:`#228056`,selection:`#22222218`,hover:`#0000000a`,active:`#00000014`,focus:`#00000050`,error:`#a85757`,warning:`#a45d2b`,success:`#1e754f`,info:`#296aa3`}},{id:`vitesse-dark-dark`,name:`Vitesse`,variant:`dark`,colours:{canvas:`#121212`,elevated:`#1b1b1b`,muted:`#0e0e0e`,text:`#ddd9cd`,textSecondary:`#878781`,border:`#292929cd`,borderHover:`#3c3c3c`,accent:`#4d9375`,accentHover:`#4d9375`,accentActive:`#5cb08c`,selection:`#eeeeee18`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#00000050`,error:`#cb7676`,warning:`#d4976c`,success:`#4d9375`,info:`#6394bf`}}],zf=`omms-light`,Bf=`omms-dark`,Vf=[{id:zf,name:`OMMS`,variant:`light`,colours:{canvas:`#fdfcfa`,elevated:`#f8f7f5`,muted:`#f7f6f4`,text:`#393a34`,textSecondary:`#5c5c54`,border:`#e5e1de`,borderHover:`#cbc7c2`,accent:`#b35017`,accentHover:`#9a4310`,accentActive:`#85390c`,selection:`#a9998f2b`,hover:`#0000000d`,active:`#00000014`,focus:`#b35017`,error:`#b7493f`,warning:`#8d6c15`,success:`#5f8d3d`,info:`#2d72c4`}},{id:Bf,name:`OMMS`,variant:`dark`,colours:{canvas:`#120f0e`,elevated:`#181715`,muted:`#171615`,text:`#c9c5ba`,textSecondary:`#8f8b81`,border:`#242323`,borderHover:`#504e4c`,accent:`#da7c47`,accentHover:`#eb8c57`,accentActive:`#fd9b66`,selection:`#c8c6c52b`,hover:`#ffffff12`,active:`#ffffff1f`,focus:`#da7c47`,error:`#da5b4a`,warning:`#c67f13`,success:`#76ad4f`,info:`#479fe6`}},...Rf];function Hf(e){return Vf.filter(t=>t.variant===e)}function Uf(e,t){let n=t===`light`?zf:Bf;return Vf.find(n=>n.id===e&&n.variant===t)??Vf.find(e=>e.id===n)}function Wf(e){return e.id===`omms-light`||e.id===`omms-dark`}var Gf=e=>`color-mix(in srgb, var(${e}) 75%, var(--foreground))`;function Kf(e,t){let n=t===`light`?`#ffffff`:e.canvas;return{"--background":e.canvas,"--foreground":e.text,"--card":e.elevated,"--card-foreground":e.text,"--popover":e.elevated,"--popover-foreground":e.text,"--primary":e.accent,"--primary-foreground":n,"--primary-hover":e.accentHover,"--primary-active":e.accentActive,"--primary-label":`color-mix(in srgb, var(--primary) 70%, var(--foreground))`,"--secondary":e.muted,"--secondary-foreground":e.text,"--muted":e.muted,"--muted-foreground":e.textSecondary,"--accent":e.selection,"--accent-foreground":e.text,"--selection":e.selection,"--interactive-hover":e.hover,"--interactive-active":e.active,"--destructive":e.error,"--destructive-label":Gf(`--destructive`),"--border":e.border,"--border-hover":e.borderHover,"--input":`color-mix(in srgb, var(--muted-foreground) 75%, var(--background))`,"--ring":e.accent,"--status-warning":e.warning,"--status-warning-label":Gf(`--status-warning`),"--status-success":e.success,"--status-success-label":Gf(`--status-success`),"--status-info":e.info,"--status-info-label":Gf(`--status-info`),"--chart-1":e.accent,"--chart-2":e.success,"--chart-3":e.info,"--chart-4":e.warning,"--chart-5":e.error,"--sidebar":e.muted,"--sidebar-foreground":e.text,"--sidebar-primary":e.accent,"--sidebar-primary-foreground":n,"--sidebar-accent":e.selection,"--sidebar-accent-foreground":e.text,"--sidebar-border":e.border,"--sidebar-ring":e.accent}}function qf(e,t){return`${e} {\n${Object.entries(t).map(([e,t])=>` ${e}: ${t};`).join(`
55
+ `?(p+=`\\n`,t+=2):(p+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(p+=`\\${n}`,t++):vu(n)?(p+=Lu[n],t++):(lu(n)||D(n),p+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=Du(n,`"`,!0);let e=n.length;n=_()?ku(n,e,1):Ou(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!cu(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&cu(e[t+1])&&(a=!0);cu(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,cu(e[t])||(i+=`0`);cu(e[t]);)i+=e[t],t++;if(t>r){if(e[t]===`e`||e[t]===`E`)for(i===`-`&&(a=!0),i+=e[t],t++,(e[t]===`-`||e[t]===`+`)&&(i+=e[t],t++),cu(e[t])||(i+=`0`);cu(e[t]);)i+=e[t],t++;return E()?(n+=a?`"${e.substring(r,t)}"`:i,!0):(t=r,!1)}return!1}function b(){return x(`true`,`true`)||x(`false`,`false`)||x(`null`,`null`)||x(`True`,`true`)||x(`False`,`false`)||x(`None`,`null`)}function x(r,i){return e.slice(t,t+r.length)===r&&!fu(e[t+r.length])&&(n+=i,t+=r.length,!0)}function S(r){let a=t;if(du(e[t])){for(;t<e.length&&fu(e[t]);)t++;let n=t;for(;yu(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!hu(e[t])&&!Su(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&pu.test(e.substring(a,t+2)))for(;t<e.length&&mu.test(e[t]);)t++;if(t>a){for(;yu(e,t-1)&&t>0;)t--;let r=e.slice(a,t);return n+=r===`undefined`?`null`:JSON.stringify(r),e[t]===`"`&&t++,!0}}function C(){if(e[t]===`/`){let r=t;for(t++;t<e.length&&(e[t]!==`/`||e[t-1]===`\\`);)t++;return t++,n+=JSON.stringify(e.substring(r,t)),!0}}function w(t){let n=t;for(;n>0&&yu(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&yu(e,n);)n++;return n>=e.length||uu(e[n])}function E(){return t>=e.length||uu(e[t])||yu(e,t)}function D(e){throw new Jl(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new Jl(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new Jl(`Unexpected end of json string`,e.length)}function A(){throw new Jl(`Object key expected`,t)}function j(){throw new Jl(`Colon expected`,t)}function M(){throw new Jl(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function Bu(e,t){return e[t]===`*`&&e[t+1]===`/`}function Vu(e){if(!e)return[];let t=e,n=null;for(;typeof t==`string`&&t!==n;){n=t;try{t=JSON.parse(zu(t))}catch{break}}if(!Array.isArray(t))return[];let r=[],i=e=>{Array.isArray(e)?e.forEach(i):e&&typeof e==`object`&&r.push(e)};return i(t),r}function Hu(e,t){if(!t||!e.includes(`_`))return null;let[n,r]=e.split(`_`),i=parseInt(r,10);return Number.isNaN(i)?null:n===`pref`?t.preferences?.[i]?.description??null:n===`pat`?t.patterns?.[i]?.description??null:n===`wf`?t.workflows?.[i]?.description??null:null}function Uu(e,t){if(!t||!e.includes(`_`))return null;let[n,r]=e.split(`_`),i=parseInt(r,10);return Number.isNaN(i)||n!==`wf`?null:t.workflows?.[i]?.steps||null}var Wu=`manual-write`;function Gu(e){let t=e.evidence;return(Array.isArray(t)?t:t?[t]:[]).filter(e=>e.trim().length>0).map(e=>({kind:e.trim()===Wu?`manual-write`:`text`,text:e}))}function Ku(e){return e>=80?`high`:e>=60?`medium`:e>=40?`low`:`poor`}var qu={high:`border-green-600/40 bg-green-500/15 text-green-700 dark:text-green-400`,medium:`border-blue-600/40 bg-blue-500/15 text-blue-700 dark:text-blue-400`,low:`border-orange-600/40 bg-orange-500/15 text-orange-700 dark:text-orange-400`,poor:`border-red-600/40 bg-red-500/15 text-red-700 dark:text-red-400`};function Ju(e,t){return e.length>t?e.substring(0,t)+`...`:e}function Yu(e){let{open:t=!1,profile:n=null,onOpenChange:r,onApplied:i,onMinimise:a}=e,{t:o}=G(),s=ga(t),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)([]),[f,p]=(0,v.useState)(new Set),[m,h]=(0,v.useState)(new Set),[g,_]=(0,v.useState)(new Set),[y,b]=(0,v.useState)(!1),[x,S]=(0,v.useState)(!1),C=(0,v.useRef)(!1),w=s.job,T=la(w,s.startError),E=c||!!w&&!s.checked,D=E?{phase:`running`,done:0,total:0}:T,O=D.phase===`review`?D.result:null,k=(0,v.useMemo)(()=>{let e={};for(let t of u){let n=t.category||`(none)`;e[n]||(e[n]={pref:[],pat:[],wf:[]}),e[n][t._type].push(t)}return e},[u]),A=(0,v.useMemo)(()=>Object.keys(k).sort(),[k]),j=f.size,M=m.size+g.size,N=(O?.changes.merged?.length||0)+(O?.changes.removed?.length||0);function P(){let e=n?.profileData;if(!e){U.error(`No profile data loaded`),F(!1);return}let t=(e.preferences||[]).map((e,t)=>({...e,_id:`pref_${t}`,_type:`pref`})),r=(e.patterns||[]).map((e,t)=>({...e,_id:`pat_${t}`,_type:`pat`})),i=(e.workflows||[]).map((e,t)=>({...e,_id:`wf_${t}`,_type:`wf`})),a=[...t,...r,...i];d(a),p(new Set(a.filter(e=>(e.frequency||0)<=3).map(e=>e._id))),b(!1)}(0,v.useEffect)(()=>{t&&!C.current?P():!t&&C.current&&S(!1),C.current=t},[t]);let ee=w?.status.state===`done`?w.id:null;(0,v.useEffect)(()=>{if(w?.status.state!==`done`)return;let{changes:e}=w.status.result;h(new Set((e.merged||[]).map((e,t)=>t))),_(new Set((e.removed||[]).map((e,t)=>t)))},[ee]);function F(e){r?.(e)}function I(e,t){p(n=>ql(n,e,t))}function te(){p(new Set(u.map(e=>e._id)))}function L(){p(new Set)}function ne(){p(new Set(u.filter(e=>(e.frequency||0)<=3).map(e=>e._id)))}function re(){p(Kl(u))}async function R(e){if(e.length===0){U.warning(`No items selected`);return}l(!0),await s.start(e,n?.version,o(`toast-ai-cleanup-failed`)),l(!1)}function ie(){p(pa(w,f)),s.discard()}function ae(e){if(!e.includes(`_`))return`?`;let t=e.split(`_`)[0];return t===`pref`?o(`profile-type-pref`)||`Pref`:t===`pat`?o(`profile-type-pat`)||`Pat`:t===`wf`?o(`profile-type-wf`)||`Wf`:`?`}function se(e,t){h(n=>ql(n,e,t))}function ue(e,t){_(n=>ql(n,e,t))}function de(){h(new Set((O?.changes.merged||[]).map((e,t)=>t))),_(new Set((O?.changes.removed||[]).map((e,t)=>t)))}function fe(){h(new Set),_(new Set)}async function pe(){if(!O||M===0)return;S(!0);let e=[...m].map(e=>O.changes.merged?.[e]?.ids).filter(e=>!!e),t=[...g].map(e=>O.changes.removed?.[e]?.id).filter(e=>!!e),n=await li.apply(e,t);if(S(!1),n.success){let{applied:e=0,skipped:t=0}=n.data??{};U.success(t>0?o(`toast-ai-cleanup-skipped`,{applied:e,skipped:t}):o(`toast-ai-cleanup-success`)),s.clear(),F(!1),i?.()}else U.error(n.error||o(`toast-cleanup-apply-failed`))}return(0,H.jsx)(zl,{open:t,onOpenChange:F,children:(0,H.jsxs)(q,{className:`grid! sm:max-w-2xl max-h-[90vh] grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden gap-4`,onMinimise:D.phase===`running`&&!E?a:void 0,children:[(0,H.jsx)(Hl,{className:`pe-20`,children:(0,H.jsx)(Wl,{children:o(`label-ai-cleanup-title`)})}),D.phase===`running`?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-6 animate-spin`}),(0,H.jsx)(`span`,{className:`text-sm`,children:o(`label-ai-cleanup-loading`)}),D.total>0?(0,H.jsx)(`span`,{className:`text-sm font-medium text-foreground`,"aria-live":`polite`,children:o(`label-ai-cleanup-progress`,{done:D.done,total:D.total})}):null,(0,H.jsx)(`span`,{className:`text-xs`,children:o(`label-ai-cleanup-running-hint`)})]}):D.phase===`failed`?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-10 text-center`,role:`alert`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium text-destructive`,children:o(`toast-ai-cleanup-failed`)}),(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground break-words`,children:D.error})]}):D.phase===`select`?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3 overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:o(`label-ai-cleanup-select`)}),(0,H.jsx)(Ha,{onSelectAll:te,onSelectNone:L,onSelectLow:ne,onSelectSameCat:re})]}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto pr-1`,children:A.map(e=>{let t=[...k[e].pref,...k[e].pat,...k[e].wf];return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs rounded-full bg-muted px-2 py-0.5`,children:e}),(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[t.length,` items`]})]}),t.map(e=>{let t=f.has(e._id);return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border/60 px-2 py-1.5 text-sm cursor-pointer hover:bg-muted/40`,role:`checkbox`,"aria-checked":t,tabIndex:0,onClick:()=>I(e._id,!t),onKeyDown:n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),I(e._id,!t))},children:[(0,H.jsx)(`span`,{className:`pointer-events-none inline-flex`,children:(0,H.jsx)(Qo,{checked:t,tabIndex:-1})}),(0,H.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground w-4`,children:e._type===`pref`?`P`:e._type===`pat`?`T`:`W`}),(0,H.jsx)(`span`,{className:`flex-1 truncate`,children:(e.description||``).substring(0,80)}),(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-muted-foreground shrink-0`,children:[(0,H.jsx)(It,{className:`size-3`}),e.frequency||0,e.confidence==null?``:` | ${Math.round(e.confidence*100)}%`]})]},e._id)})]},e)})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-1`,children:[(0,H.jsx)(`span`,{className:`rounded-md border border-status-success/30 bg-status-success/10 px-2 py-0.5 text-xs font-medium text-status-success`,children:o(`label-ai-cleanup-selected`,{count:j})}),(0,H.jsx)(K,{onClick:()=>R([...f]),children:o(`label-ai-cleanup-analyze`)})]})]}):D.phase===`review`&&O?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3 overflow-hidden`,children:[D.notice?(0,H.jsx)(`div`,{className:`rounded-lg border border-status-warning/30 bg-status-warning/10 px-3 py-2 text-xs text-status-warning`,children:o(`label-ai-cleanup-failed-batches`,D.notice)}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`label-ai-cleanup-changes-selected`,{selected:M,total:N})}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{variant:`link`,size:`xs`,onClick:de,children:o(`label-ai-cleanup-select-all`)}),(0,H.jsx)(K,{variant:`link`,size:`xs`,onClick:fe,children:o(`label-ai-cleanup-deselect-all`)})]})]}),(0,H.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto pr-1`,children:[(O.changes.merged||[]).length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-subsection-title font-semibold`,children:[(0,H.jsx)(Pe,{className:`size-3.5`}),o(`label-ai-cleanup-merged-header`,{count:O.changes.merged?.length||0})]}),(O.changes.merged||[]).map((e,t)=>{let n=e.ids.slice(1),r=e.result||``,i=m.has(t);return(0,H.jsxs)(`div`,{className:`rounded-xl border border-border p-3 space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-sm cursor-pointer`,role:`checkbox`,"aria-checked":i,tabIndex:0,onClick:()=>se(t,!i),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),se(t,!i))},children:[(0,H.jsx)(`span`,{className:`pointer-events-none inline-flex`,children:(0,H.jsx)(Qo,{checked:i,tabIndex:-1})}),(0,H.jsx)(`span`,{children:o(`label-ai-cleanup-merge-check`)})]}),(0,H.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-[1fr_auto_1fr] items-start text-sm`,children:[(0,H.jsx)(`div`,{className:`space-y-1.5`,children:n.map(e=>{let t=Hu(e,O.old);return t?(0,H.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2 space-y-1`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`span`,{className:`text-[10px] rounded bg-muted px-1.5 py-0.5`,children:ae(e)}),` `,Ju(t,80)]}),(0,H.jsx)(Ua,{steps:Uu(e,O.old)})]},e):null})}),(0,H.jsx)(`div`,{className:`text-muted-foreground self-center grid place-items-center`,children:(0,H.jsx)(ce,{className:`size-4`})}),(0,H.jsxs)(`div`,{className:`rounded-lg bg-primary/10 p-2 space-y-1`,children:[(0,H.jsx)(`div`,{children:Ju(r,120)}),(0,H.jsx)(Ua,{steps:Uu(e.ids[0],O.old)})]})]})]},t)})]}):null,(O.changes.removed||[]).length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-subsection-title font-semibold`,children:[(0,H.jsx)(Rt,{className:`size-3.5`}),o(`label-ai-cleanup-removed-header`,{count:O.changes.removed?.length||0})]}),(O.changes.removed||[]).map((e,t)=>{let n=Hu(e.id,O.old),r=g.has(t);return(0,H.jsxs)(`div`,{className:`rounded-xl border border-border p-3 space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-sm cursor-pointer`,role:`checkbox`,"aria-checked":r,tabIndex:0,onClick:()=>ue(t,!r),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),ue(t,!r))},children:[(0,H.jsx)(`span`,{className:`pointer-events-none inline-flex`,children:(0,H.jsx)(Qo,{checked:r,tabIndex:-1})}),(0,H.jsx)(`span`,{children:o(`label-ai-cleanup-remove-check`)})]}),(0,H.jsx)(`div`,{className:`text-sm`,children:n||e.id}),(0,H.jsx)(Ua,{steps:Uu(e.id,O.old)}),(0,H.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.reason})]},t)})]}):null,(O.changes.kept||[]).length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 text-sm font-medium`,onClick:()=>b(e=>!e),children:[o(`label-ai-cleanup-kept`),(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,O.changes.kept?.length||0,`)`]}),y?(0,H.jsx)(le,{className:`size-3.5`}):(0,H.jsx)(oe,{className:`size-3.5`})]}),y?(0,H.jsx)(`div`,{className:`space-y-1`,children:(O.changes.kept||[]).map((e,t)=>(0,H.jsx)(`div`,{className:`text-xs text-muted-foreground rounded bg-muted/40 px-2 py-1`,children:e},t))}):null]}):null]})]}):null,(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{variant:`secondary`,onClick:()=>F(!1),children:o(`btn-cancel`)}),D.phase===`running`&&!E?(0,H.jsx)(K,{variant:`outline`,onClick:ie,children:o(`btn-ai-cleanup-stop`)}):null,D.phase===`failed`||D.phase===`review`?(0,H.jsx)(K,{variant:`outline`,onClick:ie,children:o(`btn-ai-cleanup-back`)}):null,D.phase===`failed`?(0,H.jsx)(K,{onClick:()=>R(ma(w,f)),children:o(`btn-ai-cleanup-retry`)}):null,D.phase===`review`?(0,H.jsx)(K,{disabled:M===0||x,onClick:pe,children:M>0?`${o(`label-ai-cleanup-apply`)} (${M})`:o(`label-ai-cleanup-apply`)||`Apply`}):null]})]})})}function Xu({onOpen:e,onGone:t}){let{t:n}=G(),r=ga(!0,!0),i=ua(r.job,r.checked),a=i===null;if((0,v.useEffect)(()=>{a&&t()},[a,t]),!i)return null;let o=i.kind===`failed`,s=i.kind===`running`?i.total>0?n(`label-ai-cleanup-pill-progress`,{done:i.done,total:i.total}):n(`label-ai-cleanup-pill-running`):i.kind===`ready`?n(`label-ai-cleanup-pill-ready`):n(o?`label-ai-cleanup-pill-failed`:`label-ai-cleanup-pill`);return(0,H.jsx)(`div`,{className:`fixed top-3 end-3 z-40 max-w-[calc(100%-1.5rem)]`,role:`status`,children:(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:e,className:V(`max-w-full bg-popover shadow-md`,o&&`border-destructive text-destructive hover:text-destructive`),children:[i.kind===`ready`?(0,H.jsx)(fe,{"aria-hidden":`true`}):o?(0,H.jsx)(ue,{"aria-hidden":`true`}):(0,H.jsx)(Ye,{"aria-hidden":`true`,className:`animate-spin`}),(0,H.jsx)(`span`,{className:`truncate`,children:s})]})})}function Zu(e){let t=new Set;return e.forEach((e,n)=>{e.checked&&t.add(n)}),t}function Qu(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function $u(e,t,n){return t.reduce((e,t,r)=>e-(n.has(r)?t.labels.length-1:0),e)}function ed(e,t,n){return[...t].map(t=>({labels:e[t].labels.map(e=>e.label),name:n[t].trim()}))}function td(e){let t=0;for(let n of e.trim().toLowerCase())t=t*31+n.codePointAt(0)|0;return Math.abs(t)%360}function nd({keyword:e,active:t=!1,title:n,onClick:r,"aria-describedby":i,"aria-label":a}){let o=td(e);return(0,H.jsx)(`button`,{type:`button`,title:n,"aria-describedby":i,"aria-label":a,"aria-pressed":t,onClick:()=>r?.(e),className:V(`inline-flex min-h-6 max-w-full cursor-pointer items-center rounded-[7px] border px-2 text-xs break-words transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))]`,t&&`ring-2 ring-offset-1 ring-offset-background`),style:{backgroundColor:`oklch(0.72 0.14 ${o} / 0.18)`,borderColor:`oklch(0.72 0.14 ${o} / 0.45)`,"--keyword-hue":String(o),"--tw-ring-color":`oklch(0.72 0.14 ${o} / 0.7)`},children:e})}var rd=Ba(`h-5 gap-1 rounded-2xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap transition-colors focus-visible:ring-[3px] [&>svg]:pointer-events-none`,{variants:{variant:{default:`bg-primary/10 border-primary/25 text-primary-label [a]:hover:bg-primary/16`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 border-destructive/25 [a]:hover:bg-destructive/16 text-destructive-label`,info:`bg-status-info/10 border-status-info/25 text-status-info [a]:hover:bg-status-info/16`,warning:`bg-status-warning/10 border-status-warning/25 text-status-warning [a]:hover:bg-status-warning/16`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function id({className:e,variant:t,asChild:n=!1,...r}){return(0,H.jsx)(n?Ta:`span`,{"data-slot":`badge`,className:V(rd({variant:t}),e),...r})}function ad({className:e,type:t,...n}){return(0,H.jsx)(`input`,{type:t,"data-slot":`input`,className:V(`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-selection selection:text-foreground flex h-9 w-full min-w-0 rounded-[10px] border bg-card px-2.5 py-1 text-ui transition-colors duration-150 outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-ui file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,`focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,`aria-invalid:ring-destructive aria-invalid:ring-1 aria-invalid:border-destructive`,e),...n})}var od=3e3;function sd({label:e,count:t}){return(0,H.jsxs)(id,{variant:`outline`,className:`bg-transparent border-current [color:oklch(0.42_0.13_var(--category-hue))] dark:[color:oklch(0.8_0.13_var(--category-hue))]`,style:{"--category-hue":String(td(e))},children:[(0,H.jsx)(`bdi`,{children:e}),(0,H.jsx)(`span`,{className:`ms-1 font-mono opacity-70`,children:t})]})}function cd({open:e=!1,onOpenChange:t,onApplied:n}){let{t:r}=G(),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(new Set),[c,l]=(0,v.useState)([]),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null),g=(0,v.useRef)(!1),_=(0,v.useRef)(0);(0,v.useEffect)(()=>{e&&!g.current&&b(!1),e||_.current++,g.current=e},[e]);function y(e){a(e),s(Zu(e.groups)),l(e.groups.map(e=>e.name))}async function b(e){let t=++_.current;a(null),p(null),h(null);let n=null;if(!e){let e=await oi(`/api/user-profile/category-cleanup`);n=e.success?e.data??null:null}if(!n||n.status.state===`failed`){let e=await oi(`/api/user-profile/category-cleanup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});if(!e.success||!e.data){h(e.error||r(`toast-category-cleanup-failed`));return}n=e.data}for(;t===_.current;){let e=n.status;if(e.state===`done`)return y(e.preview);if(e.state===`failed`)return h(e.error);p(e.state===`checking`&&e.total>0?{done:e.done,total:e.total}:null),await new Promise(e=>setTimeout(e,od));let t=await oi(`/api/user-profile/category-cleanup`);if(!t.success||!t.data)return h(t.error||r(`toast-category-cleanup-failed`));n=t.data}}function x(e){s(t=>Qu(t,e))}let S=i?$u(i.before,i.groups,o):0,C=[...o].every(e=>(c[e]??``).trim().length>0);async function w(){if(!i||o.size===0||!C)return;d(!0);let e=ed(i.groups,o,c),a=await oi(`/api/user-profile/category-cleanup/apply`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({groups:e})});if(d(!1),!a.success||!a.data){U.error(a.error||r(`toast-category-cleanup-failed`));return}U.success(r(`toast-category-cleanup-applied`,{count:a.data.renamed})),t?.(!1),n?.()}async function T(){d(!0);let e=await oi(`/api/user-profile/category-cleanup/undo`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({})});if(d(!1),!e.success||!e.data){U.info(e.error||r(`toast-category-cleanup-failed`));return}U.success(r(`toast-category-cleanup-undone`,e.data)),t?.(!1),n?.()}return(0,H.jsx)(zl,{open:e,onOpenChange:t,children:(0,H.jsxs)(q,{className:`grid! sm:max-w-2xl max-h-[90vh] grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden gap-4`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:r(`label-category-cleanup-title`)})}),m?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-sm`,children:[(0,H.jsx)(`span`,{className:`text-destructive`,children:m}),(0,H.jsx)(K,{variant:`secondary`,size:`sm`,onClick:()=>void b(!0),children:r(`btn-category-cleanup-rebuild`)})]}):i?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3 overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`p`,{className:`text-sm`,children:r(`label-category-cleanup-counts`,{before:i.before,after:S})}),(0,H.jsx)(K,{variant:`link`,size:`xs`,onClick:()=>void b(!0),children:r(`btn-category-cleanup-rebuild`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`label-category-cleanup-note`)}),i.groups.length===0?(0,H.jsx)(`p`,{className:`py-6 text-center text-sm text-muted-foreground`,children:r(`label-category-cleanup-empty`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:r(`label-category-cleanup-selected`,{selected:o.size,total:i.groups.length})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto pe-1`,children:i.groups.map((e,t)=>(0,H.jsxs)(`div`,{className:`rounded-xl border border-border p-3 space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(Qo,{checked:o.has(t),onCheckedChange:()=>x(t),"aria-label":r(`label-category-cleanup-accept`)}),(0,H.jsx)(ad,{dir:`auto`,className:`h-8 min-w-0 flex-1 sm:max-w-64`,value:c[t]??``,"aria-label":r(`label-category-cleanup-name`),disabled:!o.has(t),onChange:e=>l(n=>n.map((n,r)=>r===t?e.target.value:n))}),e.checked?null:(0,H.jsx)(`span`,{className:`basis-full text-xs text-muted-foreground sm:basis-auto`,children:r(`label-category-cleanup-unchecked`)})]}),(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.labels.map(e=>(0,H.jsx)(sd,{label:e.label,count:e.count},e.label))})]},e.id))})]})]}):(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-10 text-center text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-6 animate-spin`}),(0,H.jsx)(`span`,{className:`text-sm`,children:f?r(`label-category-cleanup-progress`,f):r(`label-category-cleanup-loading`)}),(0,H.jsx)(`span`,{className:`text-xs`,children:r(`label-category-cleanup-background`)})]}),(0,H.jsxs)(Ul,{className:`gap-2 sm:justify-between`,children:[(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,disabled:u,onClick:()=>void T(),children:[(0,H.jsx)(Vt,{className:`size-3.5`}),r(`btn-category-cleanup-undo`)]}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{variant:`secondary`,size:`sm`,onClick:()=>t?.(!1),children:r(`btn-cancel`)}),(0,H.jsx)(K,{size:`sm`,disabled:u||!i||o.size===0||!C,onClick:()=>void w(),children:r(`btn-category-cleanup-apply`)})]})]})]})})}var J={home:`/`,project:`/project-memories`,profile:`/user-profile`,settings:`/settings`,memory:`/memory`,chat:`/chat`,skills:`/skills`},ld=[`pi`,`opencode`,`claude-code`,`shared`];function ud(e){return`${J.memory}/${e}`}var dd=e=>e===J.memory||e.startsWith(`${J.memory}/`);function fd(e){let t=/^\/memory\/([^/]+)$/.exec(pd(e))?.[1];return ld.includes(t??``)?t:null}function pd(e){let t=e.replace(/\/+$/,``)||`/`;return t.startsWith(`/`)?t:`/${t}`}function md(e){let t=pd(e);return dd(t)?`memory`:t===J.settings?`settings`:t===J.chat?`chat`:t===J.skills?`skills`:t===J.profile?`profile`:`project`}function hd(e){let t=pd(e);return t===J.home||t===J.project||t===J.profile||t===J.settings||dd(t)||t===J.chat||t===J.skills}function gd(e){let t=pd(e);return t===J.home?J.project:dd(t)?fd(t)?t:J.memory:hd(t)?t:J.project}function _d(e,t){let[n,r]=(0,v.useState)(()=>{try{let t=localStorage.getItem(e);return t===null?null:t===`1`}catch{return null}}),i=n??t;return[i,()=>{let t=!i;r(t);try{localStorage.setItem(e,t?`1`:`0`)}catch{}}]}function vd({link:e,sections:t,open:n,onToggle:r,label:i,hideWhenCollapsed:a,onSectionClick:o,id:s=`sidebar-profile-tree`,base:c=J.profile}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[e,t.length>0&&(0,H.jsx)(`button`,{type:`button`,className:V(`inline-flex min-h-11 min-w-11 md:min-h-7 md:min-w-7 shrink-0 items-center justify-center rounded-lg p-1.5 text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,a),onClick:r,"aria-expanded":n,"aria-controls":s,"aria-label":i,title:i,children:(0,H.jsx)(ce,{className:V(`size-4 transition-transform rtl:-scale-x-100`,n&&`rotate-90 rtl:rotate-90`)})})]}),n&&t.length>0&&(0,H.jsx)(`ul`,{id:s,className:V(`ms-5 space-y-0.5 border-s border-sidebar-border ps-2`,a),children:t.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`${c}#${e.id}`,className:`flex min-h-11 md:min-h-7 items-center break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,onClick:t=>o(t,e.id),children:e.label})},e.id))})]})}function yd({sections:e,currentView:t,memoryViewId:n,warningLabel:r,className:i,onSectionClick:a}){return(0,H.jsx)(`ul`,{id:`sidebar-memory-tree`,className:i,children:e.map(e=>(0,H.jsxs)(`li`,{children:[(0,H.jsxs)(`a`,{href:`${J.memory}/${e.id}`,"aria-current":t===`memory`&&n===e.id?`page`:void 0,className:`flex min-h-11 md:min-h-7 items-center gap-2 break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring aria-[current=page]:bg-sidebar-accent aria-[current=page]:text-sidebar-accent-foreground`,onClick:t=>a(t,e.id,`memory`),children:[e.avatar,e.label,e.warning&&(0,H.jsx)(`span`,{role:`img`,"aria-label":r,title:r,className:`ms-auto size-2 shrink-0 rounded-full bg-[var(--status-warning)]`})]}),e.items&&e.items.length>0&&(0,H.jsx)(`ul`,{"aria-label":e.label,className:`ms-4 mt-0.5 space-y-0.5 border-s border-sidebar-border ps-2`,children:e.items.map(t=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`${J.memory}/${e.id}#${t.id}`,className:`flex min-h-11 md:min-h-7 items-center break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:n=>a(n,`${e.id}#${t.id}`,`memory`),children:t.label})},t.id))})]},e.id))})}function bd({className:e,...t}){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,className:V(`size-4 shrink-0`,e),...t,children:(0,H.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}var xd=15e3,Sd=5e3,Cd=500,wd=3e4,Td=2e3,Ed=42e4,Dd=new Set([`idle`,`installing`,`restarting`,`failed`]);function Od(e){if(!e||typeof e!=`object`)return;let t=e;if(!(typeof t.state!=`string`||!Dd.has(t.state)))return{available:typeof t.available==`string`?t.available:null,state:t.state,code:typeof t.code==`string`?t.code:null,canInstall:t.canInstall===!0}}var kd=()=>({"x-omms-token":window.__OMMS_TOKEN__??``});async function Ad(){try{let e=await fetch(`/api/web/status`,{headers:kd(),signal:AbortSignal.timeout(Sd)});if(!e.ok)return null;let t=await e.json();if(typeof t.version!=`string`||typeof t.canControl!=`boolean`)return null;let n=Od(t.update);return{version:t.version,canControl:t.canControl,...typeof t.instance==`string`?{instance:t.instance}:{},...n?{update:n}:{}}}catch{return null}}async function jd(e){try{return(await fetch(`/api/web/${e}`,{method:`POST`,headers:{...kd(),"Content-Type":`application/json`},body:`{}`,signal:AbortSignal.timeout(Sd)})).status===202}catch{return!1}}async function Md(e,t={}){let n=t.sleep??(e=>new Promise(t=>setTimeout(t,e))),r;for(let t=0;;t+=Cd){if(r=await Ad(),r&&r.instance!==e)return`restarted`;if(t>=wd)break;await n(Cd)}return r?`unchanged`:`down`}async function Nd(){try{return(await fetch(`/api/web/update`,{method:`POST`,headers:{...kd(),"Content-Type":`application/json`},body:`{}`,signal:AbortSignal.timeout(Sd)})).status===202}catch{return!1}}async function Pd(e,t={}){let n=t.sleep??(e=>new Promise(t=>setTimeout(t,e)));for(let t=0;t<=Ed;t+=Td){let t=await Ad();if(t&&t.instance!==e)return{kind:`restarted`};if(t?.update?.state===`failed`)return{kind:`failed`,code:t.update.code??`unknown`};await n(Td)}return{kind:`timeout`}}var Fd={ok:!0,status:null},Id=new Set,Ld=null,Rd=0,zd=0;async function Bd(){let e=++Rd,t=await Ad();if(!(e<zd)){zd=e,Fd=t?{ok:!0,status:t}:{...Fd,ok:!1};for(let e of Id)e(Fd)}}function Vd(e){return Id.add(e),e(Fd),Bd(),Ld??=setInterval(()=>void Bd(),xd),()=>{Id.delete(e),Id.size===0&&Ld!==null&&(clearInterval(Ld),Ld=null)}}var Hd=()=>Fd;function Ud(){return(0,v.useSyncExternalStore)(Vd,Hd,Hd)}var Wd=`om-memory-system web`;function Gd(){let{t:e}=G(),{ok:t,status:n}=Ud(),r=n?.canControl??!1,i=n?.instance??null,[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(`idle`),[l,u]=(0,v.useState)(``);async function d(e){if(s!==`idle`)return;if(c(`working`),u(``),!await jd(e)){c(`idle`),u(`power-request-failed`);return}if(o(!1),e===`stop`){c(`stopped`);return}c(`restarting`);let t=await Md(i);if(t===`restarted`){window.location.reload();return}if(t===`unchanged`){u(`power-restart-failed`),c(`idle`),o(!0);return}u(`power-restart-timeout`),c(`stopped`)}return!r&&s===`idle`?null:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,"data-power":t?`on`:`off`,className:`inline-flex min-h-11 min-w-11 md:min-h-8 md:min-w-7 items-center justify-center self-stretch border-s border-sidebar-border px-1.5 text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{u(``),o(!0)},"aria-label":e(`power-button`),title:e(`power-button`),children:(0,H.jsx)(yt,{className:V(`size-4`,t&&`text-emerald-500`)})}),(0,H.jsx)(zl,{open:a,onOpenChange:e=>s===`idle`&&o(e),children:(0,H.jsxs)(q,{showCloseButton:!1,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:e(`power-dialog-title`)})}),(0,H.jsx)(`p`,{children:e(`power-dialog-body`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`power-note`)}),l?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:e(l)}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,H.jsx)(K,{variant:`ghost`,disabled:s!==`idle`,onClick:()=>o(!1),children:e(`power-cancel`)}),(0,H.jsx)(K,{variant:`destructive`,disabled:s!==`idle`,onClick:()=>void d(`stop`),children:e(`power-stop`)}),(0,H.jsx)(K,{autoFocus:!0,disabled:s!==`idle`,onClick:()=>void d(`restart`),children:e(`power-restart`)})]})]})}),s===`restarting`||s===`stopped`?(0,H.jsx)(`div`,{role:`alert`,className:`fixed inset-0 z-[60] flex flex-col items-center justify-center gap-3 bg-background p-6 text-center`,children:s===`restarting`?(0,H.jsx)(`p`,{children:e(`power-restarting`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`power-stopped-title`)}),l?(0,H.jsx)(`p`,{children:e(l)}):null,(0,H.jsx)(`p`,{children:e(`power-stopped-command`)}),(0,H.jsx)(`code`,{className:`rounded-md bg-muted px-2 py-1`,children:Wd}),(0,H.jsx)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:e(`power-note`)})]})}):null]})}function Kd({brand:e,className:t}){let{status:n}=Ud();return(0,H.jsxs)(`span`,{className:V(`flex min-w-0 items-baseline gap-1.5`,t),children:[(0,H.jsx)(`span`,{className:`truncate text-ui font-medium tracking-wide text-brand-label`,children:e}),n?(0,H.jsxs)(`span`,{className:`shrink-0 text-xs text-foreground`,"data-testid":`sidebar-version`,children:[`v`,n.version]}):null]})}function qd({href:e,label:t,icon:n,active:r,collapsed:i,className:a,onNavigate:o}){return(0,H.jsxs)(`a`,{href:e,className:a,"aria-current":r?`page`:void 0,title:i?t:void 0,onClick:t=>o(t,e),children:[(0,H.jsx)(n,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,H.jsx)(`span`,{className:V(`min-w-0 break-words text-start`,i&&`md:sr-only`),children:t})]})}var Jd={opencode:`OpenCode`,pi:`Pi`,"claude-code":`Claude Code`};function Yd(e){return Jd[e]}function Xd(e){return Object.hasOwn(Jd,e)?Jd[e]:e}var Zd=ld.map(e=>({id:e,title:e===`shared`?`Shared`:Yd(e)})),Qd=[{id:`shared-profile`,title:`Profile learning`},{id:`shared-limits`,title:`Memory limits`},{id:`shared-keywords`,title:`Keyword matching`},{id:`shared-reranker`,title:`Reranker`},{id:`shared-directory-maps`,title:`Directory maps`}];Qd.map(e=>e.id);var $d=e=>`${ud(`shared`)}#${e}`,ef=`/memory`,tf={"settings-section-import":ef,"settings-section-auto-import":ef,"settings-section-profile":$d(`shared-profile`),"settings-section-memory":$d(`shared-limits`),"settings-section-directory-maps":$d(`shared-directory-maps`)},nf={"memory-section-import":ef,"memory-section-auto-import":ef,"memory-section-profile":$d(`shared-profile`),"memory-section-limits":$d(`shared-limits`),"memory-section-keywords":$d(`shared-keywords`),"memory-section-reranker":$d(`shared-reranker`),"memory-section-project-folders":$d(`shared-directory-maps`)};function rf(e,t){if(e!==`/settings`&&e!==ef)return null;let n=t.replace(/^#/,``),r=/^directory-maps-(pi|opencode|claude-code)$/.exec(n)?.[1];return r?`${ud(r)}#host-unresolved`:(e===`/settings`?tf:nf)[n]??null}var af={block:`start`};function of(e){let t=e.classList;t&&(t.remove(`anchor-flash`),e.offsetWidth,t.add(`anchor-flash`),setTimeout(()=>t.remove(`anchor-flash`),1600))}function sf(e,t){let n=e.startsWith(`#`)?e.slice(1):``;if(!/^(settings|memory)-section-[a-z0-9-]+$/.test(n))return!1;let r=t.getElementById(n);return r?(r.scrollIntoView(af),of(r),!0):!1}function cf(e){if(typeof document>`u`||typeof requestAnimationFrame>`u`)return;let t=e.replace(/^#/,``);if(!/^(?:(?:settings|memory|skills)-section-[a-z0-9-]+|directory-maps-(?:pi|opencode|claude-code)|shared-(?:profile|limits|keywords|reranker|directory-maps)|host-unresolved|memory-injection|profile-(?:preferences|patterns|workflows))$/.test(t))return;let n=0,r=()=>{let e=document.getElementById(t);if(!e){n++<50&&requestAnimationFrame(r);return}if(t.startsWith(`shared-`)){let t=e.closest(`details`);t&&(t.open=!0)}if(t.startsWith(`directory-maps-`)){let t=e.parentElement;t&&(t.open=!0),e.focus({preventScroll:!0})}e.scrollIntoView(af),of(e)};requestAnimationFrame(r)}function lf(e,t=``){return rf(pd(e),t)??`${gd(e)}${t}`}var uf=typeof window<`u`?lf(window.location.pathname,window.location.hash):J.project,df=new Set;function ff(){for(let e of df)e()}function pf(e){uf!==e&&(uf=e,ff())}function mf(e){return df.add(e),()=>{df.delete(e)}}function hf(){return uf}function gf(){return J.project}function _f(e,t=!1){let[n,r=``]=e.split(/(?=#)/),i=lf(n,r),a=rf(pd(n),r);`${pd(window.location.pathname)}${window.location.hash}`!==i&&(t||a?window.history.replaceState({},``,i):window.history.pushState({},``,i)),pf(i);let o=i.indexOf(`#`);o>=0&&cf(i.slice(o))}function vf(){let e=()=>{let e=`${pd(window.location.pathname)}${window.location.hash}`,t=lf(window.location.pathname,window.location.hash);e!==t&&window.history.replaceState({},``,t),pf(t),window.location.hash&&cf(window.location.hash)};return e(),window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)}function yf(){return(0,v.useSyncExternalStore)(mf,hf,gf)}function bf(){return md(yf().split(`#`)[0])}var xf=[{view:`project`,href:J.project,icon:Ae},{view:`chat`,href:J.chat,icon:Qe},{view:`profile`,href:J.profile,icon:Ut},{view:`skills`,href:J.skills,icon:At}];function Sf({currentView:e,labels:t,collapsed:n,navClass:r,onNavigate:i,profileTree:a,skillsTree:o}){return xf.map(({view:s,href:c,icon:l})=>{let u=t[s],d=(0,H.jsx)(qd,{href:c,label:u,icon:l,collapsed:n,onNavigate:i,active:e===s,className:r(e===s)},s);return s===`profile`?(0,H.jsx)(vd,{link:d,label:u,...a},s):s===`skills`?(0,H.jsx)(vd,{link:d,label:u,id:`sidebar-skills-tree`,base:J.skills,...o},s):d})}var Cf=[{label:`update-host-claude`,command:`claude plugin update omms@omms`},{label:`update-host-opencode`,command:`opencode plugin update om-memory-system`},{label:`update-host-pi`,command:`pi update npm:om-memory-system`},{label:`update-host-global`,command:`npm i -g om-memory-system@latest && om-memory-system web install`}],wf={row:`mb-2 flex min-h-11 w-full rounded-lg border border-sidebar-border/80 bg-card/70 px-2`,inline:`inline-flex min-h-8 self-stretch border-s border-sidebar-border px-2`,icon:`inline-flex min-h-8 min-w-7 self-stretch px-1.5 py-1.5`};function Tf(){let{ok:e,status:t}=Ud(),n=t?.update;return!t?.canControl||!n?.available?null:{ok:e,status:t,update:n,available:n.available}}function Ef({variant:e=`row`,className:t,onOpen:n}){let{t:r}=G(),i=Tf();return i?.ok?(0,H.jsx)(`button`,{type:`button`,"data-update":i.available,"data-variant":e,className:V(`items-center justify-center text-xs font-medium text-brand-label transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,wf[e],t),onClick:n,"aria-label":r(`update-button`,{version:i.available}),title:r(`update-button`,{version:i.available}),children:e===`icon`?(0,H.jsx)(de,{className:`size-4`}):r(`update-label`)}):null}function Df({open:e,onOpenChange:t}){let{t:n}=G(),r=Tf(),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(null);if(!r)return null;let{status:u,update:d,available:f}=r,p=d.state===`failed`?d.code:null,m=i||d.state===`installing`||d.state===`restarting`;async function h(){if(m)return;if(a(!0),s(``),!await Nd()){a(!1),s(n(`update-request-failed`));return}let e=await Pd(u?.instance??null);if(e.kind===`restarted`){window.location.reload();return}a(!1),s(e.kind===`failed`?n(`update-failed`,{code:e.code}):n(`update-timeout`))}function g(e){navigator.clipboard?.writeText(e),l(e)}let _=o||(p?n(`update-failed`,{code:p}):``);return(0,H.jsx)(H.Fragment,{children:(0,H.jsx)(zl,{open:e,onOpenChange:e=>!m&&t(e),children:(0,H.jsxs)(q,{showCloseButton:!1,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:n(`update-dialog-title`)})}),(0,H.jsx)(`p`,{children:n(`update-versions`,{running:u.version,available:f})}),(0,H.jsx)(`p`,{className:`text-sm`,children:n(`update-hosts-intro`)}),(0,H.jsx)(`ul`,{className:`flex flex-col gap-2`,children:Cf.map(({label:e,command:t})=>(0,H.jsxs)(`li`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n(e)}),(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(`code`,{className:`min-w-0 flex-1 break-all rounded-md bg-muted px-2 py-1 text-xs`,children:t}),(0,H.jsxs)(K,{variant:`ghost`,size:`sm`,onClick:()=>g(t),"aria-label":`${n(`update-copy`)}: ${t}`,children:[(0,H.jsx)(_e,{className:`size-3.5`}),n(c===t?`update-copied`:`update-copy`)]})]})]},t))}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`update-hosts-note`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:d.canInstall?n(`update-install-note`):n(`update-cannot-install`)}),m?(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:n(`update-installing`)}):null,_&&!m?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:_}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,H.jsx)(K,{variant:`ghost`,disabled:m,onClick:()=>t(!1),children:n(`update-close`)}),(0,H.jsx)(K,{autoFocus:!0,disabled:m||!d.canInstall,onClick:()=>void h(),children:n(`update-install`)})]})]})})})}var Of=Object.defineProperty,kf=(e,t)=>Of(e,`name`,{value:t,configurable:!0}),Af=`horizontal`,jf=[`horizontal`,`vertical`],Mf=v.forwardRef(kf(function(e,t){let{decorative:n,orientation:r=Af,...i}=e,a=Nf(r)?r:Af,o=n?{role:`none`}:{"aria-orientation":a===`vertical`?a:void 0,role:`separator`};return(0,H.jsx)(Mo.div,{"data-orientation":a,...o,...i,ref:t})},`Separator`));function Nf(e){return jf.includes(e)}kf(Nf,`isValidOrientation`);var Pf=Mf;function Ff({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,H.jsx)(Pf,{"data-slot":`separator`,decorative:n,orientation:t,className:V(`bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}function If(e){return e===`light`||e===`dark`?e:null}function Lf(e,t){return e??(t?`dark`:`light`)}var Rf=[{id:`aura-light`,name:`Aura`,variant:`light`,colours:{canvas:`#f6f3fe`,elevated:`#ede9f5`,muted:`#f1eef9`,text:`#474056`,textSecondary:`#605a71`,border:`#00000013`,borderHover:`#0000002e`,accent:`#7557b7`,accentHover:`#6c50a8`,accentActive:`#62499a`,selection:`#dfdce9`,hover:`#0000000a`,active:`#00000014`,focus:`#cdbefe`,error:`#ad0620`,warning:`#8b6113`,success:`#087846`,info:`#356ba6`}},{id:`aura-dark`,name:`Aura`,variant:`dark`,colours:{canvas:`#121117`,elevated:`#1c1b21`,muted:`#0c0b11`,text:`#dbdbdc`,textSecondary:`#88878b`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#a277ff`,accentHover:`#a982ff`,accentActive:`#b18dff`,selection:`#47454bb6`,hover:`#ffffff0f`,active:`#ffffff13`,focus:`#cdbefb`,error:`#ff6767`,warning:`#ffca85`,success:`#61ffca`,info:`#82e2ff`}},{id:`ayu-light`,name:`Ayu`,variant:`light`,colours:{canvas:`#fdfbf5`,elevated:`#f5f4ed`,muted:`#f8f6f1`,text:`#3f4851`,textSecondary:`#5c6570`,border:`#00000013`,borderHover:`#0000002e`,accent:`#1b7793`,accentHover:`#196d87`,accentActive:`#17647b`,selection:`#e8eae3`,hover:`#0000000a`,active:`#00000014`,focus:`#73d8fc`,error:`#c21f38`,warning:`#996219`,success:`#157f3f`,info:`#147794`}},{id:`ayu-dark`,name:`Ayu`,variant:`dark`,colours:{canvas:`#0b1015`,elevated:`#151a1f`,muted:`#06090d`,text:`#d9d9db`,textSecondary:`#81868b`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#3fb7e3`,accentHover:`#4ebde5`,accentActive:`#5ec3e7`,selection:`#3c4147c9`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#7dd6fc`,error:`#f58572`,warning:`#e4a75c`,success:`#78d05c`,info:`#66c6f1`}},{id:`carbonfox-light`,name:`Carbonfox`,variant:`light`,colours:{canvas:`#eeeeee`,elevated:`#e4e4e4`,muted:`#e9e9e9`,text:`#404040`,textSecondary:`#5a5a5a`,border:`#00000013`,borderHover:`#0000002f`,accent:`#1159e3`,accentHover:`#1052d1`,accentActive:`#0e4bbf`,selection:`#d5d5d5`,hover:`#0000000a`,active:`#00000014`,focus:`#accaff`,error:`#980313`,warning:`#7a6211`,success:`#105223`,info:`#0c42a8`}},{id:`carbonfox-dark`,name:`Carbonfox`,variant:`dark`,colours:{canvas:`#292929`,elevated:`#2f2f2f`,muted:`#252525`,text:`#f7f7f7`,textSecondary:`#999a9c`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#33b1ff`,accentHover:`#43b7ff`,accentActive:`#54bdff`,selection:`#5b5c5b97`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#adcafa`,error:`#ff8389`,warning:`#f1c21b`,success:`#42be65`,info:`#78a9ff`}},{id:`catppuccin-light`,name:`Catppuccin`,variant:`light`,colours:{canvas:`#eff1f5`,elevated:`#e5e7eb`,muted:`#e9ebef`,text:`#4c4f69`,textSecondary:`#616274`,border:`#66677023`,borderHover:`#66677026`,accent:`#7130c7`,accentHover:`#6e32bf`,accentActive:`#6b35b8`,selection:`#ccd0da`,hover:`#0000000a`,active:`#00000014`,focus:`#8839ef`,error:`#cb0f37`,warning:`#af4508`,success:`#2f7520`,info:`#1850c1`}},{id:`catppuccin-dark`,name:`Catppuccin`,variant:`dark`,colours:{canvas:`#1e1e2e`,elevated:`#181825`,muted:`#181825`,text:`#cdd6f4`,textSecondary:`#a6adc8`,border:`#7f849c19`,borderHover:`#7f849c1d`,accent:`#cba6f7`,accentHover:`#dec7fa`,accentActive:`#dec7fa`,selection:`#313244`,hover:`#cdd6f412`,active:`#cdd6f41f`,focus:`#cba6f7`,error:`#f38ba8`,warning:`#fab387`,success:`#a6e3a1`,info:`#89b4fa`}},{id:`cursor-light`,name:`Cursor`,variant:`light`,author:`cedricverlinden`,colours:{canvas:`#fcfcfc`,elevated:`#f2f2f2`,muted:`#f6f6f6`,text:`#454a50`,textSecondary:`#66696f`,border:`#5058601e`,borderHover:`#50586040`,accent:`#2567a8`,accentHover:`#1d568e`,accentActive:`#194b7c`,selection:`#e1e1e1`,hover:`#0000000a`,active:`#00000014`,focus:`#2567a8b3`,error:`#a3424b`,warning:`#806015`,success:`#467037`,info:`#315d9b`}},{id:`cursor-dark`,name:`Cursor`,variant:`dark`,author:`cedricverlinden`,colours:{canvas:`#1a1a1a`,elevated:`#232323`,muted:`#151515`,text:`#e1e1e2`,textSecondary:`#8e8e8e`,border:`#8484841a`,borderHover:`#8484841f`,accent:`#4c9df3`,accentHover:`#66aefa`,accentActive:`#66aefa`,selection:`#ffffff1d`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#4c9df399`,error:`#c6747b`,warning:`#ebcb8b`,success:`#a3be8c`,info:`#81a1c1`}},{id:`dracula-light`,name:`Dracula`,variant:`light`,colours:{canvas:`#f9f9f4`,elevated:`#eeefe9`,muted:`#f3f4ee`,text:`#45454f`,textSecondary:`#5f5f6a`,border:`#00000013`,borderHover:`#0000002e`,accent:`#6957d7`,accentHover:`#6150c6`,accentActive:`#5849b5`,selection:`#dee1db`,hover:`#0000000a`,active:`#00000014`,focus:`#c2c2fd`,error:`#ad1446`,warning:`#9e5a04`,success:`#167a46`,info:`#366da9`}},{id:`dracula-dark`,name:`Dracula`,variant:`dark`,colours:{canvas:`#151720`,elevated:`#1c2029`,muted:`#12121b`,text:`#e0e0e2`,textSecondary:`#8a8b8a`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#bd93f9`,accentHover:`#c29cf9`,accentActive:`#c8a4fa`,selection:`#4650559f`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#d3bcfa`,error:`#ff5555`,warning:`#ffb86c`,success:`#50fa7b`,info:`#8be9fd`}},{id:`everforest-light`,name:`Everforest`,variant:`light`,colours:{canvas:`#fdf8e8`,elevated:`#f5f2e2`,muted:`#f7f3e4`,text:`#3b474e`,textSecondary:`#656b62`,border:`#00000013`,borderHover:`#0000002e`,accent:`#65740b`,accentHover:`#5d6b0a`,accentActive:`#556109`,selection:`#e9e8d5`,hover:`#0000000a`,active:`#00000014`,focus:`#bfd747`,error:`#c4222a`,warning:`#ad5410`,success:`#66731b`,info:`#366eaa`}},{id:`everforest-dark`,name:`Everforest`,variant:`dark`,colours:{canvas:`#1c252b`,elevated:`#222c32`,muted:`#1a2127`,text:`#f0efed`,textSecondary:`#8f978e`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#a7c080`,accentHover:`#aec58a`,accentActive:`#b5ca94`,selection:`#3e5151c5`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#bad492`,error:`#e67e80`,warning:`#e69875`,success:`#a7c080`,info:`#83afe0`}},{id:`fields-of-the-shire-light`,name:`Fields of the Shire`,variant:`light`,author:`OpenChamber`,colours:{canvas:`#f9f5eb`,elevated:`#efebe2`,muted:`#f3efe5`,text:`#514a40`,textSecondary:`#6c6459`,border:`#1a161215`,borderHover:`#1a161230`,accent:`#4a6030`,accentHover:`#5e773f`,accentActive:`#708a50`,selection:`#1a16121a`,hover:`#0000000a`,active:`#00000014`,focus:`#4a603040`,error:`#a24d3f`,warning:`#8c5520`,success:`#4a6030`,info:`#3d4f5a`}},{id:`fields-of-the-shire-dark`,name:`Fields of the Shire`,variant:`dark`,author:`OpenChamber`,colours:{canvas:`#1b1815`,elevated:`#24211e`,muted:`#161311`,text:`#e9decf`,textSecondary:`#948b7c`,border:`#2e2b28d4`,borderHover:`#f0e6d830`,accent:`#809062`,accentHover:`#8a996f`,accentActive:`#94a27b`,selection:`#f0e6d81f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#8090624d`,error:`#c47466`,warning:`#c47a3a`,success:`#7f905e`,info:`#798d99`}},{id:`flexoki-light`,name:`Flexoki`,variant:`light`,colours:{canvas:`#fffdf4`,elevated:`#f5f3ea`,muted:`#f9f7ee`,text:`#494741`,textSecondary:`#6a6962`,border:`#e6e4db`,borderHover:`#cecdc3`,accent:`#b54f14`,accentHover:`#a74912`,accentActive:`#984211`,selection:`#76736f30`,hover:`#0000000a`,active:`#00000014`,focus:`#b54f1440`,error:`#af3029`,warning:`#b54f14`,success:`#5e760a`,info:`#205ea6`}},{id:`flexoki-dark`,name:`Flexoki`,variant:`dark`,colours:{canvas:`#171515`,elevated:`#201e1e`,muted:`#121111`,text:`#dedcd3`,textSecondary:`#8b8a83`,border:`#2b2a28d4`,borderHover:`#403e3c`,accent:`#da702c`,accentHover:`#da702c`,accentActive:`#f9ae77`,selection:`#f4f4f41f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#da702c50`,error:`#d76459`,warning:`#da702c`,success:`#a0af54`,info:`#4d8cc1`}},{id:`github-light`,name:`GitHub`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f4`,muted:`#fafaf9`,text:`#464a4e`,textSecondary:`#5c646e`,border:`#00000013`,borderHover:`#0000002e`,accent:`#0f69d8`,accentHover:`#0e61c7`,accentActive:`#0d58b5`,selection:`#e7e7e6`,hover:`#0000000a`,active:`#00000014`,focus:`#a9cbfd`,error:`#8f0617`,warning:`#664407`,success:`#105122`,info:`#09448f`}},{id:`github-dark`,name:`GitHub`,variant:`dark`,colours:{canvas:`#0a0e14`,elevated:`#13171e`,muted:`#05070c`,text:`#d7d8da`,textSecondary:`#7d848e`,border:`#ffffff0d`,borderHover:`#ffffff33`,accent:`#58a6ff`,accentHover:`#65adff`,accentActive:`#73b4ff`,selection:`#373d44d8`,hover:`#ffffff0f`,active:`#ffffff15`,focus:`#a3cdfe`,error:`#f85149`,warning:`#e3b341`,success:`#3fb950`,info:`#83afe0`}},{id:`gruvbox-light`,name:`Gruvbox`,variant:`light`,colours:{canvas:`#fcf5d7`,elevated:`#f4eccf`,muted:`#f8f0d3`,text:`#47433c`,textSecondary:`#615d58`,border:`#00000013`,borderHover:`#0000002e`,accent:`#12697a`,accentHover:`#116170`,accentActive:`#0f5866`,selection:`#e8dfc5`,hover:`#0000000a`,active:`#00000014`,focus:`#83d8ed`,error:`#650304`,warning:`#805104`,success:`#4f4c0c`,info:`#013d48`}},{id:`gruvbox-dark`,name:`Gruvbox`,variant:`dark`,colours:{canvas:`#1f1e1d`,elevated:`#272623`,muted:`#1a1a1a`,text:`#e9e8e4`,textSecondary:`#9b9074`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#83a598`,accentHover:`#8daca0`,accentActive:`#97b3a8`,selection:`#514d43b4`,hover:`#ffffff0e`,active:`#ffffff12`,focus:`#aed2c4`,error:`#fb533f`,warning:`#fabd2f`,success:`#b8bb26`,info:`#83afe0`}},{id:`jetbrains-light`,name:`JetBrains`,variant:`light`,author:`Artem Evsevev, adapted for OpenChamber`,colours:{canvas:`#fff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#45474b`,textSecondary:`#696a6f`,border:`#dde0eadc`,borderHover:`#aeb3c2ad`,accent:`#195ce3`,accentHover:`#2d61f0`,accentActive:`#0055ff`,selection:`#dfe1e5`,hover:`#0000000a`,active:`#00000014`,focus:`#0055ff40`,error:`#ce0606`,warning:`#9d620a`,success:`#077d18`,info:`#29769f`}},{id:`jetbrains-dark`,name:`JetBrains`,variant:`dark`,author:`Artem Evsevev, adapted for OpenChamber`,colours:{canvas:`#1e1f22`,elevated:`#27282b`,muted:`#18191b`,text:`#e5e7eb`,textSecondary:`#90939a`,border:`#303238b8`,borderHover:`#4b5059`,accent:`#6796f5`,accentHover:`#70aeff`,accentActive:`#5594fa`,selection:`#43454a`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#6796f550`,error:`#fa6675`,warning:`#f2c55c`,success:`#639d69`,info:`#4199c8`}},{id:`kanagawa-light`,name:`Kanagawa`,variant:`light`,colours:{canvas:`#f4ede3`,elevated:`#ede5db`,muted:`#efe8df`,text:`#4c3d33`,textSecondary:`#64635e`,border:`#00000013`,borderHover:`#0000002f`,accent:`#326384`,accentHover:`#2e5b79`,accentActive:`#2a536f`,selection:`#e2dad0`,hover:`#0000000a`,active:`#00000014`,focus:`#a6cfed`,error:`#a40d11`,warning:`#8e4e14`,success:`#456114`,info:`#073652`}},{id:`kanagawa-dark`,name:`Kanagawa`,variant:`dark`,colours:{canvas:`#17161e`,elevated:`#221e28`,muted:`#111119`,text:`#e0dfde`,textSecondary:`#8a8a83`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#7e9cd8`,accentHover:`#88a4db`,accentActive:`#93acde`,selection:`#4f414ac7`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#afc9fd`,error:`#ed5252`,warning:`#d7a657`,success:`#98bb6c`,info:`#83afe0`}},{id:`material-light`,name:`Material`,variant:`light`,colours:{canvas:`#fafafa`,elevated:`#f1f1f0`,muted:`#f5f5f5`,text:`#3e484c`,textSecondary:`#5f6c72`,border:`#00000013`,borderHover:`#0000002e`,accent:`#19787f`,accentHover:`#176e75`,accentActive:`#15656b`,selection:`#e3e3e2`,hover:`#0000000a`,active:`#00000014`,focus:`#65dee7`,error:`#aa0d15`,warning:`#8f6510`,success:`#537702`,info:`#12787f`}},{id:`material-dark`,name:`Material`,variant:`dark`,colours:{canvas:`#1a252a`,elevated:`#212c31`,muted:`#162126`,text:`#edeff0`,textSecondary:`#85989f`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#82aaff`,accentHover:`#8cb1ff`,accentActive:`#96b8ff`,selection:`#4e5b6094`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#80d6f9`,error:`#f07178`,warning:`#ffcb6b`,success:`#c3e88d`,info:`#83afe0`}},{id:`mono-light`,name:`Mono`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#454545`,textSecondary:`#656565`,border:`#e3e3e3f2`,borderHover:`#b3b3b3ac`,accent:`#000000`,accentHover:`#1a1a1a`,accentActive:`#333333`,selection:`#00000015`,hover:`#0000000a`,active:`#00000014`,focus:`#00000040`,error:`#999999`,warning:`#666666`,success:`#1a1a1a`,info:`#595959`}},{id:`mono-dark`,name:`Mono`,variant:`dark`,colours:{canvas:`#000000`,elevated:`#141414`,muted:`#0a0a0a`,text:`#d0d0d0`,textSecondary:`#828282`,border:`#232323c6`,borderHover:`#333333`,accent:`#ffffff`,accentHover:`#e5e5e5`,accentActive:`#cccccc`,selection:`#ffffff1f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#ffffff50`,error:`#666666`,warning:`#999999`,success:`#e5e5e5`,info:`#a6a6a6`}},{id:`mono-plus-light`,name:`Mono Plus`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#454545`,textSecondary:`#6a6a6a`,border:`#e3e3e3f2`,borderHover:`#b3b3b3ac`,accent:`#4a6a9e`,accentHover:`#1a1a1a`,accentActive:`#333333`,selection:`#00000015`,hover:`#0000000a`,active:`#00000014`,focus:`#00000040`,error:`#8a5a5a`,warning:`#7c6d51`,success:`#577757`,info:`#5a6a8a`}},{id:`mono-plus-dark`,name:`Mono Plus`,variant:`dark`,colours:{canvas:`#000000`,elevated:`#141414`,muted:`#0a0a0a`,text:`#cecece`,textSecondary:`#828282`,border:`#232323c6`,borderHover:`#333333`,accent:`#a2bee8`,accentHover:`#e5e5e5`,accentActive:`#cccccc`,selection:`#ffffff1f`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#ffffff50`,error:`#a47373`,warning:`#9e8a6a`,success:`#6a8e6a`,info:`#6d80a0`}},{id:`monokai-light`,name:`Monokai`,variant:`light`,colours:{canvas:`#fdf9ef`,elevated:`#f3efe5`,muted:`#f8f4ea`,text:`#4b463c`,textSecondary:`#656056`,border:`#00000013`,borderHover:`#0000002e`,accent:`#8556b0`,accentHover:`#7a4fa2`,accentActive:`#704894`,selection:`#e5e0d6`,hover:`#0000000a`,active:`#00000014`,focus:`#d9b9fd`,error:`#b21523`,warning:`#936115`,success:`#1b7c1b`,info:`#366eaa`}},{id:`monokai-dark`,name:`Monokai`,variant:`dark`,colours:{canvas:`#1d1e19`,elevated:`#252620`,muted:`#191a15`,text:`#e7e7e7`,textSecondary:`#90918b`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#ae81ff`,accentHover:`#b48bff`,accentActive:`#bb95ff`,selection:`#53544e9a`,hover:`#ffffff0e`,active:`#ffffff12`,focus:`#d0bdfc`,error:`#fa4888`,warning:`#fd971f`,success:`#a6e22e`,info:`#66d9ef`}},{id:`nightowl-light`,name:`Night Owl`,variant:`light`,colours:{canvas:`#f1f1f1`,elevated:`#e9e9e8`,muted:`#ececeb`,text:`#41404f`,textSecondary:`#5a5a6b`,border:`#00000013`,borderHover:`#0000002f`,accent:`#2c60d4`,accentHover:`#2858c3`,accentActive:`#2551b2`,selection:`#dfdddb`,hover:`#0000000a`,active:`#00000014`,focus:`#aec9fe`,error:`#a4151c`,warning:`#856215`,success:`#327443`,info:`#0941c4`}},{id:`nightowl-dark`,name:`Night Owl`,variant:`dark`,colours:{canvas:`#04101c`,elevated:`#0d1a26`,muted:`#010a12`,text:`#d7d9dc`,textSecondary:`#7e8692`,border:`#ffffff0d`,borderHover:`#ffffff33`,accent:`#82aaff`,accentHover:`#8cb1ff`,accentActive:`#96b8ff`,selection:`#36424fc6`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#afc9fd`,error:`#ef5350`,warning:`#ecc48d`,success:`#c5e478`,info:`#82aaff`}},{id:`nord-light`,name:`Nord`,variant:`light`,colours:{canvas:`#eef1f5`,elevated:`#e5e8ed`,muted:`#e9ecf1`,text:`#3c424c`,textSecondary:`#565c67`,border:`#00000013`,borderHover:`#0000002f`,accent:`#426999`,accentHover:`#3d618d`,accentActive:`#375881`,selection:`#d8dce1`,hover:`#0000000a`,active:`#00000014`,focus:`#a4ccfe`,error:`#a0203b`,warning:`#a54d31`,success:`#327443`,info:`#29588f`}},{id:`nord-dark`,name:`Nord`,variant:`dark`,colours:{canvas:`#1f2530`,elevated:`#262c37`,muted:`#1c212c`,text:`#f0f1f2`,textSecondary:`#93979f`,border:`#ffffff0b`,borderHover:`#ffffff33`,accent:`#88c0d0`,accentHover:`#92c5d4`,accentActive:`#9bcad8`,selection:`#505661a3`,hover:`#ffffff0d`,active:`#ffffff12`,focus:`#9ad4e4`,error:`#cb7f86`,warning:`#d08770`,success:`#a3be8c`,info:`#81a1c1`}},{id:`onedarkpro-light`,name:`One Dark Pro`,variant:`light`,colours:{canvas:`#f5f6f8`,elevated:`#ebecee`,muted:`#eff0f2`,text:`#454c58`,textSecondary:`#616770`,border:`#d5d8dedb`,borderHover:`#d4d9e3`,accent:`#3c67bc`,accentHover:`#375fad`,accentActive:`#32579e`,selection:`#d8dde6`,hover:`#0000000a`,active:`#00000014`,focus:`#3c67bc40`,error:`#a54f56`,warning:`#866241`,success:`#38754d`,info:`#336da3`}},{id:`onedarkpro-dark`,name:`One Dark Pro`,variant:`dark`,colours:{canvas:`#1e222a`,elevated:`#272b33`,muted:`#181b22`,text:`#e4ebf8`,textSecondary:`#8d97a2`,border:`#3138489b`,borderHover:`#363d52`,accent:`#61afef`,accentHover:`#579ad1`,accentActive:`#77baf1`,selection:`#a8aec533`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#61afef40`,error:`#e17179`,warning:`#e5c07b`,success:`#98c379`,info:`#61afef`}},{id:`openchamber-light`,name:`OpenChamber`,variant:`light`,author:`OpenChamber`,colours:{canvas:`#fdfcfa`,elevated:`#f3f2f0`,muted:`#f7f6f4`,text:`#44443d`,textSecondary:`#696960`,border:`#e5e1debf`,borderHover:`#cbc7c2`,accent:`#b35017`,accentHover:`#9a4310`,accentActive:`#85390c`,selection:`#a9998f2b`,hover:`#0000000a`,active:`#00000014`,focus:`#b3501755`,error:`#b7493f`,warning:`#886914`,success:`#517734`,info:`#2c6ebd`}},{id:`openchamber-dark`,name:`OpenChamber`,variant:`dark`,author:`OpenChamber`,colours:{canvas:`#120f0e`,elevated:`#1b1918`,muted:`#0e0c0b`,text:`#dbd7cc`,textSecondary:`#89867c`,border:`#242323bf`,borderHover:`#504e4c`,accent:`#da7c47`,accentHover:`#eb8c57`,accentActive:`#fd9b66`,selection:`#c8c6c52b`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#da7c4755`,error:`#da5b4a`,warning:`#c67f13`,success:`#76ad4f`,info:`#479fe6`}},{id:`opencode-light`,name:`OpenCode`,variant:`light`,author:`OpenCode`,colours:{canvas:`#ffffff`,elevated:`#fafafa`,muted:`#fafafa`,text:`#4a4a4a`,textSecondary:`#646464`,border:`#00000013`,borderHover:`#0000002e`,accent:`#3b5cf6ff`,accentHover:`#3655e2`,accentActive:`#324dcf`,selection:`#eeeeeeff`,hover:`#0000000a`,active:`#00000014`,focus:`#7698fdff`,error:`#b82d35ff`,warning:`#8c6e24`,success:`#18833f`,info:`#3250dfff`}},{id:`opencode-dark`,name:`OpenCode`,variant:`dark`,author:`OpenCode`,colours:{canvas:`#161616`,elevated:`#1f1f1f`,muted:`#0a0a0a`,text:`#dfdfdf`,textSecondary:`#8a8a8a`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#637ef8`,accentHover:`#6f88f9`,accentActive:`#7c93f9`,selection:`#3a3a3af6`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#7698fdff`,error:`#f17471ff`,warning:`#f2cf76ff`,success:`#6bd586ff`,info:`#7698fdff`}},{id:`osaka-jade-refined-light`,name:`Osaka Jade`,variant:`light`,author:`tbcode-org`,colours:{canvas:`#f1eee8`,elevated:`#e7e4de`,muted:`#ebe9e3`,text:`#40463e`,textSecondary:`#53685b`,border:`#00000013`,borderHover:`#0000002e`,accent:`#197160`,accentHover:`#176858`,accentActive:`#155f51`,selection:`#d8d5d0`,hover:`#0000000a`,active:`#00000014`,focus:`#5ce4c6`,error:`#8f110b`,warning:`#73650e`,success:`#02532a`,info:`#33679f`}},{id:`osaka-jade-refined`,name:`Osaka Jade`,variant:`dark`,author:`tbcode-org`,colours:{canvas:`#0a1611`,elevated:`#121f18`,muted:`#07100c`,text:`#d9dbd6`,textSecondary:`#7b8c81`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#2dd5b7`,accentHover:`#3ed8bd`,accentActive:`#4fdcc3`,selection:`#324235e1`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#90d9d1`,error:`#ff5345`,warning:`#e7c831`,success:`#63b07a`,info:`#82aecb`}},{id:`rosepine-light`,name:`Rose Pine`,variant:`light`,colours:{canvas:`#fbf5ef`,elevated:`#f5ede7`,muted:`#f7f0eb`,text:`#464061`,textSecondary:`#6a6673`,border:`#00000013`,borderHover:`#0000002e`,accent:`#177394`,accentHover:`#156a88`,accentActive:`#13617c`,selection:`#ece2db`,hover:`#0000000a`,active:`#00000014`,focus:`#8cd4f4`,error:`#942a50`,warning:`#965f0b`,success:`#347846`,info:`#0c4b62`}},{id:`rosepine-dark`,name:`Rose Pine`,variant:`dark`,colours:{canvas:`#12101d`,elevated:`#1c1a28`,muted:`#0c0b15`,text:`#dbdade`,textSecondary:`#87849b`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#9ccfd8`,accentHover:`#a4d3db`,accentActive:`#acd7de`,selection:`#444252c0`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#9fd3dd`,error:`#eb6f92`,warning:`#f6c177`,success:`#80b888`,info:`#9ccfd8`}},{id:`solarized-light`,name:`Solarized`,variant:`light`,colours:{canvas:`#fdf8e8`,elevated:`#f5f2e2`,muted:`#f7f3e4`,text:`#33494f`,textSecondary:`#596c73`,border:`#00000013`,borderHover:`#0000002e`,accent:`#0a72b1`,accentHover:`#0969a3`,accentActive:`#086095`,selection:`#e6e8da`,hover:`#0000000a`,active:`#00000014`,focus:`#98d0ff`,error:`#9b1a1a`,warning:`#806318`,success:`#5f6c17`,info:`#136196`}},{id:`solarized-dark`,name:`Solarized`,variant:`dark`,colours:{canvas:`#041d24`,elevated:`#0c242b`,muted:`#021820`,text:`#e0e4e5`,textSecondary:`#818e8f`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#7e83cb`,accentHover:`#888dcf`,accentActive:`#9397d3`,selection:`#293f44`,hover:`#ffffff0e`,active:`#ffffff13`,focus:`#bec4fa`,error:`#e35e5b`,warning:`#b58900`,success:`#859900`,info:`#2aa198`}},{id:`tokyonight-light`,name:`Tokyonight`,variant:`light`,colours:{canvas:`#e5e6ea`,elevated:`#dcdee3`,muted:`#e0e2e6`,text:`#343a56`,textSecondary:`#4b5472`,border:`#00000013`,borderHover:`#0000002f`,accent:`#195fba`,accentHover:`#1757ab`,accentActive:`#15509c`,selection:`#d0d2da`,hover:`#0000000a`,active:`#00000014`,focus:`#abcbfa`,error:`#97073a`,warning:`#65440a`,success:`#314e04`,info:`#0a54ae`}},{id:`tokyonight-dark`,name:`Tokyonight`,variant:`dark`,colours:{canvas:`#13141e`,elevated:`#1b1d28`,muted:`#0f0f18`,text:`#dcdde3`,textSecondary:`#8187a8`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#7aa2f7`,accentHover:`#85a9f8`,accentActive:`#8fb1f8`,selection:`#3d4053d5`,hover:`#ffffff0f`,active:`#ffffff13`,focus:`#afc9fe`,error:`#f7768e`,warning:`#e0af68`,success:`#9ece6a`,info:`#7dcfff`}},{id:`vercel-light`,name:`Vercel`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f4f4f4`,muted:`#f9f9f9`,text:`#4a4a4a`,textSecondary:`#666666`,border:`#00000013`,borderHover:`#0000002e`,accent:`#0769e1`,accentHover:`#0661cf`,accentActive:`#0658bd`,selection:`#e4e4e4`,hover:`#0000000a`,active:`#00000014`,focus:`#a9cbfd`,error:`#a10725`,warning:`#a35d02`,success:`#14621b`,info:`#0a4ca2`}},{id:`vercel-dark`,name:`Vercel`,variant:`dark`,colours:{canvas:`#000000`,elevated:`#070707`,muted:`#000000`,text:`#cfcfcf`,textSecondary:`#7b7b7b`,border:`#ffffff12`,borderHover:`#ffffff33`,accent:`#0674f3`,accentHover:`#1a7ff4`,accentActive:`#2e8af5`,selection:`#2c2c2c`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#a1cdfe`,error:`#e5484d`,warning:`#ffb224`,success:`#46a758`,info:`#52a8ff`}},{id:`vesper-light`,name:`Vesper`,variant:`light`,colours:{canvas:`#f1f1f1`,elevated:`#e7e7e7`,muted:`#ebebeb`,text:`#424242`,textSecondary:`#5c5c5c`,border:`#00000013`,borderHover:`#0000002f`,accent:`#8a5c35`,accentHover:`#7f5531`,accentActive:`#744d2d`,selection:`#d7d7d7`,hover:`#0000000a`,active:`#00000014`,focus:`#f6bb8a`,error:`#c91b35`,warning:`#955817`,success:`#327343`,info:`#3469a2`}},{id:`vesper-dark`,name:`Vesper`,variant:`dark`,colours:{canvas:`#0f0f0f`,elevated:`#191919`,muted:`#080808`,text:`#d9d9d9`,textSecondary:`#858585`,border:`#ffffff0c`,borderHover:`#ffffff33`,accent:`#ffc799`,accentHover:`#ffcba1`,accentActive:`#ffd0a9`,selection:`#484848a8`,hover:`#ffffff0f`,active:`#ffffff14`,focus:`#f4bc8d`,error:`#ff8080`,warning:`#ffc799`,success:`#80b888`,info:`#83afe0`}},{id:`vitesse-light-light`,name:`Vitesse`,variant:`light`,colours:{canvas:`#ffffff`,elevated:`#f5f5f5`,muted:`#f9f9f9`,text:`#484843`,textSecondary:`#6b6b64`,border:`#e6e2e2f1`,borderHover:`#cbc7c7f5`,accent:`#1c6b48`,accentHover:`#1c6b48`,accentActive:`#228056`,selection:`#22222218`,hover:`#0000000a`,active:`#00000014`,focus:`#00000050`,error:`#a85757`,warning:`#a45d2b`,success:`#1e754f`,info:`#296aa3`}},{id:`vitesse-dark-dark`,name:`Vitesse`,variant:`dark`,colours:{canvas:`#121212`,elevated:`#1b1b1b`,muted:`#0e0e0e`,text:`#ddd9cd`,textSecondary:`#878781`,border:`#292929cd`,borderHover:`#3c3c3c`,accent:`#4d9375`,accentHover:`#4d9375`,accentActive:`#5cb08c`,selection:`#eeeeee18`,hover:`#ffffff0f`,active:`#ffffff1a`,focus:`#00000050`,error:`#cb7676`,warning:`#d4976c`,success:`#4d9375`,info:`#6394bf`}}],zf=`omms-light`,Bf=`omms-dark`,Vf=[{id:zf,name:`OMMS`,variant:`light`,colours:{canvas:`#fdfcfa`,elevated:`#f8f7f5`,muted:`#f7f6f4`,text:`#393a34`,textSecondary:`#5c5c54`,border:`#e5e1de`,borderHover:`#cbc7c2`,accent:`#b35017`,accentHover:`#9a4310`,accentActive:`#85390c`,selection:`#a9998f2b`,hover:`#0000000d`,active:`#00000014`,focus:`#b35017`,error:`#b7493f`,warning:`#8d6c15`,success:`#5f8d3d`,info:`#2d72c4`}},{id:Bf,name:`OMMS`,variant:`dark`,colours:{canvas:`#120f0e`,elevated:`#181715`,muted:`#171615`,text:`#c9c5ba`,textSecondary:`#8f8b81`,border:`#242323`,borderHover:`#504e4c`,accent:`#da7c47`,accentHover:`#eb8c57`,accentActive:`#fd9b66`,selection:`#c8c6c52b`,hover:`#ffffff12`,active:`#ffffff1f`,focus:`#da7c47`,error:`#da5b4a`,warning:`#c67f13`,success:`#76ad4f`,info:`#479fe6`}},...Rf];function Hf(e){return Vf.filter(t=>t.variant===e)}function Uf(e,t){let n=t===`light`?zf:Bf;return Vf.find(n=>n.id===e&&n.variant===t)??Vf.find(e=>e.id===n)}function Wf(e){return e.id===`omms-light`||e.id===`omms-dark`}var Gf=e=>`color-mix(in srgb, var(${e}) 75%, var(--foreground))`;function Kf(e,t){let n=t===`light`?`#ffffff`:e.canvas;return{"--background":e.canvas,"--foreground":e.text,"--card":e.elevated,"--card-foreground":e.text,"--popover":e.elevated,"--popover-foreground":e.text,"--primary":e.accent,"--primary-foreground":n,"--primary-hover":e.accentHover,"--primary-active":e.accentActive,"--primary-label":`color-mix(in srgb, var(--primary) 70%, var(--foreground))`,"--secondary":e.muted,"--secondary-foreground":e.text,"--muted":e.muted,"--muted-foreground":e.textSecondary,"--accent":e.selection,"--accent-foreground":e.text,"--selection":e.selection,"--interactive-hover":e.hover,"--interactive-active":e.active,"--destructive":e.error,"--destructive-label":Gf(`--destructive`),"--border":e.border,"--border-hover":e.borderHover,"--input":`color-mix(in srgb, var(--muted-foreground) 75%, var(--background))`,"--ring":e.accent,"--status-warning":e.warning,"--status-warning-label":Gf(`--status-warning`),"--status-success":e.success,"--status-success-label":Gf(`--status-success`),"--status-info":e.info,"--status-info-label":Gf(`--status-info`),"--chart-1":e.accent,"--chart-2":e.success,"--chart-3":e.info,"--chart-4":e.warning,"--chart-5":e.error,"--sidebar":e.muted,"--sidebar-foreground":e.text,"--sidebar-primary":e.accent,"--sidebar-primary-foreground":n,"--sidebar-accent":e.selection,"--sidebar-accent-foreground":e.text,"--sidebar-border":e.border,"--sidebar-ring":e.accent}}function qf(e,t){return`${e} {\n${Object.entries(t).map(([e,t])=>` ${e}: ${t};`).join(`
56
56
  `)}\n}`}function Jf(e,t){let n=Uf(e,`light`),r=Uf(t,`dark`),i=[];return Wf(n)||i.push(qf(`:root:not(.dark)`,Kf(n.colours,`light`))),Wf(r)||i.push(qf(`:root.dark`,Kf(r.colours,`dark`))),i.join(`
57
57
  `)}var Yf=`omms-theme`,Xf=`opencode-mem-theme`,Zf=`omms-theme-light`,Qf=`omms-theme-dark`,$f=`omms-theme`,ep=`(prefers-color-scheme: dark)`;function tp(){return typeof window>`u`?null:If(fi(Yf,Xf))}function np(){return typeof window>`u`||!window.matchMedia||window.matchMedia(ep).matches}function rp(){return Lf(tp(),np())}function ip(){let e=(e,t)=>typeof window>`u`?t:fi(e,e)??t;return{mode:tp()??`system`,light:Uf(e(Zf,zf),`light`).id,dark:Uf(e(Qf,Bf),`dark`).id}}var ap=rp(),op=ip(),sp=!1,cp=new Set;function lp(){for(let e of cp)e()}function up(e,t=!1){ap=e,typeof document<`u`&&(document.documentElement.classList.toggle(`dark`,e===`dark`),dp(document,e),t&&(sp=!0,mi(Yf,e),op={...op,mode:e})),lp()}function dp(e,t){let n=Jf(op.light,op.dark),r=e.getElementById($f);n===``?r?.remove():(r||(r=e.createElement(`style`),r.id=$f,e.head.append(r)),r.textContent=n),Ui(e,t,(t===`dark`?Uf(op.dark,`dark`):Uf(op.light,`light`)).colours.canvas)}function fp(e){return cp.add(e),()=>{cp.delete(e)}}function pp(){return ap}function mp(){return`dark`}function hp(e){up(e,!0)}function gp(){let e=ap===`dark`?`light`:`dark`;return hp(e),e}function _p(){up(rp())}function vp(){return(0,v.useSyncExternalStore)(fp,pp,mp)}var yp=()=>op;function bp(){return(0,v.useSyncExternalStore)(fp,yp,yp)}function xp(e){if(e!==`system`)return hp(e);sp=!1,pi(Yf),pi(Xf),op={...op,mode:`system`},up(rp())}function Sp(e,t){let n=Uf(t,e).id;mi(e===`light`?Zf:Qf,n),op={...op,[e]:n},up(ap)}typeof document<`u`&&(up(ap),window.matchMedia?.(ep).addEventListener?.(`change`,()=>{!sp&&tp()===null&&up(rp())}));var Cp=[{code:`en`,label:`English (EN)`},{code:`zh`,label:`中文 (ZH)`},{code:`ar`,label:`العربية (AR)`}],wp=`omms-sidebar-collapsed`,Tp=`omms-sidebar-settings-open`,Ep=`omms-sidebar-memory-open`,Dp=`omms-sidebar-profile-open`,Op=`omms-sidebar-skills-open`,kp=`inline-flex min-h-11 min-w-11 md:min-h-8 md:min-w-7 items-center justify-center text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`;function Ap(){try{let e=localStorage.getItem(Tp);return e===null?null:e===`1`}catch{return null}}function jp(){try{return localStorage.getItem(wp)===`1`}catch{return!1}}function Mp({open:e=!1,currentView:t,brand:n,projectLabel:r,profileLabel:i,chatLabel:a,skillsLabel:o=`Skills`,profileSections:s,skillsSections:c=[],settingsSections:l=[],memoryLabel:u=`Memory`,memorySections:d=[],memoryWarningLabel:f=``,memoryViewId:p=null,langLabel:m,languageLabel:h,themeLabel:g,settingsLabel:_,closeLabel:y,collapseLabel:b,expandLabel:x,onOpenChange:S,onLanguageSelect:C}){let w=vp()===`dark`,[T,E]=(0,v.useState)(!1),[D,O]=(0,v.useState)(!1),k=(0,v.useRef)(null),A=(0,v.useRef)(null),[j,M]=(0,v.useState)(jp),N=e=>j?e:``,[P,ee]=(0,v.useState)(()=>Ap()??t===`settings`),[F,I]=(0,v.useState)(()=>{try{let e=localStorage.getItem(Ep);return e===null?t===`memory`:e===`1`}catch{return t===`memory`}}),[te,L]=_d(Dp,t===`profile`),[ne,R]=_d(Op,t===`skills`);function ie(){let e=!F;I(e);try{localStorage.setItem(Ep,e?`1`:`0`)}catch{}}function ae(){let e=!P;ee(e);try{localStorage.setItem(Tp,e?`1`:`0`)}catch{}}function oe(){let e=!j;M(e);try{localStorage.setItem(wp,e?`1`:`0`)}catch{}}(0,v.useEffect)(()=>{if(!T)return;k.current?.querySelector(`[aria-checked=true]`)?.focus();function e(e){k.current?.contains(e.target)||E(!1)}return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[T]);function se(e){if(e.key===`Escape`&&(e.preventDefault(),E(!1),A.current?.focus()),![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=Array.from(k.current?.querySelectorAll(`[role=menuitemradio]`)??[]),n=t.indexOf(document.activeElement);t[e.key===`Home`?0:e.key===`End`?t.length-1:(n+(e.key===`ArrowDown`?1:-1)+t.length)%t.length]?.focus()}function le(e){S?.(e)}function ue(e,t){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),_f(t),le(!1))}function de(e,t,n=`profile`){e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),_f(n===`memory`?`${J.memory}/${t}`:`${J[n]}#${t}`),le(!1))}function fe(e){return V(`flex w-full min-w-0 min-h-11 md:min-h-9 items-center gap-2 rounded-[10px] px-3 py-2 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,N(`md:justify-center md:px-0`),e?`bg-sidebar-accent text-sidebar-accent-foreground`:`text-sidebar-foreground hover:bg-interactive-hover active:bg-interactive-active`)}return(0,H.jsxs)(H.Fragment,{children:[e?(0,H.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-40 bg-black/50 md:hidden`,"aria-label":y,onClick:()=>le(!1)}):null,(0,H.jsxs)(`aside`,{className:V(`inset-y-0 start-0 z-50 flex h-svh w-64 shrink-0 flex-col border-e border-sidebar-border bg-sidebar text-sidebar-foreground transition-[transform,width] duration-200`,N(`md:w-14`),`fixed md:sticky md:top-0 md:translate-x-0!`,e?`translate-x-0`:`max-md:-translate-x-full max-md:rtl:translate-x-full`),children:[(0,H.jsxs)(`div`,{className:V(`flex items-center gap-2 px-4 py-4`,N(`md:flex-col md:px-2`)),children:[(0,H.jsxs)(`a`,{href:J.home,className:`flex min-w-0 flex-1 items-center gap-2 rounded-lg transition-colors hover:opacity-90`,onClick:e=>ue(e,J.home),children:[(0,H.jsx)(`img`,{src:`/omms-icon.svg`,alt:``,width:20,height:20,className:`size-5 shrink-0 rounded-sm`}),(0,H.jsx)(Kd,{brand:n,className:N(`md:hidden`)})]}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-sm`,className:`hidden shrink-0 text-muted-foreground hover:text-primary md:inline-flex`,onClick:oe,"aria-label":j?x:b,"aria-expanded":!j,title:j?x:b,children:j?(0,H.jsx)(ut,{className:`size-4 rtl:-scale-x-100`}):(0,H.jsx)(lt,{className:`size-4 rtl:-scale-x-100`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-sm`,className:`md:hidden min-h-11 min-w-11 shrink-0`,onClick:()=>le(!1),"aria-label":y,children:(0,H.jsx)(qt,{className:`size-4`})})]}),(0,H.jsx)(Ff,{className:`bg-sidebar-border`}),(0,H.jsxs)(`nav`,{className:V(`flex min-h-0 flex-1 flex-col gap-1 overflow-y-auto p-3`,N(`md:px-2`)),"aria-label":`Main`,children:[Sf({currentView:t,labels:{project:r,chat:a,profile:i,skills:o},collapsed:j,navClass:fe,onNavigate:ue,profileTree:{sections:s,open:te,onToggle:L,hideWhenCollapsed:N(`md:hidden`),onSectionClick:de},skillsTree:{sections:c,open:ne,onToggle:R,hideWhenCollapsed:N(`md:hidden`),onSectionClick:(e,t)=>de(e,t,`skills`)}}),(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,H.jsxs)(`a`,{href:J.memory,className:fe(t===`memory`),"aria-current":t===`memory`?`page`:void 0,title:j?u:void 0,onClick:e=>ue(e,J.memory),children:[(0,H.jsx)(re,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:V(`min-w-0 break-words text-start`,N(`md:sr-only`)),children:u})]}),d.length>0?(0,H.jsx)(`button`,{type:`button`,className:V(`inline-flex min-h-11 min-w-11 md:min-h-7 md:min-w-7 shrink-0 items-center justify-center rounded-lg p-1.5 text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,N(`md:hidden`)),onClick:ie,"aria-expanded":F,"aria-controls":`sidebar-memory-tree`,"aria-label":u,title:u,children:(0,H.jsx)(ce,{className:V(`size-4 transition-transform rtl:-scale-x-100`,F&&`rotate-90 rtl:rotate-90`)})}):null]}),F&&d.length>0?(0,H.jsx)(yd,{sections:d,currentView:t,memoryViewId:p,warningLabel:f,className:V(`ms-5 space-y-0.5 border-s border-sidebar-border ps-2`,N(`md:hidden`)),onSectionClick:de}):null,(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,H.jsxs)(`a`,{href:J.settings,className:fe(t===`settings`),"aria-current":t===`settings`?`page`:void 0,title:j?_:void 0,onClick:e=>ue(e,J.settings),children:[(0,H.jsx)(Ot,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:V(`min-w-0 break-words text-start`,N(`md:sr-only`)),children:_})]}),l.length>0?(0,H.jsx)(`button`,{type:`button`,className:V(`inline-flex min-h-11 min-w-11 md:min-h-7 md:min-w-7 shrink-0 items-center justify-center rounded-lg p-1.5 text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,N(`md:hidden`)),onClick:ae,"aria-expanded":P,"aria-controls":`sidebar-settings-tree`,"aria-label":_,title:_,children:(0,H.jsx)(ce,{className:V(`size-4 transition-transform rtl:-scale-x-100`,P&&`rotate-90 rtl:rotate-90`)})}):null]}),P&&l.length>0?(0,H.jsx)(`ul`,{id:`sidebar-settings-tree`,className:V(`ms-5 space-y-0.5 border-s border-sidebar-border ps-2`,N(`md:hidden`)),children:l.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`${J.settings}#${e.id}`,className:`flex min-h-11 md:min-h-7 items-center break-words rounded-lg px-2.5 py-1 text-xs text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,onClick:t=>de(t,e.id,`settings`),children:e.label})},e.id))}):null]}),(0,H.jsxs)(`div`,{className:V(`mt-auto p-3`,N(`md:px-2`)),children:[(0,H.jsx)(Ef,{variant:`row`,className:`md:hidden`,onOpen:()=>O(!0)}),(0,H.jsxs)(`div`,{className:V(`flex w-fit items-center rounded-lg border border-sidebar-border/80 bg-card/70`,N(`md:mx-auto md:flex-col md:[&>*]:justify-center md:[&>*]:py-1.5 md:[&>*+*]:border-s-0 md:[&>*+*]:border-t md:[&>*]:rounded-none`)),children:[(0,H.jsxs)(`div`,{ref:k,className:`relative flex self-stretch`,onBlur:e=>{k.current?.contains(e.relatedTarget)||E(!1)},children:[(0,H.jsx)(`button`,{ref:A,type:`button`,className:`${kp} rounded-s-lg px-1.5 py-1.5 text-ui`,onClick:()=>E(e=>!e),"aria-label":`${h}: ${m}`,"aria-haspopup":`menu`,"aria-expanded":T,"aria-controls":`sidebar-language-menu`,title:h,children:(0,H.jsx)(`span`,{className:`text-xs tabular-nums`,children:m})}),T?(0,H.jsx)(`div`,{id:`sidebar-language-menu`,role:`menu`,"aria-label":h,onKeyDown:se,className:`absolute bottom-full start-0 z-10 mb-2 w-44 max-h-[60vh] overflow-y-auto rounded-lg border border-sidebar-border bg-card p-1 shadow-lg`,children:Cp.map(({code:e,label:t})=>(0,H.jsx)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":m.toLowerCase()===e,className:`flex min-h-11 md:min-h-9 w-full items-center rounded-md px-2.5 py-2 text-start text-ui text-card-foreground aria-checked:bg-selection hover:bg-interactive-hover focus-visible:bg-selection focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{C?.(e),E(!1),A.current?.focus()},children:t},e))}):null]}),(0,H.jsx)(`button`,{type:`button`,className:`${kp} self-stretch border-s border-sidebar-border px-1.5`,onClick:()=>gp(),"aria-label":g,title:g,children:w?(0,H.jsx)(nt,{className:`size-4 rounded-md p-0.5`}):(0,H.jsx)(Pt,{className:`size-4 rounded-md p-0.5`})}),(0,H.jsx)(`a`,{href:J.settings,className:`${kp} self-stretch border-s border-sidebar-border px-1.5`,onClick:e=>ue(e,J.settings),"aria-label":_,title:_,"aria-current":t===`settings`?`page`:void 0,children:(0,H.jsx)(Ot,{className:`size-4`})}),(0,H.jsx)(Gd,{}),(0,H.jsx)(`a`,{href:`https://github.com/cmdaltctr/omms`,target:`_blank`,rel:`noopener noreferrer`,className:`${kp} self-stretch rounded-e-lg border-s border-sidebar-border px-1.5`,title:`GitHub`,"aria-label":`GitHub`,children:(0,H.jsx)(bd,{className:`size-4`})}),(0,H.jsx)(Ef,{onOpen:()=>O(!0),variant:j?`icon`:`inline`,className:V(`max-md:hidden`,j?`md:border-t md:border-sidebar-border`:`rounded-e-lg`)})]}),(0,H.jsx)(Df,{open:D,onOpenChange:O})]})]})]})}var Np=Object.defineProperty,Pp=v.forwardRef(((e,t)=>Np(e,`name`,{value:t,configurable:!0}))(function(e,t){return(0,H.jsx)(Mo.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})},`Label`));function Fp({className:e,...t}){return(0,H.jsx)(Pp,{"data-slot":`label`,className:V(`flex items-center gap-2 text-ui leading-normal select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function Ip({className:e,...t}){return(0,H.jsx)(`textarea`,{"data-slot":`textarea`,dir:`auto`,className:V(`border-input placeholder:text-muted-foreground selection:bg-selection selection:text-foreground flex field-sizing-content min-h-16 w-full min-w-0 rounded-[10px] border bg-card px-2.5 py-2 text-ui [unicode-bidi:plaintext] transition-colors duration-150 outline-none disabled:cursor-not-allowed disabled:opacity-50`,`focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,`aria-invalid:ring-destructive aria-invalid:ring-1 aria-invalid:border-destructive`,e),...t})}function Lp({open:e=!1,content:t=``,onOpenChange:n,onSave:r}){let{t:i}=G(),[a,o]=(0,v.useState)(``);(0,v.useEffect)(()=>{e&&o(t)},[e,t]);function s(e){n?.(e)}function c(e){e.preventDefault();let t=a.trim();t&&r?.(t)}return(0,H.jsx)(zl,{open:e,onOpenChange:s,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:i(`modal-edit-title`)})}),(0,H.jsxs)(`form`,{className:`space-y-4`,onSubmit:c,children:[(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`edit-content`,children:i(`label-content`)}),(0,H.jsx)(Ip,{id:`edit-content`,rows:6,value:a,onChange:e=>o(e.target.value),required:!0})]}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:()=>s(!1),children:i(`btn-cancel`)}),(0,H.jsx)(K,{type:`submit`,children:i(`btn-save`)})]})]})]})})}function Rp({children:e,maxHeight:t,fade:n=`var(--card)`}){let{t:r}=G(),i=(0,v.useId)(),a=(0,v.useRef)(null),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=a.current;if(!e)return;let n=()=>l(e.offsetHeight>t);if(n(),typeof ResizeObserver>`u`)return;let r=new ResizeObserver(n);return r.observe(e),()=>r.disconnect()},[t]);let u=c&&!o;return(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{id:i,className:`relative overflow-hidden`,style:u?{maxHeight:t}:void 0,"data-collapsed":u?`true`:void 0,children:[(0,H.jsx)(`div`,{ref:a,children:e}),u?(0,H.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-x-0 bottom-0 h-12`,style:{background:`linear-gradient(to top, ${n}, transparent)`}}):null]}),c?(0,H.jsxs)(K,{variant:`ghost`,size:`xs`,"aria-expanded":o,"aria-controls":i,onClick:()=>s(e=>!e),children:[o?(0,H.jsx)(le,{}):(0,H.jsx)(oe,{}),r(o?`btn-see-less`:`btn-see-more`)]}):null]})}var zp=8;function Bp({centre:e,half:t,left:n,right:r,gap:i}){let a=n+i+t,o=r-i-t;return a>o?(n+r)/2-e:Math.min(Math.max(e,a),o)-e}function Vp(e){return e.closest(`[data-tooltip-bounds]`)?.getBoundingClientRect()??null}function Hp({content:e,children:t,className:n}){let r=v.useId(),i=v.useRef(null),[a,o]=v.useState(0),s=v.isValidElement(t)?v.cloneElement(t,{"aria-describedby":r}):t,c=()=>{let e=i.current;if(!e)return;let t=e.parentElement.getBoundingClientRect(),n=e.offsetWidth/2,r=t.left+t.width/2,a=Vp(e),s=a?a.left:0,c=a?a.right:document.documentElement.clientWidth;o(Bp({centre:r,half:n,left:s,right:c,gap:zp}))};return(0,H.jsxs)(`span`,{className:V(`group/tooltip relative inline-flex`,n),onPointerEnter:c,onFocus:c,children:[s,(0,H.jsxs)(`span`,{ref:i,id:r,role:`tooltip`,style:{transform:`translateX(calc(-50% + ${a}px))`},className:`pointer-events-none absolute bottom-full left-1/2 z-30 mb-2 w-max max-w-[min(24rem,calc(100vw-1rem))] rounded-md border border-border bg-card px-2 py-1 text-xs whitespace-normal text-card-foreground opacity-0 shadow-sm transition-opacity duration-150 ease-in group-focus-within/tooltip:opacity-100 group-hover/tooltip:opacity-100`,children:[e,(0,H.jsx)(`span`,{"aria-hidden":`true`,style:{left:`calc(50% - ${a}px)`},className:`absolute top-full -mt-1 size-2 -translate-x-1/2 rotate-45 border-e border-b border-border bg-card`})]})]})}function Up({type:e}){let{t}=G();return(0,H.jsx)(Hp,{content:t(`tooltip-memory-type`),className:`min-w-0 max-w-full`,children:(0,H.jsx)(id,{variant:`outline`,"data-memory-type":e,tabIndex:0,className:`h-auto min-h-5 max-w-full shrink break-all whitespace-normal bg-transparent border-current [color:oklch(0.42_0.13_var(--memory-type-hue))] dark:[color:oklch(0.8_0.13_var(--memory-type-hue))]`,style:{"--memory-type-hue":String(td(e))},children:e})})}var Wp=/<pasted_content\b[^>]*>([\s\S]*?)<\/pasted_content[^>]*>|```[^\n]*\n([\s\S]*?)```/g;function Gp(e){return e.replace(/^\n+|\n+$/g,``)}function Kp(e){let t=[],n=e=>{let n=Gp(e);n.trim()&&t.push({kind:`text`,text:n})},r=0;for(let i of e.matchAll(Wp)){n(e.slice(r,i.index));let a=i[1]!==void 0;t.push({kind:a?`pasted`:`code`,text:Gp(a?i[1]:i[2])}),r=i.index+i[0].length}return n(e.slice(r)),t}function qp(e){let t=[],n=0;for(let r of e.matchAll(/`([^`\n]+)`/g))r.index>n&&t.push({code:!1,text:e.slice(n,r.index)}),t.push({code:!0,text:r[1]}),n=r.index+r[0].length;return n<e.length&&t.push({code:!1,text:e.slice(n)}),t}function Jp({label:e,children:t}){return(0,H.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-background/60`,children:[e?(0,H.jsx)(`div`,{className:`border-b border-border px-3 py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e}):null,(0,H.jsx)(`pre`,{dir:`ltr`,className:`overflow-x-auto p-3 font-mono text-code leading-relaxed whitespace-pre-wrap break-words`,children:t})]})}function Yp({content:e}){let{t}=G();return(0,H.jsx)(`div`,{className:`space-y-3`,children:Kp(e).map((e,n)=>e.kind===`pasted`?(0,H.jsx)(Jp,{label:t(`label-pasted-content`),children:e.text},n):e.kind===`code`?(0,H.jsx)(Jp,{children:e.text},n):(0,H.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words`,children:qp(e.text).map((e,t)=>e.code?(0,H.jsx)(`code`,{className:`inline-code`,children:e.text},t):(0,H.jsx)(v.Fragment,{children:e.text},t))},n))})}var Xp=e=>e instanceof Date?e:new Date(e),Zp=()=>Ti(ta(),typeof navigator>`u`?void 0:navigator.language);function Qp(e){return ji(Xp(e),Ii(),Zp())}function $p(e){return Ai(Xp(e),Ii(),Zp())}function em(e){return ki(Xp(e),Ii(),Zp())}function tm(e,t=Ii()){return Oi(Xp(e),t,Zp())}function nm(){return{locale:Zp(),choice:Ii()}}function rm(e,t){return Ai(Xp(e),t,Zp())}function im(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function am(e){if(Array.isArray(e))return e}function om(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function sm(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
58
58
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cm(e,t){return am(e)||om(e,t)||lm(e,t)||sm()}function lm(e,t){if(e){if(typeof e==`string`)return im(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?im(e,t):void 0}}var um=Object.entries,dm=Object.setPrototypeOf,fm=Object.isFrozen,pm=Object.getPrototypeOf,mm=Object.getOwnPropertyDescriptor,hm=Object.freeze,gm=Object.seal,_m=Object.create,vm=typeof Reflect<`u`&&Reflect,ym=vm.apply,bm=vm.construct;hm||=function(e){return e},gm||=function(e){return e},ym||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},bm||=function(e){return new e(...[...arguments].slice(1))};var xm=Vm(Array.prototype.forEach),Sm=Vm(Array.prototype.lastIndexOf),Cm=Vm(Array.prototype.pop),wm=Vm(Array.prototype.push),Tm=Vm(Array.prototype.splice),Em=Array.isArray,Dm=Vm(String.prototype.toLowerCase),Om=Vm(String.prototype.toString),km=Vm(String.prototype.match),Am=Vm(String.prototype.replace),jm=Vm(String.prototype.indexOf),Mm=Vm(String.prototype.trim),Nm=Vm(Number.prototype.toString),Pm=Vm(Boolean.prototype.toString),Fm=typeof BigInt>`u`?null:Vm(BigInt.prototype.toString),Im=typeof Symbol>`u`?null:Vm(Symbol.prototype.toString),Lm=Vm(Object.prototype.hasOwnProperty),Rm=Vm(Object.prototype.toString),zm=Vm(RegExp.prototype.test),Bm=Hm(TypeError);function Vm(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return ym(e,t,n)}}function Hm(e){return function(){return bm(e,[...arguments])}}function Um(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Dm;if(dm&&dm(e,null),!Em(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(fm(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Wm(e){for(let t=0;t<e.length;t++)Lm(e,t)||(e[t]=null);return e}function Gm(e){let t=_m(null);for(let r of um(e)){var n=cm(r,2);let i=n[0],a=n[1];Lm(e,i)&&(t[i]=Em(a)?Wm(a):a&&typeof a==`object`&&a.constructor===Object?Gm(a):a)}return t}function Km(e){switch(typeof e){case`string`:return e;case`number`:return Nm(e);case`boolean`:return Pm(e);case`bigint`:return Fm?Fm(e):`0`;case`symbol`:return Im?Im(e):`Symbol()`;case`undefined`:return Rm(e);case`function`:case`object`:{if(e===null)return Rm(e);let t=e,n=qm(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Rm(e)}return Rm(e)}default:return Rm(e)}}function qm(e,t){for(;e!==null;){let n=mm(e,t);if(n){if(n.get)return Vm(n.get);if(typeof n.value==`function`)return Vm(n.value)}e=pm(e)}function n(){return null}return n}function Jm(e){try{return zm(e,``),!0}catch{return!1}}var Ym=hm(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Xm=hm(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),Zm=hm([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Qm=hm([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),$m=hm(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),eh=hm([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),th=hm([`#text`]),nh=hm(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),rh=hm(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),ih=hm(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),ah=hm([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),oh=gm(/{{[\w\W]*|^[\w\W]*}}/g),sh=gm(/<%[\w\W]*|^[\w\W]*%>/g),ch=gm(/\${[\w\W]*/g),lh=gm(/^data-[\-\w.\u00B7-\uFFFF]+$/),uh=gm(/^aria-[\-\w]+$/),dh=gm(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),fh=gm(/^(?:\w+script|data):/i),ph=gm(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),mh=gm(/^html$/i),hh=gm(/^[a-z][.\w]*(-[.\w]+)+$/i),gh=gm(/<[/\w!]/g),_h=gm(/<[/\w]/g),vh=gm(/<\/no(script|embed|frames)/i),yh=gm(/\/>/i),bh={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},xh=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],Sh=hm(Um({},xh)),Ch=function(){let e={};return xm(xh,t=>{e[t]=gm(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),hm(e)}(),wh=function(){return typeof window>`u`?null:window},Th=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Eh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Dh=function(e,t,n,r){return Lm(e,t)&&Em(e[t])?Um(r.base?Gm(r.base):{},e[t],r.transform):n},Oh=function(e,t,n){let r=Lm(e,t)?e[t]:void 0;return r&&typeof r==`object`?Gm(r):n()};function kh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:wh(),t=e=>kh(e);if(t.version=`3.4.14`,t.removed=[],!e||!e.document||e.document.nodeType!==bh.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=qm(d,`cloneNode`),p=qm(d,`remove`),m=qm(d,`nextSibling`),h=qm(d,`childNodes`),g=qm(d,`parentNode`),_=qm(d,`shadowRoot`),v=qm(d,`attributes`),y=o&&o.prototype?qm(o.prototype,`nodeType`):null,b=o&&o.prototype?qm(o.prototype,`nodeName`):null,x=o&&o.prototype?qm(o.prototype,`ownerDocument`):null,S=function(e){return y?y(e):e.nodeType},C=function(e){return b?b(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let w,T=``,E,D=!1,O=0,k=function(){if(O>0)throw Bm(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},A=function(e){k(),O++;try{return w.createHTML(e)}finally{O--}},j=function(e){k(),O++;try{return w.createScriptURL(e)}finally{O--}},M=function(){return D||=(E=Th(u,i),!0),E},N=n,P=N.implementation,ee=N.createNodeIterator,F=N.createDocumentFragment,I=N.getElementsByTagName,te=r.importNode,L=Eh();t.isSupported=typeof um==`function`&&typeof g==`function`&&P&&P.createHTMLDocument!==void 0;let ne=oh,re=sh,R=ch,ie=lh,ae=uh,oe=fh,se=ph,ce=hh,le=dh,ue=null,de=Um({},[...Ym,...Xm,...Zm,...$m,...th]),fe=null,pe=Um({},[...nh,...rh,...ih,...ah]),me=Object.seal(_m(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),he=null,ge=null,_e=Object.seal(_m(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ve=!0,ye=!0,be=!1,xe=!0,Se=!1,Ce=!0,we=!1,Te=!1,Ee=null,De=null,Oe=!1,ke=!1,Ae=!1,je=!1,Me=!0,Ne=!1,Pe=`user-content-`,Fe=!0,Ie=!1,Le={},Re=null,ze=Um({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Be=null,Ve=Um({},[`audio`,`video`,`img`,`source`,`image`,`track`]),He=null,Ue=Um({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),We=`http://www.w3.org/1998/Math/MathML`,Ge=`http://www.w3.org/2000/svg`,Ke=`http://www.w3.org/1999/xhtml`,qe=Ke,Je=!1,Ye=null,Xe=Um({},[We,Ge,Ke],Om),Ze=hm([`mi`,`mo`,`mn`,`ms`,`mtext`]),Qe=Um({},Ze),$e=hm([`annotation-xml`]),et=Um({},$e),tt=Um({},[`title`,`style`,`font`,`a`,`script`]),nt=null,rt=[`application/xhtml+xml`,`text/html`],it=null,at=null,ot=n.createElement(`form`),st=function(e){return e instanceof RegExp||e instanceof Function},ct=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(at&&at===e)return;(!e||typeof e!=`object`)&&(e={}),e=Gm(e),nt=rt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,it=nt===`application/xhtml+xml`?Om:Dm,ue=Dh(e,`ALLOWED_TAGS`,de,{transform:it}),fe=Dh(e,`ALLOWED_ATTR`,pe,{transform:it}),Ye=Dh(e,`ALLOWED_NAMESPACES`,Xe,{transform:Om}),He=Dh(e,`ADD_URI_SAFE_ATTR`,Ue,{transform:it,base:Ue}),Be=Dh(e,`ADD_DATA_URI_TAGS`,Ve,{transform:it,base:Ve}),Re=Dh(e,`FORBID_CONTENTS`,ze,{transform:it}),he=Dh(e,`FORBID_TAGS`,Gm({}),{transform:it}),ge=Dh(e,`FORBID_ATTR`,Gm({}),{transform:it}),Le=Lm(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?Gm(e.USE_PROFILES):e.USE_PROFILES:!1,ve=e.ALLOW_ARIA_ATTR!==!1,ye=e.ALLOW_DATA_ATTR!==!1,be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Se=e.SAFE_FOR_TEMPLATES||!1,Ce=e.SAFE_FOR_XML!==!1,we=e.WHOLE_DOCUMENT||!1,ke=e.RETURN_DOM||!1,Ae=e.RETURN_DOM_FRAGMENT||!1,je=e.RETURN_TRUSTED_TYPE||!1,Oe=e.FORCE_BODY||!1,Me=e.SANITIZE_DOM!==!1,Ne=e.SANITIZE_NAMED_PROPS||!1,Fe=e.KEEP_CONTENT!==!1,Ie=e.IN_PLACE||!1,le=Jm(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:dh,qe=typeof e.NAMESPACE==`string`?e.NAMESPACE:Ke,Qe=Oh(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>Um({},Ze)),et=Oh(e,`HTML_INTEGRATION_POINTS`,()=>Um({},$e));let t=Oh(e,`CUSTOM_ELEMENT_HANDLING`,()=>_m(null));if(me=_m(null),Lm(t,`tagNameCheck`)&&st(t.tagNameCheck)&&(me.tagNameCheck=t.tagNameCheck),Lm(t,`attributeNameCheck`)&&st(t.attributeNameCheck)&&(me.attributeNameCheck=t.attributeNameCheck),Lm(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(me.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),gm(me),Se&&(ye=!1),Ae&&(ke=!0),Le&&(ue=Um({},th),fe=_m(null),Le.html===!0&&(Um(ue,Ym),Um(fe,nh)),Le.svg===!0&&(Um(ue,Xm),Um(fe,rh),Um(fe,ah)),Le.svgFilters===!0&&(Um(ue,Zm),Um(fe,rh),Um(fe,ah)),Le.mathMl===!0&&(Um(ue,$m),Um(fe,ih),Um(fe,ah))),_e.tagCheck=null,_e.attributeCheck=null,Lm(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?_e.tagCheck=e.ADD_TAGS:Em(e.ADD_TAGS)&&(ue===de&&(ue=Gm(ue)),Um(ue,e.ADD_TAGS,it))),Lm(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?_e.attributeCheck=e.ADD_ATTR:Em(e.ADD_ATTR)&&(fe===pe&&(fe=Gm(fe)),Um(fe,e.ADD_ATTR,it))),Lm(e,`ADD_FORBID_CONTENTS`)&&Em(e.ADD_FORBID_CONTENTS)&&(Re===ze&&(Re=Gm(Re)),Um(Re,e.ADD_FORBID_CONTENTS,it)),Fe&&(ue[`#text`]=!0),we&&Um(ue,[`html`,`head`,`body`]),ue.table&&(Um(ue,[`tbody`]),delete he.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Bm(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Bm(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=w;w=e.TRUSTED_TYPES_POLICY;try{T=A(``)}catch(e){throw w=t,e}}else e.TRUSTED_TYPES_POLICY===null?(w=void 0,T=``):(w===void 0&&(w=M()),w&&typeof T==`string`&&(T=A(``)));hm&&hm(e),at=e},lt=Um({},[...Xm,...Zm,...Qm]),ut=Um({},[...$m,...eh]),dt=function(e,t,n){return t.namespaceURI===Ke?e===`svg`:t.namespaceURI===We?e===`svg`&&(n===`annotation-xml`||Qe[n]):!!lt[e]},ft=function(e,t,n){return t.namespaceURI===Ke?e===`math`:t.namespaceURI===Ge?e===`math`&&et[n]:!!ut[e]},pt=function(e,t,n){return t.namespaceURI===Ge&&!et[n]||t.namespaceURI===We&&!Qe[n]?!1:!ut[e]&&(tt[e]||!lt[e])},mt=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:qe,tagName:`template`});let n=Dm(e.tagName),r=Dm(t.tagName);return Ye[e.namespaceURI]?e.namespaceURI===Ge?dt(n,t,r):e.namespaceURI===We?ft(n,t,r):e.namespaceURI===Ke?pt(n,t,r):!!(nt===`application/xhtml+xml`&&Ye[e.namespaceURI]):!1},ht=function(e){wm(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw Bm(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},gt=function(e,t,n){try{e.removeAttributeNode(t)}catch{try{e.removeAttribute(n)}catch{}}},_t=function(e){bt(e);let t=h(e);if(t){let e=[];xm(t,t=>{wm(e,t)}),xm(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&gt(e,r,i)}},vt=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}wm(t.removed,{attribute:r||null,from:n});try{r?n.removeAttributeNode(r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(ke||Ae)try{ht(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},yt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||fe[it(i)]||gt(e,r,i)}},bt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();S(e)===bh.element&&yt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},xt=function(e,t){return Ce?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},St=function(e){if(!Ce)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=S(e);if(n===bh.processingInstruction||n===bh.comment&&zm(_h,e.data)){try{p(e)}catch{}continue}if(n===bh.element){let t=e,n=it(C(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&xt(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},Ct=function(e){let t=null,r=null;if(Oe)e=`<remove></remove>`+e;else{let t=km(e,/^[\r\n\t ]+/);r=t&&t[0]}nt===`application/xhtml+xml`&&qe===Ke&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=w?A(e):e;if(qe===Ke)try{t=new l().parseFromString(i,nt)}catch{}if(!t||!t.documentElement){t=P.createDocument(qe,`template`,null);try{t.documentElement.innerHTML=Je?T:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),qe===Ke?I.call(t,we?`html`:`body`)[0]:we?t.documentElement:a},wt=function(e){let t=x?x(e):e.ownerDocument;return ee.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Tt=function(e){return e=Am(e,ne,` `),e=Am(e,re,` `),e=Am(e,R,` `),e},Et=function(e){e.normalize();let t=x?x(e):e.ownerDocument,n=ee.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Tt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&xm(i,e=>{Ot(e.content)&&Et(e.content)})},Dt=function(e){let t=b?b(e):null;return typeof t!=`string`||it(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},Ot=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===bh.documentFragment}catch{return!1}},kt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function At(e,n,r){e.length!==0&&xm(e,e=>{e.call(t,n,r,at)})}let jt=function(e,t){return!!(Ce&&e.hasChildNodes()&&!kt(e.firstElementChild)&&zm(gh,e.textContent)&&zm(gh,e.innerHTML)||Ce&&e.namespaceURI===Ke&&Sh[t]&&(kt(e.firstElementChild)||typeof e.textContent==`string`&&zm(Ch[t],e.textContent))||e.nodeType===bh.processingInstruction||Ce&&e.nodeType===bh.comment&&zm(_h,e.data))},Mt=function(e,t){return e instanceof RegExp?zm(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},Nt=function(e,t,n){if(!he[t]&&zt(t)&&Mt(me.tagNameCheck,t))return!1;if(Fe&&!Re[t]){let t=g(e),r=h(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,m(e))}}}return ht(e),!0},Pt=function(e,t,n,r){return e.length===0?t:t===n||t===r?Gm(t):t},Ft=function(e,t){return e===t||g(e)!==null?!1:(Ie&&bt(e),!0)},It=function(e,n){if(At(L.beforeSanitizeElements,e,null),Ft(e,n))return!0;if(Dt(e))return ht(e),!0;let r=it(C(e));if(ue=Pt(L.uponSanitizeElement,ue,de,Ee),At(L.uponSanitizeElement,e,{tagName:r,allowedTags:ue}),Ft(e,n))return!0;if(jt(e,r))return ht(e),!0;if(he[r]||!(_e.tagCheck instanceof Function&&_e.tagCheck(r))&&!ue[r]){let t=Nt(e,r,n);return t===!1&&At(L.afterSanitizeElements,e,null),t}if(S(e)===bh.element&&!mt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&zm(vh,e.innerHTML))return ht(e),!0;if(Se&&e.nodeType===bh.text){let n=Tt(e.textContent);e.textContent!==n&&(wm(t.removed,{element:e.cloneNode()}),e.textContent=n)}return At(L.afterSanitizeElements,e,null),!1},Lt=function(e,t,r){if(ge[t]||xt(t,e)||Me&&(t===`id`||t===`name`)&&(r in n||r in ot))return!1;let i=fe[t]||_e.attributeCheck instanceof Function&&_e.attributeCheck(t,e);return ye&&zm(ie,t)||ve&&zm(ae,t)?!0:i?He[t]||zm(le,Am(r,se,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&jm(r,`data:`)===0&&Be[e]||be&&!zm(oe,Am(r,se,``))?!0:!r:zt(e)&&Mt(me.tagNameCheck,e)&&Mt(me.attributeNameCheck,t,e)||t===`is`&&me.allowCustomizedBuiltInElements&&Mt(me.tagNameCheck,r)},Rt=Um({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),zt=function(e){return!Rt[Dm(e)]&&zm(ce,e)},Bt=function(e,t,n,r){if(w&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return A(r);case`TrustedScriptURL`:return j(r)}return r},Vt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Dt(e)?ht(e):Cm(t.removed)}catch{vt(n,e)}},Ht=function(e){At(L.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Dt(e))return;fe=Pt(L.uponSanitizeAttribute,fe,pe,De);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:fe,forceKeepAttr:void 0},r=t.length,i=it(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=it(o),u=c,d=o===`value`?u:Mm(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,At(L.uponSanitizeAttribute,e,n),d=n.attrValue,Ne&&(l===`id`||l===`name`)&&jm(d,Pe)!==0&&(vt(o,e,a),d=Pe+d),Ce&&zm(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){vt(o,e,a);continue}if(l===`attributename`&&km(d,`href`)){vt(o,e,a);continue}if(!n.forceKeepAttr){if(!n.keepAttr){vt(o,e,a);continue}if(!xe&&zm(yh,d)){vt(o,e,a);continue}if(Se&&(d=Tt(d)),!Lt(i,l,d)){vt(o,e,a);continue}d=Bt(i,l,s,d),d!==u&&Vt(e,o,s,d)}}At(L.afterSanitizeAttributes,e,null)},Ut=function(e){let t=null,n=wt(e);for(At(L.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(At(L.uponSanitizeShadowNode,t,null),It(t,e),Ht(t),Ot(t.content)&&Ut(t.content),S(t)===bh.element){let e=_(t);Ot(e)&&(Wt(e),Ut(e))}At(L.afterSanitizeShadowDOM,e,null)},Wt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Ut(e.shadow);continue}let n=e.node,r=S(n)===bh.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&it(e)===`template`){let e=n.content;Ot(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);Ot(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Je=!e,Je&&(e=`<!-->`),typeof e!=`string`&&!kt(e)&&(e=Km(e),typeof e!=`string`))throw Bm(`dirty is not a string, aborting`);if(!t.isSupported)return e;Te?(ue=Ee,fe=De):ct(n),(L.uponSanitizeElement.length>0||L.uponSanitizeAttribute.length>0)&&(ue=Gm(ue)),L.uponSanitizeAttribute.length>0&&(fe=Gm(fe)),t.removed=[];let c=Ie&&typeof e!=`string`&&kt(e);if(c){St(e);let t=C(e);if(typeof t==`string`){let n=it(t);if(!ue[n]||he[n])throw _t(e),Bm(`root node is forbidden and cannot be sanitized in-place`)}if(Dt(e))throw _t(e),Bm(`root node is clobbered and cannot be sanitized in-place`);try{Wt(e)}catch(t){throw _t(e),t}}else if(kt(e))i=Ct(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===bh.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Wt(a);else{if(!ke&&!Se&&!we&&e.indexOf(`<`)===-1)return w&&je?A(e):e;if(i=Ct(e),!i)return ke?null:je?T:``}i&&Oe&&ht(i.firstChild);let l=c?e:i;try{let e=wt(l);for(;o=e.nextNode();)It(o,l),Ht(o),Ot(o.content)&&Ut(o.content)}catch(n){throw c&&(_t(e),xm(t.removed,e=>{e.element&&bt(e.element)})),n}if(c)return xm(t.removed,e=>{e.element&&bt(e.element)}),Se&&Et(e),e;if(ke){if(Se&&Et(i),Ae)for(s=F.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(fe.shadowroot||fe.shadowrootmode)&&(s=te.call(r,s,!0)),s}let u=we?i.outerHTML:i.innerHTML;return we&&ue[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&zm(mh,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
@@ -120,51 +120,51 @@ ${this.parser.parse(e)}</blockquote>
120
120
  ${e}</tr>
121
121
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
122
122
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Qg(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=$g(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+Qg(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=$g(e);if(i===null)return Qg(n);e=i;let a=`<img src="${e}" alt="${Qg(n)}"`;return t&&(a+=` title="${Qg(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Qg(e.text)}},u_=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},d_=class e{options;renderer;textRenderer;constructor(e){this.options=e||Mh,this.options.renderer=this.options.renderer||new l_,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new u_}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},f_=class{options;block;constructor(e){this.options=e||Mh}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?c_.lex:c_.lexInline}provideParser(e=this.block){return e?d_.parse:d_.parseInline}},p_=new class{defaults=jh();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=d_;Renderer=l_;TextRenderer=u_;Lexer=c_;Tokenizer=s_;Hooks=f_;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new l_(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new s_(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new f_;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=f_.passThroughHooks.has(n)?e=>{if(this.defaults.async&&f_.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return c_.lex(e,t??this.defaults)}parser(e,t){return d_.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?c_.lex:c_.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?d_.parse:d_.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?c_.lex:c_.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?d_.parse:d_.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
123
- Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Qg(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function m_(e,t){return p_.parse(e,t)}m_.options=m_.setOptions=function(e){return p_.setOptions(e),m_.defaults=p_.defaults,Nh(m_.defaults),m_},m_.getDefaults=jh,m_.defaults=Mh;function h_(...e){return p_.use(...e),m_.defaults=p_.defaults,Nh(m_.defaults),m_}m_.use=h_,m_.walkTokens=function(e,t){return p_.walkTokens(e,t)},m_.parseInline=p_.parseInline,m_.Parser=d_,m_.parser=d_.parse,m_.Renderer=l_,m_.TextRenderer=u_,m_.Lexer=c_,m_.lexer=c_.lex,m_.Tokenizer=s_,m_.Hooks=f_,m_.parse=m_,m_.options,m_.setOptions,m_.walkTokens,m_.parseInline,d_.parse,c_.lex,m_.setOptions({gfm:!0,breaks:!0});function g_(e){let t=m_.parse(e,{async:!1});return Ah.sanitize(t)}var __=320,v_=240;function y_(e){if(e.projectPath){let t=e.projectPath.replace(/\\/g,`/`).split(`/`).filter(e=>e);return t[t.length-1]||e.projectPath}return e.displayName||e.id}function b_(e){return{createdDate:Qp(e.createdAt),updatedDate:e.updatedAt&&e.updatedAt!==e.createdAt?Qp(e.updatedAt):null}}function x_(e,t){return e.similarity===void 0?null:t?`${Math.round(e.similarity*100)}%`:`${e.similarity}%`}function S_({variant:e,item:t,memory:n,prompt:r,selected:i=!1,onSelect:a,onPin:o,onUnpin:s,onEdit:c,onDeleteMemory:l,onDeletePrompt:u,activeKeyword:d,onKeywordClick:f}){let{t:p}=G();if(e===`pair`&&n&&r){let e=n.isPinned||!1,t=b_(n),u=x_(n,!0);return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-3 space-y-3 ${i?`ring-1 ring-input`:``} ${e?`border-primary/40`:``}`,"data-id":n.id,children:[(0,H.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-border bg-muted p-3`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:p(`badge-prompt`)}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Qp(r.createdAt)})]}),(0,H.jsx)(Rp,{maxHeight:v_,fade:`var(--muted)`,children:(0,H.jsx)(Yp,{content:r.content})})]}),(0,H.jsx)(`div`,{className:`flex justify-center text-muted-foreground`,children:(0,H.jsx)(M,{className:`size-4`})}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 min-w-0`,children:[(0,H.jsx)(Qo,{checked:i,onCheckedChange:e=>a?.(n.id,e===!0)}),(0,H.jsx)(id,{children:p(`badge-memory`)}),n.memoryType?(0,H.jsx)(Up,{type:n.memoryType}):null,u?(0,H.jsx)(`span`,{className:`text-xs text-primary`,children:u}):null,e?(0,H.jsx)(id,{variant:`secondary`,children:p(`badge-pinned`)}):null,(0,H.jsx)(`span`,{dir:`auto`,className:`text-xs text-muted-foreground font-mono min-w-0 break-all`,children:n.displayName||n.id})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[e?(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Unpin`,onClick:()=>s?.(n.id),children:(0,H.jsx)(ht,{className:`size-3.5 fill-current`})}):(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Pin`,onClick:()=>o?.(n.id),children:(0,H.jsx)(ht,{className:`size-3.5`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,onClick:()=>c?.(n.id),children:(0,H.jsx)(pt,{className:`size-3.5`})}),(0,H.jsx)(Hp,{content:p(`tooltip-delete-pair`),children:(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(`btn-delete-pair`),onClick:()=>l?.(n.id,!0),children:(0,H.jsx)(Rt,{className:`size-3.5`})})})]})]}),n.tags?.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:n.tags.map(e=>(0,H.jsx)(Hp,{content:p(`tooltip-tags`),className:`min-w-0 max-w-full`,children:(0,H.jsx)(nd,{keyword:e,active:d?.toLowerCase()===e.toLowerCase(),"aria-label":`${p(`tooltip-filter-keyword`)}: ${e}`,onClick:f})},e))}):null,(0,H.jsx)(`div`,{className:`rounded-lg border border-border bg-muted p-3`,children:(0,H.jsx)(Rp,{maxHeight:__,fade:`var(--muted)`,children:(0,H.jsx)(`div`,{className:`markdown-content text-sm prose-invert max-w-none`,dangerouslySetInnerHTML:{__html:g_(n.content)}})})}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`span`,{children:[p(`date-created`),` `,t.createdDate]}),t.updatedDate?(0,H.jsxs)(`span`,{children:[p(`date-updated`),` `,t.updatedDate]}):null,(0,H.jsxs)(`span`,{dir:`ltr`,className:`font-mono break-all`,children:[`ID: `,n.id]})]})]})]})}if(e===`prompt`&&t){let e=!!t.linkedMemoryId;return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-3 space-y-2 ${i?`ring-1 ring-input`:``}`,"data-id":t.id,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,H.jsx)(Qo,{checked:i,onCheckedChange:e=>a?.(t.id,e===!0)}),(0,H.jsx)(Ze,{className:`size-3.5 text-muted-foreground`}),(0,H.jsx)(id,{variant:`secondary`,children:p(`badge-prompt`)}),e?(0,H.jsxs)(id,{variant:`outline`,className:`border-status-success text-status-success bg-transparent`,children:[(0,H.jsx)(Ke,{className:`size-3`}),p(`badge-linked`)]}):null,(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Qp(t.createdAt)})]}),e?(0,H.jsx)(Hp,{content:p(`tooltip-delete-prompt-pair`),children:(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(e?`btn-delete-pair`:`btn-delete`),onClick:()=>u?.(t.id,e),children:(0,H.jsx)(Rt,{className:`size-3.5`})})}):(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(e?`btn-delete-pair`:`btn-delete`),title:p(`btn-delete`),onClick:()=>u?.(t.id,e),children:(0,H.jsx)(Rt,{className:`size-3.5`})})]}),(0,H.jsx)(Rp,{maxHeight:v_,children:(0,H.jsx)(Yp,{content:t.content})}),e?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,H.jsx)(M,{className:`size-3`}),p(`text-generated-above`),(0,H.jsx)(ee,{className:`size-3`})]}):null]})}if(e===`memory`&&t){let e=t.isPinned||!1,n=!!t.linkedPromptId,r=b_(t),u=x_(t,!1);return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-3 space-y-2 ${i?`ring-1 ring-input`:``} ${e?`border-primary/40`:``}`,"data-id":t.id,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 min-w-0`,children:[(0,H.jsx)(Qo,{checked:i,onCheckedChange:e=>a?.(t.id,e===!0)}),t.memoryType?(0,H.jsx)(Up,{type:t.memoryType}):null,n?(0,H.jsxs)(id,{variant:`outline`,className:`border-status-success text-status-success bg-transparent`,children:[(0,H.jsx)(Ke,{className:`size-3`}),p(`badge-linked`)]}):null,u?(0,H.jsx)(`span`,{className:`text-xs text-primary`,children:u}):null,e?(0,H.jsx)(id,{variant:`secondary`,children:p(`badge-pinned`)}):null,(0,H.jsx)(`span`,{dir:`auto`,className:`text-xs text-muted-foreground font-mono min-w-0 break-all`,children:y_(t)}),t.projectPath?(0,H.jsx)(`span`,{dir:`ltr`,className:`text-code text-muted-foreground font-mono break-all w-full`,children:t.projectPath}):null]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[e?(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Unpin`,onClick:()=>s?.(t.id),children:(0,H.jsx)(ht,{className:`size-3.5 fill-current`})}):(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Pin`,onClick:()=>o?.(t.id),children:(0,H.jsx)(ht,{className:`size-3.5`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,onClick:()=>c?.(t.id),children:(0,H.jsx)(pt,{className:`size-3.5`})}),n?(0,H.jsx)(Hp,{content:p(`tooltip-delete-pair`),children:(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(n?`btn-delete-pair`:`btn-delete`),onClick:()=>l?.(t.id,n),children:(0,H.jsx)(Rt,{className:`size-3.5`})})}):(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(n?`btn-delete-pair`:`btn-delete`),title:p(`btn-delete`),onClick:()=>l?.(t.id,n),children:(0,H.jsx)(Rt,{className:`size-3.5`})})]})]}),t.tags?.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.tags.map(e=>(0,H.jsx)(Hp,{content:p(`tooltip-tags`),className:`min-w-0 max-w-full`,children:(0,H.jsx)(nd,{keyword:e,active:d?.toLowerCase()===e.toLowerCase(),"aria-label":`${p(`tooltip-filter-keyword`)}: ${e}`,onClick:f})},e))}):null,(0,H.jsx)(`div`,{className:`rounded-lg border border-border bg-muted p-3`,children:(0,H.jsx)(Rp,{maxHeight:__,fade:`var(--muted)`,children:(0,H.jsx)(`div`,{className:`markdown-content text-sm prose-invert max-w-none`,dangerouslySetInnerHTML:{__html:g_(t.content)}})})}),n?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,H.jsx)(ee,{className:`size-3`}),p(`text-from-below`),(0,H.jsx)(M,{className:`size-3`})]}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`span`,{children:[p(`date-created`),` `,r.createdDate]}),r.updatedDate?(0,H.jsxs)(`span`,{children:[p(`date-updated`),` `,r.updatedDate]}):null,(0,H.jsxs)(`span`,{dir:`ltr`,className:`font-mono break-all`,children:[`ID: `,t.id]})]})]})}return null}function C_(e){let t=new Map(e.map(e=>[e.id,e])),n=[],r=new Set;for(let i of e)if(!r.has(i.id)){if(i.type===`memory`&&i.linkedPromptId&&t.has(i.linkedPromptId)){let e=t.get(i.linkedPromptId);n.push({isPair:!0,memory:i,prompt:e}),r.add(i.id),r.add(e.id)}else if(i.type===`prompt`&&i.linkedMemoryId&&t.has(i.linkedMemoryId)){let e=t.get(i.linkedMemoryId);n.push({isPair:!0,memory:e,prompt:i}),r.add(i.id),r.add(e.id)}else n.push({isPair:!1,type:i.type,item:i}),r.add(i.id)}return n.sort((e,t)=>{let n=e.isPair?e.memory.createdAt:e.item.createdAt,r=t.isPair?t.memory.createdAt:t.item.createdAt;return new Date(r).getTime()-new Date(n).getTime()})}function w_({memories:e,selectedIds:t,currentPage:n,totalPages:r,loading:i=!1,error:a=null,onSelect:o,onPageChange:s,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m}){let{t:h}=G(),g=(0,v.useMemo)(()=>C_(e),[e]),_=h(`text-page`,{current:n,total:r}),y=(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(K,{variant:`outline`,size:`icon-xs`,disabled:!(n>1),onClick:()=>s(-1),children:(0,H.jsx)(se,{className:`size-3.5`})}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:_}),(0,H.jsx)(K,{variant:`outline`,size:`icon-xs`,disabled:!(n<r),onClick:()=>s(1),children:(0,H.jsx)(ce,{className:`size-3.5`})})]});return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`div`,{className:`grid min-h-32 items-start gap-3 lg:grid-cols-2`,children:i&&e.length===0?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-8 text-center`,children:h(`loading-init`)}):a?(0,H.jsxs)(`div`,{className:`text-sm text-destructive py-8 text-center`,children:[`Error: `,a]}):g.length===0?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-8 text-center`,children:h(`empty-memories`)}):g.map(e=>e.isPair?(0,H.jsx)(S_,{variant:`pair`,memory:e.memory,prompt:e.prompt,selected:t.has(e.memory.id),onSelect:o,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m},e.memory.id):e.type===`prompt`?(0,H.jsx)(S_,{variant:`prompt`,item:e.item,selected:t.has(e.item.id),onSelect:o,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m},e.item.id):(0,H.jsx)(S_,{variant:`memory`,item:e.item,selected:t.has(e.item.id),onSelect:o,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m},e.item.id))}),(0,H.jsx)(`div`,{className:`flex justify-end`,children:y})]})}function T_(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(0);return(0,v.useEffect)(()=>{let e=!1;return di.status().then(t=>{e||n(t.success?t.data??null:null)}),()=>{e=!0}},[e,r]),{record:t,reload:(0,v.useCallback)(()=>i(e=>e+1),[])}}function E_(e){return e!==null}function D_(e){return{createdAt:e.createdAt,merged:e.merged,removed:e.removed}}function O_(e,t){return e===`idle`&&t===`open`?`confirming`:e===`confirming`&&t===`cancel`?`idle`:e===`confirming`&&t===`confirm`?`working`:e===`working`&&t===`done`?`idle`:e}function k_(e,t){return e===`confirming`&&t===`confirm`}function A_(e){return{key:e.notFound>0?`toast-auto-cleanup-undone-partial`:`toast-auto-cleanup-undone`,params:{restored:e.restored,notFound:e.notFound}}}function j_({version:e,onUndone:t}){let{t:n}=G(),{record:r,reload:i}=T_(e),[a,o]=(0,v.useState)(`idle`);if(!E_(r)||!r)return null;async function s(){if(!k_(a,`confirm`))return;o(O_(a,`confirm`));let e=await di.undo();if(o(`idle`),i(),!e.success||!e.data){U.info(e.error||n(`toast-auto-cleanup-undo-failed`));return}let r=A_(e.data);U.success(n(r.key,r.params)),t?.()}let c=D_(r);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,onClick:()=>o(O_(a,`open`)),children:[(0,H.jsx)(Vt,{className:`size-3.5`}),n(`btn-auto-cleanup-undo`)]}),(0,H.jsx)(zl,{open:a!==`idle`,onOpenChange:e=>{e||o(O_(a,`cancel`))},children:(0,H.jsxs)(q,{className:`sm:max-w-md`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:n(`title-auto-cleanup-undo`)}),(0,H.jsx)(Gl,{children:n(`label-auto-cleanup-undo-body`,{when:Qp(new Date(c.createdAt).toISOString()),merged:c.merged,removed:c.removed})})]}),(0,H.jsxs)(Ul,{className:`gap-2`,children:[(0,H.jsx)(K,{variant:`secondary`,size:`sm`,disabled:a===`working`,onClick:()=>o(O_(a,`cancel`)),children:n(`btn-cancel`)}),(0,H.jsx)(K,{size:`sm`,disabled:a===`working`,onClick:()=>void s(),children:n(`btn-auto-cleanup-undo-confirm`)})]})]})})]})}var M_=Ba(`grid min-w-0 gap-0.5 rounded-xl border px-4 py-3 text-start text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pe-18 has-[>svg]:grid-cols-[auto_minmax(0,1fr)] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 group/alert relative w-full`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`text-destructive-label bg-card *:data-[slot=alert-description]:text-destructive-label *:[svg]:text-current`}},defaultVariants:{variant:`default`}});function N_({className:e,variant:t,...n}){return(0,H.jsx)(`div`,{"data-slot":`alert`,role:`alert`,className:V(M_({variant:t}),e),...n})}function P_({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`alert-description`,className:V(`text-muted-foreground text-sm [&_p]:leading-relaxed col-start-2`,e),...t})}function F_(e){if(!e)return null;let t=e.status;switch(t.state){case`grouping`:return{kind:`grouping`};case`checking`:return t.total>0?{kind:`checking`,done:t.done,total:t.total}:{kind:`grouping`};case`done`:return{kind:`ready`,groups:t.preview.groups.length};case`failed`:return{kind:`failed`,error:t.error}}}function I_(e){return e?.status.state===`grouping`||e?.status.state===`checking`}var L_=3e3;function R_(e){let[t,n]=(0,v.useState)(null);return(0,v.useEffect)(()=>{if(e)return;let t=!1,r,i=async()=>{let e=await oi(`/api/user-profile/category-cleanup`);if(t)return;let a=e.success?e.data??null:null;n(a),I_(a)&&(r=setTimeout(()=>void i(),L_))};return i(),()=>{t=!0,clearTimeout(r)}},[e]),t}function z_({paused:e,onOpen:t}){let{t:n}=G(),r=F_(R_(e));if(e||!r)return null;let i=r.kind===`failed`;return(0,H.jsx)(N_,{variant:i?`destructive`:`default`,role:i?`alert`:`status`,children:(0,H.jsxs)(`div`,{className:`col-start-1 flex min-w-0 flex-wrap items-center justify-between gap-2`,children:[(0,H.jsxs)(`span`,{className:`min-w-0 break-words`,children:[r.kind===`grouping`&&n(`label-category-cleanup-loading`),r.kind===`checking`&&n(`label-category-cleanup-progress`,{done:r.done,total:r.total}),r.kind===`ready`&&n(`label-category-cleanup-banner-ready`,{groups:r.groups}),r.kind===`failed`&&(0,H.jsxs)(H.Fragment,{children:[n(`label-category-cleanup-banner-failed`),` `,(0,H.jsx)(`bdi`,{children:r.error})]})]}),(0,H.jsx)(K,{variant:`outline`,size:`xs`,onClick:t,children:n(`btn-category-cleanup-banner-open`)})]})})}var B_=Object.defineProperty,V_=(e,t)=>B_(e,`name`,{value:t,configurable:!0}),H_=v.createContext(void 0);function U_(e){let t=v.useContext(H_);return e||t||`ltr`}V_(U_,`useDirection`);var W_=Object.defineProperty,G_=(e,t)=>W_(e,`name`,{value:t,configurable:!0});function K_(e,[t,n]){return Math.min(n,Math.max(t,e))}G_(K_,`clamp`);var q_=Object.defineProperty,J_=(e,t)=>q_(e,`name`,{value:t,configurable:!0});function Y_(e,t){return v.useReducer((e,n)=>t[e][n]??e,e)}J_(Y_,`useStateMachine`);var X_=`ScrollArea`,[Z_,Q_]=qa(X_),[$_,ev]=Z_(X_),tv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=v.useState(null),[l,u]=v.useState(null),[d,f]=v.useState(null),[p,m]=v.useState(null),[h,g]=v.useState(null),[_,y]=v.useState(0),[b,x]=v.useState(0),[S,C]=v.useState(!1),[w,T]=v.useState(!1),E=xa(t,c),D=U_(i);return(0,H.jsx)($_,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:h,onScrollbarYChange:g,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:y,onCornerHeightChange:x,children:(0,H.jsx)(Mo.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})},`ScrollArea`)),nv=`ScrollAreaViewport`,rv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=ev(nv,n),s=xa(t,v.useRef(null),o.onViewportChange);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(iv,{nonce:i}),(0,H.jsx)(Mo.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,H.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})},`ScrollAreaViewport`)),iv=v.memo(J_(function({nonce:e}){return(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:e})},`ScrollAreaViewportStyle`),(e,t)=>e.nonce===t.nonce),av=`ScrollAreaScrollbar`,ov=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=ev(av,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return v.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,H.jsx)(sv,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,H.jsx)(cv,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,H.jsx)(lv,{...r,ref:t,forceMount:n}):i.type===`always`?(0,H.jsx)(uv,{...r,ref:t,"data-state":`visible`}):null},`ScrollAreaScrollbar`)),sv=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=ev(av,e.__scopeScrollArea),[a,o]=v.useState(!1);return v.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=J_(()=>{window.clearTimeout(t),o(!0)},`handlePointerEnter`),r=J_(()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)},`handlePointerLeave`);return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,H.jsx)(wo,{present:n||a,children:(0,H.jsx)(lv,{"data-state":a?`visible`:`hidden`,...r,ref:t})})},`ScrollAreaScrollbarHover`)),cv=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=ev(av,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Av(()=>c(`SCROLL_END`),100),[s,c]=Y_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return v.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),v.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=J_(()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r},`handleScroll`);return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,H.jsx)(wo,{present:n||s!==`hidden`,children:(0,H.jsx)(uv,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:Qa(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:Qa(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})},`ScrollAreaScrollbarScroll`)),lv=v.forwardRef(J_(function(e,t){let n=ev(av,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=v.useState(!1),s=e.orientation===`horizontal`,c=Av(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return jv(n.viewport,c),jv(n.content,c),(0,H.jsx)(wo,{present:r||a,children:(0,H.jsx)(uv,{"data-state":a?`visible`:`hidden`,...i,ref:t})})},`ScrollAreaScrollbarAuto`)),uv=v.forwardRef(J_(function(e,t){let{orientation:n=`vertical`,...r}=e,i=ev(av,e.__scopeScrollArea),a=v.useRef(null),o=v.useRef(0),[s,c]=v.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Cv(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:J_(e=>a.current=e,`onThumbChange`),onThumbPointerUp:J_(()=>o.current=0,`onThumbPointerUp`),onThumbPointerDown:J_(e=>o.current=e,`onThumbPointerDown`)};function d(e,t){return Tv(e,o.current,s,t)}return J_(d,`getScrollPosition`),n===`horizontal`?(0,H.jsx)(dv,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Ev(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,H.jsx)(fv,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Ev(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null},`ScrollAreaScrollbarVisible`)),dv=v.forwardRef(J_(function(e,t){let{sizes:n,onSizesChange:r,...i}=e,a=ev(av,e.__scopeScrollArea),[o,s]=v.useState(),c=v.useRef(null),l=xa(t,c,a.onScrollbarXChange);return v.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(hv,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":wv(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),Ov(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Sv(o.paddingLeft),paddingEnd:Sv(o.paddingRight)}})}})},`ScrollAreaScrollbarX`)),fv=v.forwardRef(J_(function(e,t){let{sizes:n,onSizesChange:r,...i}=e,a=ev(av,e.__scopeScrollArea),[o,s]=v.useState(),c=v.useRef(null),l=xa(t,c,a.onScrollbarYChange);return v.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(hv,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":wv(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),Ov(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Sv(o.paddingTop),paddingEnd:Sv(o.paddingBottom)}})}})},`ScrollAreaScrollbarY`)),[pv,mv]=Z_(av),hv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:d,...f}=e,p=ev(av,n),[m,h]=v.useState(null),g=xa(t,h),_=v.useRef(null),y=v.useRef(``),b=p.viewport,x=r.content-r.viewport,S=os(u),C=os(c),w=Av(d,10);function T(e){if(_.current){let t=e.clientX-_.current.left,n=e.clientY-_.current.top;l({x:t,y:n})}}return J_(T,`handleDragScroll`),v.useEffect(()=>{let e=J_(e=>{let t=e.target;m?.contains(t)&&S(e,x)},`handleWheel`);return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,m,x,S]),v.useEffect(C,[r,C]),jv(m,w),jv(p.content,w),(0,H.jsx)(pv,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:os(a),onThumbPointerUp:os(o),onThumbPositionChange:C,onThumbPointerDown:os(s),children:(0,H.jsx)(Mo.div,{...f,ref:g,style:{position:`absolute`,...f.style},onPointerDown:Qa(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=m.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,p.viewport&&(p.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:Qa(e.onPointerMove,T),onPointerUp:Qa(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,p.viewport&&(p.viewport.style.scrollBehavior=``),_.current=null})})})},`ScrollAreaScrollbarImpl`)),gv=`ScrollAreaThumb`,_v=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=mv(gv,e.__scopeScrollArea);return(0,H.jsx)(wo,{present:n||i.hasThumb,children:(0,H.jsx)(vv,{ref:t,...r})})},`ScrollAreaThumb`)),vv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,style:r,...i}=e,a=ev(gv,n),o=mv(gv,n),{onThumbPositionChange:s}=o,c=xa(t,o.onThumbChange),l=v.useRef(void 0),u=Av(()=>{l.current&&=(l.current(),void 0)},100);return v.useEffect(()=>{let e=a.viewport;if(e){let t=J_(()=>{if(u(),!l.current){let t=kv(e,s);l.current=t,s()}},`handleScroll`);return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,H.jsx)(Mo.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:Qa(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:Qa(e.onPointerUp,o.onThumbPointerUp)})},`ScrollAreaThumbImpl`)),yv=`ScrollAreaCorner`,bv=v.forwardRef(J_(function(e,t){let n=ev(yv,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,H.jsx)(xv,{...e,ref:t}):null},`ScrollAreaCorner`)),xv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,...r}=e,i=ev(yv,n),[a,o]=v.useState(0),[s,c]=v.useState(0),l=!!(a&&s),{onCornerWidthChange:u,onCornerHeightChange:d}=i;return jv(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),jv(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),v.useEffect(()=>()=>{u(0),d(0)},[u,d]),l?(0,H.jsx)(Mo.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null},`ScrollAreaCornerImpl`));function Sv(e){return e?parseInt(e,10):0}J_(Sv,`toInt`);function Cv(e,t){let n=e/t;return isNaN(n)?0:n}J_(Cv,`getThumbRatio`);function wv(e){let t=Cv(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}J_(wv,`getThumbSize`);function Tv(e,t,n,r=`ltr`){let i=wv(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return Dv([c,l],d)(e)}J_(Tv,`getScrollPositionFromPointer`);function Ev(e,t,n=`ltr`){let r=wv(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=K_(e,n===`ltr`?[0,o]:[o*-1,0]);return Dv([0,o],[0,s])(c)}J_(Ev,`getThumbOffsetFromScroll`);function Dv(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}J_(Dv,`linearScale`);function Ov(e,t){return e>0&&e<t}J_(Ov,`isScrollingWithinScrollbarBounds`);var kv=J_((e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return J_((function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)}),`loop`)(),()=>window.cancelAnimationFrame(r)},`addUnlinkedScrollListener`);function Av(e,t){let n=os(e),r=v.useRef(0);return v.useEffect(()=>()=>window.clearTimeout(r.current),[]),v.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}J_(Av,`useDebounceCallback`);function jv(e,t){let n=os(t);ro(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}J_(jv,`useResizeObserver`);var Mv=tv,Nv=rv,Pv=bv;function Fv({className:e,children:t,...n}){return(0,H.jsxs)(Mv,{"data-slot":`scroll-area`,className:V(`relative`,e),...n,children:[(0,H.jsx)(Nv,{"data-slot":`scroll-area-viewport`,className:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,children:t}),(0,H.jsx)(Iv,{}),(0,H.jsx)(Pv,{})]})}function Iv({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(ov,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:V(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...n,children:(0,H.jsx)(_v,{"data-slot":`scroll-area-thumb`,className:`bg-border relative flex-1 rounded-full`})})}function Lv({open:e=!1,profileId:t=``,onOpenChange:n}){let{t:r}=G(),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)([]);(0,v.useEffect)(()=>{e&&t&&c(t)},[e,t]);async function c(e){a(!0),s([]);let t=await oi(`/api/user-profile/changelog?profileId=${encodeURIComponent(e)}&limit=10`);a(!1),t.success&&t.data?s(t.data):s([])}return(0,H.jsx)(zl,{open:e,onOpenChange:n,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:r(`modal-changelog-title`)})}),(0,H.jsx)(Fv,{className:`max-h-80`,children:i?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-6 text-center`,children:r(`loading-changelog`)}):o.length===0?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-6 text-center`,children:r(`empty-changelog`)}):(0,H.jsx)(`div`,{className:`space-y-3 pr-3`,children:o.map((e,t)=>(0,H.jsxs)(`div`,{className:`rounded-lg border border-border p-3 space-y-1`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,H.jsxs)(`span`,{className:`font-medium`,children:[`v`,e.version]}),(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:e.changeType}),(0,H.jsx)(`span`,{className:`text-muted-foreground ml-auto`,children:Qp(e.createdAt)})]}),(0,H.jsx)(`p`,{className:`text-sm`,children:e.changeSummary})]},`${e.version}-${t}`))})})]})})}function Rv({item:e,onOpen:t,focusKey:n}){let{t:r}=G(),i=Gu(e).length;return i===0?null:(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`xs`,className:`-mx-1.5 h-5 cursor-pointer px-1.5 text-xs font-normal text-muted-foreground transition-colors duration-200 ease-in hover:bg-transparent hover:text-primary-label focus-visible:text-primary-label`,"aria-haspopup":`dialog`,"data-evidence-key":n,"aria-label":r(`evidence-open-label`,{count:i}),onClick:t,children:[(0,H.jsx)(Be,{className:`size-3`,"aria-hidden":`true`}),r(`evidence-count`,{count:i})]})}var zv={preferences:`profile-preferences`,patterns:`profile-patterns`,workflows:`profile-workflows`};function Bv({item:e,section:t}){let{t:n,language:r}=G(),i=Gu(e);return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsxs)(`span`,{className:`text-xs font-medium tracking-wide text-muted-foreground`,children:[n(zv[t]),e.category?` · ${e.category}`:null]}),(0,H.jsx)(`p`,{dir:`auto`,className:`text-sm leading-6 break-words`,children:e.description}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`evidence-hit-count`,{count:e.frequency||1})})]}),(0,H.jsx)(Fv,{dir:r===`ar`?`rtl`:`ltr`,className:`max-h-[50vh] rounded-lg border`,children:(0,H.jsx)(`ol`,{className:`flex flex-col divide-y`,children:i.map((e,t)=>(0,H.jsxs)(`li`,{className:`flex gap-3 px-3 py-2.5 text-sm leading-6`,children:[(0,H.jsx)(`span`,{className:`w-5 shrink-0 text-end text-xs leading-6 text-muted-foreground tabular-nums`,children:t+1}),e.kind===`manual-write`?(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-muted-foreground italic`,children:[(0,H.jsx)(pt,{className:`size-3.5`,"aria-hidden":`true`}),n(`evidence-manual-write`)]}):(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 whitespace-pre-wrap break-words`,children:e.text})]},t))})}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`evidence-note`)})]})}function Vv({item:e,section:t,focusKey:n,onOpenChange:r}){let{t:i}=G(),a=(0,v.useRef)(null);return n&&(a.current=n),(0,H.jsx)(zl,{open:e!==null,onOpenChange:r,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,onCloseAutoFocus:e=>{let t=a.current,n=t?document.querySelector(`[data-evidence-key="${CSS.escape(t)}"]`):null;n&&(e.preventDefault(),n.focus())},children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:i(`evidence-dialog-title`)}),(0,H.jsx)(Gl,{className:`sr-only`,children:e?.description})]}),e?(0,H.jsx)(Bv,{item:e,section:t}):null]})})}function Hv({open:e=!1,type:t=null,index:n=0,action:r=`edit`,item:i=null,onOpenChange:a,onSaved:o}){let{t:s}=G(),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)([``]),[m,h]=(0,v.useState)(`1`),[g,_]=(0,v.useState)(!1),y=r===`edit`,b=t===`workflows`;(0,v.useEffect)(()=>{e&&i&&(l(i.category||``),d(i.description||``),p(i.steps?.length?[...i.steps]:[``]),h(`1`))},[e,i]);let x=y?s(`btn-edit`)||`Edit Item`:m===`2`?s(`confirm-delete-title`)||`Confirm Delete`:s(`confirm-delete`)||`Delete Item?`;function S(e){a?.(e)}function C(){p(e=>[...e,``])}function w(e){p(t=>{let n=t.filter((t,n)=>n!==e);return n.length===0?[``]:n})}function T(e,t){p(n=>n.map((n,r)=>r===e?t:n))}async function E(e){if(e.preventDefault(),!t)return;if(r===`delete`){if(m===`1`){h(`2`);return}_(!0);let e=await oi(`/api/user-profile/item`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({type:t,index:n,action:`delete`})});_(!1),e.success?(U.success(s(`toast-delete-success`)||`Item deleted`),S(!1),o?.()):U.error(e.error||s(`toast-delete-failed`)||`Delete failed`);return}_(!0);let i={type:t,index:n,action:`edit`,category:b?void 0:c,description:u};t===`workflows`&&(i.steps=f.map(e=>e.trim()).filter(Boolean));let a=await oi(`/api/user-profile/item`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)});_(!1),a.success?(U.success(s(`toast-update-success`)||`Item updated`),S(!1),o?.()):U.error(a.error||s(`toast-update-failed`)||`Update failed`)}return(0,H.jsx)(zl,{open:e,onOpenChange:S,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:x})}),(0,H.jsxs)(`form`,{className:`space-y-4`,onSubmit:E,children:[y||m===`1`?(0,H.jsxs)(H.Fragment,{children:[b?null:(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`profile-item-category`,children:s(`label-category`)}),(0,H.jsx)(ad,{id:`profile-item-category`,value:c,onChange:e=>l(e.target.value),disabled:!y})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`profile-item-description`,children:s(`label-description`)}),(0,H.jsx)(Ip,{id:`profile-item-description`,rows:4,value:u,onChange:e=>d(e.target.value),disabled:!y})]}),b&&y?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{children:s(`label-steps`)}),(0,H.jsx)(`div`,{className:`space-y-2`,children:f.map((e,t)=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground w-5 tabular-nums`,children:t+1}),(0,H.jsx)(ad,{value:e,placeholder:`Step ${t+1}...`,onChange:e=>T(t,e.target.value)}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,onClick:()=>w(t),children:`×`})]},t))}),(0,H.jsx)(K,{type:`button`,variant:`secondary`,size:`sm`,onClick:C,children:s(`btn-add-step`)})]}):null]}):null,(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:()=>S(!1),children:s(`btn-cancel`)}),(0,H.jsx)(K,{type:`submit`,variant:y?`default`:`destructive`,disabled:g,children:y?s(`btn-save`)||`Save`:s(`btn-delete`)||`Delete`})]})]})]})})}var Uv=8;function Wv({label:e,children:t,className:n}){let r=v.useId(),i=v.useRef(null),a=v.useRef(null),[o,s]=v.useState(!1),[c,l]=v.useState(0);return v.useEffect(()=>{if(!o)return;let e=e=>{i.current?.contains(e.target)||s(!1)},t=e=>{e.key===`Escape`&&s(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]),v.useLayoutEffect(()=>{let e=a.current,t=i.current;if(!o||!e||!t)return;let n=t.getBoundingClientRect(),r=e.offsetWidth/2,s=n.left+n.width/2,c=document.documentElement.clientWidth,u=Math.min(Math.max(s,Uv+r),c-Uv-r);l(u-s)},[o]),(0,H.jsxs)(`span`,{ref:i,className:V(`relative inline-flex`,n),children:[(0,H.jsx)(`button`,{type:`button`,"aria-label":e,"aria-expanded":o,"aria-controls":r,onClick:()=>s(e=>!e),className:`inline-flex size-6 shrink-0 items-center justify-center rounded-full text-muted-foreground transition-colors duration-150 outline-none hover:bg-interactive-hover hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring aria-expanded:bg-selection aria-expanded:text-foreground`,children:(0,H.jsx)(Be,{className:`size-3.5`,"aria-hidden":`true`})}),o?(0,H.jsx)(`div`,{ref:a,id:r,style:{transform:`translateX(calc(-50% + ${c}px))`},className:`absolute top-full left-1/2 z-30 mt-2 w-72 max-w-[calc(100vw-1rem)] rounded-lg border border-border bg-card p-3 text-start text-xs whitespace-normal text-card-foreground shadow-sm`,children:t}):null]})}var Gv=20;function Kv(e,t){let n=e.length,r=Math.max(1,Math.ceil(n/Gv)),i=Math.min(t,r),a=(i-1)*Gv;return{items:e.slice(a,a+Gv),total:n,totalPages:r,page:i,start:a}}function qv(e){return Math.round((e.confidence||0)*100)}function Jv({profile:e,loading:t=!1,onRefresh:n,onCleanup:r,onCategoryCleanup:i,categoryCleanupOpen:a=!1}){let{t:o}=G(),[s,c]=(0,v.useState)({pref:1,pat:1,wf:1}),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(0),[_,y]=(0,v.useState)(`edit`),[b,x]=(0,v.useState)(null),[S,C]=(0,v.useState)(null),w=(0,v.useMemo)(()=>{if(!e?.exists||!e.profileData)return null;let t=e.profileData;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return null}return t},[e]),T=(0,v.useMemo)(()=>{let e=[...w?.preferences??[],...w?.patterns??[]];return new Set(e.map(e=>e.category||`General`)).size},[w]),E=(0,v.useMemo)(()=>Vu(w?.preferences),[w]),D=(0,v.useMemo)(()=>Vu(w?.patterns),[w]),O=(0,v.useMemo)(()=>Vu(w?.workflows),[w]),k=(0,v.useMemo)(()=>O.map((e,t)=>({item:e,index:t})).sort((e,t)=>(t.item.frequency||0)-(e.item.frequency||0)),[O]),j=Kv(E,s.pref),M=Kv(D,s.pat),N=Kv(k,s.wf),P=O.length;function ee(e,t,n){let r=(e===`preferences`?E:e===`patterns`?D:O)[t];r&&(m(e),g(t),y(n),x(r),f(!0))}function F(e,t){return e.indexOf(t)}function I({page:e,pageKey:t}){return e.total<=Gv?null:(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 pt-2`,children:[(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground me-2`,children:[e.start+1,`-`,Math.min(e.start+Gv,e.total),` / `,e.total]}),Array.from({length:e.totalPages},(e,t)=>t+1).map(n=>(0,H.jsx)(K,{size:`xs`,variant:n===e.page?`default`:`outline`,onClick:()=>c(e=>({...e,[t]:n})),children:n},n))]})}function te({item:e,type:t,fullList:n}){let r=F(n,e),i=qv(e);return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-4 space-y-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[t!==`workflows`||e.category?(0,H.jsx)(id,{variant:`outline`,className:`bg-transparent border-current [color:oklch(0.42_0.13_var(--category-hue))] dark:[color:oklch(0.8_0.13_var(--category-hue))]`,style:{"--category-hue":String(td(e.category||`General`))},children:e.category||`General`}):null,(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5 ms-auto`,children:[(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:o(`btn-edit`)||`Edit`,onClick:()=>ee(t,r,`edit`),children:(0,H.jsx)(mt,{className:`size-3`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:o(`btn-delete`)||`Delete`,onClick:()=>ee(t,r,`delete`),children:(0,H.jsx)(Rt,{className:`size-3`})})]}),(0,H.jsxs)(`div`,{className:V(`shrink-0 rounded-md border px-1.5 py-0.5 text-xs font-medium tabular-nums`,qu[Ku(i)]),title:`${o(`label-confidence`)}: ${i}%`,children:[i,`%`]})]}),(0,H.jsx)(`p`,{className:`text-sm break-words`,children:e.description||``}),e.steps?.length?(0,H.jsx)(`ol`,{className:`flex flex-col items-start gap-1.5`,children:e.steps.map((e,t)=>(0,H.jsxs)(`li`,{className:`flex min-w-0 max-w-full items-start gap-2 rounded-2xl border border-blue-600/40 bg-blue-500/15 py-1 ps-1 pe-3 text-xs leading-5 text-blue-700 dark:text-blue-400`,children:[(0,H.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center rounded-full bg-blue-500/30 text-[11px] font-medium tabular-nums dark:bg-blue-400/30`,children:t+1}),(0,H.jsx)(`span`,{className:`min-w-0 break-words`,children:e})]},t))}):null,e.evidence||e.frequency?(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1`,title:o(`label-evidence-tooltip`,{count:e.frequency||1}),children:[(0,H.jsx)(It,{className:`size-3`}),e.frequency||1]}),Gu(e).length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{children:`·`}),(0,H.jsx)(Rv,{item:e,focusKey:`${t}-${r}`,onOpen:()=>C({item:e,section:t,focusKey:`${t}-${r}`})})]}):null]}):null]})}return t&&!e?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-8 text-center`,children:o(`loading-profile`)}):e?.exists?w?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`h2`,{dir:`auto`,className:`text-section-title font-semibold break-words`,children:e.displayName||e.userId}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsxs)(`span`,{className:`rounded-full bg-muted px-2.5 py-1 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:o(`profile-version`)}),(0,H.jsx)(`span`,{className:`ms-1 font-mono`,children:e.version})]}),(0,H.jsxs)(`span`,{className:`rounded-full bg-muted px-2.5 py-1 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:o(`profile-prompts`)}),(0,H.jsx)(`span`,{className:`ms-1 font-mono`,children:e.totalPromptsAnalyzed})]}),(0,H.jsxs)(`span`,{className:`rounded-full bg-muted px-2.5 py-1 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:o(`profile-updated`)}),(0,H.jsx)(`span`,{className:`ms-1`,children:e.lastAnalyzedAt?Qp(e.lastAnalyzedAt):`—`})]}),(0,H.jsxs)(`div`,{className:`ms-auto flex flex-wrap items-center gap-1.5`,children:[(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:()=>r?.(),children:[(0,H.jsx)(At,{className:`size-3.5`}),o(`btn-ai-cleanup`)]}),(0,H.jsx)(Wv,{label:o(`label-more-info`),children:o(`help-ai-cleanup`)})]}),(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:()=>i?.(),children:[(0,H.jsx)(Ft,{className:`size-3.5`}),o(`btn-category-cleanup`),(0,H.jsx)(`span`,{className:`font-mono opacity-70`,title:o(`label-category-count-title`),children:T})]}),(0,H.jsx)(Wv,{label:o(`label-more-info`),children:o(`help-category-cleanup`)})]}),(0,H.jsx)(j_,{version:e.version,onUndone:n}),(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,onClick:()=>n?.(),children:[(0,H.jsx)(xt,{className:`size-3.5`}),o(`btn-refresh`)]}),(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,onClick:()=>u(!0),children:[(0,H.jsx)(Ct,{className:`size-3.5`}),`History`]})]})]}),(0,H.jsx)(z_,{paused:a,onOpen:()=>i?.()})]}),(0,H.jsxs)(`div`,{className:`grid gap-8`,children:[(0,H.jsxs)(`section`,{id:`profile-preferences`,className:`scroll-mt-4 space-y-3`,children:[(0,H.jsxs)(`h2`,{className:`flex flex-wrap items-center gap-2 text-section-title font-semibold`,children:[(0,H.jsx)(Le,{className:`size-4`}),o(`profile-preferences`),(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:E.length})]}),E.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`empty-preferences`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:j.items.map(e=>(0,H.jsx)(te,{item:e,type:`preferences`,fullList:E},F(E,e)))}),(0,H.jsx)(I,{page:j,pageKey:`pref`})]})]}),(0,H.jsxs)(`section`,{id:`profile-patterns`,className:`scroll-mt-4 space-y-3`,children:[(0,H.jsxs)(`h2`,{className:`flex flex-wrap items-center gap-2 text-section-title font-semibold`,children:[(0,H.jsx)(A,{className:`size-4`}),o(`profile-patterns`),(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:D.length})]}),D.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`empty-patterns`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:M.items.map(e=>(0,H.jsx)(te,{item:e,type:`patterns`,fullList:D},F(D,e)))}),(0,H.jsx)(I,{page:M,pageKey:`pat`})]})]}),(0,H.jsxs)(`section`,{id:`profile-workflows`,className:`scroll-mt-4 space-y-3`,children:[(0,H.jsxs)(`h2`,{className:`flex flex-wrap items-center gap-2 text-section-title font-semibold`,children:[(0,H.jsx)(Gt,{className:`size-4`}),o(`profile-workflows`),(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:P})]}),P===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`empty-workflows`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`grid items-start gap-3 lg:grid-cols-2`,children:N.items.map(e=>(0,H.jsx)(te,{item:e.item,type:`workflows`,fullList:O},e.index))}),(0,H.jsx)(I,{page:N,pageKey:`wf`})]})]})]})]}),(0,H.jsx)(Lv,{open:l,onOpenChange:u,profileId:e?.id||``}),(0,H.jsx)(Hv,{open:d,onOpenChange:f,type:p,index:h,action:_,item:b,onSaved:n}),(0,H.jsx)(Vv,{item:S?.item??null,section:S?.section??`preferences`,focusKey:S?.focusKey??null,onOpenChange:e=>{e||C(null)}})]}):null:(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-10 text-muted-foreground`,children:[(0,H.jsx)(Ht,{className:`size-8`}),(0,H.jsx)(`p`,{className:`text-sm`,children:e?.message||o(`empty-preferences`)})]})}function Yv({open:e=!1,count:t=0,onOpenChange:n,onComplete:r}){let{t:i}=G(),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(0);(0,v.useEffect)(()=>{e&&!a&&(c(i(`migration-found-tags`,{count:t})),u(0))},[e,a,t,i]);function d(e){a&&!e||n?.(e)}async function f(){o(!0),c(i(`status-migration-init`)),u(0);let e=!0,t=0,n=1e3;for(;e&&t<n;){t++;let n=await oi(`/api/migration/tags/run-batch`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({batchSize:3})});if(!n.success||!n.data){c(i(`toast-migration-failed`)+`: `+(n.error||``)),o(!1);return}let r=n.data.processed;e=n.data.hasMore;let a=n.data.total;u(a>0?Math.round(r/a*100):0),c(i(`status-migration-progress`,{current:r,total:a})),e&&await new Promise(e=>setTimeout(e,100))}if(t>=n){c(i(`migration-stopped`)),o(!1);return}u(100),c(i(`toast-migration-success`)),U.success(i(`toast-migration-success`)),setTimeout(()=>{o(!1),d(!1),r?.()},2e3)}return(0,H.jsx)(zl,{open:e,onOpenChange:d,children:(0,H.jsxs)(q,{className:`sm:max-w-md`,showCloseButton:!a,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:i(`modal-migration-title`)})}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s}),(0,H.jsx)(`div`,{className:`h-2 rounded-full bg-muted overflow-hidden`,children:(0,H.jsx)(`div`,{className:`h-full bg-primary transition-all duration-200`,style:{width:`${l}%`}})}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`migration-note`)})]}),a?null:(0,H.jsx)(Ul,{children:(0,H.jsxs)(K,{onClick:f,children:[(0,H.jsx)(gt,{className:`size-3.5`}),i(`btn-start-migration`)]})})]})})}var Xv=[{id:`settings-section-external-api`,title:`External API`},{id:`settings-section-models`,title:`Models`},{id:`settings-section-embedding`,title:`Embedding`},{id:`settings-section-keys`,title:`Keys and access`},{id:`settings-section-diagnostics`,title:`Capture diagnostics`},{id:`settings-section-health`,title:`Health`},{id:`settings-section-claude-folder`,title:`Claude Code folder`},{id:`settings-section-capture-language`,title:`Memory language`},{id:`settings-section-appearance`,title:`Appearance`},{id:`settings-section-profiles`,title:`Profiles`},{id:`settings-section-web-app`,title:`Web app`},{id:`settings-section-skill-learning`,title:`Skill learning`},{id:`settings-section-log`,title:`Log`}],Zv={"(empty prompt)":[`(空提示)`,`(مطالبة فارغة)`],"<private> text, API keys and passwords will be stored as written and sent to the external API when drafting.":[`<private> 文本、API 密钥和密码将按原文存储,并在起草时发送到外部 API。`,`سيُخزَّن نص <private> ومفاتيح API وكلمات المرور كما كُتبت، وتُرسَل إلى واجهة API الخارجية عند الصياغة.`],"A project config turns recording off for this project.":[`项目配置已为此项目关闭记录。`,`يوقف إعداد المشروع التسجيل في هذا المشروع.`],Attention:[`关注度`,`الاهتمام`],"Add folder":[`添加文件夹`,`إضافة مجلد`],"All skills":[`所有技能`,`كل المهارات`],"Changes to SKILL.md":[`对 SKILL.md 的更改`,`التغييرات على SKILL.md`],"Delete recorded turns":[`删除已记录的回合`,`حذف الأدوار المسجلة`],"Delete {count} recorded turns? This cannot be undone.":[`删除 {count} 个已记录的回合?此操作无法撤销。`,`حذف {count} من الأدوار المسجلة؟ لا يمكن التراجع عن ذلك.`],"Deleted {count} recorded turns.":[`已删除 {count} 个已记录的回合。`,`تم حذف {count} من الأدوار المسجلة.`],"Draft improvement":[`起草改进`,`صياغة تحسين`],"Draft skill":[`起草技能`,`صياغة مهارة`],"Drafting needs the external API. Set it up first.":[`起草需要外部 API。请先设置。`,`تحتاج الصياغة إلى واجهة API الخارجية. أعدّها أولاً.`],"Drafting… This can take a few minutes.":[`正在起草…这可能需要几分钟。`,`جارٍ الصياغة… قد يستغرق ذلك بضع دقائق.`],"Evidence turns":[`证据回合`,`الأدوار الداعمة`],"Failed turns":[`失败的回合`,`الأدوار الفاشلة`],"File size":[`文件大小`,`حجم الملف`],"Finding past sessions…":[`正在查找过去的会话…`,`جارٍ البحث عن الجلسات السابقة…`],"Filter skills by name":[`按名称筛选技能`,`تصفية المهارات بالاسم`],"Find new skill ideas":[`查找新技能想法`,`البحث عن أفكار مهارات جديدة`],"Folder for the new skill":[`新技能的文件夹`,`مجلد المهارة الجديدة`],"Folder not found":[`未找到文件夹`,`المجلد غير موجود`],"Folder path":[`文件夹路径`,`مسار المجلد`],"Hide changes":[`隐藏更改`,`إخفاء التغييرات`],Improvement:[`改进`,`تحسين`],"Last seen":[`最近出现`,`آخر ظهور`],"Last use":[`上次使用`,`آخر استخدام`],"Loading…":[`加载中…`,`جارٍ التحميل…`],"Loading the proposal…":[`正在加载提案…`,`جارٍ تحميل المقترح…`],"The proposal could not be loaded. Select Show less, then Show more to try again.":[`无法加载该提案。选择“显示更少”,再选择“显示更多”即可重试。`,`تعذّر تحميل المقترح. اختر «عرض أقل» ثم «عرض المزيد» للمحاولة مرة أخرى.`],"Looking…":[`正在查找…`,`جارٍ البحث…`],Manual:[`手动`,`يدوي`],"Most calls":[`调用次数最多`,`الأكثر استدعاءً`],"Most used":[`最常用`,`الأكثر استخدامًا`],"Needs attention":[`需要关注`,`يحتاج إلى اهتمام`],"Sort skills":[`技能排序`,`ترتيب المهارات`],"New skill":[`新技能`,`مهارة جديدة`],"New skill ideas":[`新技能想法`,`أفكار مهارات جديدة`],"New turns will be stored as written.":[`新回合将按原文存储。`,`ستُخزَّن الأدوار الجديدة كما كُتبت.`],"No change proposed":[`没有建议更改`,`لم يُقترح أي تغيير`],"No content was saved.":[`没有保存内容。`,`لم يُحفظ أي محتوى.`],"No folders are watched.":[`没有监视的文件夹。`,`لا توجد مجلدات مراقبة.`],"No new skill ideas in the recorded turns.":[`已记录的回合中没有新的技能想法。`,`لا توجد أفكار مهارات جديدة في الأدوار المسجلة.`],"No proposals yet.":[`还没有提案。`,`لا توجد مقترحات بعد.`],"No recorded turns.":[`没有已记录的回合。`,`لا توجد أدوار مسجلة.`],"No skill matches this name.":[`没有技能匹配此名称。`,`لا توجد مهارة تطابق هذا الاسم.`],"No skills found in the watched folders.":[`在监视的文件夹中未找到技能。`,`لم يُعثر على مهارات في المجلدات المراقبة.`],"No turns are recorded yet.":[`还没有记录任何回合。`,`لم تُسجَّل أي أدوار بعد.`],"Not in a watched folder":[`不在监视的文件夹中`,`ليست في مجلد مراقب`],"Nothing is recorded yet. Agent turns are recorded only after you turn it on.":[`尚未记录任何内容。只有在你开启后才会记录智能体回合。`,`لم يُسجَّل شيء بعد. لا تُسجَّل أدوار الوكيل إلا بعد تشغيل ذلك.`],"OMMS stores full prompts, replies and tool calls in skills.db on this computer. Drafting sends recorded turns to the external API. The file holds whatever the turns hold.":[`OMMS 会把完整的提示、回复和工具调用存储在这台电脑上的 skills.db 中。起草时会把已记录的回合发送到外部 API。该文件包含回合中的所有内容。`,`يخزّن OMMS المطالبات والردود واستدعاءات الأدوات كاملةً في skills.db على هذا الجهاز. ترسل الصياغة الأدوار المسجلة إلى واجهة API الخارجية. يحتوي الملف على كل ما تحتويه الأدوار.`],"OMMS will change this SKILL.md file without asking. It drafts an improvement after 10 new uses and at least 24 hours, then applies it. Each change can be undone.":[`OMMS 会在不询问的情况下修改此 SKILL.md 文件。它在 10 次新使用且至少 24 小时后起草改进,然后直接应用。每次更改都可以撤销。`,`سيعدّل OMMS ملف SKILL.md هذا دون أن يسأل. يصوغ تحسيناً بعد 10 استخدامات جديدة و24 ساعة على الأقل، ثم يطبّقه. يمكن التراجع عن كل تغيير.`],"Skill learning watches how your agents use your skills on Pi, OpenCode and Claude Code. It ranks each skill by use and failed tool calls, and drafts better versions from real turns.":[`技能学习会观察你的智能体在 Pi、OpenCode 和 Claude Code 中如何使用你的技能。它按使用次数和失败的工具调用为每个技能排名,并根据真实回合起草更好的版本。`,`يراقب تعلّم المهارات كيف يستخدم وكلاؤك مهاراتك في Pi وOpenCode وClaude Code. يرتّب كل مهارة حسب الاستخدام واستدعاءات الأدوات الفاشلة، ويصوغ نسخاً أفضل من أدوار حقيقية.`],"Every draft is a proposal with a diff. Nothing changes a SKILL.md file until you apply it, unless you set that skill to Automatic. Undo restores the previous version.":[`每份草稿都是带差异对比的提案。在你应用之前,SKILL.md 文件不会改变,除非你把该技能设为“自动”。撤销会恢复之前的版本。`,`كل مسودة مقترح مع عرض للفروق. لا يتغيّر ملف SKILL.md حتى تطبّقه، إلا إذا ضبطت تلك المهارة على تلقائي. التراجع يعيد النسخة السابقة.`],"The memory chat sends skill counts and short change summaries to the external API, never turn text.":[`记忆聊天会把技能计数和简短的更改摘要发送到外部 API,绝不发送回合文本。`,`ترسل دردشة الذاكرة أعداد المهارات وملخصات التغييرات القصيرة إلى واجهة API الخارجية، ولا ترسل نص الأدوار أبداً.`],"Open the Skill learning card":[`打开“技能学习”卡片`,`افتح بطاقة تعلّم المهارات`],"No proposals are waiting.":[`没有等待处理的提案。`,`لا توجد مقترحات قيد الانتظار.`],"No proposals have been decided yet.":[`尚未处理任何提案。`,`لم يتم البتّ في أي مقترح بعد.`],"Pending proposals":[`待处理的提案`,`المقترحات المعلّقة`],Proposals:[`提案`,`المقترحات`],"Ranked skills":[`技能排名`,`المهارات مرتبةً`],"Recent turns":[`最近的回合`,`الأدوار الأخيرة`],"Recent proposals":[`最近的提案`,`المقترحات الأخيرة`],"Record agent turns":[`记录智能体回合`,`تسجيل أدوار الوكيل`],"Record agent turns so OMMS can rank your skills and draft improvements.":[`记录智能体回合,让 OMMS 为你的技能排名并起草改进。`,`سجّل أدوار الوكيل ليتمكن OMMS من ترتيب مهاراتك وصياغة التحسينات.`],"Record past turns":[`记录过去的回合`,`تسجيل الأدوار السابقة`],"Record past turns did not finish.":[`记录过去的回合未完成。`,`لم يكتمل تسجيل الأدوار السابقة.`],"Recorded turns":[`已记录的回合`,`الأدوار المسجلة`],"Recorded {count} past turns.":[`已记录 {count} 个过去的回合。`,`تم تسجيل {count} من الأدوار السابقة.`],Reject:[`拒绝`,`رفض`],"Remove folder":[`移除文件夹`,`إزالة المجلد`],"Remove folder {path}":[`移除文件夹 {path}`,`إزالة المجلد {path}`],"Remove private text and secrets":[`移除私密文本和机密`,`إزالة النص الخاص والأسرار`],"Reset default":[`恢复默认`,`استعادة الافتراضي`],"Saved.":[`已保存。`,`تم الحفظ.`],"Show changes":[`显示更改`,`عرض التغييرات`],"Skill learning":[`技能学习`,`تعلّم المهارات`],"Skill turns":[`技能回合`,`أدوار المهارات`],"Skill turns are recorded only while Record agent turns is on.":[`只有开启“记录智能体回合”时才会记录技能回合。`,`لا تُسجَّل أدوار المهارات إلا عند تشغيل تسجيل أدوار الوكيل.`],"Skill turns to record":[`待记录的技能回合`,`أدوار المهارات المراد تسجيلها`],"Skill turns already recorded":[`已记录的技能回合`,`أدوار المهارات المسجلة سابقاً`],"Skill turns recorded":[`本次记录的技能回合`,`أدوار المهارات المسجلة`],"Skill turns already present":[`已存在的技能回合`,`أدوار المهارات الموجودة مسبقاً`],Skills:[`技能`,`المهارات`],"Stale: the file changed since this draft":[`已过期:自起草以来文件已更改`,`قديم: تغيّر الملف منذ هذه المسودة`],"Stop removing private text and secrets?":[`停止移除私密文本和机密?`,`إيقاف إزالة النص الخاص والأسرار؟`],Suggested:[`建议`,`مقترحة`],"Turn off":[`关闭`,`إيقاف`],"Turn on Automatic":[`开启自动`,`تشغيل التلقائي`],"Turn on Automatic mode for this skill?":[`为此技能开启自动模式?`,`تشغيل الوضع التلقائي لهذه المهارة؟`],Undo:[`撤销`,`تراجع`],"Undo stopped because the file changed. This is the content OMMS saved:":[`撤销已停止,因为文件已更改。这是 OMMS 保存的内容:`,`توقف التراجع لأن الملف تغيّر. هذا هو المحتوى الذي حفظه OMMS:`],Uses:[`使用`,`الاستخدامات`],"Uses in 30 days":[`30 天内使用`,`الاستخدامات في 30 يوماً`],"Watched folders":[`监视的文件夹`,`المجلدات المراقبة`],applied:[`已应用`,`طُبّق`],"applied automatically":[`已自动应用`,`طُبّق تلقائياً`],rejected:[`已拒绝`,`مرفوض`],stale:[`已过期`,`قديم`],undone:[`已撤销`,`تم التراجع`],"{count} failed tool call":[`{count} 次工具调用失败`,`فشل استدعاء أداة واحد`],"{count} failed tool calls":[`{count} 次工具调用失败`,`فشل {count} من استدعاءات الأدوات`],"{count} skill":[`{count} 个技能`,`مهارة واحدة`],"{count} skills":[`{count} 个技能`,`المهارات: {count}`],Show:[`显示`,`عرض`],results:[`条结果`,`نتائج`],"Custom:":[`自定义:`,`مخصص:`],"Results per page":[`每页结果数`,`النتائج في كل صفحة`],"Custom results per page":[`自定义每页结果数`,`عدد مخصص للنتائج في كل صفحة`],"Sort by":[`排序方式`,`الترتيب حسب`],"Sort ascending":[`升序排列`,`ترتيب تصاعدي`],"Sort descending":[`降序排列`,`ترتيب تنازلي`],"Showing {from} to {to} of {total} results":[`显示第 {from} 到 {to} 条,共 {total} 条结果`,`عرض {from} إلى {to} من {total} نتيجة`],pagination:[`分页`,`ترقيم الصفحات`],"Go to previous page":[`转到上一页`,`الانتقال إلى الصفحة السابقة`],"Go to next page":[`转到下一页`,`الانتقال إلى الصفحة التالية`],"Go to page {page}":[`转到第 {page} 页`,`الانتقال إلى الصفحة {page}`],"More pages":[`更多页面`,`صفحات أخرى`],"Name (A–Z)":[`名称(A–Z)`,`الاسم (A–Z)`],Newest:[`最新`,`الأحدث`],Oldest:[`最早`,`الأقدم`],Skill:[`技能`,`المهارة`],Mode:[`模式`,`الوضع`],"Tool (A–Z)":[`工具(A–Z)`,`الأدوات (A–Z)`],Contents:[`目录`,`المحتويات`],"Show contents":[`显示目录`,`إظهار المحتويات`],"Hide contents":[`隐藏目录`,`إخفاء المحتويات`],"{count} proposal":[`{count} 个提案`,`مقترح واحد ({count})`],"{count} proposals":[`{count} 个提案`,`المقترحات: {count}`],"{count} turn":[`{count} 个回合`,`دور واحد ({count})`],"{count} turns":[`{count} 个回合`,`الأدوار: {count}`],"{count} failure group":[`{count} 个失败分组`,`مجموعة فشل واحدة ({count})`],"{count} failure groups":[`{count} 个失败分组`,`مجموعات فشل: {count}`],"{count} entry":[`{count} 条记录`,`إدخال واحد ({count})`],"{count} entries":[`{count} 条记录`,`الإدخالات: {count}`],"Created {date}":[`创建于 {date}`,`أُنشئ في {date}`],"Applied {date}":[`应用于 {date}`,`طُبّق في {date}`],"Rejected {date}":[`拒绝于 {date}`,`رُفض في {date}`],"Undone {date}":[`撤销于 {date}`,`تم التراجع في {date}`],"Stale since {date}":[`自 {date} 起已过期`,`قديم منذ {date}`],"Each card shows when the proposal was created and when it was last applied, rejected or undone.":[`每张卡片显示提案的创建时间,以及最近一次应用、拒绝或撤销的时间。`,`تعرض كل بطاقة وقت إنشاء المقترح ووقت آخر تطبيق أو رفض أو تراجع.`],History:[`历史记录`,`السجل`],created:[`已创建`,`أُنشئ`],"Each proposal, apply, reject and undo of this skill. Revert an applied change to restore SKILL.md as it was before it.":[`此技能的每个提案、应用、拒绝和撤销。还原已应用的更改可将 SKILL.md 恢复到该更改之前的状态。`,`كل مقترح وتطبيق ورفض وتراجع لهذه المهارة. أعِد تغييراً مطبّقاً لتستعيد SKILL.md كما كان قبله.`],"No history yet.":[`暂无历史记录。`,`لا يوجد سجل بعد.`],"{added} lines added, {removed} lines removed":[`新增 {added} 行,删除 {removed} 行`,`أُضيف {added} سطر، وحُذف {removed} سطر`],"Revert to before this change":[`还原到此更改之前`,`الرجوع إلى ما قبل هذا التغيير`],"Revert the newer change first.":[`请先还原较新的更改。`,`أعِد التغيير الأحدث أولاً.`],"Revert this change?":[`还原此更改?`,`هل تريد إعادة هذا التغيير؟`],"OMMS restores SKILL.md as it was before this change.":[`OMMS 会将 SKILL.md 恢复到此更改之前的状态。`,`يستعيد OMMS ملف SKILL.md كما كان قبل هذا التغيير.`],"Reverting this also removes {count} later change.":[`还原此更改也会移除之后的 {count} 个更改。`,`تؤدي إعادة هذا التغيير أيضاً إلى إزالة تغيير لاحق واحد ({count}).`],"Reverting this also removes {count} later changes.":[`还原此更改也会移除之后的 {count} 个更改。`,`تؤدي إعادة هذا التغيير أيضاً إلى إزالة {count} من التغييرات اللاحقة.`],Revert:[`还原`,`إعادة`],"Reverting…":[`正在还原…`,`جارٍ الإعادة…`],"Reverted. SKILL.md is back to the version before that change.":[`已还原。SKILL.md 已恢复到该更改之前的版本。`,`تمت الإعادة. عاد SKILL.md إلى النسخة السابقة لذلك التغيير.`],Activity:[`活动`,`النشاط`],"Activity could not load.":[`无法加载活动。`,`تعذّر تحميل النشاط.`],"Active skills":[`活跃技能`,`المهارات النشطة`],"Uses per day":[`每日使用`,`الاستخدامات يومياً`],"Uses in the last 30 days":[`最近 30 天的使用`,`الاستخدامات في آخر 30 يوماً`],"Most used skills":[`最常用的技能`,`المهارات الأكثر استخداماً`],"Proposal pipeline":[`提案进度`,`مسار المقترحات`],Successful:[`成功`,`ناجح`],Day:[`日期`,`اليوم`],"{uses} uses, {failed} with a failed tool call":[`使用 {uses} 次,其中 {failed} 次有工具调用失败`,`{uses} استخدام، منها {failed} مع استدعاء أداة فاشل`],"{name} leads with {uses} uses. Click a bar to open the skill.":[`{name} 以 {uses} 次使用领先。点击条形可打开该技能。`,`تتصدر {name} بعدد {uses} استخدام. انقر على شريط لفتح المهارة.`],"{total} proposals, {pending} waiting for a decision":[`共 {total} 个提案,{pending} 个等待决定`,`{total} مقترح، منها {pending} بانتظار قرار`],"No uses in the last 30 days. Bars appear after OMMS records turns.":[`最近 30 天没有使用。OMMS 记录回合后会显示条形图。`,`لا توجد استخدامات في آخر 30 يوماً. تظهر الأشرطة بعد أن يسجّل OMMS الأدوار.`],"No skill was used in the last 30 days.":[`最近 30 天没有使用任何技能。`,`لم تُستخدم أي مهارة في آخر 30 يوماً.`],"No skill uses are recorded in the last 30 days. The use charts appear after OMMS records agent turns that use a skill.":[`最近 30 天没有记录到技能使用。OMMS 记录使用技能的智能体回合后,会显示使用图表。`,`لا توجد استخدامات مسجلة للمهارات في آخر 30 يوماً. تظهر مخططات الاستخدام بعد أن يسجّل OMMS أدوار الوكلاء التي تستخدم مهارة.`],"Show uses by":[`使用次数显示方式`,`عرض الاستخدامات حسب`],Days:[`按天`,`الأيام`],Months:[`按月`,`الأشهر`],Years:[`按年`,`السنوات`],"Days to show":[`要显示的日期范围`,`الأيام المعروضة`],"Year to show":[`要显示的年份`,`السنة المعروضة`],"Last 30 days":[`最近 30 天`,`آخر 30 يوماً`],"Uses per month":[`每月使用`,`الاستخدامات شهرياً`],"Uses per year":[`每年使用`,`الاستخدامات سنوياً`],Month:[`月份`,`الشهر`],Year:[`年份`,`السنة`],"{from} to {to}":[`{from} 至 {to}`,`من {from} إلى {to}`],"Uses in {period}":[`{period} 的使用`,`الاستخدامات في {period}`],"{period}: {uses} uses, {failed} with a failed tool call":[`{period}:使用 {uses} 次,其中 {failed} 次有工具调用失败`,`{period}: {uses} استخدام، منها {failed} مع استدعاء أداة فاشل`],"No skill uses are recorded in {period}.":[`{period} 没有记录到技能使用。`,`لا توجد استخدامات مسجلة للمهارات في {period}.`],"No skill uses are recorded yet.":[`尚未记录到技能使用。`,`لا توجد استخدامات مسجلة للمهارات بعد.`],"The use charts appear after OMMS records agent turns that use a skill.":[`OMMS 记录使用技能的智能体回合后,会显示使用图表。`,`تظهر مخططات الاستخدام بعد أن يسجّل OMMS أدوار الوكلاء التي تستخدم مهارة.`],"No uses in this period. Bars appear after OMMS records turns.":[`此期间没有使用。OMMS 记录回合后会显示条形图。`,`لا توجد استخدامات في هذه الفترة. تظهر الأشرطة بعد أن يسجّل OMMS الأدوار.`],"Showing {shown} of {total}":[`显示 {shown} / {total}`,`عرض {shown} من {total}`],"Show more":[`显示更多`,`عرض المزيد`],"Show less":[`显示更少`,`عرض أقل`],lines:[`行`,`أسطر`],"Show {count} more":[`再显示 {count} 条`,`عرض {count} إضافية`],"Last modified":[`最近修改`,`آخر تعديل`],"Modified on {date}":[`修改于 {date}`,`تم التعديل في {date}`],"Show skills by modification":[`按是否修改显示技能`,`عرض المهارات حسب التعديل`],"All ({count})":[`全部({count})`,`الكل ({count})`],"Not modified ({count})":[`未修改({count})`,`غير معدّلة ({count})`],"Modified ({count})":[`已修改({count})`,`معدّلة ({count})`],"No skill has been modified yet.":[`尚未修改任何技能。`,`لم يتم تعديل أي مهارة بعد.`],"Every skill has been modified.":[`所有技能都已修改。`,`تم تعديل كل المهارات.`],"Suggested ({count})":[`建议({count})`,`مقترحة ({count})`],"No skill is suggested for a change yet.":[`尚无建议修改的技能。`,`لم تُقترح أي مهارة للتعديل بعد.`],"The state could not be saved, so SKILL.md is as it was. Try again.":[`无法保存状态,SKILL.md 保持原样。请重试。`,`تعذر حفظ الحالة، لذا بقي SKILL.md كما كان. حاول مرة أخرى.`],"No skill matches this name in this tab.":[`此标签页中没有技能匹配该名称。`,`لا توجد مهارة تطابق هذا الاسم في هذا التبويب.`],"No error text recorded":[`没有记录错误文本`,`لم يُسجَّل نص خطأ`],"Could not copy":[`无法复制`,`تعذّر النسخ`],"Show full input":[`显示完整输入`,`عرض الإدخال الكامل`],"Show less input":[`收起完整输入`,`إخفاء الإدخال الكامل`],"The server sent the first 20000 characters of this input.":[`服务器只发送了此输入的前 20000 个字符。`,`أرسل الخادم أول 20000 حرفاً من هذا الإدخال فقط.`],Copy:[`复制`,`نسخ`],Close:[`关闭`,`إغلاق`],"The failed calls could not be loaded.":[`无法加载失败的工具调用。`,`تعذّر تحميل الاستدعاءات الفاشلة.`],"Position {position}":[`位置 {position}`,`الموضع {position}`],Failures:[`失败记录`,`حالات الفشل`],"Failed calls that count against this skill, grouped by tool and first error line.":[`按工具和错误首行分组、计入此技能的失败调用。`,`الاستدعاءات الفاشلة التي تُحسب على هذه المهارة، مجمّعةً حسب الأداة وأول سطر في الخطأ.`],"No failed tool calls are recorded for this skill.":[`没有记录到计入此技能的失败工具调用。`,`لا توجد استدعاءات أدوات فاشلة مسجّلة لهذه المهارة.`],"no error text":[`无错误文本`,`بلا نص خطأ`],"{calls} call over {turns} turn":[`{calls} 次调用,涉及 {turns} 个回合`,`استدعاء واحد عبر دور واحد`],"{calls} call over {turns} turns":[`{calls} 次调用,涉及 {turns} 个回合`,`استدعاء واحد عبر {turns} أدوار`],"{calls} calls over {turns} turn":[`{calls} 次调用,涉及 {turns} 个回合`,`{calls} استدعاءات عبر دور واحد`],"{calls} calls over {turns} turns":[`{calls} 次调用,涉及 {turns} 个回合`,`{calls} استدعاءات عبر {turns} أدوار`],"{count} call is in this group; showing the latest {shown}.":[`此分组共有 {count} 次调用;显示最新的 {shown} 次。`,`هذه المجموعة تضم استدعاء واحداً؛ يُعرض آخر {shown} منه.`],"{count} calls are in this group; showing the latest {shown}.":[`此分组共有 {count} 次调用;显示最新的 {shown} 次。`,`هذه المجموعة تضم {count} استدعاء؛ يُعرض آخر {shown} منها.`],"Last seen {date}":[`最近出现于 {date}`,`آخر ظهور {date}`],"Explain failures":[`解释失败`,`شرح حالات الفشل`],"Explaining… This can take a few minutes.":[`正在解释…这可能需要几分钟。`,`جارٍ الشرح… قد يستغرق ذلك بضع دقائق.`],"Skill learning must be on to explain failures.":[`必须开启技能学习才能解释失败。`,`يجب تشغيل تعلّم المهارات لشرح حالات الفشل.`],"No failure groups to explain.":[`没有可解释的失败分组。`,`لا توجد مجموعات فشل لشرحها.`],"About Explain failures":[`关于“解释失败”`,`حول شرح حالات الفشل`],"Explaining needs the external API. Set it up first.":[`解释失败需要外部 API。请先设置。`,`يحتاج شرح الفشل إلى واجهة API الخارجية. أعدّها أولاً.`],"Send failures to the external API?":[`将失败记录发送到外部 API?`,`إرسال حالات الفشل إلى واجهة API الخارجية؟`],"Nothing is sent until you confirm. Nothing is saved.":[`确认之前不会发送任何内容,也不会保存任何内容。`,`لا يُرسَل شيء قبل التأكيد، ولا يُحفَظ شيء.`],"This sends the failure groups (tool names, error text and input excerpts of up to 500 characters) and this skill's SKILL.md to the external API model.":[`这会把失败分组(工具名称、错误文本和最多 500 字符的输入摘录)以及此技能的 SKILL.md 发送到外部 API 模型。`,`يرسل هذا مجموعات الفشل (أسماء الأدوات ونصوص الأخطاء ومقتطفات إدخال حتى 500 حرف) وملف SKILL.md لهذه المهارة إلى نموذج واجهة API الخارجية.`],"The text is sent as stored, after <private> removal and secret redaction.":[`文本按存储时的样子发送:已移除 <private> 内容并对机密进行脱敏。`,`يُرسَل النص كما خُزِّن: بعد إزالة <private> وإخفاء الأسرار.`],"Warning: redaction is off. The text may hold secrets that were not removed.":[`警告:脱敏已关闭。文本中可能含有未移除的机密。`,`تحذير: إخفاء الأسرار متوقف. قد يحمل النص أسراراً لم تُزَل.`],Cancel:[`取消`,`إلغاء`],"Skill fix":[`技能修复`,`إصلاح المهارة`],"Host or harness bug":[`宿主或框架缺陷`,`خلل في المضيف أو الإطار`],"Environment problem":[`环境问题`,`مشكلة في البيئة`],Unknown:[`未知`,`غير معروف`],"Suggested actions":[`建议操作`,`الإجراءات المقترحة`],"The labels and suggestions are leads from the error text only; the model cannot see the host's code.":[`标签和建议仅是来自错误文本的线索;模型看不到宿主的代码。`,`التسميات والاقتراحات مجرد مؤشرات من نص الخطأ فقط؛ لا يستطيع النموذج رؤية كود المضيف.`],"Import chat history":[`导入聊天记录`,`استيراد سجل المحادثات`],"Memory limits":[`记忆限制`,`حدود الذاكرة`],"Resolve missing project folders":[`解析缺失的项目文件夹`,`حل مجلدات المشاريع المفقودة`],"Project memories":[`项目记忆`,`ذاكرة المشروع`],"User profile":[`用户画像`,`الملف الشخصي للمستخدم`],"(preferences, patterns, and workflows)":[`(偏好、模式和工作流程)`,`(التفضيلات والأنماط وسير العمل)`],"All hosts":[`所有宿主`,`جميع المضيفين`],"Selected hosts":[`已选宿主`,`المضيفون المحددون`],"Choose at least one output.":[`请至少选择一项输出。`,`اختر مخرجاً واحداً على الأقل.`],"Choose at least one host.":[`请至少选择一个宿主。`,`اختر مضيفاً واحداً على الأقل.`],"Re-analyse handled history":[`重新分析已处理的记录`,`إعادة تحليل السجل المعالج`],"Re-analysis applies to the selected outputs. Each profile prompt can be forcibly re-analysed once. Findings merge into the existing profile.":[`重新分析适用于所选输出。每条画像提示只能强制重新分析一次。结果合并到现有画像中。`,`تنطبق إعادة التحليل على المخرجات المحددة. يمكن إعادة تحليل كل مطالبة للملف الشخصي بالقوة مرة واحدة. تُدمج النتائج في الملف الحالي.`],"Preview the current selection before starting an import.":[`开始导入前,请预览当前选择。`,`عاين الاختيار الحالي قبل بدء الاستيراد.`],"This import makes model calls. Continue?":[`此次导入会调用模型。是否继续?`,`سيجري هذا الاستيراد اتصالات بالنموذج. هل تريد المتابعة؟`],"Conversations populate project facts. User prompts populate personal preferences, recurring patterns, and workflow steps.":[`对话生成项目事实。用户提示生成个人偏好、重复模式和工作流程步骤。`,`تضيف المحادثات حقائق المشروع. وتضيف مطالبات المستخدم التفضيلات الشخصية والأنماط المتكررة وخطوات سير العمل.`],"Profile identity in Settings":[`设置中的画像身份`,`هوية الملف الشخصي في الإعدادات`],"Hosts keep their existing user identities. All hosts does not merge profiles with different identities.":[`各宿主保留现有用户身份。选择所有宿主不会合并不同身份的画像。`,`يحتفظ المضيفون بهويات المستخدم الحالية. اختيار جميع المضيفين لا يدمج ملفات الهويات المختلفة.`],"Pi session reader is unavailable. Fix the reader or deselect Pi.":[`Pi 会话读取器不可用。请修复读取器或取消选择 Pi。`,`قارئ جلسات Pi غير متاح. أصلح القارئ أو ألغِ تحديد Pi.`],"Import results":[`导入结果`,`نتائج الاستيراد`],"Import successful 🎉":[`导入成功`,`تم الاستيراد بنجاح`],"Import failed":[`导入失败`,`فشل الاستيراد`],"Import cancelled":[`导入已取消`,`تم إلغاء الاستيراد`],"The import finished while you were away.":[`导入在你离开时已结束。`,`انتهى الاستيراد أثناء غيابك.`],"Could not reload the settings. Reload the page.":[`无法重新加载设置。请刷新页面。`,`تعذر إعادة تحميل الإعدادات. أعد تحميل الصفحة.`],OK:[`确定`,`حسناً`],Dismiss:[`关闭`,`إغلاق`],"Show handled sessions":[`显示已处理的会话`,`إظهار الجلسات المعالجة`],Handled:[`已处理`,`تمت معالجتها`],"Handled sessions hidden":[`已隐藏的已处理会话`,`الجلسات المعالجة المخفية`],"Some memory units failed. Completed work is saved. A new preview and import retries only the failed units.":[`部分记忆单元失败。已完成的工作已保存。重新预览并导入只会重试失败的单元。`,`فشلت بعض وحدات الذاكرة. العمل المكتمل محفوظ. المعاينة والاستيراد الجديدان يعيدان محاولة الوحدات الفاشلة فقط.`],"Profile learning failed. Completed memory work is saved.":[`画像学习失败。已完成的记忆处理已保存。`,`فشل تعلّم الملف الشخصي. عمل الذاكرة المكتمل محفوظ.`],"Import preparation failed.":[`导入准备失败。`,`فشل تحضير الاستيراد.`],"Refresh the preview and retry.":[`请刷新预览后重试。`,`حدّث المعاينة ثم أعد المحاولة.`],"The session list is out of date. Refresh the list and try again.":[`会话列表已过期。请刷新列表后重试。`,`قائمة الجلسات قديمة. حدّث القائمة ثم أعد المحاولة.`],"The history source changed. Choose it again.":[`历史记录来源已更改。请重新选择。`,`تغيّر مصدر السجل. اختره مجدداً.`],"The history source is no longer valid. Choose it again.":[`历史记录来源已失效。请重新选择。`,`لم يعد مصدر السجل صالحاً. اختره مجدداً.`],"A Pi import is already running":[`已有 Pi 导入正在运行`,`استيراد Pi قيد التشغيل بالفعل`],"An OpenCode import is already running":[`已有 OpenCode 导入正在运行`,`استيراد OpenCode قيد التشغيل بالفعل`],"A Claude Code import is already running":[`已有 Claude Code 导入正在运行`,`استيراد Claude Code قيد التشغيل بالفعل`],"Combined counts":[`合计数量`,`الأعداد المجمعة`],"Current host":[`当前宿主`,`المضيف الحالي`],"Memory extraction":[`提取记忆`,`استخراج الذاكرة`],"Memory units":[`记忆单元`,`وحدات الذاكرة`],"Pending memory units":[`待处理记忆单元`,`وحدات الذاكرة المعلقة`],"Imported memory units":[`已导入记忆单元`,`وحدات الذاكرة المستوردة`],"Already handled memory units":[`已处理记忆单元`,`وحدات الذاكرة المعالجة سابقاً`],"Skipped memory units":[`已跳过记忆单元`,`وحدات الذاكرة المتخطاة`],"Failed memory units":[`失败的记忆单元`,`وحدات الذاكرة التي فشلت`],"Held-back turns":[`暂缓处理的轮次`,`الرسائل المؤجلة`],"Untimed turns":[`无时间戳的轮次`,`الرسائل بلا طابع زمني`],"Load errors":[`加载错误`,`أخطاء التحميل`],"Already handled profile prompts":[`已处理画像提示`,`مطالبات الملف الشخصي المعالجة سابقاً`],"Profile prompts":[`画像提示`,`مطالبات الملف الشخصي`],"Profile batches":[`画像批次`,`دفعات الملف الشخصي`],"Estimated profile analysis calls":[`预计画像分析调用次数`,`اتصالات تحليل الملف الشخصي المقدّرة`],"Waiting prompts inside OMMS":[`OMMS 内等待处理的提示`,`المطالبات المنتظرة داخل OMMS`],"No work to process":[`没有待处理工作`,`لا يوجد عمل للمعالجة`],queued:[`排队中`,`في الانتظار`],preparing:[`准备中`,`جارٍ التحضير`],"not-run":[`未运行`,`لم يُشغّل`],"Automatic profile cleanup":[`自动整理画像`,`التنظيف التلقائي للملف الشخصي`],"After a learning pass, OMMS merges duplicate profile items and removes vague ones by itself, in the background. Each run makes about one model call for every 100 items and takes several minutes on a large profile. Undo last automatic cleanup on the Profile page puts the changes back.":[`学习完成后,OMMS 会在后台自动合并重复的画像条目,并删除含糊的条目。每次运行大约每 100 个条目调用一次模型,在大型画像上需要几分钟。在“用户画像”页面选择“撤销上次自动整理”可恢复这些更改。`,`بعد كل جولة تعلّم، يدمج OMMS عناصر الملف الشخصي المكررة ويحذف العناصر الغامضة تلقائياً في الخلفية. تجري كل عملية نحو اتصال واحد بالنموذج لكل 100 عنصر وتستغرق عدة دقائق على الملف الكبير. يعيد خيار «تراجع عن آخر تنظيف تلقائي» في صفحة الملف الشخصي التغييرات.`],"Clean up the profile automatically":[`自动整理画像`,`تنظيف الملف الشخصي تلقائياً`],"Run every this many analysed prompts":[`每隔多少条已分析的提示运行一次`,`التشغيل كل عدد من المطالبات المحللة`],"Save interval":[`保存间隔`,`حفظ الفاصل`],"Enter a whole number from 50 to 100000.":[`请输入 50 到 100000 之间的整数。`,`أدخل عدداً صحيحاً من 50 إلى 100000.`],"Saved. Changes apply at the next learning pass.":[`已保存。更改将在下一次学习时生效。`,`تم الحفظ. تنطبق التغييرات في جولة التعلّم التالية.`],"Analyse waiting prompts":[`分析等待处理的提示`,`تحليل المطالبات المنتظرة`],"Re-analyse chat history":[`重新分析聊天记录`,`إعادة تحليل سجل المحادثات`],"Analyse waiting prompts reads prompts already inside OMMS with the saved external API, 50 eligible prompts per analysis call. Completed history is not re-analysed. Preferences, patterns, and workflows are the outputs.":[`分析等待处理的提示使用已保存的外部 API,读取 OMMS 内已有的提示,每次分析调用处理 50 条符合条件的提示。不会重新分析已完成的历史记录。输出包括偏好、模式和工作流程。`,`يقرأ تحليل المطالبات المنتظرة المطالبات الموجودة داخل OMMS عبر واجهة API الخارجية المحفوظة، بمعدل 50 مطالبة مؤهلة لكل اتصال تحليل. لا يُعاد تحليل السجل المكتمل. المخرجات هي التفضيلات والأنماط وسير العمل.`],"Analysis calls are an estimate. Matching, deduplication, retries, and newly waiting prompts can add calls.":[`分析调用次数为估计值。匹配、去重、重试和新增的等待提示可能增加调用次数。`,`اتصالات التحليل تقديرية. قد تضيف المطابقة وإزالة التكرار وإعادة المحاولة والمطالبات المنتظرة الجديدة اتصالات أخرى.`],"Re-analyse chat history opens a forced profile-only import. It preserves your profile and project memories. Preview and confirmation are required. Each profile prompt can be forcibly re-analysed once.":[`重新分析聊天记录会打开强制仅导入画像的流程。现有画像和项目记忆将保留。必须先预览并确认。每条画像提示只能强制重新分析一次。`,`تفتح إعادة تحليل سجل المحادثات استيراداً قسرياً للملف الشخصي فقط. تُحفظ ذاكرة المشروع وملفك الشخصي. تلزم المعاينة والتأكيد. يمكن إعادة تحليل كل مطالبة للملف الشخصي بالقوة مرة واحدة.`],"Automatic import reads older conversations when a host starts. It populates project memories and user profile input. The first backfill fixes a cutoff; later turns use live capture.":[`自动导入在宿主启动时读取较早的对话,填充项目记忆和用户画像输入。首次回填固定截止时间,之后的轮次使用实时捕获。`,`يقرأ الاستيراد التلقائي المحادثات الأقدم عند بدء المضيف. ويضيف ذاكرة المشروع ومدخلات الملف الشخصي. يثبت أول استيراد تاريخاً فاصلاً؛ وتستخدم الرسائل اللاحقة الالتقاط المباشر.`],"A directory map links a recorded project folder to its current folder. Saved maps apply globally to every host at the next import or backfill run. Review changes before saving.":[`目录映射将记录的项目文件夹链接到当前文件夹。保存的映射在下次导入或回填时全局应用于所有宿主。保存前请检查更改。`,`تربط خريطة المجلدات مجلد المشروع المسجل بمجلده الحالي. تنطبق الخرائط المحفوظة على جميع المضيفين في الاستيراد التالي. راجع التغييرات قبل الحفظ.`],"Prompt date from must not be after Prompt date to.":[`提示开始日期不能晚于结束日期。`,`يجب ألا يأتي تاريخ بدء المطالبات بعد تاريخ انتهائها.`],"Profile batch size must be a positive integer.":[`画像批次大小必须为正整数。`,`يجب أن يكون حجم دفعة الملف الشخصي عدداً صحيحاً موجباً.`],Models:[`模型`,`النماذج`],"External API fallback":[`外部 API 备用模型`,`النموذج الاحتياطي عبر واجهة API الخارجية`],none:[`无`,`لا يوجد`],ready:[`就绪`,`جاهز`],"not ready":[`未就绪`,`غير جاهز`],"Credentials (values hidden)":[`凭据(不显示内容)`,`بيانات الاعتماد (القيم مخفية)`],set:[`已设置`,`مضبوط`],"not set":[`未设置`,`غير مضبوط`],"Effective model":[`当前使用模型`,`النموذج المستخدم`],session:[`会话`,`الجلسة`],"external API":[`外部 API`,`واجهة API الخارجية`],unavailable:[`不可用`,`غير متاح`],"Project override is active. Changes to the global file may not take effect here.":[`项目设置优先。全局文件的更改可能不会在此生效。`,`إعدادات المشروع لها الأولوية. قد لا تسري تغييرات الملف العام هنا.`],"Model choice":[`模型选择`,`اختيار النموذج`],"Session model":[`会话模型`,`نموذج الجلسة`],"Manual model":[`手动选择模型`,`اختيار النموذج يدوياً`],"Manual provider/model":[`手动输入提供商/模型`,`إدخال المزوّد/النموذج يدوياً`],"Model list unavailable. Enter provider/model manually.":[`模型列表不可用。请手动输入提供商/模型。`,`قائمة النماذج غير متاحة. أدخل المزوّد/النموذج يدوياً.`],"OpenCode model list unavailable":[`OpenCode 模型列表不可用`,`قائمة نماذج OpenCode غير متاحة`],"OMMS could not find OpenCode on this computer, so it cannot list OpenCode's models here. Type the model as provider/model, for example zai-coding-plan/glm-5.3. If OpenCode is installed, open an OpenCode session and reload this page.":[`OMMS 在这台电脑上找不到 OpenCode,因此无法在此列出 OpenCode 的模型。请按 提供商/模型 格式输入模型,例如 zai-coding-plan/glm-5.3。如果已安装 OpenCode,请打开一个 OpenCode 会话,然后重新加载此页面。`,`لم يعثر OMMS على OpenCode في هذا الحاسوب، لذا لا يمكنه عرض نماذج OpenCode هنا. أدخل النموذج بصيغة المزوّد/النموذج، مثل zai-coding-plan/glm-5.3. إذا كان OpenCode مثبتاً، فافتح جلسة OpenCode ثم أعد تحميل هذه الصفحة.`],"OpenCode took too long to send its model list. Reload this page to try again, or type the model as provider/model.":[`OpenCode 发送模型列表的时间过长。请重新加载此页面重试,或按 提供商/模型 格式输入模型。`,`استغرق OpenCode وقتاً طويلاً لإرسال قائمة نماذجه. أعد تحميل هذه الصفحة للمحاولة مرة أخرى، أو أدخل النموذج بصيغة المزوّد/النموذج.`],"OpenCode has no signed-in models. Run `opencode auth login`, then reload this page.":["OpenCode 没有已登录的模型。请运行 `opencode auth login`,然后重新加载此页面。","لا توجد في OpenCode نماذج مسجَّل الدخول إليها. شغّل `opencode auth login` ثم أعد تحميل هذه الصفحة."],"This OpenCode version sent a model list OMMS cannot read. Type the model as provider/model. Update OMMS if this continues.":[`此版本的 OpenCode 发送的模型列表 OMMS 无法读取。请按 提供商/模型 格式输入模型。如果问题持续,请更新 OMMS。`,`أرسل هذا الإصدار من OpenCode قائمة نماذج لا يستطيع OMMS قراءتها. أدخل النموذج بصيغة المزوّد/النموذج. حدّث OMMS إذا استمرت المشكلة.`],"OMMS could not read Pi's model list. Type the model as provider/model.":[`OMMS 无法读取 Pi 的模型列表。请按 提供商/模型 格式输入模型。`,`تعذّر على OMMS قراءة قائمة نماذج Pi. أدخل النموذج بصيغة المزوّد/النموذج.`],"Pi has no signed-in models. Sign in to a provider in Pi, then reload this page.":[`Pi 没有已登录的模型。请在 Pi 中登录一个提供商,然后重新加载此页面。`,`لا توجد في Pi نماذج مسجَّل الدخول إليها. سجّل الدخول إلى مزوّد في Pi ثم أعد تحميل هذه الصفحة.`],"Save model":[`保存模型`,`حفظ النموذج`],"Enter a model as provider/model.":[`按 提供商/模型 格式输入。`,`أدخل النموذج بصيغة المزوّد/النموذج.`],"Saved. New capture and profile work uses these settings.":[`已保存。下一次捕获和用户画像将使用这些设置。`,`تم الحفظ. ستستخدم عمليات الالتقاط والملف الشخصي الجديدة هذه الإعدادات.`],"Saved. OMMS now reads ~/.config/omms/omms.jsonc. The legacy config was kept.":[`已保存。OMMS 现在读取 ~/.config/omms/omms.jsonc,旧配置保留。`,`تم الحفظ. يقرأ OMMS الآن الملف ~/.config/omms/omms.jsonc مع الاحتفاظ بالإعدادات القديمة.`],"Current settings were reloaded; check the values and save again.":[`已重新加载当前设置;检查数值后再次保存。`,`أُعيد تحميل الإعدادات الحالية. راجع القيم ثم احفظ مجدداً.`],"Capture diagnostics":[`捕获诊断`,`تشخيص الالتقاط`],"Time range":[`时间范围`,`الفترة الزمنية`],"24 hours":[`24 小时`,`24 ساعة`],"7 days":[`7 天`,`7 أيام`],"30 days":[`30 天`,`30 يوماً`],"90 days":[`90 天`,`90 يوماً`],"Host / model":[`主机 / 模型`,`المضيف / النموذج`],Saved:[`已保存`,`محفوظ`],Skipped:[`已跳过`,`متجاوز`],Failed:[`失败`,`فشل`],Total:[`总数`,`المجموع`],"Failure reasons":[`失败原因`,`أسباب الفشل`],"Recent attempts":[`最近尝试`,`المحاولات الأخيرة`],Time:[`时间`,`الوقت`],Host:[`主机`,`المضيف`],Source:[`来源`,`المصدر`],Session:[`会话`,`الجلسة`],Path:[`路径`,`المسار`],Model:[`模型`,`النموذج`],Stop:[`结束原因`,`سبب التوقف`],Blocks:[`区块`,`الكتل`],Prompt:[`提示词长度`,`طول الطلب`],Reply:[`回复长度`,`طول الرد`],Duration:[`耗时`,`المدة`],Outcome:[`结果`,`النتيجة`],Reason:[`原因`,`السبب`],"Save capture traces":[`保存捕获追踪`,`حفظ تتبعات الالتقاط`],"Traces can contain conversation content after redaction. Keep tracing off unless you need it for debugging.":[`追踪文件在脱敏后仍可能包含对话内容。仅在调试时开启。`,`قد تحتوي التتبعات على محتوى المحادثة بعد التنقيح. فعّلها عند التصحيح فقط.`],"This project turns tracing off. The global switch cannot turn it on here.":[`此项目已关闭追踪。全局开关无法在此开启。`,`أوقف هذا المشروع التتبع. لا يمكن للمفتاح العام تفعيله هنا.`],"Trace retention (days)":[`追踪保留天数`,`مدة حفظ التتبعات (بالأيام)`],"Attempt retention (days)":[`尝试记录保留天数`,`مدة حفظ المحاولات (بالأيام)`],"Retry retention (hours)":[`重试保留小时数`,`مدة حفظ إعادة المحاولة (بالساعات)`],"When the capture model cannot be reached, OMMS keeps the turn and tries again later. Queued turns can hold conversation content after redaction. 0 turns the queue off and deletes waiting turns.":[`捕获模型无法访问时,OMMS 会保留该轮对话并稍后重试。排队的对话在脱敏后仍可能包含对话内容。设为 0 会关闭队列并删除等待中的对话。`,`عندما يتعذر الوصول إلى نموذج الالتقاط، يحتفظ OMMS بالجولة ويعيد المحاولة لاحقاً. قد تحتوي الجولات المنتظرة على محتوى المحادثة بعد التنقيح. القيمة 0 توقف قائمة الانتظار وتحذف الجولات المنتظرة.`],"Turns waiting for retry":[`等待重试的对话`,`الجولات المنتظرة لإعادة المحاولة`],"Retry now":[`立即重试`,`أعد المحاولة الآن`],"Retrying now.":[`正在重试。`,`تجري إعادة المحاولة الآن.`],"A retry is already running.":[`重试已在运行。`,`إعادة المحاولة قيد التشغيل بالفعل.`],"These turns retry at the next Pi session start.":[`这些对话将在下次启动 Pi 会话时重试。`,`ستُعاد محاولة هذه الجولات عند بدء جلسة Pi التالية.`],"These turns retry at the next OpenCode session start.":[`这些对话将在下次启动 OpenCode 会话时重试。`,`ستُعاد محاولة هذه الجولات عند بدء جلسة OpenCode التالية.`],"These turns retry at the next Claude Code session start.":[`这些对话将在下次启动 Claude Code 会话时重试。`,`ستُعاد محاولة هذه الجولات عند بدء جلسة Claude Code التالية.`],"Claude Code capture uses the external API.":[`Claude Code 捕获使用外部 API。`,`يستخدم التقاط Claude Code واجهة API الخارجية.`],"Claude Code capture is off. Complete the external API settings.":[`Claude Code 捕获已关闭。请完成外部 API 设置。`,`التقاط Claude Code متوقف. أكمل إعدادات واجهة API الخارجية.`],"Missing settings":[`缺少的设置`,`الإعدادات الناقصة`],"memoryModel is not configured":[`未配置 memoryModel`,`لم يُضبط memoryModel`],"memoryApiUrl is not configured":[`未配置 memoryApiUrl`,`لم يُضبط memoryApiUrl`],"memoryApiKey is not configured":[`未配置 memoryApiKey`,`لم يُضبط memoryApiKey`],"memoryApiKey contains a placeholder value":[`memoryApiKey 包含占位值`,`يحتوي memoryApiKey على قيمة نائبة`],"Claude Code backfill always uses the external API. It has no backfill model setting.":[`Claude Code 回填始终使用外部 API,没有回填模型设置。`,`يستخدم استيراد Claude Code دائماً واجهة API الخارجية، ولا يوجد له إعداد لنموذج الاستيراد.`],"Claude Code transcripts folder":[`Claude Code 对话记录文件夹`,`مجلد سجلات محادثات Claude Code`],"Claude Code transcripts":[`Claude Code 对话记录`,`سجلات محادثات Claude Code`],found:[`已找到`,`موجود`],"not found":[`未找到`,`غير موجود`],"Claude Code imports always use the external API.":[`Claude Code 导入始终使用外部 API。`,`يستخدم استيراد Claude Code دائماً واجهة API الخارجية.`],"Claude Code imports use the external API. Complete the external API settings.":[`Claude Code 导入使用外部 API。请完成外部 API 设置。`,`يستخدم استيراد Claude Code واجهة API الخارجية. أكمل إعدادات واجهة API الخارجية.`],"Trace files":[`追踪文件`,`ملفات التتبع`],View:[`查看`,`عرض`],Delete:[`删除`,`حذف`],Health:[`健康检查`,`فحص الحالة`],"Config files":[`配置文件`,`ملفات الإعدادات`],"Memory store":[`记忆存储`,`مخزن الذاكرة`],Embedding:[`嵌入模型`,`نموذج التضمين`],"Web binding":[`网页服务绑定`,`ربط خادم الويب`],"OpenCode model":[`OpenCode 模型`,`نموذج OpenCode`],"Pi model":[`Pi 模型`,`نموذج Pi`],"Capture failures (24 hours)":[`捕获失败(24 小时)`,`فشل الالتقاط (24 ساعة)`],"OpenCode model test":[`OpenCode 模型测试`,`اختبار نموذج OpenCode`],"Pi model test":[`Pi 模型测试`,`اختبار نموذج Pi`],"Run checks":[`运行检查`,`تشغيل الفحوصات`],"Run checks and test models":[`运行检查并测试模型`,`تشغيل الفحوصات واختبار النماذج`],"Checking…":[`正在检查…`,`جارٍ الفحص…`],pass:[`通过`,`نجاح`],warn:[`警告`,`تحذير`],fail:[`失败`,`فشل`],"Import and backfill":[`导入和回填`,`الاستيراد والاستكمال`],"Automatic import":[`自动导入`,`الاستيراد التلقائي`],"Automatic import makes model calls. Changes apply at the next host start. Turning it off stops a running import after the current exchange.":[`自动导入会调用模型。更改在下次启动主机时生效。关闭后,正在运行的导入将在当前轮次结束后停止。`,`يستدعي الاستيراد التلقائي النموذج. تسري التغييرات عند بدء المضيف التالي. يوقف التعطيل الاستيراد بعد التبادل الحالي.`],"Import past chats automatically":[`自动导入过去的对话`,`استيراد المحادثات السابقة تلقائياً`],"Backfill model":[`历史导入模型`,`نموذج استيراد السجل`],"Same as live capture":[`与实时捕获相同`,`مثل الالتقاط المباشر`],"Saved. Changes apply at the next host start.":[`已保存。更改在下次启动主机时生效。`,`تم الحفظ. تسري التغييرات عند بدء المضيف التالي.`],State:[`状态`,`الحالة`],"not started":[`尚未开始`,`لم يبدأ`],"not-started":[`尚未开始`,`لم يبدأ`],Imported:[`已导入`,`مستورَد`],Pending:[`待处理`,`معلّق`],"Unresolved sessions":[`目录未解析的会话`,`جلسات بمجلدات غير محددة`],Cutoff:[`截止时间`,`وقت القطع`],stopped:[`已停止`,`توقف`],"Web app":[`网页应用`,`تطبيق الويب`],"Start web app at login":[`登录时启动网页应用`,`بدء تطبيق الويب عند تسجيل الدخول`],"Login item":[`登录启动项`,`عنصر بدء تسجيل الدخول`],"not installed":[`未安装`,`غير مثبّت`],"not-installed":[`未安装`,`غير مثبّت`],installed:[`已安装`,`مثبّت`],unsupported:[`不受支持`,`غير مدعوم`],"no-runtime":[`缺少运行环境`,`بيئة التشغيل غير متاحة`],"no-package":[`缺少软件包`,`الحزمة غير متاحة`],"no-launcher":[`缺少启动器`,`المشغّل غير متاح`],"Login items are unsupported on this platform.":[`此平台不支持登录启动项。`,`عناصر بدء تسجيل الدخول غير مدعومة على هذا النظام.`],"Install Node or Bun to start the web app at login.":[`安装 Node 或 Bun 后,网页应用才能在登录时启动。`,`ثبّت Node أو Bun لبدء تطبيق الويب عند تسجيل الدخول.`],"Use these commands to apply the change now:":[`使用以下命令立即应用更改:`,`استخدم هذه الأوامر لتطبيق التغيير الآن:`],"Saved. The login item changes at the next Pi or OpenCode start.":[`已保存。登录启动项将在下次启动 Pi 或 OpenCode 时更新。`,`تم الحفظ. يتغير عنصر بدء التشغيل عند بدء Pi أو OpenCode التالي.`],"History host":[`历史记录主机`,`مضيف السجل`],Scope:[`范围`,`النطاق`],"Current project":[`当前项目`,`المشروع الحالي`],"All projects":[`所有项目`,`كل المشاريع`],"Project directory":[`项目目录`,`مجلد المشروع`],"Current directory":[`当前目录`,`المجلد الحالي`],"Profile batch size":[`用户画像批量大小`,`حجم دفعة الملف الشخصي`],"Directory maps (old=new, one per line)":[`目录映射(旧=新,每行一条)`,`تعيين المجلدات (قديم=جديد، واحد في كل سطر)`],"Force reimport":[`强制重新导入`,`فرض إعادة الاستيراد`],"Skip memories":[`跳过记忆`,`تجاوز الذكريات`],"Skip profile":[`跳过用户画像`,`تجاوز الملف الشخصي`],"Import model":[`导入模型`,`نموذج الاستيراد`],"Saved external API":[`已保存的外部 API`,`واجهة API الخارجية المحفوظة`],"Preview (dry run)":[`预览(不写入)`,`معاينة (تشغيل تجريبي)`],"Start import":[`开始导入`,`بدء الاستيراد`],"Cancel after current unit":[`完成当前单元后取消`,`الإلغاء بعد الوحدة الحالية`],"Directory maps must be old=new, one per line":[`目录映射须为 旧=新,每行一条`,`يجب أن يكون تعيين المجلدات بصيغة قديم=جديد، واحد في كل سطر`],running:[`运行中`,`جارٍ التشغيل`],cancelling:[`正在取消`,`جارٍ الإلغاء`],cancelled:[`已取消`,`أُلغي`],done:[`已完成`,`اكتمل`],failed:[`失败`,`فشل`],units:[`单元`,`وحدات`],"List sessions":[`列出会话`,`عرض الجلسات`],"Refresh list":[`刷新列表`,`تحديث القائمة`],"Advanced options":[`高级选项`,`خيارات متقدمة`],"Hide advanced options":[`隐藏高级选项`,`إخفاء الخيارات المتقدمة`],"default location":[`默认位置`,`الموقع الافتراضي`],"Prompt date from":[`提示日期起`,`تاريخ الطلب من`],"Prompt date to":[`提示日期止`,`تاريخ الطلب إلى`],"Prompt dates are inclusive, use your time zone, and filter the turns inside each session, not the list. Empty dates include every turn.":[`提示日期包含首尾两天,按你所在时区计算,只筛选每个会话中的对话轮次,不筛选列表。留空则包含所有轮次。`,`تواريخ الطلب شاملة لليومين، وتُحسب بمنطقتك الزمنية، وتُصفّي الأدوار داخل كل جلسة لا القائمة. تركها فارغة يشمل كل الأدوار.`],"Sessions with directories that no longer exist":[`目录已不存在的会话`,`جلسات لم تعد مجلداتها موجودة`],"Show them and add a directory map":[`显示它们并添加目录映射`,`اعرضها وأضف تعيين مجلد`],Selected:[`已选择`,`المحدد`],"Select all matching":[`选择所有匹配项`,`تحديد كل المطابق`],"Clear selection":[`清除选择`,`مسح التحديد`],Select:[`选择`,`تحديد`],Created:[`创建时间`,`تاريخ الإنشاء`],"Resolved by":[`解析方式`,`طريقة التحديد`],recorded:[`记录的目录`,`المجلد المسجّل`],mapped:[`目录映射`,`تعيين مجلد`],"project root":[`项目根目录`,`جذر المشروع`],missing:[`缺失`,`مفقود`],"No sessions match.":[`没有匹配的会话。`,`لا توجد جلسات مطابقة.`],Previous:[`上一页`,`السابق`],Next:[`下一页`,`التالي`],None:[`无`,`لا شيء`],"Configured, not tested.":[`已配置,未测试。`,`مُعدّ، لم يُختبر.`],"An import with an OpenCode signed-in model runs from the terminal or with /import in OpenCode.":[`使用 OpenCode 已登录模型的导入需在终端运行,或在 OpenCode 中使用 /import。`,`يتم الاستيراد بنموذج OpenCode المسجَّل الدخول من الطرفية أو بالأمر /import داخل OpenCode.`],"The chosen OpenCode model is not connected here. An import with an OpenCode signed-in model runs from the terminal or with /import in OpenCode. Choose the external API for a web import.":[`所选 OpenCode 模型在此处未连接。使用 OpenCode 已登录模型的导入需在终端运行,或在 OpenCode 中使用 /import。网页导入请选择外部 API。`,`نموذج OpenCode المختار غير متصل هنا. يتم الاستيراد بنموذج OpenCode المسجَّل الدخول من الطرفية أو بالأمر /import داخل OpenCode. اختر واجهة API الخارجية للاستيراد من الصفحة.`],"Test models in Health":[`在健康检查中测试模型`,`اختبر النماذج في قسم السلامة`],Import:[`导入`,`استيراد`],sessions:[`个会话`,`جلسات`],"1 session":[`1 个会话`,`جلسة واحدة`],"List sessions first.":[`请先列出会话。`,`اعرض الجلسات أولاً.`],"Options changed. Refresh the session list first.":[`选项已更改。请先刷新会话列表。`,`تغيّرت الخيارات. حدّث قائمة الجلسات أولاً.`],"Select at least one session.":[`请至少选择一个会话。`,`حدّد جلسة واحدة على الأقل.`],"Select at most 1000 sessions one by one, or use Select all matching.":[`逐个选择最多 1000 个会话,或使用“选择所有匹配项”。`,`حدّد 1000 جلسة كحد أقصى واحدة تلو الأخرى، أو استخدم «تحديد كل المطابق».`],"Model readiness is unknown. Reload the page.":[`无法确定模型是否就绪。请重新加载页面。`,`حالة جاهزية النموذج غير معروفة. أعد تحميل الصفحة.`],"No import model is ready. Connect a model in OpenCode or complete the external API settings.":[`没有可用的导入模型。请在 OpenCode 中连接模型,或补全外部 API 设置。`,`لا يوجد نموذج استيراد جاهز. اربط نموذجاً في OpenCode أو أكمل إعدادات واجهة API الخارجية.`],"The external API is not ready":[`外部 API 未就绪`,`واجهة API الخارجية غير جاهزة`],"The external API has no memoryModel in the global config":[`全局配置中缺少外部 API 的 memoryModel`,`لا يحتوي الإعداد العام على memoryModel لواجهة API الخارجية`],"The external API has no memoryApiUrl in the global config":[`全局配置中缺少外部 API 的 memoryApiUrl`,`لا يحتوي الإعداد العام على memoryApiUrl لواجهة API الخارجية`],"The external API key is missing in the OpenCode process; check memoryApiKey and its env:// or file:// source":[`OpenCode 进程中缺少外部 API 密钥;请检查 memoryApiKey 及其 env:// 或 file:// 来源`,`مفتاح واجهة API الخارجية غير موجود في عملية OpenCode؛ تحقّق من memoryApiKey ومصدره env:// أو file://`],"The memoryProvider in the global config is not supported for imports":[`全局配置中的 memoryProvider 不支持导入`,`مزوّد memoryProvider في الإعداد العام غير مدعوم للاستيراد`],"Pi sessions folder or one .jsonl session file":[`Pi 会话文件夹或单个 .jsonl 会话文件`,`مجلد جلسات Pi أو ملف جلسة ‎.jsonl واحد`],"OpenCode database file":[`OpenCode 数据库文件`,`ملف قاعدة بيانات OpenCode`],"Absolute path, for example on a mounted volume":[`绝对路径,例如已挂载卷上的路径`,`مسار مطلق، مثلاً على وحدة تخزين مركّبة`],"Use this source":[`使用此来源`,`استخدم هذا المصدر`],Browse:[`浏览`,`استعراض`],"Use the default location":[`使用默认位置`,`استخدم الموقع الافتراضي`],"Chosen source":[`已选来源`,`المصدر المختار`],Choose:[`选择`,`اختيار`],"Only the first 500 entries are shown.":[`仅显示前 500 项。`,`تُعرض أول 500 عنصر فقط.`],"Reload the page before saving again.":[`再次保存前请重新加载页面。`,`أعد تحميل الصفحة قبل الحفظ مرة أخرى.`],"The current settings could not be reloaded. Reload the page.":[`无法重新加载当前设置。请重新加载页面。`,`تعذّر إعادة تحميل الإعدادات الحالية. أعد تحميل الصفحة.`],Log:[`日志`,`السجل`],"Capture attempts only":[`仅显示捕获尝试`,`محاولات الالتقاط فقط`],Refresh:[`刷新`,`تحديث`],"Copy log path":[`复制日志路径`,`نسخ مسار السجل`],"Log lines":[`日志行`,`أسطر السجل`],"No log has been written yet.":[`尚未写入日志。`,`لم يُكتب سجل بعد.`],"Loading log…":[`正在加载日志…`,`جارٍ تحميل السجل…`],Level:[`级别`,`المستوى`],Warning:[`警告`,`تحذير`],Error:[`错误`,`خطأ`],info:[`信息`,`معلومات`],error:[`错误`,`خطأ`],"Level guessed from the message":[`级别由消息内容推测`,`المستوى مُخمَّن من نص الرسالة`],"Copy visible records":[`复制可见记录`,`نسخ السجلات المعروضة`],Copied:[`已复制`,`تم النسخ`],"No matching log records.":[`没有匹配的日志记录。`,`لا توجد سجلات مطابقة.`],"External API":[`外部 API`,`واجهة API الخارجية`],"An OpenAI- or Anthropic-compatible endpoint that either host can use for capture and backfill.":[`兼容 OpenAI 或 Anthropic 的端点,两个宿主都可用于捕获和回填。`,`نقطة نهاية متوافقة مع OpenAI أو Anthropic يمكن لأي مضيف استخدامها للالتقاط والاستيراد.`],Provider:[`提供商`,`المزوّد`],"API URL":[`API 地址`,`عنوان API`],"API key":[`API 密钥`,`مفتاح API`],"Save endpoint":[`保存端点`,`حفظ نقطة النهاية`],"Nothing to save.":[`没有需要保存的内容。`,`لا يوجد ما يُحفظ.`],"Key source":[`密钥来源`,`مصدر المفتاح`],"environment variable":[`环境变量`,`متغير البيئة`],"key file":[`密钥文件`,`ملف المفتاح`],"set in the config file":[`在配置文件中设置`,`مضبوط في ملف الإعدادات`],"resolves in the web app":[`可在网页应用中解析`,`يُقرأ في تطبيق الويب`],"does not resolve in the web app":[`无法在网页应用中解析`,`لا يُقرأ في تطبيق الويب`],"A login web app does not see variables set only in a shell profile; a key file works everywhere.":[`登录时启动的网页应用看不到仅在 shell 配置文件中设置的变量;密钥文件在任何地方都可用。`,`تطبيق الويب الذي يبدأ عند تسجيل الدخول لا يرى المتغيرات المضبوطة في ملف الصدفة فقط؛ ملف المفتاح يعمل في كل مكان.`],"The key does not resolve in this web app. Save it to a key file instead.":[`此网页应用无法解析该密钥。请改为保存到密钥文件。`,`لا يُقرأ المفتاح في تطبيق الويب هذا. احفظه في ملف مفتاح بدلاً من ذلك.`],"Environment variable":[`环境变量`,`متغير البيئة`],"Key file":[`密钥文件`,`ملف المفتاح`],"Save key to a private file":[`将密钥保存到私有文件`,`حفظ المفتاح في ملف خاص`],"Variable name":[`变量名`,`اسم المتغير`],"Key file path":[`密钥文件路径`,`مسار ملف المفتاح`],"Key file name":[`密钥文件名`,`اسم ملف المفتاح`],"The key is written to ~/.config/omms/secrets/ readable only by you. It is never shown again.":[`密钥写入 ~/.config/omms/secrets/,仅你可读,之后不再显示。`,`يُكتب المفتاح في ~/.config/omms/secrets/ ولا يقرؤه غيرك، ولن يُعرض مرة أخرى.`],"Save key source":[`保存密钥来源`,`حفظ مصدر المفتاح`],"Key source saved.":[`密钥来源已保存。`,`تم حفظ مصدر المفتاح.`],"A key file with this name exists. Replace it?":[`已存在同名密钥文件。要替换吗?`,`يوجد ملف مفتاح بهذا الاسم. هل تريد استبداله؟`],"Enter a variable name such as ZAI_API_KEY":[`请输入变量名,例如 ZAI_API_KEY`,`أدخل اسم متغير مثل ZAI_API_KEY`],"Enter the path of a key file":[`请输入密钥文件路径`,`أدخل مسار ملف المفتاح`],"Name the key file with letters, digits, dashes, or underscores":[`密钥文件名只能包含字母、数字、短横线或下划线`,`سمِّ ملف المفتاح بحروف أو أرقام أو شرطات أو شرطات سفلية`],"Paste the key":[`请粘贴密钥`,`الصق المفتاح`],Test:[`测试`,`اختبار`],"Test call succeeded":[`测试调用成功`,`نجح استدعاء الاختبار`],"Test call failed":[`测试调用失败`,`فشل استدعاء الاختبار`],"External API needs":[`外部 API 缺少`,`تحتاج واجهة API الخارجية إلى`],"Automatic import makes model calls. A model change applies at the next run. Turning it off stops a running import after the current exchange.":[`自动导入会调用模型。模型更改在下次运行时生效。关闭后,正在进行的导入会在当前对话完成后停止。`,`يستدعي الاستيراد التلقائي النماذج. يسري تغيير النموذج في التشغيل التالي. إيقافه يوقف الاستيراد الجاري بعد المحادثة الحالية.`],"Saved. Changes apply at the next run.":[`已保存。更改在下次运行时生效。`,`تم الحفظ. تسري التغييرات في التشغيل التالي.`],paused:[`已暂停`,`متوقف مؤقتاً`],"started from auto":[`自动启动`,`بدأ تلقائياً`],"started from web":[`从网页启动`,`بدأ من الويب`],"started from cli":[`从终端启动`,`بدأ من الطرفية`],"started from slash":[`从斜杠命令启动`,`بدأ من أمر الشرطة المائلة`],"Minutes left":[`剩余分钟`,`الدقائق المتبقية`],unknown:[`未知`,`غير معروف`],about:[`约`,`حوالي`],Pause:[`暂停`,`إيقاف مؤقت`],Resume:[`继续`,`استئناف`],"Pausing after the current exchange.":[`将在当前对话完成后暂停。`,`سيتوقف مؤقتاً بعد المحادثة الحالية.`],"Backfill started.":[`回填已开始。`,`بدأ الاستيراد.`],"The list is still loading. Try again in a moment.":[`列表仍在加载。请稍后再试。`,`لا تزال القائمة قيد التحميل. حاول مرة أخرى بعد لحظة.`],"Paused. No import starts until you resume.":[`已暂停。恢复前不会开始导入。`,`تم الإيقاف مؤقتاً. لن يبدأ أي استيراد حتى تستأنفه.`],"Directory maps":[`目录映射`,`خرائط المجلدات`],"Map a directory that was moved or deleted to the project it belongs to. A change applies to the next import or backfill run.":[`将已移动或删除的目录映射到其所属项目。更改在下次导入或回填时生效。`,`اربط مجلداً نُقل أو حُذف بالمشروع الذي ينتمي إليه. يسري التغيير في الاستيراد التالي.`],"Saved maps":[`已保存的映射`,`الخرائط المحفوظة`],Keep:[`保留`,`إبقاء`],Remove:[`移除`,`إزالة`],"Unresolved directories":[`无法解析的目录`,`مجلدات غير محلولة`],"No unresolved directories in the latest run.":[`最近一次运行没有无法解析的目录。`,`لا توجد مجلدات غير محلولة في آخر تشغيل.`],"No suggestion found.":[`未找到建议。`,`لم يُعثر على اقتراح.`],"Target directory":[`目标目录`,`المجلد الهدف`],"Saved. Maps apply to the next import or backfill run.":[`已保存。映射在下次导入或回填时生效。`,`تم الحفظ. تسري الخرائط في الاستيراد التالي.`],"Memory language":[`记忆语言`,`لغة الذاكرة`],"The language that new memory summaries are written in. Automatic detects it from your prompt, but a Latin-script prompt under 100 characters counts as English.":[`新记忆摘要使用的语言。“自动”会根据你的提示检测语言,但少于 100 个字符的拉丁字母提示按英语处理。`,`اللغة التي تُكتب بها ملخصات الذاكرة الجديدة. يكتشفها الوضع التلقائي من موجّهك، لكن الموجّه بالأحرف اللاتينية الأقصر من 100 حرف يُعدّ إنجليزياً.`],"Summary language":[`摘要语言`,`لغة الملخص`],Appearance:[`外观`,`المظهر`],Theme:[`主题`,`السمة`],"Theme mode":[`主题模式`,`وضع السمة`],System:[`系统`,`النظام`],Light:[`浅色`,`فاتح`],Dark:[`深色`,`داكن`],"Light theme":[`浅色主题`,`السمة الفاتحة`],"Dark theme":[`深色主题`,`السمة الداكنة`],"On screen now":[`当前显示`,`معروضة الآن`],"No theme matches.":[`没有匹配的主题。`,`لا توجد سمة مطابقة.`],"Filter themes":[`筛选主题`,`تصفية السمات`],"System follows your operating system and switches between the light and the dark theme. The choice stays in this browser.":[`“系统”跟随操作系统,在浅色和深色主题之间切换。此选择只保存在此浏览器中。`,`يتبع «النظام» نظام التشغيل ويبدّل بين السمة الفاتحة والداكنة. يبقى الاختيار في هذا المتصفح.`],"Date and time":[`日期和时间`,`التاريخ والوقت`],"How dates and times show in this web app. The choice stays in this browser.":[`此网页应用中日期和时间的显示方式。此选择只保存在此浏览器中。`,`طريقة عرض التواريخ والأوقات في تطبيق الويب هذا. يبقى الاختيار في هذا المتصفح.`],"Date format":[`日期格式`,`تنسيق التاريخ`],"Time format":[`时间格式`,`تنسيق الوقت`],"Day month year":[`日 月 年`,`يوم شهر سنة`],"Month day year":[`月 日 年`,`شهر يوم سنة`],"Year-month-day":[`年-月-日`,`سنة-شهر-يوم`],"24-hour":[`24 小时制`,`24 ساعة`],"12-hour":[`12 小时制`,`12 ساعة`],Automatic:[`自动`,`تلقائي`],"Saved. New memories use this language.":[`已保存。新记忆将使用此语言。`,`تم الحفظ. ستستخدم الذكريات الجديدة هذه اللغة.`],"Claude Code folder":[`Claude Code 文件夹`,`مجلد Claude Code`],"Set this when Claude Code does not use ~/.claude, for example when you start it with CLAUDE_CONFIG_DIR. Leave it empty to use the default.":[`当 Claude Code 不使用 ~/.claude 时(例如用 CLAUDE_CONFIG_DIR 启动它),请设置此项。留空则使用默认文件夹。`,`اضبط هذا عندما لا يستخدم Claude Code المجلد ‎~/.claude، مثلاً عند تشغيله مع CLAUDE_CONFIG_DIR. اتركه فارغاً لاستخدام المجلد الافتراضي.`],"Save folder":[`保存文件夹`,`حفظ المجلد`],"Transcripts folder in use":[`正在使用的会话记录文件夹`,`مجلد سجلات الجلسات المستخدم`],From:[`来源`,`المصدر`],"this setting":[`此设置`,`هذا الإعداد`],"the CLAUDE_CONFIG_DIR variable of the web app":[`网页应用的 CLAUDE_CONFIG_DIR 变量`,`متغير CLAUDE_CONFIG_DIR لتطبيق الويب`],"the default folder":[`默认文件夹`,`المجلد الافتراضي`],"This folder does not exist. Claude Code capture and import will not work:":[`此文件夹不存在。Claude Code 的捕获和导入将无法工作:`,`هذا المجلد غير موجود. لن يعمل الالتقاط والاستيراد في Claude Code:`],"Enter a full path, or a path that starts with ~/.":[`请输入完整路径,或以 ~/ 开头的路径。`,`أدخل مساراً كاملاً، أو مساراً يبدأ بـ ‎~/.`],"Saved. Capture and import use this folder now.":[`已保存。捕获和导入现在使用此文件夹。`,`تم الحفظ. يستخدم الالتقاط والاستيراد هذا المجلد الآن.`],"Running version":[`运行版本`,`الإصدار الجاري`],"Global command":[`全局命令`,`الأمر العام`],"not installed globally":[`未全局安装`,`غير مثبت عمومياً`],"A newer OMMS copy runs in place of the global install. The global install is optional. To update it:":[`正在运行的是更新的 OMMS 副本,而不是全局安装。全局安装是可选的。更新方法:`,`تعمل نسخة OMMS أحدث بدلاً من التثبيت العام. التثبيت العام اختياري. لتحديثه:`],"The global install is newer than the running OMMS. The next Pi or OpenCode start replaces the web app.":[`全局安装比正在运行的 OMMS 更新。下次启动 Pi 或 OpenCode 时将替换网页应用。`,`التثبيت العام أحدث من OMMS الجاري. سيستبدل التشغيل التالي لـ Pi أو OpenCode تطبيق الويب.`],"OMMS is not installed globally. A global install is optional.":[`OMMS 未全局安装。全局安装是可选的。`,`OMMS غير مثبت عمومياً. التثبيت العام اختياري.`],"Keys and access":[`密钥与访问`,`المفاتيح والوصول`],"not needed":[`不需要`,`غير مطلوب`],"External API key":[`外部 API 密钥`,`مفتاح واجهة API الخارجية`],"Embedding server key":[`嵌入服务器密钥`,`مفتاح خادم التضمين`],"Capture and profile learning through the external API. Claude Code always uses it.":[`通过外部 API 进行捕获和用户画像学习。Claude Code 始终使用它。`,`الالتقاط وتعلّم الملف الشخصي عبر واجهة API الخارجية. يستخدمه Claude Code دائماً.`],"Sent to an embedding server on another machine.":[`发送给另一台机器上的嵌入服务器。`,`يُرسَل إلى خادم تضمين على جهاز آخر.`],"Let scripts and other computers call the web app's API.":[`允许脚本和其他电脑调用网页应用的 API。`,`تتيح للبرامج النصية والحواسيب الأخرى استدعاء واجهة API لتطبيق الويب.`],"Asks for a user name and password before the page opens.":[`打开页面前要求输入用户名和密码。`,`يطلب اسم مستخدم وكلمة مرور قبل فتح الصفحة.`],"External API card":[`外部 API 卡片`,`بطاقة واجهة API الخارجية`],"Embedding card":[`嵌入卡片`,`بطاقة التضمين`],"Table below":[`下方表格`,`الجدول أدناه`],"Form below":[`下方表单`,`النموذج أدناه`],"API tokens":[`API 令牌`,`رموز API`],"Browser password":[`浏览器密码`,`كلمة مرور المتصفح`],"The config file still sets webServerApiToken. OMMS imported it once as the token “from config file” and no longer reads the key. Use the token table instead.":[`配置文件仍设置了 webServerApiToken。OMMS 已将其导入一次,作为令牌“from config file”,之后不再读取该键。请改用令牌表。`,`لا يزال ملف الإعدادات يضبط webServerApiToken. استورده OMMS مرة واحدة كرمز باسم “from config file” ولم يعد يقرأ هذا المفتاح. استخدم جدول الرموز بدلاً منه.`],"Open this page on the computer that runs OMMS to manage tokens and the password.":[`请在运行 OMMS 的电脑上打开此页面,以管理令牌和密码。`,`افتح هذه الصفحة على الحاسوب الذي يشغّل OMMS لإدارة الرموز وكلمة المرور.`],"Revoke this token? Scripts that use it stop working.":[`撤销此令牌?使用它的脚本将停止工作。`,`إلغاء هذا الرمز؟ ستتوقف البرامج النصية التي تستخدمه عن العمل.`],"No browser password is set.":[`未设置浏览器密码。`,`لم تُضبط كلمة مرور للمتصفح.`],"A browser password is set for user":[`已为以下用户设置浏览器密码:`,`ضُبطت كلمة مرور المتصفح للمستخدم`],"A browser password is set for your computer user name.":[`已为你的电脑用户名设置浏览器密码。`,`ضُبطت كلمة مرور المتصفح لاسم مستخدم حاسوبك.`],"User name":[`用户名`,`اسم المستخدم`],Password:[`密码`,`كلمة المرور`],"Save password":[`保存密码`,`حفظ كلمة المرور`],"Clear password":[`清除密码`,`مسح كلمة المرور`],"Saved. Restart the web app to use the new browser password.":[`已保存。重启网页应用以使用新的浏览器密码。`,`تم الحفظ. أعد تشغيل تطبيق الويب لاستخدام كلمة مرور المتصفح الجديدة.`],Name:[`名称`,`الاسم`],Expires:[`过期时间`,`تاريخ الانتهاء`],"Last used":[`上次使用`,`آخر استخدام`],Never:[`永不`,`أبداً`],Revoke:[`撤销`,`إلغاء`],Copy:[`复制`,`نسخ`],"Copy this token now. It will not be shown again.":[`请立即复制此令牌。它不会再次显示。`,`انسخ هذا الرمز الآن. لن يُعرض مرة أخرى.`],"Token name":[`令牌名称`,`اسم الرمز`],"Expires after":[`有效期`,`ينتهي بعد`],"Generate token":[`生成令牌`,`إنشاء رمز`],All:[`全部`,`الكل`],Kind:[`类型`,`النوع`],"Built-in model":[`内置模型`,`النموذج المدمج`],"OpenAI-compatible server":[`OpenAI 兼容服务器`,`خادم متوافق مع OpenAI`],"Server URL":[`服务器 URL`,`عنوان URL للخادم`],"Vector size":[`向量维度`,`حجم المتجه`],"Stored memories":[`已存储的记忆`,`الذكريات المخزنة`],"Re-embedding":[`正在重新嵌入`,`جارٍ إعادة التضمين`],"Re-embed finished.":[`重新嵌入已完成。`,`اكتملت إعادة التضمين.`],"Re-embed failed":[`重新嵌入失败`,`فشلت إعادة التضمين`],Retry:[`重试`,`إعادة المحاولة`],Lock:[`锁定`,`قفل`],"Unlock to change":[`解锁以更改`,`افتح القفل للتغيير`],"The model that turns memory text into search vectors. A change re-embeds every memory.":[`将记忆文本转换为搜索向量的模型。更改后会重新嵌入所有记忆。`,`النموذج الذي يحوّل نص الذكريات إلى متجهات بحث. يؤدي تغييره إلى إعادة تضمين كل الذكريات.`],Preset:[`预设`,`إعداد مسبق`],Custom:[`自定义`,`مخصص`],"No key":[`无密钥`,`بلا مفتاح`],"Keep the saved key":[`保留已保存的密钥`,`الاحتفاظ بالمفتاح المحفوظ`],Apply:[`应用`,`تطبيق`],Cancel:[`取消`,`إلغاء الأمر`],"Test passed. Vector size":[`测试通过。向量维度`,`نجح الاختبار. حجم المتجه`],"Test failed":[`测试失败`,`فشل الاختبار`],"Every stored memory will be re-embedded":[`所有已存储的记忆都将重新嵌入`,`ستُعاد عملية تضمين كل الذكريات المخزنة`],"The hosted server is called once for each memory, which may cost money.":[`托管服务器会为每条记忆调用一次,可能产生费用。`,`يُستدعى الخادم المستضاف مرة لكل ذكرى، وقد يكلّف ذلك مالاً.`],"Search results are poor until the re-embed ends.":[`在重新嵌入结束前,搜索结果质量较差。`,`تكون نتائج البحث ضعيفة حتى تنتهي إعادة التضمين.`],"Restart open OpenCode and Pi sessions after the change.":[`更改后请重启已打开的 OpenCode 和 Pi 会话。`,`أعد تشغيل جلسات OpenCode وPi المفتوحة بعد التغيير.`],"Profile learning":[`用户画像学习`,`تعلّم الملف الشخصي`],"Catch up analyses every waiting prompt with the saved external API, 50 prompts for each model call.":[`补齐会使用已保存的外部 API 分析所有等待中的提示词,每次模型调用处理 50 条。`,`يحلّل اللحاق كل الطلبات المنتظرة عبر واجهة API الخارجية المحفوظة، 50 طلباً لكل استدعاء للنموذج.`],"Open this page on the computer that runs OMMS to start a catch-up run.":[`请在运行 OMMS 的电脑上打开此页面以开始补齐。`,`افتح هذه الصفحة على الحاسوب الذي يشغّل OMMS لبدء اللحاق.`],"Prompts waiting for profile learning":[`等待用户画像学习的提示词`,`الطلبات المنتظرة لتعلّم الملف الشخصي`],"Model calls":[`模型调用次数`,`استدعاءات النموذج`],"Batches done":[`已完成批次`,`الدفعات المكتملة`],"Prompts waiting":[`等待中的提示词`,`الطلبات المنتظرة`],Paused:[`已暂停`,`متوقف مؤقتاً`],Finished:[`已完成`,`اكتمل`],Stopped:[`已停止`,`توقّف`],"Catch up profile":[`补齐用户画像`,`اللحاق بالملف الشخصي`],"Start profile learning for the waiting prompts? Model calls":[`为等待中的提示词开始用户画像学习?模型调用次数`,`بدء تعلّم الملف الشخصي للطلبات المنتظرة؟ عدد استدعاءات النموذج`],"never used before":[`从未使用`,`لم يُستخدم من قبل`],"A newer catch-up run took over.":[`较新的补齐任务已接管。`,`تولّت عملية لحاق أحدث المهمة.`],"Browser password cleared. Restart the web app to turn it off.":[`浏览器密码已清除。重启网页应用以关闭它。`,`تم مسح كلمة مرور المتصفح. أعد تشغيل تطبيق الويب لإيقافها.`],Actions:[`操作`,`الإجراءات`],"All exchanges are done. Learning the profile from the imported prompts":[`所有对话已完成。正在从导入的提示中学习画像`,`اكتملت كل المحادثات. يجري تعلّم الملف الشخصي من المطالبات المستوردة`],batches:[`批`,`دفعات`],"Change it in":[`修改位置`,`مكان التغيير`],"Check them, then press Save maps.":[`请检查后点击保存映射。`,`راجعها ثم اضغط حفظ الخرائط.`],Credential:[`凭据`,`بيانات الاعتماد`],Email:[`邮箱`,`البريد الإلكتروني`],Filled:[`已填写`,`تم الملء`],"Finds the project each missing directory belongs to, mostly the main repository of a deleted worktree, and fills it in for you to check. Nothing is saved until you press Save maps.":[`为每个缺失的目录找到所属项目(多为已删除工作树的主仓库),并填入供你检查。点击保存映射之前不会保存任何内容。`,`يعثر على المشروع الذي ينتمي إليه كل مجلد مفقود، وغالباً المستودع الرئيسي لشجرة عمل محذوفة، ويملؤه لتراجعه. لا يُحفظ شيء حتى تضغط حفظ الخرائط.`],Hosts:[`主机`,`المضيفات`],"Import status":[`导入状态`,`حالة الاستيراد`],"in use":[`使用中`,`قيد الاستخدام`],"Last run":[`上次运行`,`آخر تشغيل`],"Last update":[`最后更新`,`آخر تحديث`],"Learning profile":[`正在学习画像`,`يجري تعلّم الملف الشخصي`],"Merge into":[`合并到`,`دمج في`],"Merge this profile into the other one? The source profile is turned off, not deleted.":[`将此画像合并到另一个画像?源画像会被停用,不会被删除。`,`دمج هذا الملف الشخصي في الآخر؟ يُوقَف الملف المصدر ولا يُحذف.`],"Merged.":[`已合并。`,`تم الدمج.`],"model not recorded":[`未记录模型`,`لم يُسجَّل نموذج`],model:[`个模型`,`نموذج`],models:[`个模型`,`نماذج`],"No directory recorded":[`未记录目录`,`لم يُسجَّل مجلد`],"No suggestion":[`无建议`,`لا اقتراح`],"Not started":[`未开始`,`لم يبدأ`],"OMMS keeps one profile for each git email. A folder whose repository has its own email starts a second profile. Choose the profile that is yours, or merge the extra one into it.":[`OMMS 为每个 git 邮箱保留一个画像。若某文件夹的仓库设置了自己的邮箱,就会产生第二个画像。请选择属于你的画像,或把多余的画像合并进去。`,`يحتفظ OMMS بملف شخصي لكل بريد git. المجلد الذي يملك مستودعه بريداً خاصاً يبدأ ملفاً شخصياً ثانياً. اختر ملفك الشخصي، أو ادمج الملف الزائد فيه.`],"Outcomes by host":[`各主机结果`,`النتائج حسب المضيف`],"Partly imported":[`部分已导入`,`مستورد جزئياً`],Patterns:[`模式`,`الأنماط`],pending:[`待处理`,`معلّق`],Preferences:[`偏好`,`التفضيلات`],Profiles:[`画像`,`الملفات الشخصية`],"Prompts analysed":[`已分析提示`,`المطالبات المحلَّلة`],Running:[`运行中`,`قيد التشغيل`],"Saved maps apply to every host.":[`已保存的映射适用于所有主机。`,`تنطبق الخرائط المحفوظة على كل المضيفات.`],"Saved: a memory was stored. Skipped: the model or a rule found nothing worth keeping, or the turn was private or trivial. Failed: the attempt hit an error. Total: the three added up. Each percentage is a share of its row's total.":[`已保存:存储了一条记忆。已跳过:模型或规则认为没有值得保留的内容,或该轮为私密或琐碎内容。失败:尝试出错。总计:三者之和。每个百分比是该行总计中的占比。`,`محفوظ: خُزّنت ذاكرة. متجاوز: لم يجد النموذج أو قاعدة ما يستحق الحفظ، أو كانت الجولة خاصة أو تافهة. فشل: واجهت المحاولة خطأ. الإجمالي: مجموع الثلاثة. كل نسبة هي حصة من إجمالي صفها.`],"Saved. OMMS now uses this profile in every folder.":[`已保存。OMMS 现在在所有文件夹中使用此画像。`,`تم الحفظ. يستخدم OMMS هذا الملف الشخصي الآن في كل المجلدات.`],Directories:[`目录数`,`عدد المجلدات`],"No target chosen":[`尚未选择目标`,`لم يُختر مجلد مستهدف`],"Smart resolve directories":[`智能解析目录`,`حلّ المجلدات تلقائياً`],Exact:[`精确`,`مطابقة تامة`],"Name match":[`名称匹配`,`مطابقة بالاسم`],Guess:[`猜测`,`تخمين`],Confidence:[`可信度`,`درجة الثقة`],"Temporary folder":[`临时文件夹`,`مجلد مؤقت`],"node_modules folder":[`node_modules 文件夹`,`مجلد node_modules`],"App data folder":[`应用数据文件夹`,`مجلد بيانات التطبيقات`],"Skills folder":[`技能文件夹`,`مجلد المهارات`],"Rows with a target":[`已有目标的行数`,`عدد الصفوف ذات المجلد المستهدف`],"Smart resolve shows each proposed map and ignore in a dialog. Tick the ones to keep, then press Confirm. Nothing is saved before that.":[`智能解析会在对话框中列出每个建议的映射和忽略项。勾选要保留的项,然后点击确认。在此之前不会保存任何内容。`,`يعرض الحلّ التلقائي كل خريطة مقترحة وكل تجاهل مقترح في مربع حوار. حدّد ما تريد الاحتفاظ به، ثم اضغط تأكيد. لا يُحفظ شيء قبل ذلك.`],"Suggested to ignore":[`建议忽略`,`مقترح للتجاهل`],Ignore:[`忽略`,`تجاهل`],Restore:[`恢复`,`استعادة`],"No target":[`无目标`,`بلا مجلد مستهدف`],"Save this map":[`保存此映射`,`حفظ هذه الخريطة`],"Tick the maps and ignores to keep, then press Confirm to save them. Saved maps apply to every host on the next import or backfill run.":[`勾选要保留的映射和忽略项,然后点击确认保存。保存的映射将在所有主机的下一次导入或回填时生效。`,`حدّد الخرائط وعناصر التجاهل التي تريد الاحتفاظ بها، ثم اضغط تأكيد لحفظها. تسري الخرائط المحفوظة على كل المضيفات في عملية الاستيراد أو الاستكمال التالية.`],"Nothing to save. Type a target in a row, or press Ignore for folders that are not projects.":[`没有可保存的内容。请在行中输入目标,或对不是项目的文件夹点击忽略。`,`لا يوجد ما يُحفظ. اكتب مجلداً مستهدفاً في صف، أو اضغط تجاهل للمجلدات التي ليست مشاريع.`],"Ignored directories":[`已忽略的目录`,`المجلدات المتجاهَلة`],"Ignored directories stay unimported and leave the unresolved counts.":[`已忽略的目录保持未导入,并且不计入未解析数量。`,`تبقى المجلدات المتجاهَلة دون استيراد، ولا تُحسب ضمن الأعداد غير المحلولة.`],"They apply to the next import or backfill run. No sessions were imported.":[`它们将在下一次导入或回填时生效。未导入任何会话。`,`تسري في عملية الاستيراد أو الاستكمال التالية. لم تُستورد أي جلسات.`],"Keep a map after its sessions import. Every import checks the map before it skips a session, so removing a map makes its sessions unresolved again on the next run.":[`会话导入后请保留映射。每次导入在跳过会话之前都会先检查映射,因此删除映射会使其会话在下次运行时重新变为未解析。`,`احتفظ بالخريطة بعد استيراد جلساتها. يفحص كل استيراد الخريطة قبل أن يتجاوز جلسة، لذا فإن حذف الخريطة يجعل جلساتها غير محلولة مجدداً في التشغيل التالي.`],"Save removals":[`保存删除`,`حفظ عمليات الحذف`],"Settings changed elsewhere. Check the list and try again.":[`设置已在其他位置更改。请检查列表后再试。`,`تغيّرت الإعدادات في مكان آخر. راجع القائمة، ثم حاول مجدداً.`],"Settings changed elsewhere and could not be refreshed. Refresh the list, then try again.":[`设置已在其他位置更改,且无法刷新。请刷新列表后再试。`,`تغيّرت الإعدادات في مكان آخر وتعذّر تحديثها. حدّث القائمة، ثم حاول مجدداً.`],"Saved. Removed maps stop applying at the next import or backfill run.":[`已保存。删除的映射将从下一次导入或回填起不再生效。`,`تم الحفظ. تتوقف الخرائط المحذوفة عن السريان في عملية الاستيراد أو الاستكمال التالية.`],"Removals could not be saved. Try again.":[`无法保存删除。请重试。`,`تعذّر حفظ عمليات الحذف. حاول مجدداً.`],"Ignored. The directory stays unimported.":[`已忽略。该目录保持未导入。`,`تم التجاهل. يبقى المجلد دون استيراد.`],"The directory could not be ignored. Try again.":[`无法忽略该目录。请重试。`,`تعذّر تجاهل المجلد. حاول مجدداً.`],"Restored. The directory shows again in each host list that reported it.":[`已恢复。该目录会重新出现在报告它的每个主机列表中。`,`تمت الاستعادة. يظهر المجلد مجدداً في قائمة كل مضيف أبلغ عنه.`],"The directory could not be restored. Try again.":[`无法恢复该目录。请重试。`,`تعذّرت استعادة المجلد. حاول مجدداً.`],"Saved, but the list could not be refreshed. Refresh the list without saving again.":[`已保存,但无法刷新列表。请刷新列表,无需再次保存。`,`تم الحفظ، لكن تعذّر تحديث القائمة. حدّث القائمة دون الحفظ مجدداً.`],"Review directory maps":[`检查目录映射`,`مراجعة خرائط المجلدات`],"Proposed maps":[`建议映射数`,`عدد الخرائط المقترحة`],Sessions:[`会话数`,`عدد الجلسات`],Confirm:[`确认`,`تأكيد`],"Saving…":[`正在保存…`,`جارٍ الحفظ…`],"Settings refreshed. No maps were saved.":[`设置已刷新。未保存任何映射。`,`حُدّثت الإعدادات. لم تُحفظ أي خرائط.`],"Settings could not be refreshed. Try Refresh list again.":[`无法刷新设置。请再次点击刷新列表。`,`تعذّر تحديث الإعدادات. حاول تحديث القائمة مجدداً.`],"Maps could not be saved. Review the targets and confirm again.":[`无法保存映射。请检查目标后再次确认。`,`تعذّر حفظ الخرائط. راجع المجلدات المستهدفة، ثم أكّد مجدداً.`],"Settings changed elsewhere. Review these maps and confirm again.":[`设置已在其他位置更改。请检查这些映射后再次确认。`,`تغيّرت الإعدادات في مكان آخر. راجع هذه الخرائط، ثم أكّد مجدداً.`],"Settings changed elsewhere and could not be refreshed. Refresh the list before confirming again.":[`设置已在其他位置更改,且无法刷新。请刷新列表后再次确认。`,`تغيّرت الإعدادات في مكان آخر وتعذّر تحديثها. حدّث القائمة قبل التأكيد مجدداً.`],"Maps were saved, but the list could not be refreshed. Refresh the list without saving again.":[`映射已保存,但无法刷新列表。请刷新列表,无需再次保存。`,`حُفظت الخرائط، لكن تعذّر تحديث القائمة. حدّث القائمة دون الحفظ مجدداً.`],"No model was recorded for these attempts. This happens with records written by older OMMS versions, and when an attempt stops before a model is chosen.":[`这些尝试没有记录模型。旧版 OMMS 写入的记录,以及在选定模型之前就停止的尝试,会出现这种情况。`,`لم يُسجَّل نموذج لهذه المحاولات. يحدث ذلك في السجلات التي كتبتها إصدارات أقدم من OMMS، وعندما تتوقف المحاولة قبل اختيار نموذج.`],"These sessions cannot be mapped.":[`这些会话无法映射。`,`لا يمكن ربط هذه الجلسات.`],unresolved:[`未解析`,`غير محلول`],"Use this profile":[`使用此画像`,`استخدام هذا الملف الشخصي`],"Use this profile for every folder?":[`在所有文件夹中使用此画像?`,`استخدام هذا الملف الشخصي في كل المجلدات؟`],"Used for":[`用途`,`الاستخدام`],Workflows:[`工作流`,`سير العمل`],Memory:[`记忆`,`الذاكرة`],Setting:[`设置`,`الإعداد`],Value:[`数值`,`القيمة`],Default:[`默认值`,`القيمة الافتراضية`],Unit:[`单位`,`الوحدة`],Affects:[`影响`,`التأثير`],Results:[`条结果`,`نتائج`],Memories:[`条记忆`,`ذكريات`],Bytes:[`字节`,`بايت`],"Approximate tokens":[`约计令牌`,`رموز تقريبية`],"Maximum memory search results. Manual searches can request fewer; prompt retrieval uses this ceiling.":[`记忆搜索结果的最大数量。手动搜索可以请求更少;提示词检索使用此上限。`,`الحد الأقصى لنتائج بحث الذاكرة. يمكن للبحث اليدوي طلب عدد أقل؛ ويستخدم استرجاع الطلب هذا السقف.`],"Recent memories added at session start in OpenCode V1 and Claude Code. Pi and OpenCode V2 use prompt-based search instead.":[`会话开始时在 OpenCode V1 和 Claude Code 中加入的近期记忆。Pi 和 OpenCode V2 改用基于提示词的搜索。`,`الذكريات الحديثة التي تُضاف عند بدء الجلسة في OpenCode V1 و Claude Code. أما Pi و OpenCode V2 فيستخدمان البحث عبر الطلب بدلاً منها.`],"Conversation input sent to the memory-summary model through the shared capture pipeline. Smaller values can omit conversation text.":[`通过共享捕获管道发送给记忆摘要模型的对话输入。数值较小时可能省略部分对话文本。`,`مدخلات المحادثة التي تُرسل إلى نموذج تلخيص الذاكرة عبر مسار الالتقاط المشترك. القيم الأصغر قد تحذف نصاً من المحادثة.`],"OpenCode profile-learning input. Smaller values can omit prompts from that input. This control does not limit the other hosts' profile input.":[`OpenCode 画像学习的输入。数值较小时可能从该输入中省略部分提示词。此设置不限制其他主机的画像输入。`,`مدخلات تعلّم الملف الشخصي في OpenCode. القيم الأصغر قد تحذف مطالبات من هذه المدخلات. لا يقيّد هذا الإعداد مدخلات الملف الشخصي في المضيفات الأخرى.`],"Automatic memory context, including profile text and formatting, added to agent requests across all hosts. Smaller values can show fewer or shorter memories.":[`自动加入各主机代理请求的记忆上下文,包括画像文本和格式化内容。数值较小时会显示更少或更短的记忆。`,`سياق الذاكرة المُضاف تلقائياً إلى طلبات الوكيل في كل المضيفات، بما في ذلك نص الملف الشخصي والتنسيق. القيم الأصغر قد تعرض ذكريات أقل أو أقصر.`],"Enter a positive whole number.":[`请输入正整数。`,`أدخل رقماً صحيحاً موجباً.`],"Enter a whole number from 16,384 to 16,777,216.":[`请输入 16,384 到 16,777,216 之间的整数。`,`أدخل رقماً صحيحاً من 16,384 إلى 16,777,216.`],"Enter a whole number from 1,024 to 16,777,216.":[`请输入 1,024 到 16,777,216 之间的整数。`,`أدخل رقماً صحيحاً من 1,024 إلى 16,777,216.`],"Enter a whole number from 256 to 65,536.":[`请输入 256 到 65,536 之间的整数。`,`أدخل رقماً صحيحاً من 256 إلى 65,536.`],"Byte limits count UTF-8 bytes.":[`字节限制按 UTF-8 字节计数。`,`تُحتسب حدود البايت بوحدات بايت UTF-8.`],"Approximate tokens are estimated as ceil(UTF-8 bytes / 4). A provider can count more or fewer tokens for the same text.":[`约计令牌按 ceil(UTF-8 字节数 / 4) 估算。同一文本,提供商统计的令牌数可能更多或更少。`,`تُقدَّر الرموز التقريبية بالصيغة ceil(بايتات UTF-8 / 4). قد يحسب المزوّد للنص نفسه رموزاً أكثر أو أقل.`],"These controls do not delete stored data, set a spending limit, limit model replies, or control Graphify output.":[`这些设置不会删除已存储的数据、设定消费限额、限制模型回复,也不会控制 Graphify 输出。`,`لا تحذف هذه الإعدادات البيانات المخزنة، ولا تضع حد إنفاق، ولا تحدّ من ردود النموذج، ولا تتحكم في خرج Graphify.`],"Edit ~/.config/omms/omms.jsonc directly to set these limits without the web UI.":[`也可以直接编辑 ~/.config/omms/omms.jsonc 来设置这些限制,无需网页界面。`,`عدّل الملف ~/.config/omms/omms.jsonc مباشرة لضبط هذه الحدود دون واجهة الويب.`],"Save memory limits":[`保存记忆限制`,`حفظ حدود الذاكرة`],"Saved. New memory operations use these limits.":[`已保存。新的记忆操作将使用这些限制。`,`تم الحفظ. ستستخدم عمليات الذاكرة الجديدة هذه الحدود.`],"Invalid setting":[`无效的设置`,`إعداد غير صالح`],"Config changed. Reload settings and save again.":[`设置文件已更改。请重新加载设置后再次保存。`,`تغيّر ملف الإعدادات. أعد تحميل الإعدادات ثم احفظ مجدداً.`],"The memory settings could not be loaded. Reload the page to try again.":[`无法加载记忆设置。请重新加载页面重试。`,`تعذّر تحميل إعدادات الذاكرة. أعد تحميل الصفحة للمحاولة مجدداً.`],"The memory settings could not be saved.":[`无法保存记忆设置。`,`تعذّر حفظ إعدادات الذاكرة.`],"Effective value":[`生效值`,`القيمة السارية`],project:[`项目`,`المشروع`],"The project value stays in force. Saving edits the global file only.":[`项目值仍然生效。保存只修改全局文件。`,`تبقى قيمة المشروع سارية، والحفظ يعدّل الملف العام فقط.`],"Similarity score":[`相似度分数`,`درجة التشابه`],"Enter a number from 0 to 1.":[`请输入 0 到 1 之间的数字。`,`أدخل رقماً من 0 إلى 1.`],"Lowest score a memory needs to be returned by search. Lower values return more memories, including less relevant ones. Higher values can return none. The default depends on the embedder.":[`记忆被搜索返回所需的最低分数。较低的值会返回更多记忆,包括相关性较低的;较高的值可能一条也不返回。默认值取决于嵌入模型。`,`أدنى درجة تحتاجها الذاكرة لتُعاد في نتائج البحث. القيم الأدنى تعيد ذكريات أكثر بمن فيها الأقل صلة، والقيم الأعلى قد لا تعيد شيئاً. تعتمد القيمة الافتراضية على نموذج التضمين.`],"Reset to default":[`恢复默认`,`إعادة إلى الافتراضي`],"Differs from default":[`与默认值不同`,`يختلف عن الافتراضي`],"Keyword matching":[`关键词匹配`,`مطابقة الكلمات`],"Search finds memories by meaning and by exact words from your prompt.":[`搜索按含义和提示中的确切词语查找记忆。`,`يجد البحث الذكريات بالمعنى وبالكلمات الدقيقة من مطالبتك.`],"Word matching mode":[`词语匹配模式`,`وضع مطابقة الكلمات`],"Boost (default)":[`加分(默认)`,`تعزيز (افتراضي)`],"Rank fusion (experimental)":[`排名融合(实验性)`,`دمج الترتيب (تجريبي)`],"Boost adds a small score bonus to memories that contain a word of your prompt.":[`加分会给包含提示中某个词的记忆增加少量分数。`,`يضيف التعزيز مكافأة صغيرة في الدرجة للذكريات التي تحتوي على كلمة من مطالبتك.`],"Rank fusion merges a list by meaning and a list by words. A memory that contains a word of your prompt can be returned even when its meaning score is below the similarity threshold. Experimental: it has not been shown to find more relevant memories.":[`排名融合会合并按含义排序的列表和按词语排序的列表。即使含义得分低于相似度阈值,包含提示中某个词的记忆也可能被返回。实验性:尚未证明能找到更多相关记忆。`,`يدمج دمج الترتيب قائمة بالمعنى وقائمة بالكلمات. قد تُعاد ذاكرة تحتوي على كلمة من مطالبتك حتى لو كانت درجة المعنى أقل من حد التشابه. تجريبي: لم يثبت أنه يجد ذكريات أكثر صلة.`],"Rank fusion is not used while the reranker is on. Search uses the boost.":[`重排序器开启时不使用排名融合,搜索使用加分模式。`,`لا يُستخدم دمج الترتيب أثناء تشغيل معيد الترتيب. يستخدم البحث التعزيز.`],"A project file can override this setting. This page edits the global value.":[`项目文件可以覆盖此设置。此页面编辑全局值。`,`يمكن لملف المشروع تجاوز هذا الإعداد. تعدّل هذه الصفحة القيمة العامة.`],"Saved. New searches use this mode.":[`已保存。新的搜索将使用此模式。`,`تم الحفظ. تستخدم عمليات البحث الجديدة هذا الوضع.`],"The keyword matching setting could not be saved. Reload the page to try again.":[`无法保存关键词匹配设置。请重新加载页面后重试。`,`تعذّر حفظ إعداد مطابقة الكلمات. أعد تحميل الصفحة للمحاولة مرة أخرى.`],"The keyword matching setting could not be loaded. Reload the page to try again.":[`无法加载关键词匹配设置。请重新加载页面后重试。`,`تعذّر تحميل إعداد مطابقة الكلمات. أعد تحميل الصفحة للمحاولة مرة أخرى.`],Reranker:[`重排序器`,`إعادة الترتيب`],"Use a reranker":[`使用重排序器`,`استخدم معيد الترتيب`],Key:[`密钥`,`المفتاح`],Timeout:[`超时`,`مهلة الانتهاء`],"Search is unchanged while the switch is off.":[`开关关闭时,搜索行为保持不变。`,`يظل البحث دون تغيير أثناء إيقاف المفتاح.`],"The reranker reorders the best memory search results with your reranker server and keeps the top results.":[`重排序器使用您的重排序服务器对最佳记忆搜索结果重新排序,并保留最靠前的结果。`,`يعيد معيد الترتيب ترتيب أفضل نتائج بحث الذاكرة عبر خادم إعادة الترتيب لديك ويحتفظ بالنتائج العليا.`],"The reranker sends the prompt and the text of candidate memories to the server URL. A server on the same machine is recommended.":[`重排序器会将提示和候选记忆的文本发送到该服务器 URL。建议使用同一台机器上的服务器。`,`يرسل معيد الترتيب المطالبة ونص الذكريات المرشحة إلى عنوان URL للخادم. يُنصح بخادم على الجهاز نفسه.`],"This URL is not on this machine: memory text leaves this machine.":[`此 URL 不在本机上:记忆文本将离开本机。`,`هذا العنوان ليس على هذا الجهاز: نص الذاكرة يغادر جهازك.`],"A project file cannot change these settings. The reranker settings are global only.":[`项目文件无法更改这些设置。重排序器设置仅限全局。`,`لا يمكن لملف المشروع تغيير هذه الإعدادات. إعدادات معيد الترتيب عامة فقط.`],"The default of 4000 keeps the search inside OpenCode V2's 5-second wait. A value over 5000 can make OpenCode V2 send the request with no memory.":[`默认值 4000 使搜索保持在 OpenCode V2 的 5 秒等待之内。超过 5000 的值可能导致 OpenCode V2 在不注入记忆的情况下发送请求。`,`تحافظ القيمة الافتراضية 4000 على بقاء البحث داخل مهلة انتظار OpenCode V2 البالغة 5 ثوانٍ. القيمة الأعلى من 5000 قد تجعل OpenCode V2 يرسل الطلب دون ذاكرة.`],"Enter the server URL and model before turning the reranker on.":[`打开重排序器前,请先填写服务器 URL 和模型。`,`أدخل عنوان URL للخادم والنموذج قبل تشغيل معيد الترتيب.`],"The key must be an env:// or file:// reference, or left empty.":[`密钥必须是 env:// 或 file:// 引用,或留空。`,`يجب أن يكون المفتاح مرجع env:// أو file://، أو يُترك فارغاً.`],"Enter a whole number from 500 to 30,000.":[`请输入 500 到 30,000 之间的整数。`,`أدخل رقماً صحيحاً من 500 إلى 30,000.`],"Optional env:// or file:// key reference.":[`可选的 env:// 或 file:// 密钥引用。`,`مرجع مفتاح env:// أو file:// اختياري.`],milliseconds:[`毫秒`,`ميلي ثانية`],Save:[`保存`,`حفظ`],"Saved. New searches use these settings.":[`已保存。新的搜索将使用这些设置。`,`تم الحفظ. ستستخدم عمليات البحث الجديدة هذه الإعدادات.`],"The reranker settings could not be saved. Reload the page to try again.":[`无法保存重排序器设置。请重新加载页面重试。`,`تعذّر حفظ إعدادات معيد الترتيب. أعد تحميل الصفحة للمحاولة مجدداً.`],"The reranker settings could not be loaded. Reload the page to try again.":[`无法加载重排序器设置。请重新加载页面重试。`,`تعذّر تحميل إعدادات معيد الترتيب. أعد تحميل الصفحة للمحاولة مجدداً.`],"Test passed.":[`测试通过。`,`نجح الاختبار.`],"Test failed:":[`测试失败:`,`فشل الاختبار:`],"Change icon":[`更换图标`,`تغيير الأيقونة`],"Check again":[`再次检查`,`تحقق مرة أخرى`],"Choose a host to see its history import, sessions and settings.":[`选择一个宿主,查看其历史导入、会话和设置。`,`اختر مضيفاً لعرض استيراد سجله وجلساته وإعداداته.`],"Choose icon":[`选择图标`,`اختر أيقونة`],"Every avatar is shown at the same size. Images are cropped to a square.":[`所有头像大小一致。图片会被裁剪为正方形。`,`تظهر كل الصور الرمزية بالحجم نفسه. تُقصّ الصور إلى مربع.`],"Every host":[`所有宿主`,`كل المضيفين`],"Fix the service named here, then press Check again.":[`请修复此处所列的服务,然后点击“再次检查”。`,`أصلح الخدمة المذكورة هنا، ثم اضغط «تحقق مرة أخرى».`],"How many memories a search returns":[`一次搜索返回多少条记忆`,`عدد الذكريات التي يعيدها البحث`],"How to set up":[`如何设置`,`كيفية الإعداد`],"Ignore all":[`全部忽略`,`تجاهل الكل`],"Import all hosts":[`导入所有宿主`,`استيراد كل المضيفين`],"Import progress":[`导入进度`,`تقدم الاستيراد`],"Running · history imported {date}":[`运行中 · 历史已导入 {date}`,`قيد التشغيل · استُورد السجل {date}`],"Running · history imported {date} · last saved {when}":[`运行中 · 历史已导入 {date} · 上次保存 {when}`,`قيد التشغيل · استُورد السجل {date} · آخر حفظ {when}`],"Running · last saved {when}":[`运行中 · 上次保存 {when}`,`قيد التشغيل · آخر حفظ {when}`],"today {time}":[`今天 {time}`,`اليوم {time}`],"yesterday {time}":[`昨天 {time}`,`أمس {time}`],"Importing makes model calls and can cost money.":[`导入会调用模型,可能产生费用。`,`يجري الاستيراد اتصالات بالنموذج وقد يكلّف مالاً.`],"Importing · {percent}%":[`正在导入 · {percent}%`,`جارٍ الاستيراد · {percent}%`],"Memories are not being saved.":[`记忆当前无法保存。`,`لا يتم حفظ الذكريات حالياً.`],"Memories not saved":[`记忆未保存`,`الذكريات غير محفوظة`],"Memory views":[`记忆视图`,`عروض الذاكرة`],"Mode: {mode}":[`模式:{mode}`,`الوضع: {mode}`],"No icon matches.":[`没有匹配的图标。`,`لا توجد أيقونة مطابقة.`],"Not set up":[`未设置`,`غير مُعد`],"Automatic import is on. Nothing was waiting before {date}. Use Sessions below for newer chats.":[`自动导入已开启。在 {date} 之前没有待导入的内容。更新的聊天请使用下方的“会话”。`,`الاستيراد التلقائي قيد التشغيل. لم يكن هناك ما ينتظر قبل {date}. استخدم «الجلسات» أدناه للمحادثات الأحدث.`],"Automatic import is on. Nothing is waiting.":[`自动导入已开启。没有待导入的内容。`,`الاستيراد التلقائي قيد التشغيل. لا يوجد ما ينتظر.`],"OMMS did not find this host's chat history on this computer. Install the host and use it once, then reload this page.":[`OMMS 在这台电脑上没有找到该宿主的聊天记录。请安装该宿主并使用一次,然后重新加载此页面。`,`لم يعثر OMMS على سجل محادثات هذا المضيف على هذا الحاسوب. ثبّت المضيف واستخدمه مرة واحدة، ثم أعد تحميل هذه الصفحة.`],Off:[`关`,`متوقف`],On:[`开`,`قيد التشغيل`],"On · {model}":[`开 · {model}`,`قيد التشغيل · {model}`],"PNG, JPEG, WebP or GIF, up to 20 MB.":[`PNG、JPEG、WebP 或 GIF,最大 20 MB。`,`PNG أو JPEG أو WebP أو GIF، حتى 20 ميغابايت.`],"Paused · {pending} pending":[`已暂停 · 待处理 {pending}`,`متوقف مؤقتاً · {pending} قيد الانتظار`],"Paused. Resume to continue.":[`已暂停。点击“恢复”继续。`,`متوقف مؤقتاً. اضغط «استئناف» للمتابعة.`],"Prompts waiting for profile learning, and re-analysis of old chats":[`等待画像学习的提示,以及旧聊天的重新分析`,`مطالبات تنتظر تعلم الملف الشخصي، وإعادة تحليل المحادثات القديمة`],"Results {results} · Similarity {similarity}":[`结果数 {results} · 相似度 {similarity}`,`النتائج {results} · التشابه {similarity}`],"Runs one import for every host you tick. It makes model calls and can cost money.":[`对勾选的每个宿主运行一次导入。它会调用模型,可能产生费用。`,`يشغّل استيراداً واحداً لكل مضيف تحدده. يجري اتصالات بالنموذج وقد يكلّف مالاً.`],"Saved maps and ignored directories":[`已保存的映射和已忽略的目录`,`الخرائط المحفوظة والمجلدات المتجاهلة`],"Search icons":[`搜索图标`,`ابحث عن أيقونة`],"Settings for every host":[`适用于所有宿主的设置`,`إعدادات لكل المضيفين`],Shared:[`共享`,`مشترك`],"Stopped · {pending} pending":[`已停止 · 待处理 {pending}`,`متوقف · {pending} قيد الانتظار`],"Stopped: {error}":[`已停止:{error}`,`توقف: {error}`],"These directories stay unimported and leave the unresolved counts.":[`这些目录保持未导入状态,并从未解析计数中移除。`,`تبقى هذه المجلدات غير مستوردة وتخرج من أعداد غير المحلولة.`],"These settings apply to every host. Open a row to change it.":[`这些设置适用于所有宿主。展开一行即可修改。`,`تنطبق هذه الإعدادات على كل المضيفين. افتح صفاً لتغييره.`],"This browser could not read the image.":[`此浏览器无法读取该图片。`,`تعذّر على هذا المتصفح قراءة الصورة.`],"This host is not set up on this machine.":[`此宿主尚未在这台机器上设置。`,`لم يتم إعداد هذا المضيف على هذا الجهاز.`],"This switch applies to every host. Automatic import makes model calls.":[`此开关适用于所有宿主。自动导入会调用模型。`,`ينطبق هذا المفتاح على كل المضيفين. يجري الاستيراد التلقائي اتصالات بالنموذج.`],"Upload image":[`上传图片`,`رفع صورة`],"Use external API":[`使用外部 API`,`استخدام واجهة API الخارجية`],settings:[`设置`,`الإعدادات`],"{saved} saved · {ignored} ignored":[`已保存 {saved} · 已忽略 {ignored}`,`{saved} محفوظة · {ignored} متجاهلة`],"The image is larger than 20 MB.":[`图片超过 20 MB。`,`الصورة أكبر من 20 ميغابايت.`],"Only PNG, JPEG, WebP and GIF images are accepted.":[`仅接受 PNG、JPEG、WebP 和 GIF 图片。`,`تُقبل صور PNG وJPEG وWebP وGIF فقط.`],"Importing {done} / {total}.":[`正在导入 {done} / {total}。`,`جارٍ الاستيراد {done} / {total}.`],"Importing {done} / {total}. About {minutes} min left.":[`正在导入 {done} / {total}。约剩 {minutes} 分钟。`,`جارٍ الاستيراد {done} / {total}. يتبقى نحو {minutes} دقيقة.`],"Nothing is waiting to import.":[`没有待导入的内容。`,`لا يوجد ما ينتظر الاستيراد.`],"{pending} still waiting to import.":[`仍有 {pending} 条待导入。`,`لا يزال {pending} بانتظار الاستيراد.`]};function Qv(e,t){return t===`en`?e:Zv[e]?.[t===`zh`?0:1]??e}function Y(){let{language:e}=G();return t=>Qv(t,e)}function $v(e){try{return localStorage.getItem(e)!==`0`}catch{return!0}}function ey(e,t){try{localStorage.setItem(e,t?`1`:`0`)}catch{}}function ty({storageKey:e,sections:t,back:n}){let r=Y(),[i,a]=(0,v.useState)(()=>$v(e)),o=()=>a(t=>(ey(e,!t),!t)),s=e=>t=>{t.preventDefault();let n=document.getElementById(e);n&&(n.scrollIntoView(af),of(n))};return(0,H.jsxs)(`div`,{className:`fixed top-16 end-3 z-20 flex flex-col items-end gap-1 md:top-3`,children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-expanded":i,"aria-controls":`${e}-nav`,"aria-label":r(i?`Hide contents`:`Show contents`),onClick:o,className:`bg-card/95 shadow-sm backdrop-blur`,children:(0,H.jsx)(qe,{className:`size-4`,"aria-hidden":`true`})}),i?(0,H.jsx)(`nav`,{id:`${e}-nav`,"aria-label":r(`Contents`),className:`max-h-[70vh] w-48 max-w-full overflow-y-auto rounded-xl border border-border bg-card/95 px-2 py-1.5 shadow-sm backdrop-blur`,children:(0,H.jsxs)(`ul`,{children:[n?(0,H.jsx)(`li`,{className:`mb-1 border-b border-border pb-1`,children:(0,H.jsxs)(`button`,{type:`button`,onClick:n.onBack,className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-start text-sm hover:bg-interactive-hover`,children:[(0,H.jsx)(N,{className:`rtl:-scale-x-100 size-3.5 shrink-0`,"aria-hidden":`true`}),n.label]})}):null,t.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`#${e.id}`,onClick:s(e.id),className:`block rounded-lg px-2 py-1.5 text-start text-sm hover:bg-interactive-hover`,children:r(e.title)})},e.id))]})}):null]})}var ny=class extends Error{status;constructor(e,t){super(e),this.name=`SettingsRequestError`,this.status=t}};async function X(e,t={}){let n=(t.method??`GET`).toUpperCase(),r=n!==`GET`&&n!==`HEAD`,i=await fetch(e,{...t,headers:{"x-omms-token":window.__OMMS_TOKEN__??``,...r||t.body?{"Content-Type":`application/json`}:{},...t.headers}}),a=await i.json();if(!i.ok)throw new ny(a.error??`Request failed (${i.status})`,i.status);return a}var ry=new Set,iy=0;function ay(e){iy++;for(let t of ry)t(e)}function oy(){let e=iy;return{isCurrent:()=>iy===e}}async function sy(){try{let e=await X(`/api/settings`);return ay(e),e}catch{return null}}function cy(e){return ry.add(e),()=>{ry.delete(e)}}function ly(e,t){return`${e.replace(/\.+$/,``)}. ${t}`}function uy(){let e=0;return{begin(){let t=++e;return()=>t===e}}}async function dy(e,t){e(!0);try{return await t()}finally{e(!1)}}function fy(e,t){if(e===`env`){let n=(t.name??``).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n))throw Error(`Enter a variable name such as ZAI_API_KEY`);return{source:e,name:n}}if(e===`file`){let n=(t.path??``).trim();if(!n)throw Error(`Enter the path of a key file`);return{source:e,path:n}}let n=(t.name??``).trim()||`memory-api`;if(!/^[A-Za-z0-9_-]{1,64}$/.test(n))throw Error(`Name the key file with letters, digits, dashes, or underscores`);if(!(t.value??``).trim())throw Error(`Paste the key`);return{source:e,name:n,value:t.value??``,replace:t.replace===!0}}function py(e){let t=[],n=e.memoryProvider===`orcarouter`;return!n&&!e.memoryModel&&t.push(`memoryModel`),!n&&!e.memoryApiUrl&&t.push(`memoryApiUrl`),e.keySet||t.push(`memoryApiKey`),t}function my(e,t){if(t===`inherit`||t===`external`)return{[`${e}Model`]:t};let n=t.indexOf(`/`);if(n<1||n===t.length-1)throw Error(`Enter a model as provider/model.`);return{[`${e}Provider`]:t.slice(0,n),[`${e}Model`]:t.slice(n+1)}}function hy(e){return{kind:e.relation,command:e.relation===`older`?`npm i -g om-memory-system@latest`:null}}function gy(e,t){return e.filter(e=>!t.has(e.from))}function _y({status:e}){let t=Y();return(0,H.jsxs)(`div`,{className:`space-y-1 rounded-lg border border-border p-3`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:Yd(`claude-code`)}),e?.ready===!0&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`Claude Code capture uses the external API.`)}),e?.ready===!1&&(0,H.jsxs)(`div`,{role:`alert`,className:`space-y-1 text-xs`,children:[(0,H.jsx)(`p`,{className:`text-amber-600`,children:t(`Claude Code capture is off. Complete the external API settings.`)}),(e.issues??[]).length>0&&(0,H.jsxs)(`p`,{children:[t(`Missing settings`),`: `,(e.issues??[]).map(e=>t(e)).join(`; `)]})]})]})}function vy(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(t=>{e&&o(t.message)});for(let t of[`opencode`,`pi`])X(`/api/settings/models?host=${t}`).then(n=>{e&&i(e=>({...e,[t]:n}))}).catch(()=>{e&&i(e=>({...e,[t]:{available:!1}}))});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);async function l(n,r){if(!t)return;let i;try{i=my(n,r)}catch(t){o(e(t.message));return}c(!0);let a,s;try{a=await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:i,revision:t.revision})})}catch(e){s=e}let l=await sy()!==null;if(c(!1),a){let t=e(a.migratedLegacy?`Saved. OMMS now reads ~/.config/omms/omms.jsonc. The legacy config was kept.`:`Saved. New capture and profile work uses these settings.`);o(l?t:`${t} ${e(`Reload the page before saving again.`)}`)}else o(ly(s?.message??``,e(l?`Current settings were reloaded; check the values and save again.`:`The current settings could not be reloaded. Reload the page.`)))}let u=py({memoryProvider:t?.settings.memoryProvider?.globalValue,memoryModel:t?.settings.memoryModel?.globalValue,memoryApiUrl:t?.settings.memoryApiUrl?.globalValue,keySet:!!t?.secrets.memoryApiKey?.set});return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Models`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Models`)}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[e(`External API fallback`),`: `,t?.fallback.model??e(`none`),` (`,e(t?.fallback.configured?`ready`:`not ready`),`).`]}),[`opencode`,`pi`].map(e=>(0,H.jsx)(yy,{host:e,model:t?.settings[`${e}Model`],provider:t?.settings[`${e}Provider`],effective:e===`pi`?t?.effective.pi.kind:t?.effective.opencode.mode??`unready`,list:r[e],externalMissing:u,busy:s||!t,onSave:t=>l(e,t)},e)),(0,H.jsx)(_y,{status:t?.effective[`claude-code`]}),a&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:a})]})}function yy({host:e,model:t,provider:n,effective:r,list:i,externalMissing:a,busy:o,onSave:s}){let c=Y(),l=t?.globalValue===`inherit`||!t?.globalValue?`inherit`:t.globalValue===`external`?`external`:`${n?.globalValue??``}/${t.globalValue}`,[u,d]=(0,v.useState)(),[f,p]=(0,v.useState)(),[m,h]=(0,v.useState)(),g=u??(l===`inherit`||l===`external`?l:`manual`),_=i?.models??[],y=l===`inherit`||l===`external`?``:l,b=m||y||(_[0]?`${_[0].provider}/${_[0].model}`:`typed`),x=!_.some(e=>`${e.provider}/${e.model}`===b),S=f??y;return(0,H.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-border p-3`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:Yd(e)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[c(`Effective model`),`:`,` `,t?.value===`external`&&r===`manual`?c(`external API`):t?.value===`inherit`||r===`session`?c(`session`):r===`manual`?c(`external API`):r===`unready`?c(`unavailable`):`${n?.value??``}/${t?.value??``}`]}),(t?.source===`project`||n?.source===`project`)&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:c(`Project override is active. Changes to the global file may not take effect here.`)}),(0,H.jsx)(`label`,{className:`block text-sm`,htmlFor:`${e}-model`,children:c(`Model choice`)}),(0,H.jsxs)(Dr,{id:`${e}-model`,className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,value:g,onChange:e=>d(e.target.value),children:[(0,H.jsx)(`option`,{value:`inherit`,children:c(`Session model`)}),(0,H.jsx)(`option`,{value:`manual`,children:c(`Manual model`)}),(0,H.jsx)(`option`,{value:`external`,disabled:a.length>0,children:c(`External API`)})]}),a.length>0&&(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[c(`External API needs`),`: `,a.join(`, `)]}),g===`manual`&&i?.available&&_.length>0&&(0,H.jsxs)(Dr,{className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,"aria-label":`${Yd(e)} ${c(`Model`)}`,value:x?`typed`:b,onChange:e=>h(e.target.value),children:[_.map(e=>(0,H.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.name,` (`,e.provider,`/`,e.model,`)`]},`${e.provider}/${e.model}`)),(0,H.jsx)(`option`,{value:`typed`,children:c(`Manual provider/model`)})]}),g===`manual`&&x&&(0,H.jsx)(`input`,{className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,"aria-label":`${e} ${c(`Manual provider/model`)}`,placeholder:`provider/model`,value:S,onChange:e=>{p(e.target.value),h(`typed`)}}),g===`manual`&&i&&!i.available&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i.reason?c(i.reason):c(`Model list unavailable. Enter provider/model manually.`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded-lg border border-border px-3 py-1.5 text-sm`,disabled:o,onClick:()=>s(g===`manual`?x?S.trim():b:g),children:c(`Save model`)})]})}var by=[`openai-chat`,`openai-responses`,`anthropic`,`minimax`,`orcarouter`,`google-gemini`];function xy(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(`file`),[s,c]=(0,v.useState)({name:``,path:``,value:``}),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(t=>{e&&u(t.message)});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);let p=e=>String(t?.settings[e]?.globalValue??``),m=e=>r[e]??p(e);async function h(){if(!t)return;let n={};for(let e of[`memoryProvider`,`memoryApiUrl`,`memoryModel`]){let t=m(e).trim();t&&t!==p(e)&&(n[e]=t)}if(!Object.keys(n).length){u(e(`Nothing to save.`));return}f(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:n,revision:t.revision})}),i({}),u(e(`Saved. New capture and profile work uses these settings.`))}catch(e){u(e.message)}await sy(),f(!1)}async function g(n=!1){if(!t)return;let r;try{r=fy(a,{...s,replace:n})}catch(t){u(e(t.message));return}f(!0);try{await X(`/api/settings/external-api/key`,{method:`POST`,body:JSON.stringify({...r,revision:t.revision})}),c(e=>({...e,value:``})),u(e(`Key source saved.`))}catch(t){let r=t.message;if(a===`paste`&&!n&&r.includes(`Confirm to replace`)){f(!1),window.confirm(e(`A key file with this name exists. Replace it?`))&&await g(!0);return}u(r)}await sy(),f(!1)}async function _(){f(!0);try{let t=await X(`/api/settings/external-api/test`,{method:`POST`,body:`{}`});u(t.ok?`${e(`Test call succeeded`)}: ${t.model??``}`:`${e(`Test call failed`)}: ${t.error??``}`)}catch(e){u(e.message)}f(!1)}let y=t?.externalKey;return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`External API`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`External API`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`An OpenAI- or Anthropic-compatible endpoint that either host can use for capture and backfill.`)}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[e(`Provider`),(0,H.jsx)(`div`,{className:Er,children:(0,H.jsx)(Dr,{"aria-label":e(`Provider`),className:`mt-1 block w-full rounded border border-border bg-background p-2`,value:m(`memoryProvider`)||`openai-chat`,onChange:e=>i({...r,memoryProvider:e.target.value}),children:by.map(e=>(0,H.jsx)(`option`,{value:e,children:e},e))})})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[e(`API URL`),(0,H.jsx)(`input`,{dir:`ltr`,className:`mt-1 block w-full rounded border border-border bg-background p-2 font-mono`,placeholder:`https://api.example.com/v1`,value:m(`memoryApiUrl`),onChange:e=>i({...r,memoryApiUrl:e.target.value})})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[e(`Model`),(0,H.jsx)(`input`,{dir:`ltr`,className:`mt-1 block w-full rounded border border-border bg-background p-2 font-mono`,placeholder:`glm-5-turbo`,value:m(`memoryModel`),onChange:e=>i({...r,memoryModel:e.target.value})})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:d||!t,onClick:()=>void h(),children:e(`Save endpoint`)}),(0,H.jsxs)(`fieldset`,{className:`space-y-2 rounded-lg border border-border p-3 text-sm`,children:[(0,H.jsx)(`legend`,{className:`px-1 font-medium`,children:e(`API key`)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e(`Key source`),`:`,` `,y?.source===`env`?`${e(`environment variable`)} ${y.reference}`:y?.source===`file`?`${e(`key file`)} ${y.reference}`:y?.source===`literal`?e(`set in the config file`):e(`not set`),y?.source&&` · ${e(y.resolvesInWebApp?`resolves in the web app`:`does not resolve in the web app`)}`]}),y?.source===`env`&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`A login web app does not see variables set only in a shell profile; a key file works everywhere.`)}),y?.source&&!y.resolvesInWebApp&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`The key does not resolve in this web app. Save it to a key file instead.`)}),[[`env`,`Environment variable`],[`file`,`Key file`],[`paste`,`Save key to a private file`]].map(([t,n])=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`radio`,name:`omms-key-source`,checked:a===t,onChange:()=>o(t)}),e(n)]},t)),a===`env`&&(0,H.jsx)(`input`,{"aria-label":e(`Variable name`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`ZAI_API_KEY`,value:s.name,onChange:e=>c({...s,name:e.target.value})}),a===`file`&&(0,H.jsx)(`input`,{"aria-label":e(`Key file path`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`~/.config/omms/secrets/zai.key`,value:s.path,onChange:e=>c({...s,path:e.target.value})}),a===`paste`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`input`,{"aria-label":e(`Key file name`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`memory-api`,value:s.name,onChange:e=>c({...s,name:e.target.value})}),(0,H.jsx)(`input`,{"aria-label":e(`API key`),type:`password`,autoComplete:`off`,className:`w-full rounded border border-border bg-background p-2`,value:s.value,onChange:e=>c({...s,value:e.target.value})}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The key is written to ~/.config/omms/secrets/ readable only by you. It is never shown again.`)})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:d||!t,onClick:()=>void g(),children:e(`Save key source`)})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:d,onClick:()=>void _(),children:e(`Test`)}),l&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:l})]})}var Sy=new Set([`localhost`,`127.0.0.1`,`::1`,`[::1]`,`0:0:0:0:0:0:0:1`]);function Cy(e){let t=e.trim().toLowerCase();return Sy.has(t)||/^127(?:\.\d{1,3}){3}$/.test(t)}function wy(e){try{return Cy(new URL(e).hostname)}catch{return!1}}function Ty(e,t){return e?`set`:t?`missing`:`not-needed`}function Ey(e){let{access:t,secrets:n}=e,r=t.embeddingApiUrl;return{memoryApiKey:(e=>e===`not-needed`?`never-used`:e)(Ty(!!n.memoryApiKey?.set,e.externalUsed||e.claudeCodeInUse)),embeddingApiKey:Ty(!!n.embeddingApiKey?.set,!!r&&!wy(r)),apiTokens:Ty(t.tokenAvailable,!Cy(t.host)&&!t.authEnabled),webPassword:Ty(!!n.webServerAuthPassword?.set,!1)}}function Dy(e){return e?`Browser password cleared. Restart the web app to turn it off.`:`Saved. Restart the web app to use the new browser password.`}var Oy=[{id:`ollama`,label:`Ollama`,url:`http://localhost:11434/v1`},{id:`llamacpp`,label:`llama.cpp`,url:`http://localhost:8080/v1`},{id:`openrouter`,label:`OpenRouter`,url:`https://openrouter.ai/api/v1`},{id:`openai`,label:`OpenAI`,url:`https://api.openai.com/v1`},{id:`custom`,label:`Custom`,url:``}];function ky(e,t){let n=Oy.find(t=>t.id===e);return n&&n.url?n.url:t}function Ay(e){if(e.kind===`builtin`)return{kind:`builtin`,model:e.model.trim()};let t=e.key===`none`||e.key===`saved`?{source:e.key}:fy(e.key,{...e.keyInput,name:e.keyInput.name||`embedding-api`});return{kind:`server`,url:e.url.trim(),model:e.model.trim(),key:t}}function jy(e){return JSON.stringify([e.kind,e.kind===`server`?e.url.trim():``,e.model.trim(),e.kind===`server`?e.key:`none`,e.kind===`server`?e.keyInput:null])}function My(e,t){return e!==void 0&&e===jy(t)}function Ny(e,t){let n=t.kind===`server`&&!wy(t.url);return{count:e.toLocaleString(`en-US`),risks:[...n?[`The hosted server is called once for each memory, which may cost money.`]:[],`Search results are poor until the re-embed ends.`,`Restart open OpenCode and Pi sessions after the change.`]}}var Py=`Xenova/nomic-embed-text-v1`;function Fy(e,t=Py){return e===`builtin`?{kind:e,model:t}:{kind:e}}function Iy(e,t){return e===`server`&&t?`saved`:`none`}function Ly({current:e,keySet:t}){let n=Y();return(0,H.jsxs)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-sm`,children:[(0,H.jsx)(`dt`,{children:n(`Kind`)}),(0,H.jsx)(`dd`,{children:n(e.kind===`server`?`OpenAI-compatible server`:`Built-in model`)}),e.url&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`Server URL`)}),(0,H.jsx)(`dd`,{className:`break-all`,children:e.url})]}),(0,H.jsx)(`dt`,{children:n(`Model`)}),(0,H.jsx)(`dd`,{className:`break-all`,children:e.model}),(0,H.jsx)(`dt`,{children:n(`Vector size`)}),(0,H.jsx)(`dd`,{children:e.dimensions}),(0,H.jsx)(`dt`,{children:n(`API key`)}),(0,H.jsx)(`dd`,{children:n(t?`set`:`not set`)}),(0,H.jsx)(`dt`,{children:n(`Stored memories`)}),(0,H.jsx)(`dd`,{children:e.memoryCount.toLocaleString(`en-US`)})]})}function Ry({run:e,onRetry:t}){let n=Y();return e.state===`idle`?null:(0,H.jsxs)(`div`,{role:`status`,className:`space-y-1 text-sm`,children:[e.state===`running`&&(0,H.jsxs)(`p`,{children:[n(`Re-embedding`),`: `,e.progress.processed,`/`,e.progress.total]}),e.state===`done`&&(0,H.jsx)(`p`,{children:n(`Re-embed finished.`)}),e.state===`failed`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`p`,{className:`text-red-600`,children:[n(`Re-embed failed`),`: `,e.error??``]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,onClick:t,children:n(`Retry`)})]})]})}function zy(e,t){return{kind:e.kind,url:e.url??``,model:e.model,key:Iy(e.kind,t),keyInput:{name:``,path:``,value:``}}}function By(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(),[d,f]=(0,v.useState)(),[p,m]=(0,v.useState)({state:`idle`,progress:{processed:0,total:0}}),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(!1);async function b(){let e=await X(`/api/settings/embedding`);return n(e),m(e.run),e}(0,v.useEffect)(()=>{let e=!0,t=oy();b().catch(t=>e&&g(t.message)),X(`/api/settings`).then(n=>e&&t.isCurrent()&&i(n)).catch(()=>{}),X(`/api/web/status`).then(t=>e&&o(!!t.isLocal)).catch(()=>{});let n=cy(t=>e&&i(t));return()=>{e=!1,n()}},[]),(0,v.useEffect)(()=>{if(p.state!==`running`)return;let e=setInterval(()=>{X(`/api/settings/embedding/run`).then(e=>{m(e),e.state!==`running`&&b()}).catch(()=>{})},1e3);return()=>clearInterval(e)},[p.state]);function x(){if(s||!t){c(!1),u(void 0),f(void 0);return}u(zy(t,!!r?.secrets.embeddingApiKey?.set)),c(!0)}let S=e=>u(t=>t&&{...t,...e});async function C(){l&&await dy(y,async()=>{try{let t=await X(`/api/settings/embedding/test`,{method:`POST`,body:JSON.stringify(Ay(l))});t.ok&&t.dimensions?(f({key:jy(l),dimensions:t.dimensions}),g(`${e(`Test passed. Vector size`)}: ${t.dimensions}`)):(f(void 0),g(`${e(`Test failed`)}: ${t.reason??``}`))}catch(t){g(e(t.message))}})}async function w(){if(!l||!t||!r)return;let{count:n,risks:i}=Ny(t.memoryCount,l),a=[`${e(`Every stored memory will be re-embedded`)}: ${n}`,...i.map(t=>e(t))].join(`
123
+ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Qg(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function m_(e,t){return p_.parse(e,t)}m_.options=m_.setOptions=function(e){return p_.setOptions(e),m_.defaults=p_.defaults,Nh(m_.defaults),m_},m_.getDefaults=jh,m_.defaults=Mh;function h_(...e){return p_.use(...e),m_.defaults=p_.defaults,Nh(m_.defaults),m_}m_.use=h_,m_.walkTokens=function(e,t){return p_.walkTokens(e,t)},m_.parseInline=p_.parseInline,m_.Parser=d_,m_.parser=d_.parse,m_.Renderer=l_,m_.TextRenderer=u_,m_.Lexer=c_,m_.lexer=c_.lex,m_.Tokenizer=s_,m_.Hooks=f_,m_.parse=m_,m_.options,m_.setOptions,m_.walkTokens,m_.parseInline,d_.parse,c_.lex,m_.setOptions({gfm:!0,breaks:!0});function g_(e){let t=m_.parse(e,{async:!1});return Ah.sanitize(t)}var __=320,v_=240;function y_(e){if(e.projectPath){let t=e.projectPath.replace(/\\/g,`/`).split(`/`).filter(e=>e);return t[t.length-1]||e.projectPath}return e.displayName||e.id}function b_(e){return{createdDate:Qp(e.createdAt),updatedDate:e.updatedAt&&e.updatedAt!==e.createdAt?Qp(e.updatedAt):null}}function x_(e,t){return e.similarity===void 0?null:t?`${Math.round(e.similarity*100)}%`:`${e.similarity}%`}function S_({variant:e,item:t,memory:n,prompt:r,selected:i=!1,onSelect:a,onPin:o,onUnpin:s,onEdit:c,onDeleteMemory:l,onDeletePrompt:u,activeKeyword:d,onKeywordClick:f}){let{t:p}=G();if(e===`pair`&&n&&r){let e=n.isPinned||!1,t=b_(n),u=x_(n,!0);return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-3 space-y-3 ${i?`ring-1 ring-input`:``} ${e?`border-primary/40`:``}`,"data-id":n.id,children:[(0,H.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-border bg-muted p-3`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:p(`badge-prompt`)}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Qp(r.createdAt)})]}),(0,H.jsx)(Rp,{maxHeight:v_,fade:`var(--muted)`,children:(0,H.jsx)(Yp,{content:r.content})})]}),(0,H.jsx)(`div`,{className:`flex justify-center text-muted-foreground`,children:(0,H.jsx)(M,{className:`size-4`})}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 min-w-0`,children:[(0,H.jsx)(Qo,{checked:i,onCheckedChange:e=>a?.(n.id,e===!0)}),(0,H.jsx)(id,{children:p(`badge-memory`)}),n.memoryType?(0,H.jsx)(Up,{type:n.memoryType}):null,u?(0,H.jsx)(`span`,{className:`text-xs text-primary`,children:u}):null,e?(0,H.jsx)(id,{variant:`secondary`,children:p(`badge-pinned`)}):null,(0,H.jsx)(`span`,{dir:`auto`,className:`text-xs text-muted-foreground font-mono min-w-0 break-all`,children:n.displayName||n.id})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[e?(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Unpin`,onClick:()=>s?.(n.id),children:(0,H.jsx)(ht,{className:`size-3.5 fill-current`})}):(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Pin`,onClick:()=>o?.(n.id),children:(0,H.jsx)(ht,{className:`size-3.5`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,onClick:()=>c?.(n.id),children:(0,H.jsx)(pt,{className:`size-3.5`})}),(0,H.jsx)(Hp,{content:p(`tooltip-delete-pair`),children:(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(`btn-delete-pair`),onClick:()=>l?.(n.id,!0),children:(0,H.jsx)(Rt,{className:`size-3.5`})})})]})]}),n.tags?.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:n.tags.map(e=>(0,H.jsx)(Hp,{content:p(`tooltip-tags`),className:`min-w-0 max-w-full`,children:(0,H.jsx)(nd,{keyword:e,active:d?.toLowerCase()===e.toLowerCase(),"aria-label":`${p(`tooltip-filter-keyword`)}: ${e}`,onClick:f})},e))}):null,(0,H.jsx)(`div`,{className:`rounded-lg border border-border bg-muted p-3`,children:(0,H.jsx)(Rp,{maxHeight:__,fade:`var(--muted)`,children:(0,H.jsx)(`div`,{className:`markdown-content text-sm prose-invert max-w-none`,dangerouslySetInnerHTML:{__html:g_(n.content)}})})}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`span`,{children:[p(`date-created`),` `,t.createdDate]}),t.updatedDate?(0,H.jsxs)(`span`,{children:[p(`date-updated`),` `,t.updatedDate]}):null,(0,H.jsxs)(`span`,{dir:`ltr`,className:`font-mono break-all`,children:[`ID: `,n.id]})]})]})]})}if(e===`prompt`&&t){let e=!!t.linkedMemoryId;return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-3 space-y-2 ${i?`ring-1 ring-input`:``}`,"data-id":t.id,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,H.jsx)(Qo,{checked:i,onCheckedChange:e=>a?.(t.id,e===!0)}),(0,H.jsx)(Ze,{className:`size-3.5 text-muted-foreground`}),(0,H.jsx)(id,{variant:`secondary`,children:p(`badge-prompt`)}),e?(0,H.jsxs)(id,{variant:`outline`,className:`border-status-success text-status-success bg-transparent`,children:[(0,H.jsx)(Ke,{className:`size-3`}),p(`badge-linked`)]}):null,(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Qp(t.createdAt)})]}),e?(0,H.jsx)(Hp,{content:p(`tooltip-delete-prompt-pair`),children:(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(e?`btn-delete-pair`:`btn-delete`),onClick:()=>u?.(t.id,e),children:(0,H.jsx)(Rt,{className:`size-3.5`})})}):(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(e?`btn-delete-pair`:`btn-delete`),title:p(`btn-delete`),onClick:()=>u?.(t.id,e),children:(0,H.jsx)(Rt,{className:`size-3.5`})})]}),(0,H.jsx)(Rp,{maxHeight:v_,children:(0,H.jsx)(Yp,{content:t.content})}),e?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,H.jsx)(M,{className:`size-3`}),p(`text-generated-above`),(0,H.jsx)(ee,{className:`size-3`})]}):null]})}if(e===`memory`&&t){let e=t.isPinned||!1,n=!!t.linkedPromptId,r=b_(t),u=x_(t,!1);return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-3 space-y-2 ${i?`ring-1 ring-input`:``} ${e?`border-primary/40`:``}`,"data-id":t.id,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 min-w-0`,children:[(0,H.jsx)(Qo,{checked:i,onCheckedChange:e=>a?.(t.id,e===!0)}),t.memoryType?(0,H.jsx)(Up,{type:t.memoryType}):null,n?(0,H.jsxs)(id,{variant:`outline`,className:`border-status-success text-status-success bg-transparent`,children:[(0,H.jsx)(Ke,{className:`size-3`}),p(`badge-linked`)]}):null,u?(0,H.jsx)(`span`,{className:`text-xs text-primary`,children:u}):null,e?(0,H.jsx)(id,{variant:`secondary`,children:p(`badge-pinned`)}):null,(0,H.jsx)(`span`,{dir:`auto`,className:`text-xs text-muted-foreground font-mono min-w-0 break-all`,children:y_(t)}),t.projectPath?(0,H.jsx)(`span`,{dir:`ltr`,className:`text-code text-muted-foreground font-mono break-all w-full`,children:t.projectPath}):null]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[e?(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Unpin`,onClick:()=>s?.(t.id),children:(0,H.jsx)(ht,{className:`size-3.5 fill-current`})}):(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:`Pin`,onClick:()=>o?.(t.id),children:(0,H.jsx)(ht,{className:`size-3.5`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,onClick:()=>c?.(t.id),children:(0,H.jsx)(pt,{className:`size-3.5`})}),n?(0,H.jsx)(Hp,{content:p(`tooltip-delete-pair`),children:(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(n?`btn-delete-pair`:`btn-delete`),onClick:()=>l?.(t.id,n),children:(0,H.jsx)(Rt,{className:`size-3.5`})})}):(0,H.jsx)(K,{variant:`destructive`,size:`icon-xs`,"aria-label":p(n?`btn-delete-pair`:`btn-delete`),title:p(`btn-delete`),onClick:()=>l?.(t.id,n),children:(0,H.jsx)(Rt,{className:`size-3.5`})})]})]}),t.tags?.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.tags.map(e=>(0,H.jsx)(Hp,{content:p(`tooltip-tags`),className:`min-w-0 max-w-full`,children:(0,H.jsx)(nd,{keyword:e,active:d?.toLowerCase()===e.toLowerCase(),"aria-label":`${p(`tooltip-filter-keyword`)}: ${e}`,onClick:f})},e))}):null,(0,H.jsx)(`div`,{className:`rounded-lg border border-border bg-muted p-3`,children:(0,H.jsx)(Rp,{maxHeight:__,fade:`var(--muted)`,children:(0,H.jsx)(`div`,{className:`markdown-content text-sm prose-invert max-w-none`,dangerouslySetInnerHTML:{__html:g_(t.content)}})})}),n?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,H.jsx)(ee,{className:`size-3`}),p(`text-from-below`),(0,H.jsx)(M,{className:`size-3`})]}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`span`,{children:[p(`date-created`),` `,r.createdDate]}),r.updatedDate?(0,H.jsxs)(`span`,{children:[p(`date-updated`),` `,r.updatedDate]}):null,(0,H.jsxs)(`span`,{dir:`ltr`,className:`font-mono break-all`,children:[`ID: `,t.id]})]})]})}return null}function C_(e){let t=new Map(e.map(e=>[e.id,e])),n=[],r=new Set;for(let i of e)if(!r.has(i.id)){if(i.type===`memory`&&i.linkedPromptId&&t.has(i.linkedPromptId)){let e=t.get(i.linkedPromptId);n.push({isPair:!0,memory:i,prompt:e}),r.add(i.id),r.add(e.id)}else if(i.type===`prompt`&&i.linkedMemoryId&&t.has(i.linkedMemoryId)){let e=t.get(i.linkedMemoryId);n.push({isPair:!0,memory:e,prompt:i}),r.add(i.id),r.add(e.id)}else n.push({isPair:!1,type:i.type,item:i}),r.add(i.id)}return n.sort((e,t)=>{let n=e.isPair?e.memory.createdAt:e.item.createdAt,r=t.isPair?t.memory.createdAt:t.item.createdAt;return new Date(r).getTime()-new Date(n).getTime()})}function w_({memories:e,selectedIds:t,currentPage:n,totalPages:r,loading:i=!1,error:a=null,onSelect:o,onPageChange:s,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m}){let{t:h}=G(),g=(0,v.useMemo)(()=>C_(e),[e]),_=h(`text-page`,{current:n,total:r}),y=(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(K,{variant:`outline`,size:`icon-xs`,disabled:!(n>1),onClick:()=>s(-1),children:(0,H.jsx)(se,{className:`size-3.5`})}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:_}),(0,H.jsx)(K,{variant:`outline`,size:`icon-xs`,disabled:!(n<r),onClick:()=>s(1),children:(0,H.jsx)(ce,{className:`size-3.5`})})]});return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`div`,{className:`grid min-h-32 items-start gap-3 lg:grid-cols-2`,children:i&&e.length===0?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-8 text-center`,children:h(`loading-init`)}):a?(0,H.jsxs)(`div`,{className:`text-sm text-destructive py-8 text-center`,children:[`Error: `,a]}):g.length===0?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-8 text-center`,children:h(`empty-memories`)}):g.map(e=>e.isPair?(0,H.jsx)(S_,{variant:`pair`,memory:e.memory,prompt:e.prompt,selected:t.has(e.memory.id),onSelect:o,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m},e.memory.id):e.type===`prompt`?(0,H.jsx)(S_,{variant:`prompt`,item:e.item,selected:t.has(e.item.id),onSelect:o,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m},e.item.id):(0,H.jsx)(S_,{variant:`memory`,item:e.item,selected:t.has(e.item.id),onSelect:o,onPin:c,onUnpin:l,onEdit:u,onDeleteMemory:d,onDeletePrompt:f,activeKeyword:p,onKeywordClick:m},e.item.id))}),(0,H.jsx)(`div`,{className:`flex justify-end`,children:y})]})}function T_(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(0);return(0,v.useEffect)(()=>{let e=!1;return di.status().then(t=>{e||n(t.success?t.data??null:null)}),()=>{e=!0}},[e,r]),{record:t,reload:(0,v.useCallback)(()=>i(e=>e+1),[])}}function E_(e){return e!==null}function D_(e){return{createdAt:e.createdAt,merged:e.merged,removed:e.removed}}function O_(e,t){return e===`idle`&&t===`open`?`confirming`:e===`confirming`&&t===`cancel`?`idle`:e===`confirming`&&t===`confirm`?`working`:e===`working`&&t===`done`?`idle`:e}function k_(e,t){return e===`confirming`&&t===`confirm`}function A_(e){return{key:e.notFound>0?`toast-auto-cleanup-undone-partial`:`toast-auto-cleanup-undone`,params:{restored:e.restored,notFound:e.notFound}}}function j_({version:e,onUndone:t}){let{t:n}=G(),{record:r,reload:i}=T_(e),[a,o]=(0,v.useState)(`idle`);if(!E_(r)||!r)return null;async function s(){if(!k_(a,`confirm`))return;o(O_(a,`confirm`));let e=await di.undo();if(o(`idle`),i(),!e.success||!e.data){U.info(e.error||n(`toast-auto-cleanup-undo-failed`));return}let r=A_(e.data);U.success(n(r.key,r.params)),t?.()}let c=D_(r);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,onClick:()=>o(O_(a,`open`)),children:[(0,H.jsx)(Vt,{className:`size-3.5`}),n(`btn-auto-cleanup-undo`)]}),(0,H.jsx)(zl,{open:a!==`idle`,onOpenChange:e=>{e||o(O_(a,`cancel`))},children:(0,H.jsxs)(q,{className:`sm:max-w-md`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:n(`title-auto-cleanup-undo`)}),(0,H.jsx)(Gl,{children:n(`label-auto-cleanup-undo-body`,{when:Qp(new Date(c.createdAt).toISOString()),merged:c.merged,removed:c.removed})})]}),(0,H.jsxs)(Ul,{className:`gap-2`,children:[(0,H.jsx)(K,{variant:`secondary`,size:`sm`,disabled:a===`working`,onClick:()=>o(O_(a,`cancel`)),children:n(`btn-cancel`)}),(0,H.jsx)(K,{size:`sm`,disabled:a===`working`,onClick:()=>void s(),children:n(`btn-auto-cleanup-undo-confirm`)})]})]})})]})}var M_=Ba(`grid min-w-0 gap-0.5 rounded-xl border px-4 py-3 text-start text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pe-18 has-[>svg]:grid-cols-[auto_minmax(0,1fr)] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 group/alert relative w-full`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`text-destructive-label bg-card *:data-[slot=alert-description]:text-destructive-label *:[svg]:text-current`}},defaultVariants:{variant:`default`}});function N_({className:e,variant:t,...n}){return(0,H.jsx)(`div`,{"data-slot":`alert`,role:`alert`,className:V(M_({variant:t}),e),...n})}function P_({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`alert-description`,className:V(`text-muted-foreground text-sm [&_p]:leading-relaxed col-start-2`,e),...t})}function F_(e){if(!e)return null;let t=e.status;switch(t.state){case`grouping`:return{kind:`grouping`};case`checking`:return t.total>0?{kind:`checking`,done:t.done,total:t.total}:{kind:`grouping`};case`done`:return{kind:`ready`,groups:t.preview.groups.length};case`failed`:return{kind:`failed`,error:t.error}}}function I_(e){return e?.status.state===`grouping`||e?.status.state===`checking`}var L_=3e3;function R_(e){let[t,n]=(0,v.useState)(null);return(0,v.useEffect)(()=>{if(e)return;let t=!1,r,i=async()=>{let e=await oi(`/api/user-profile/category-cleanup`);if(t)return;let a=e.success?e.data??null:null;n(a),I_(a)&&(r=setTimeout(()=>void i(),L_))};return i(),()=>{t=!0,clearTimeout(r)}},[e]),t}function z_({paused:e,onOpen:t}){let{t:n}=G(),r=F_(R_(e));if(e||!r)return null;let i=r.kind===`failed`;return(0,H.jsx)(N_,{variant:i?`destructive`:`default`,role:i?`alert`:`status`,children:(0,H.jsxs)(`div`,{className:`col-start-1 flex min-w-0 flex-wrap items-center justify-between gap-2`,children:[(0,H.jsxs)(`span`,{className:`min-w-0 break-words`,children:[r.kind===`grouping`&&n(`label-category-cleanup-loading`),r.kind===`checking`&&n(`label-category-cleanup-progress`,{done:r.done,total:r.total}),r.kind===`ready`&&n(`label-category-cleanup-banner-ready`,{groups:r.groups}),r.kind===`failed`&&(0,H.jsxs)(H.Fragment,{children:[n(`label-category-cleanup-banner-failed`),` `,(0,H.jsx)(`bdi`,{children:r.error})]})]}),(0,H.jsx)(K,{variant:`outline`,size:`xs`,onClick:t,children:n(`btn-category-cleanup-banner-open`)})]})})}var B_=Object.defineProperty,V_=(e,t)=>B_(e,`name`,{value:t,configurable:!0}),H_=v.createContext(void 0);function U_(e){let t=v.useContext(H_);return e||t||`ltr`}V_(U_,`useDirection`);var W_=Object.defineProperty,G_=(e,t)=>W_(e,`name`,{value:t,configurable:!0});function K_(e,[t,n]){return Math.min(n,Math.max(t,e))}G_(K_,`clamp`);var q_=Object.defineProperty,J_=(e,t)=>q_(e,`name`,{value:t,configurable:!0});function Y_(e,t){return v.useReducer((e,n)=>t[e][n]??e,e)}J_(Y_,`useStateMachine`);var X_=`ScrollArea`,[Z_,Q_]=qa(X_),[$_,ev]=Z_(X_),tv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=v.useState(null),[l,u]=v.useState(null),[d,f]=v.useState(null),[p,m]=v.useState(null),[h,g]=v.useState(null),[_,y]=v.useState(0),[b,x]=v.useState(0),[S,C]=v.useState(!1),[w,T]=v.useState(!1),E=xa(t,c),D=U_(i);return(0,H.jsx)($_,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:h,onScrollbarYChange:g,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:y,onCornerHeightChange:x,children:(0,H.jsx)(Mo.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})},`ScrollArea`)),nv=`ScrollAreaViewport`,rv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=ev(nv,n),s=xa(t,v.useRef(null),o.onViewportChange);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(iv,{nonce:i}),(0,H.jsx)(Mo.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,H.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})},`ScrollAreaViewport`)),iv=v.memo(J_(function({nonce:e}){return(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:e})},`ScrollAreaViewportStyle`),(e,t)=>e.nonce===t.nonce),av=`ScrollAreaScrollbar`,ov=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=ev(av,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return v.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,H.jsx)(sv,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,H.jsx)(cv,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,H.jsx)(lv,{...r,ref:t,forceMount:n}):i.type===`always`?(0,H.jsx)(uv,{...r,ref:t,"data-state":`visible`}):null},`ScrollAreaScrollbar`)),sv=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=ev(av,e.__scopeScrollArea),[a,o]=v.useState(!1);return v.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=J_(()=>{window.clearTimeout(t),o(!0)},`handlePointerEnter`),r=J_(()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)},`handlePointerLeave`);return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,H.jsx)(wo,{present:n||a,children:(0,H.jsx)(lv,{"data-state":a?`visible`:`hidden`,...r,ref:t})})},`ScrollAreaScrollbarHover`)),cv=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=ev(av,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Av(()=>c(`SCROLL_END`),100),[s,c]=Y_(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return v.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),v.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=J_(()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r},`handleScroll`);return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,H.jsx)(wo,{present:n||s!==`hidden`,children:(0,H.jsx)(uv,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:Qa(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:Qa(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})},`ScrollAreaScrollbarScroll`)),lv=v.forwardRef(J_(function(e,t){let n=ev(av,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=v.useState(!1),s=e.orientation===`horizontal`,c=Av(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return jv(n.viewport,c),jv(n.content,c),(0,H.jsx)(wo,{present:r||a,children:(0,H.jsx)(uv,{"data-state":a?`visible`:`hidden`,...i,ref:t})})},`ScrollAreaScrollbarAuto`)),uv=v.forwardRef(J_(function(e,t){let{orientation:n=`vertical`,...r}=e,i=ev(av,e.__scopeScrollArea),a=v.useRef(null),o=v.useRef(0),[s,c]=v.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Cv(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:J_(e=>a.current=e,`onThumbChange`),onThumbPointerUp:J_(()=>o.current=0,`onThumbPointerUp`),onThumbPointerDown:J_(e=>o.current=e,`onThumbPointerDown`)};function d(e,t){return Tv(e,o.current,s,t)}return J_(d,`getScrollPosition`),n===`horizontal`?(0,H.jsx)(dv,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Ev(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,H.jsx)(fv,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Ev(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null},`ScrollAreaScrollbarVisible`)),dv=v.forwardRef(J_(function(e,t){let{sizes:n,onSizesChange:r,...i}=e,a=ev(av,e.__scopeScrollArea),[o,s]=v.useState(),c=v.useRef(null),l=xa(t,c,a.onScrollbarXChange);return v.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(hv,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":wv(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),Ov(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Sv(o.paddingLeft),paddingEnd:Sv(o.paddingRight)}})}})},`ScrollAreaScrollbarX`)),fv=v.forwardRef(J_(function(e,t){let{sizes:n,onSizesChange:r,...i}=e,a=ev(av,e.__scopeScrollArea),[o,s]=v.useState(),c=v.useRef(null),l=xa(t,c,a.onScrollbarYChange);return v.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(hv,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":wv(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),Ov(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Sv(o.paddingTop),paddingEnd:Sv(o.paddingBottom)}})}})},`ScrollAreaScrollbarY`)),[pv,mv]=Z_(av),hv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:d,...f}=e,p=ev(av,n),[m,h]=v.useState(null),g=xa(t,h),_=v.useRef(null),y=v.useRef(``),b=p.viewport,x=r.content-r.viewport,S=os(u),C=os(c),w=Av(d,10);function T(e){if(_.current){let t=e.clientX-_.current.left,n=e.clientY-_.current.top;l({x:t,y:n})}}return J_(T,`handleDragScroll`),v.useEffect(()=>{let e=J_(e=>{let t=e.target;m?.contains(t)&&S(e,x)},`handleWheel`);return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,m,x,S]),v.useEffect(C,[r,C]),jv(m,w),jv(p.content,w),(0,H.jsx)(pv,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:os(a),onThumbPointerUp:os(o),onThumbPositionChange:C,onThumbPointerDown:os(s),children:(0,H.jsx)(Mo.div,{...f,ref:g,style:{position:`absolute`,...f.style},onPointerDown:Qa(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=m.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,p.viewport&&(p.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:Qa(e.onPointerMove,T),onPointerUp:Qa(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,p.viewport&&(p.viewport.style.scrollBehavior=``),_.current=null})})})},`ScrollAreaScrollbarImpl`)),gv=`ScrollAreaThumb`,_v=v.forwardRef(J_(function(e,t){let{forceMount:n,...r}=e,i=mv(gv,e.__scopeScrollArea);return(0,H.jsx)(wo,{present:n||i.hasThumb,children:(0,H.jsx)(vv,{ref:t,...r})})},`ScrollAreaThumb`)),vv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,style:r,...i}=e,a=ev(gv,n),o=mv(gv,n),{onThumbPositionChange:s}=o,c=xa(t,o.onThumbChange),l=v.useRef(void 0),u=Av(()=>{l.current&&=(l.current(),void 0)},100);return v.useEffect(()=>{let e=a.viewport;if(e){let t=J_(()=>{if(u(),!l.current){let t=kv(e,s);l.current=t,s()}},`handleScroll`);return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,H.jsx)(Mo.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:Qa(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:Qa(e.onPointerUp,o.onThumbPointerUp)})},`ScrollAreaThumbImpl`)),yv=`ScrollAreaCorner`,bv=v.forwardRef(J_(function(e,t){let n=ev(yv,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,H.jsx)(xv,{...e,ref:t}):null},`ScrollAreaCorner`)),xv=v.forwardRef(J_(function(e,t){let{__scopeScrollArea:n,...r}=e,i=ev(yv,n),[a,o]=v.useState(0),[s,c]=v.useState(0),l=!!(a&&s),{onCornerWidthChange:u,onCornerHeightChange:d}=i;return jv(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),jv(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),v.useEffect(()=>()=>{u(0),d(0)},[u,d]),l?(0,H.jsx)(Mo.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null},`ScrollAreaCornerImpl`));function Sv(e){return e?parseInt(e,10):0}J_(Sv,`toInt`);function Cv(e,t){let n=e/t;return isNaN(n)?0:n}J_(Cv,`getThumbRatio`);function wv(e){let t=Cv(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}J_(wv,`getThumbSize`);function Tv(e,t,n,r=`ltr`){let i=wv(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return Dv([c,l],d)(e)}J_(Tv,`getScrollPositionFromPointer`);function Ev(e,t,n=`ltr`){let r=wv(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=K_(e,n===`ltr`?[0,o]:[o*-1,0]);return Dv([0,o],[0,s])(c)}J_(Ev,`getThumbOffsetFromScroll`);function Dv(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}J_(Dv,`linearScale`);function Ov(e,t){return e>0&&e<t}J_(Ov,`isScrollingWithinScrollbarBounds`);var kv=J_((e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return J_((function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)}),`loop`)(),()=>window.cancelAnimationFrame(r)},`addUnlinkedScrollListener`);function Av(e,t){let n=os(e),r=v.useRef(0);return v.useEffect(()=>()=>window.clearTimeout(r.current),[]),v.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}J_(Av,`useDebounceCallback`);function jv(e,t){let n=os(t);ro(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}J_(jv,`useResizeObserver`);var Mv=tv,Nv=rv,Pv=bv;function Fv({className:e,children:t,...n}){return(0,H.jsxs)(Mv,{"data-slot":`scroll-area`,className:V(`relative`,e),...n,children:[(0,H.jsx)(Nv,{"data-slot":`scroll-area-viewport`,className:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,children:t}),(0,H.jsx)(Iv,{}),(0,H.jsx)(Pv,{})]})}function Iv({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(ov,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:V(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...n,children:(0,H.jsx)(_v,{"data-slot":`scroll-area-thumb`,className:`bg-border relative flex-1 rounded-full`})})}function Lv({open:e=!1,profileId:t=``,onOpenChange:n}){let{t:r}=G(),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)([]);(0,v.useEffect)(()=>{e&&t&&c(t)},[e,t]);async function c(e){a(!0),s([]);let t=await oi(`/api/user-profile/changelog?profileId=${encodeURIComponent(e)}&limit=10`);a(!1),t.success&&t.data?s(t.data):s([])}return(0,H.jsx)(zl,{open:e,onOpenChange:n,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:r(`modal-changelog-title`)})}),(0,H.jsx)(Fv,{className:`max-h-80`,children:i?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-6 text-center`,children:r(`loading-changelog`)}):o.length===0?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-6 text-center`,children:r(`empty-changelog`)}):(0,H.jsx)(`div`,{className:`space-y-3 pr-3`,children:o.map((e,t)=>(0,H.jsxs)(`div`,{className:`rounded-lg border border-border p-3 space-y-1`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,H.jsxs)(`span`,{className:`font-medium`,children:[`v`,e.version]}),(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:e.changeType}),(0,H.jsx)(`span`,{className:`text-muted-foreground ml-auto`,children:Qp(e.createdAt)})]}),(0,H.jsx)(`p`,{className:`text-sm`,children:e.changeSummary})]},`${e.version}-${t}`))})})]})})}function Rv({item:e,onOpen:t,focusKey:n}){let{t:r}=G(),i=Gu(e).length;return i===0?null:(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`xs`,className:`-mx-1.5 h-5 cursor-pointer px-1.5 text-xs font-normal text-muted-foreground transition-colors duration-200 ease-in hover:bg-transparent hover:text-primary-label focus-visible:text-primary-label`,"aria-haspopup":`dialog`,"data-evidence-key":n,"aria-label":r(`evidence-open-label`,{count:i}),onClick:t,children:[(0,H.jsx)(Be,{className:`size-3`,"aria-hidden":`true`}),r(`evidence-count`,{count:i})]})}var zv={preferences:`profile-preferences`,patterns:`profile-patterns`,workflows:`profile-workflows`};function Bv({item:e,section:t}){let{t:n,language:r}=G(),i=Gu(e);return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsxs)(`span`,{className:`text-xs font-medium tracking-wide text-muted-foreground`,children:[n(zv[t]),e.category?` · ${e.category}`:null]}),(0,H.jsx)(`p`,{dir:`auto`,className:`text-sm leading-6 break-words`,children:e.description}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`evidence-hit-count`,{count:e.frequency||1})})]}),(0,H.jsx)(Fv,{dir:r===`ar`?`rtl`:`ltr`,className:`max-h-[50vh] rounded-lg border`,children:(0,H.jsx)(`ol`,{className:`flex flex-col divide-y`,children:i.map((e,t)=>(0,H.jsxs)(`li`,{className:`flex gap-3 px-3 py-2.5 text-sm leading-6`,children:[(0,H.jsx)(`span`,{className:`w-5 shrink-0 text-end text-xs leading-6 text-muted-foreground tabular-nums`,children:t+1}),e.kind===`manual-write`?(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-muted-foreground italic`,children:[(0,H.jsx)(pt,{className:`size-3.5`,"aria-hidden":`true`}),n(`evidence-manual-write`)]}):(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 whitespace-pre-wrap break-words`,children:e.text})]},t))})}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`evidence-note`)})]})}function Vv({item:e,section:t,focusKey:n,onOpenChange:r}){let{t:i}=G(),a=(0,v.useRef)(null);return n&&(a.current=n),(0,H.jsx)(zl,{open:e!==null,onOpenChange:r,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,onCloseAutoFocus:e=>{let t=a.current,n=t?document.querySelector(`[data-evidence-key="${CSS.escape(t)}"]`):null;n&&(e.preventDefault(),n.focus())},children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:i(`evidence-dialog-title`)}),(0,H.jsx)(Gl,{className:`sr-only`,children:e?.description})]}),e?(0,H.jsx)(Bv,{item:e,section:t}):null]})})}function Hv({open:e=!1,type:t=null,index:n=0,action:r=`edit`,item:i=null,onOpenChange:a,onSaved:o}){let{t:s}=G(),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)([``]),[m,h]=(0,v.useState)(`1`),[g,_]=(0,v.useState)(!1),y=r===`edit`,b=t===`workflows`;(0,v.useEffect)(()=>{e&&i&&(l(i.category||``),d(i.description||``),p(i.steps?.length?[...i.steps]:[``]),h(`1`))},[e,i]);let x=y?s(`btn-edit`)||`Edit Item`:m===`2`?s(`confirm-delete-title`)||`Confirm Delete`:s(`confirm-delete`)||`Delete Item?`;function S(e){a?.(e)}function C(){p(e=>[...e,``])}function w(e){p(t=>{let n=t.filter((t,n)=>n!==e);return n.length===0?[``]:n})}function T(e,t){p(n=>n.map((n,r)=>r===e?t:n))}async function E(e){if(e.preventDefault(),!t)return;if(r===`delete`){if(m===`1`){h(`2`);return}_(!0);let e=await oi(`/api/user-profile/item`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({type:t,index:n,action:`delete`})});_(!1),e.success?(U.success(s(`toast-delete-success`)||`Item deleted`),S(!1),o?.()):U.error(e.error||s(`toast-delete-failed`)||`Delete failed`);return}_(!0);let i={type:t,index:n,action:`edit`,category:b?void 0:c,description:u};t===`workflows`&&(i.steps=f.map(e=>e.trim()).filter(Boolean));let a=await oi(`/api/user-profile/item`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)});_(!1),a.success?(U.success(s(`toast-update-success`)||`Item updated`),S(!1),o?.()):U.error(a.error||s(`toast-update-failed`)||`Update failed`)}return(0,H.jsx)(zl,{open:e,onOpenChange:S,children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:x})}),(0,H.jsxs)(`form`,{className:`space-y-4`,onSubmit:E,children:[y||m===`1`?(0,H.jsxs)(H.Fragment,{children:[b?null:(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`profile-item-category`,children:s(`label-category`)}),(0,H.jsx)(ad,{id:`profile-item-category`,value:c,onChange:e=>l(e.target.value),disabled:!y})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`profile-item-description`,children:s(`label-description`)}),(0,H.jsx)(Ip,{id:`profile-item-description`,rows:4,value:u,onChange:e=>d(e.target.value),disabled:!y})]}),b&&y?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{children:s(`label-steps`)}),(0,H.jsx)(`div`,{className:`space-y-2`,children:f.map((e,t)=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground w-5 tabular-nums`,children:t+1}),(0,H.jsx)(ad,{value:e,placeholder:`Step ${t+1}...`,onChange:e=>T(t,e.target.value)}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,onClick:()=>w(t),children:`×`})]},t))}),(0,H.jsx)(K,{type:`button`,variant:`secondary`,size:`sm`,onClick:C,children:s(`btn-add-step`)})]}):null]}):null,(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:()=>S(!1),children:s(`btn-cancel`)}),(0,H.jsx)(K,{type:`submit`,variant:y?`default`:`destructive`,disabled:g,children:y?s(`btn-save`)||`Save`:s(`btn-delete`)||`Delete`})]})]})]})})}var Uv=8;function Wv({label:e,children:t,className:n}){let r=v.useId(),i=v.useRef(null),a=v.useRef(null),[o,s]=v.useState(!1),[c,l]=v.useState(0);return v.useEffect(()=>{if(!o)return;let e=e=>{i.current?.contains(e.target)||s(!1)},t=e=>{e.key===`Escape`&&s(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]),v.useLayoutEffect(()=>{let e=a.current,t=i.current;if(!o||!e||!t)return;let n=t.getBoundingClientRect(),r=e.offsetWidth/2,s=n.left+n.width/2,c=document.documentElement.clientWidth,u=Math.min(Math.max(s,Uv+r),c-Uv-r);l(u-s)},[o]),(0,H.jsxs)(`span`,{ref:i,className:V(`relative inline-flex`,n),children:[(0,H.jsx)(`button`,{type:`button`,"aria-label":e,"aria-expanded":o,"aria-controls":r,onClick:()=>s(e=>!e),className:`inline-flex size-6 shrink-0 items-center justify-center rounded-full text-muted-foreground transition-colors duration-150 outline-none hover:bg-interactive-hover hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring aria-expanded:bg-selection aria-expanded:text-foreground`,children:(0,H.jsx)(Be,{className:`size-3.5`,"aria-hidden":`true`})}),o?(0,H.jsx)(`div`,{ref:a,id:r,style:{transform:`translateX(calc(-50% + ${c}px))`},className:`absolute top-full left-1/2 z-30 mt-2 w-72 max-w-[calc(100vw-1rem)] rounded-lg border border-border bg-card p-3 text-start text-xs whitespace-normal text-card-foreground shadow-sm`,children:t}):null]})}var Gv=20;function Kv(e,t){let n=e.length,r=Math.max(1,Math.ceil(n/Gv)),i=Math.min(t,r),a=(i-1)*Gv;return{items:e.slice(a,a+Gv),total:n,totalPages:r,page:i,start:a}}function qv(e){return Math.round((e.confidence||0)*100)}function Jv({profile:e,loading:t=!1,onRefresh:n,onCleanup:r,onCategoryCleanup:i,categoryCleanupOpen:a=!1}){let{t:o}=G(),[s,c]=(0,v.useState)({pref:1,pat:1,wf:1}),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(0),[_,y]=(0,v.useState)(`edit`),[b,x]=(0,v.useState)(null),[S,C]=(0,v.useState)(null),w=(0,v.useMemo)(()=>{if(!e?.exists||!e.profileData)return null;let t=e.profileData;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return null}return t},[e]),T=(0,v.useMemo)(()=>{let e=[...w?.preferences??[],...w?.patterns??[]];return new Set(e.map(e=>e.category||`General`)).size},[w]),E=(0,v.useMemo)(()=>Vu(w?.preferences),[w]),D=(0,v.useMemo)(()=>Vu(w?.patterns),[w]),O=(0,v.useMemo)(()=>Vu(w?.workflows),[w]),k=(0,v.useMemo)(()=>O.map((e,t)=>({item:e,index:t})).sort((e,t)=>(t.item.frequency||0)-(e.item.frequency||0)),[O]),j=Kv(E,s.pref),M=Kv(D,s.pat),N=Kv(k,s.wf),P=O.length;function ee(e,t,n){let r=(e===`preferences`?E:e===`patterns`?D:O)[t];r&&(m(e),g(t),y(n),x(r),f(!0))}function F(e,t){return e.indexOf(t)}function I({page:e,pageKey:t}){return e.total<=Gv?null:(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 pt-2`,children:[(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground me-2`,children:[e.start+1,`-`,Math.min(e.start+Gv,e.total),` / `,e.total]}),Array.from({length:e.totalPages},(e,t)=>t+1).map(n=>(0,H.jsx)(K,{size:`xs`,variant:n===e.page?`default`:`outline`,onClick:()=>c(e=>({...e,[t]:n})),children:n},n))]})}function te({item:e,type:t,fullList:n}){let r=F(n,e),i=qv(e);return(0,H.jsxs)(`div`,{className:`min-w-0 rounded-xl border border-border bg-card p-4 space-y-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[t!==`workflows`||e.category?(0,H.jsx)(id,{variant:`outline`,className:`bg-transparent border-current [color:oklch(0.42_0.13_var(--category-hue))] dark:[color:oklch(0.8_0.13_var(--category-hue))]`,style:{"--category-hue":String(td(e.category||`General`))},children:e.category||`General`}):null,(0,H.jsxs)(`div`,{className:`flex items-center gap-0.5 ms-auto`,children:[(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:o(`btn-edit`)||`Edit`,onClick:()=>ee(t,r,`edit`),children:(0,H.jsx)(mt,{className:`size-3`})}),(0,H.jsx)(K,{variant:`ghost`,size:`icon-xs`,title:o(`btn-delete`)||`Delete`,onClick:()=>ee(t,r,`delete`),children:(0,H.jsx)(Rt,{className:`size-3`})})]}),(0,H.jsxs)(`div`,{className:V(`shrink-0 rounded-md border px-1.5 py-0.5 text-xs font-medium tabular-nums`,qu[Ku(i)]),title:`${o(`label-confidence`)}: ${i}%`,children:[i,`%`]})]}),(0,H.jsx)(`p`,{className:`text-sm break-words`,children:e.description||``}),e.steps?.length?(0,H.jsx)(`ol`,{className:`flex flex-col items-start gap-1.5`,children:e.steps.map((e,t)=>(0,H.jsxs)(`li`,{className:`flex min-w-0 max-w-full items-start gap-2 rounded-2xl border border-blue-600/40 bg-blue-500/15 py-1 ps-1 pe-3 text-xs leading-5 text-blue-700 dark:text-blue-400`,children:[(0,H.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center rounded-full bg-blue-500/30 text-[11px] font-medium tabular-nums dark:bg-blue-400/30`,children:t+1}),(0,H.jsx)(`span`,{className:`min-w-0 break-words`,children:e})]},t))}):null,e.evidence||e.frequency?(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1`,title:o(`label-evidence-tooltip`,{count:e.frequency||1}),children:[(0,H.jsx)(It,{className:`size-3`}),e.frequency||1]}),Gu(e).length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{children:`·`}),(0,H.jsx)(Rv,{item:e,focusKey:`${t}-${r}`,onOpen:()=>C({item:e,section:t,focusKey:`${t}-${r}`})})]}):null]}):null]})}return t&&!e?(0,H.jsx)(`div`,{className:`text-sm text-muted-foreground py-8 text-center`,children:o(`loading-profile`)}):e?.exists?w?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`h2`,{dir:`auto`,className:`text-section-title font-semibold break-words`,children:e.displayName||e.userId}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsxs)(`span`,{className:`rounded-full bg-muted px-2.5 py-1 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:o(`profile-version`)}),(0,H.jsx)(`span`,{className:`ms-1 font-mono`,children:e.version})]}),(0,H.jsxs)(`span`,{className:`rounded-full bg-muted px-2.5 py-1 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:o(`profile-prompts`)}),(0,H.jsx)(`span`,{className:`ms-1 font-mono`,children:e.totalPromptsAnalyzed})]}),(0,H.jsxs)(`span`,{className:`rounded-full bg-muted px-2.5 py-1 text-xs`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:o(`profile-updated`)}),(0,H.jsx)(`span`,{className:`ms-1`,children:e.lastAnalyzedAt?Qp(e.lastAnalyzedAt):`—`})]}),(0,H.jsxs)(`div`,{className:`ms-auto flex flex-wrap items-center gap-1.5`,children:[(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:()=>r?.(),children:[(0,H.jsx)(At,{className:`size-3.5`}),o(`btn-ai-cleanup`)]}),(0,H.jsx)(Wv,{label:o(`label-more-info`),children:o(`help-ai-cleanup`)})]}),(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:()=>i?.(),children:[(0,H.jsx)(Ft,{className:`size-3.5`}),o(`btn-category-cleanup`),(0,H.jsx)(`span`,{className:`font-mono opacity-70`,title:o(`label-category-count-title`),children:T})]}),(0,H.jsx)(Wv,{label:o(`label-more-info`),children:o(`help-category-cleanup`)})]}),(0,H.jsx)(j_,{version:e.version,onUndone:n}),(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,onClick:()=>n?.(),children:[(0,H.jsx)(xt,{className:`size-3.5`}),o(`btn-refresh`)]}),(0,H.jsxs)(K,{variant:`secondary`,size:`sm`,onClick:()=>u(!0),children:[(0,H.jsx)(Ct,{className:`size-3.5`}),`History`]})]})]}),(0,H.jsx)(z_,{paused:a,onOpen:()=>i?.()})]}),(0,H.jsxs)(`div`,{className:`grid gap-8`,children:[(0,H.jsxs)(`section`,{id:`profile-preferences`,className:`scroll-mt-4 space-y-3`,children:[(0,H.jsxs)(`h2`,{className:`flex flex-wrap items-center gap-2 text-section-title font-semibold`,children:[(0,H.jsx)(Le,{className:`size-4`}),o(`profile-preferences`),(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:E.length})]}),E.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`empty-preferences`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:j.items.map(e=>(0,H.jsx)(te,{item:e,type:`preferences`,fullList:E},F(E,e)))}),(0,H.jsx)(I,{page:j,pageKey:`pref`})]})]}),(0,H.jsxs)(`section`,{id:`profile-patterns`,className:`scroll-mt-4 space-y-3`,children:[(0,H.jsxs)(`h2`,{className:`flex flex-wrap items-center gap-2 text-section-title font-semibold`,children:[(0,H.jsx)(A,{className:`size-4`}),o(`profile-patterns`),(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:D.length})]}),D.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`empty-patterns`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:M.items.map(e=>(0,H.jsx)(te,{item:e,type:`patterns`,fullList:D},F(D,e)))}),(0,H.jsx)(I,{page:M,pageKey:`pat`})]})]}),(0,H.jsxs)(`section`,{id:`profile-workflows`,className:`scroll-mt-4 space-y-3`,children:[(0,H.jsxs)(`h2`,{className:`flex flex-wrap items-center gap-2 text-section-title font-semibold`,children:[(0,H.jsx)(Gt,{className:`size-4`}),o(`profile-workflows`),(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:P})]}),P===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`empty-workflows`)}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`grid items-start gap-3 lg:grid-cols-2`,children:N.items.map(e=>(0,H.jsx)(te,{item:e.item,type:`workflows`,fullList:O},e.index))}),(0,H.jsx)(I,{page:N,pageKey:`wf`})]})]})]})]}),(0,H.jsx)(Lv,{open:l,onOpenChange:u,profileId:e?.id||``}),(0,H.jsx)(Hv,{open:d,onOpenChange:f,type:p,index:h,action:_,item:b,onSaved:n}),(0,H.jsx)(Vv,{item:S?.item??null,section:S?.section??`preferences`,focusKey:S?.focusKey??null,onOpenChange:e=>{e||C(null)}})]}):null:(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-10 text-muted-foreground`,children:[(0,H.jsx)(Ht,{className:`size-8`}),(0,H.jsx)(`p`,{className:`text-sm`,children:e?.message||o(`empty-preferences`)})]})}function Yv({open:e=!1,count:t=0,onOpenChange:n,onComplete:r}){let{t:i}=G(),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(0);(0,v.useEffect)(()=>{e&&!a&&(c(i(`migration-found-tags`,{count:t})),u(0))},[e,a,t,i]);function d(e){a&&!e||n?.(e)}async function f(){o(!0),c(i(`status-migration-init`)),u(0);let e=!0,t=0,n=1e3;for(;e&&t<n;){t++;let n=await oi(`/api/migration/tags/run-batch`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({batchSize:3})});if(!n.success||!n.data){c(i(`toast-migration-failed`)+`: `+(n.error||``)),o(!1);return}let r=n.data.processed;e=n.data.hasMore;let a=n.data.total;u(a>0?Math.round(r/a*100):0),c(i(`status-migration-progress`,{current:r,total:a})),e&&await new Promise(e=>setTimeout(e,100))}if(t>=n){c(i(`migration-stopped`)),o(!1);return}u(100),c(i(`toast-migration-success`)),U.success(i(`toast-migration-success`)),setTimeout(()=>{o(!1),d(!1),r?.()},2e3)}return(0,H.jsx)(zl,{open:e,onOpenChange:d,children:(0,H.jsxs)(q,{className:`sm:max-w-md`,showCloseButton:!a,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:i(`modal-migration-title`)})}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s}),(0,H.jsx)(`div`,{className:`h-2 rounded-full bg-muted overflow-hidden`,children:(0,H.jsx)(`div`,{className:`h-full bg-primary transition-all duration-200`,style:{width:`${l}%`}})}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`migration-note`)})]}),a?null:(0,H.jsx)(Ul,{children:(0,H.jsxs)(K,{onClick:f,children:[(0,H.jsx)(gt,{className:`size-3.5`}),i(`btn-start-migration`)]})})]})})}var Xv=[{id:`settings-section-external-api`,title:`External API`},{id:`settings-section-models`,title:`Models`},{id:`settings-section-embedding`,title:`Embedding`},{id:`settings-section-keys`,title:`Keys and access`},{id:`settings-section-diagnostics`,title:`Capture diagnostics`},{id:`settings-section-health`,title:`Health`},{id:`settings-section-claude-folder`,title:`Claude Code folder`},{id:`settings-section-capture-language`,title:`Memory language`},{id:`settings-section-appearance`,title:`Appearance`},{id:`settings-section-profiles`,title:`Profiles`},{id:`settings-section-web-app`,title:`Web app`},{id:`settings-section-skill-learning`,title:`Skill learning`},{id:`settings-section-log`,title:`Log`}],Zv={"(empty prompt)":[`(空提示)`,`(مطالبة فارغة)`],"<private> text, API keys and passwords will be stored as written and sent to the external API when drafting.":[`<private> 文本、API 密钥和密码将按原文存储,并在起草时发送到外部 API。`,`سيُخزَّن نص <private> ومفاتيح API وكلمات المرور كما كُتبت، وتُرسَل إلى واجهة API الخارجية عند الصياغة.`],"A project config turns recording off for this project.":[`项目配置已为此项目关闭记录。`,`يوقف إعداد المشروع التسجيل في هذا المشروع.`],Attention:[`关注度`,`الاهتمام`],"Add folder":[`添加文件夹`,`إضافة مجلد`],"All skills":[`所有技能`,`كل المهارات`],"Changes to SKILL.md":[`对 SKILL.md 的更改`,`التغييرات على SKILL.md`],"Delete recorded turns":[`删除已记录的回合`,`حذف الأدوار المسجلة`],"Delete {count} recorded turns? This cannot be undone.":[`删除 {count} 个已记录的回合?此操作无法撤销。`,`حذف {count} من الأدوار المسجلة؟ لا يمكن التراجع عن ذلك.`],"Deleted {count} recorded turns.":[`已删除 {count} 个已记录的回合。`,`تم حذف {count} من الأدوار المسجلة.`],"Draft improvement":[`起草改进`,`صياغة تحسين`],"Draft skill":[`起草技能`,`صياغة مهارة`],"Drafting needs the external API. Set it up first.":[`起草需要外部 API。请先设置。`,`تحتاج الصياغة إلى واجهة API الخارجية. أعدّها أولاً.`],"Drafting… This can take a few minutes.":[`正在起草…这可能需要几分钟。`,`جارٍ الصياغة… قد يستغرق ذلك بضع دقائق.`],"Evidence turns":[`证据回合`,`الأدوار الداعمة`],"Failed turns":[`失败的回合`,`الأدوار الفاشلة`],"File size":[`文件大小`,`حجم الملف`],"Finding past sessions…":[`正在查找过去的会话…`,`جارٍ البحث عن الجلسات السابقة…`],"Filter skills by name":[`按名称筛选技能`,`تصفية المهارات بالاسم`],"Find new skill ideas":[`查找新技能想法`,`البحث عن أفكار مهارات جديدة`],"Folder for the new skill":[`新技能的文件夹`,`مجلد المهارة الجديدة`],"Folder not found":[`未找到文件夹`,`المجلد غير موجود`],"Folder path":[`文件夹路径`,`مسار المجلد`],"Hide changes":[`隐藏更改`,`إخفاء التغييرات`],Improvement:[`改进`,`تحسين`],"Last seen":[`最近出现`,`آخر ظهور`],"Last use":[`上次使用`,`آخر استخدام`],"Loading…":[`加载中…`,`جارٍ التحميل…`],"Loading the proposal…":[`正在加载提案…`,`جارٍ تحميل المقترح…`],"The proposal could not be loaded. Select Show less, then Show more to try again.":[`无法加载该提案。选择“显示更少”,再选择“显示更多”即可重试。`,`تعذّر تحميل المقترح. اختر «عرض أقل» ثم «عرض المزيد» للمحاولة مرة أخرى.`],"Looking…":[`正在查找…`,`جارٍ البحث…`],Manual:[`手动`,`يدوي`],"Most calls":[`调用次数最多`,`الأكثر استدعاءً`],"Most used":[`最常用`,`الأكثر استخدامًا`],"Needs attention":[`需要关注`,`يحتاج إلى اهتمام`],"Sort skills":[`技能排序`,`ترتيب المهارات`],"New skill":[`新技能`,`مهارة جديدة`],"New skill ideas":[`新技能想法`,`أفكار مهارات جديدة`],"New turns will be stored as written.":[`新回合将按原文存储。`,`ستُخزَّن الأدوار الجديدة كما كُتبت.`],"No change proposed":[`没有建议更改`,`لم يُقترح أي تغيير`],"No content was saved.":[`没有保存内容。`,`لم يُحفظ أي محتوى.`],"No folders are watched.":[`没有监视的文件夹。`,`لا توجد مجلدات مراقبة.`],"No new skill ideas in the recorded turns.":[`已记录的回合中没有新的技能想法。`,`لا توجد أفكار مهارات جديدة في الأدوار المسجلة.`],"No proposals yet.":[`还没有提案。`,`لا توجد مقترحات بعد.`],"No recorded turns.":[`没有已记录的回合。`,`لا توجد أدوار مسجلة.`],"No skill matches this name.":[`没有技能匹配此名称。`,`لا توجد مهارة تطابق هذا الاسم.`],"No skills found in the watched folders.":[`在监视的文件夹中未找到技能。`,`لم يُعثر على مهارات في المجلدات المراقبة.`],"No turns are recorded yet.":[`还没有记录任何回合。`,`لم تُسجَّل أي أدوار بعد.`],"Not in a watched folder":[`不在监视的文件夹中`,`ليست في مجلد مراقب`],"Nothing is recorded yet. Agent turns are recorded only after you turn it on.":[`尚未记录任何内容。只有在你开启后才会记录智能体回合。`,`لم يُسجَّل شيء بعد. لا تُسجَّل أدوار الوكيل إلا بعد تشغيل ذلك.`],"OMMS stores full prompts, replies and tool calls in skills.db on this computer. Drafting sends recorded turns to the external API. The file holds whatever the turns hold.":[`OMMS 会把完整的提示、回复和工具调用存储在这台电脑上的 skills.db 中。起草时会把已记录的回合发送到外部 API。该文件包含回合中的所有内容。`,`يخزّن OMMS المطالبات والردود واستدعاءات الأدوات كاملةً في skills.db على هذا الجهاز. ترسل الصياغة الأدوار المسجلة إلى واجهة API الخارجية. يحتوي الملف على كل ما تحتويه الأدوار.`],"OMMS will change this SKILL.md file without asking. It drafts an improvement after 10 new uses and at least 24 hours, then applies it. Each change can be undone.":[`OMMS 会在不询问的情况下修改此 SKILL.md 文件。它在 10 次新使用且至少 24 小时后起草改进,然后直接应用。每次更改都可以撤销。`,`سيعدّل OMMS ملف SKILL.md هذا دون أن يسأل. يصوغ تحسيناً بعد 10 استخدامات جديدة و24 ساعة على الأقل، ثم يطبّقه. يمكن التراجع عن كل تغيير.`],"Skill learning watches how your agents use your skills on Pi, OpenCode and Claude Code. It ranks each skill by use and failed tool calls, and drafts better versions from real turns.":[`技能学习会观察你的智能体在 Pi、OpenCode 和 Claude Code 中如何使用你的技能。它按使用次数和失败的工具调用为每个技能排名,并根据真实回合起草更好的版本。`,`يراقب تعلّم المهارات كيف يستخدم وكلاؤك مهاراتك في Pi وOpenCode وClaude Code. يرتّب كل مهارة حسب الاستخدام واستدعاءات الأدوات الفاشلة، ويصوغ نسخاً أفضل من أدوار حقيقية.`],"Every draft is a proposal with a diff. Nothing changes a SKILL.md file until you apply it, unless you set that skill to Automatic. Undo restores the previous version.":[`每份草稿都是带差异对比的提案。在你应用之前,SKILL.md 文件不会改变,除非你把该技能设为“自动”。撤销会恢复之前的版本。`,`كل مسودة مقترح مع عرض للفروق. لا يتغيّر ملف SKILL.md حتى تطبّقه، إلا إذا ضبطت تلك المهارة على تلقائي. التراجع يعيد النسخة السابقة.`],"The memory chat sends skill counts and short change summaries to the external API, never turn text.":[`记忆聊天会把技能计数和简短的更改摘要发送到外部 API,绝不发送回合文本。`,`ترسل دردشة الذاكرة أعداد المهارات وملخصات التغييرات القصيرة إلى واجهة API الخارجية، ولا ترسل نص الأدوار أبداً.`],"Open the Skill learning card":[`打开“技能学习”卡片`,`افتح بطاقة تعلّم المهارات`],"No proposals are waiting.":[`没有等待处理的提案。`,`لا توجد مقترحات قيد الانتظار.`],"No proposals have been decided yet.":[`尚未处理任何提案。`,`لم يتم البتّ في أي مقترح بعد.`],"Pending proposals":[`待处理的提案`,`المقترحات المعلّقة`],Proposals:[`提案`,`المقترحات`],"Ranked skills":[`技能排名`,`المهارات مرتبةً`],"Recent turns":[`最近的回合`,`الأدوار الأخيرة`],"Recent proposals":[`最近的提案`,`المقترحات الأخيرة`],"Record agent turns":[`记录智能体回合`,`تسجيل أدوار الوكيل`],"Record agent turns so OMMS can rank your skills and draft improvements.":[`记录智能体回合,让 OMMS 为你的技能排名并起草改进。`,`سجّل أدوار الوكيل ليتمكن OMMS من ترتيب مهاراتك وصياغة التحسينات.`],"Record past turns":[`记录过去的回合`,`تسجيل الأدوار السابقة`],"Record past turns did not finish.":[`记录过去的回合未完成。`,`لم يكتمل تسجيل الأدوار السابقة.`],"Recorded turns":[`已记录的回合`,`الأدوار المسجلة`],"Recorded {count} past turns.":[`已记录 {count} 个过去的回合。`,`تم تسجيل {count} من الأدوار السابقة.`],Reject:[`拒绝`,`رفض`],"Remove folder":[`移除文件夹`,`إزالة المجلد`],"Remove folder {path}":[`移除文件夹 {path}`,`إزالة المجلد {path}`],"Remove private text and secrets":[`移除私密文本和机密`,`إزالة النص الخاص والأسرار`],"Reset default":[`恢复默认`,`استعادة الافتراضي`],"Saved.":[`已保存。`,`تم الحفظ.`],"Show changes":[`显示更改`,`عرض التغييرات`],"Skill learning":[`技能学习`,`تعلّم المهارات`],"Skill turns":[`技能回合`,`أدوار المهارات`],"Skill turns are recorded only while Record agent turns is on.":[`只有开启“记录智能体回合”时才会记录技能回合。`,`لا تُسجَّل أدوار المهارات إلا عند تشغيل تسجيل أدوار الوكيل.`],"Skill turns to record":[`待记录的技能回合`,`أدوار المهارات المراد تسجيلها`],"Skill turns already recorded":[`已记录的技能回合`,`أدوار المهارات المسجلة سابقاً`],"Skill turns recorded":[`本次记录的技能回合`,`أدوار المهارات المسجلة`],"Skill turns already present":[`已存在的技能回合`,`أدوار المهارات الموجودة مسبقاً`],Skills:[`技能`,`المهارات`],"Stale: the file changed since this draft":[`已过期:自起草以来文件已更改`,`قديم: تغيّر الملف منذ هذه المسودة`],"Stop removing private text and secrets?":[`停止移除私密文本和机密?`,`إيقاف إزالة النص الخاص والأسرار؟`],Suggested:[`建议`,`مقترحة`],"Turn off":[`关闭`,`إيقاف`],"Turn on Automatic":[`开启自动`,`تشغيل التلقائي`],"Turn on Automatic mode for this skill?":[`为此技能开启自动模式?`,`تشغيل الوضع التلقائي لهذه المهارة؟`],Undo:[`撤销`,`تراجع`],"Undo stopped because the file changed. This is the content OMMS saved:":[`撤销已停止,因为文件已更改。这是 OMMS 保存的内容:`,`توقف التراجع لأن الملف تغيّر. هذا هو المحتوى الذي حفظه OMMS:`],Uses:[`使用`,`الاستخدامات`],"Uses in 30 days":[`30 天内使用`,`الاستخدامات في 30 يوماً`],"Watched folders":[`监视的文件夹`,`المجلدات المراقبة`],applied:[`已应用`,`طُبّق`],"applied automatically":[`已自动应用`,`طُبّق تلقائياً`],rejected:[`已拒绝`,`مرفوض`],stale:[`已过期`,`قديم`],undone:[`已撤销`,`تم التراجع`],"{count} failed tool call":[`{count} 次工具调用失败`,`فشل استدعاء أداة واحد`],"{count} failed tool calls":[`{count} 次工具调用失败`,`فشل {count} من استدعاءات الأدوات`],"{count} skill":[`{count} 个技能`,`مهارة واحدة`],"{count} skills":[`{count} 个技能`,`المهارات: {count}`],Show:[`显示`,`عرض`],results:[`条结果`,`نتائج`],"Custom:":[`自定义:`,`مخصص:`],"Results per page":[`每页结果数`,`النتائج في كل صفحة`],"Custom results per page":[`自定义每页结果数`,`عدد مخصص للنتائج في كل صفحة`],"Sort by":[`排序方式`,`الترتيب حسب`],"Sort ascending":[`升序排列`,`ترتيب تصاعدي`],"Sort descending":[`降序排列`,`ترتيب تنازلي`],"Showing {from} to {to} of {total} results":[`显示第 {from} 到 {to} 条,共 {total} 条结果`,`عرض {from} إلى {to} من {total} نتيجة`],pagination:[`分页`,`ترقيم الصفحات`],"Go to previous page":[`转到上一页`,`الانتقال إلى الصفحة السابقة`],"Go to next page":[`转到下一页`,`الانتقال إلى الصفحة التالية`],"Go to page {page}":[`转到第 {page} 页`,`الانتقال إلى الصفحة {page}`],"More pages":[`更多页面`,`صفحات أخرى`],"Name (A–Z)":[`名称(A–Z)`,`الاسم (A–Z)`],Newest:[`最新`,`الأحدث`],Oldest:[`最早`,`الأقدم`],Skill:[`技能`,`المهارة`],Mode:[`模式`,`الوضع`],"Tool (A–Z)":[`工具(A–Z)`,`الأدوات (A–Z)`],Contents:[`目录`,`المحتويات`],"Show contents":[`显示目录`,`إظهار المحتويات`],"Hide contents":[`隐藏目录`,`إخفاء المحتويات`],"{count} proposal":[`{count} 个提案`,`مقترح واحد ({count})`],"{count} proposals":[`{count} 个提案`,`المقترحات: {count}`],"{count} turn":[`{count} 个回合`,`دور واحد ({count})`],"{count} turns":[`{count} 个回合`,`الأدوار: {count}`],"{count} failure group":[`{count} 个失败分组`,`مجموعة فشل واحدة ({count})`],"{count} failure groups":[`{count} 个失败分组`,`مجموعات فشل: {count}`],"{count} entry":[`{count} 条记录`,`إدخال واحد ({count})`],"{count} entries":[`{count} 条记录`,`الإدخالات: {count}`],"Created {date}":[`创建于 {date}`,`أُنشئ في {date}`],"Applied {date}":[`应用于 {date}`,`طُبّق في {date}`],"Rejected {date}":[`拒绝于 {date}`,`رُفض في {date}`],"Undone {date}":[`撤销于 {date}`,`تم التراجع في {date}`],"Stale since {date}":[`自 {date} 起已过期`,`قديم منذ {date}`],"Each card shows when the proposal was created and when it was last applied, rejected or undone.":[`每张卡片显示提案的创建时间,以及最近一次应用、拒绝或撤销的时间。`,`تعرض كل بطاقة وقت إنشاء المقترح ووقت آخر تطبيق أو رفض أو تراجع.`],History:[`历史记录`,`السجل`],created:[`已创建`,`أُنشئ`],"Each proposal, apply, reject and undo of this skill. Revert an applied change to restore SKILL.md as it was before it.":[`此技能的每个提案、应用、拒绝和撤销。还原已应用的更改可将 SKILL.md 恢复到该更改之前的状态。`,`كل مقترح وتطبيق ورفض وتراجع لهذه المهارة. أعِد تغييراً مطبّقاً لتستعيد SKILL.md كما كان قبله.`],"No history yet.":[`暂无历史记录。`,`لا يوجد سجل بعد.`],"{added} lines added, {removed} lines removed":[`新增 {added} 行,删除 {removed} 行`,`أُضيف {added} سطر، وحُذف {removed} سطر`],"Revert to before this change":[`还原到此更改之前`,`الرجوع إلى ما قبل هذا التغيير`],"Revert the newer change first.":[`请先还原较新的更改。`,`أعِد التغيير الأحدث أولاً.`],"Revert this change?":[`还原此更改?`,`هل تريد إعادة هذا التغيير؟`],"OMMS restores SKILL.md as it was before this change.":[`OMMS 会将 SKILL.md 恢复到此更改之前的状态。`,`يستعيد OMMS ملف SKILL.md كما كان قبل هذا التغيير.`],"Reverting this also removes {count} later change.":[`还原此更改也会移除之后的 {count} 个更改。`,`تؤدي إعادة هذا التغيير أيضاً إلى إزالة تغيير لاحق واحد ({count}).`],"Reverting this also removes {count} later changes.":[`还原此更改也会移除之后的 {count} 个更改。`,`تؤدي إعادة هذا التغيير أيضاً إلى إزالة {count} من التغييرات اللاحقة.`],Revert:[`还原`,`إعادة`],"Reverting…":[`正在还原…`,`جارٍ الإعادة…`],"Reverted. SKILL.md is back to the version before that change.":[`已还原。SKILL.md 已恢复到该更改之前的版本。`,`تمت الإعادة. عاد SKILL.md إلى النسخة السابقة لذلك التغيير.`],Activity:[`活动`,`النشاط`],"Activity could not load.":[`无法加载活动。`,`تعذّر تحميل النشاط.`],"Active skills":[`活跃技能`,`المهارات النشطة`],"Uses per day":[`每日使用`,`الاستخدامات يومياً`],"Uses in the last 30 days":[`最近 30 天的使用`,`الاستخدامات في آخر 30 يوماً`],"Most used skills":[`最常用的技能`,`المهارات الأكثر استخداماً`],"Proposal pipeline":[`提案进度`,`مسار المقترحات`],Successful:[`成功`,`ناجح`],Day:[`日期`,`اليوم`],"{uses} uses, {failed} with a failed tool call":[`使用 {uses} 次,其中 {failed} 次有工具调用失败`,`{uses} استخدام، منها {failed} مع استدعاء أداة فاشل`],"{name} leads with {uses} uses. Click a bar to open the skill.":[`{name} 以 {uses} 次使用领先。点击条形可打开该技能。`,`تتصدر {name} بعدد {uses} استخدام. انقر على شريط لفتح المهارة.`],"{total} proposals, {pending} waiting for a decision":[`共 {total} 个提案,{pending} 个等待决定`,`{total} مقترح، منها {pending} بانتظار قرار`],"No uses in the last 30 days. Bars appear after OMMS records turns.":[`最近 30 天没有使用。OMMS 记录回合后会显示条形图。`,`لا توجد استخدامات في آخر 30 يوماً. تظهر الأشرطة بعد أن يسجّل OMMS الأدوار.`],"No skill was used in the last 30 days.":[`最近 30 天没有使用任何技能。`,`لم تُستخدم أي مهارة في آخر 30 يوماً.`],"No skill uses are recorded in the last 30 days. The use charts appear after OMMS records agent turns that use a skill.":[`最近 30 天没有记录到技能使用。OMMS 记录使用技能的智能体回合后,会显示使用图表。`,`لا توجد استخدامات مسجلة للمهارات في آخر 30 يوماً. تظهر مخططات الاستخدام بعد أن يسجّل OMMS أدوار الوكلاء التي تستخدم مهارة.`],"Show uses by":[`使用次数显示方式`,`عرض الاستخدامات حسب`],Days:[`按天`,`الأيام`],Months:[`按月`,`الأشهر`],Years:[`按年`,`السنوات`],"Days to show":[`要显示的日期范围`,`الأيام المعروضة`],"Year to show":[`要显示的年份`,`السنة المعروضة`],"Last 30 days":[`最近 30 天`,`آخر 30 يوماً`],"Uses per month":[`每月使用`,`الاستخدامات شهرياً`],"Uses per year":[`每年使用`,`الاستخدامات سنوياً`],Month:[`月份`,`الشهر`],Year:[`年份`,`السنة`],"{from} to {to}":[`{from} 至 {to}`,`من {from} إلى {to}`],"Uses in {period}":[`{period} 的使用`,`الاستخدامات في {period}`],"{period}: {uses} uses, {failed} with a failed tool call":[`{period}:使用 {uses} 次,其中 {failed} 次有工具调用失败`,`{period}: {uses} استخدام، منها {failed} مع استدعاء أداة فاشل`],"No skill uses are recorded in {period}.":[`{period} 没有记录到技能使用。`,`لا توجد استخدامات مسجلة للمهارات في {period}.`],"No skill uses are recorded yet.":[`尚未记录到技能使用。`,`لا توجد استخدامات مسجلة للمهارات بعد.`],"The use charts appear after OMMS records agent turns that use a skill.":[`OMMS 记录使用技能的智能体回合后,会显示使用图表。`,`تظهر مخططات الاستخدام بعد أن يسجّل OMMS أدوار الوكلاء التي تستخدم مهارة.`],"No uses in this period. Bars appear after OMMS records turns.":[`此期间没有使用。OMMS 记录回合后会显示条形图。`,`لا توجد استخدامات في هذه الفترة. تظهر الأشرطة بعد أن يسجّل OMMS الأدوار.`],"Showing {shown} of {total}":[`显示 {shown} / {total}`,`عرض {shown} من {total}`],"Show more":[`显示更多`,`عرض المزيد`],"Show less":[`显示更少`,`عرض أقل`],lines:[`行`,`أسطر`],"Show {count} more":[`再显示 {count} 条`,`عرض {count} إضافية`],"Last modified":[`最近修改`,`آخر تعديل`],"Modified on {date}":[`修改于 {date}`,`تم التعديل في {date}`],"Show skills by modification":[`按是否修改显示技能`,`عرض المهارات حسب التعديل`],"All ({count})":[`全部({count})`,`الكل ({count})`],"Not modified ({count})":[`未修改({count})`,`غير معدّلة ({count})`],"Modified ({count})":[`已修改({count})`,`معدّلة ({count})`],"No skill has been modified yet.":[`尚未修改任何技能。`,`لم يتم تعديل أي مهارة بعد.`],"Every skill has been modified.":[`所有技能都已修改。`,`تم تعديل كل المهارات.`],"Suggested ({count})":[`建议({count})`,`مقترحة ({count})`],"No skill is suggested for a change yet.":[`尚无建议修改的技能。`,`لم تُقترح أي مهارة للتعديل بعد.`],"The state could not be saved, so SKILL.md is as it was. Try again.":[`无法保存状态,SKILL.md 保持原样。请重试。`,`تعذر حفظ الحالة، لذا بقي SKILL.md كما كان. حاول مرة أخرى.`],"No skill matches this name in this tab.":[`此标签页中没有技能匹配该名称。`,`لا توجد مهارة تطابق هذا الاسم في هذا التبويب.`],"No error text recorded":[`没有记录错误文本`,`لم يُسجَّل نص خطأ`],"Could not copy":[`无法复制`,`تعذّر النسخ`],"Show full input":[`显示完整输入`,`عرض الإدخال الكامل`],"Show less input":[`收起完整输入`,`إخفاء الإدخال الكامل`],"The server sent the first 20000 characters of this input.":[`服务器只发送了此输入的前 20000 个字符。`,`أرسل الخادم أول 20000 حرفاً من هذا الإدخال فقط.`],Copy:[`复制`,`نسخ`],Close:[`关闭`,`إغلاق`],"The failed calls could not be loaded.":[`无法加载失败的工具调用。`,`تعذّر تحميل الاستدعاءات الفاشلة.`],"Position {position}":[`位置 {position}`,`الموضع {position}`],Failures:[`失败记录`,`حالات الفشل`],"Failed calls that count against this skill, grouped by tool and first error line.":[`按工具和错误首行分组、计入此技能的失败调用。`,`الاستدعاءات الفاشلة التي تُحسب على هذه المهارة، مجمّعةً حسب الأداة وأول سطر في الخطأ.`],"No failed tool calls are recorded for this skill.":[`没有记录到计入此技能的失败工具调用。`,`لا توجد استدعاءات أدوات فاشلة مسجّلة لهذه المهارة.`],"no error text":[`无错误文本`,`بلا نص خطأ`],"{calls} call over {turns} turn":[`{calls} 次调用,涉及 {turns} 个回合`,`استدعاء واحد عبر دور واحد`],"{calls} call over {turns} turns":[`{calls} 次调用,涉及 {turns} 个回合`,`استدعاء واحد عبر {turns} أدوار`],"{calls} calls over {turns} turn":[`{calls} 次调用,涉及 {turns} 个回合`,`{calls} استدعاءات عبر دور واحد`],"{calls} calls over {turns} turns":[`{calls} 次调用,涉及 {turns} 个回合`,`{calls} استدعاءات عبر {turns} أدوار`],"{count} call is in this group; showing the latest {shown}.":[`此分组共有 {count} 次调用;显示最新的 {shown} 次。`,`هذه المجموعة تضم استدعاء واحداً؛ يُعرض آخر {shown} منه.`],"{count} calls are in this group; showing the latest {shown}.":[`此分组共有 {count} 次调用;显示最新的 {shown} 次。`,`هذه المجموعة تضم {count} استدعاء؛ يُعرض آخر {shown} منها.`],"Last seen {date}":[`最近出现于 {date}`,`آخر ظهور {date}`],"Explain failures":[`解释失败`,`شرح حالات الفشل`],"Explaining… This can take a few minutes.":[`正在解释…这可能需要几分钟。`,`جارٍ الشرح… قد يستغرق ذلك بضع دقائق.`],"Skill learning must be on to explain failures.":[`必须开启技能学习才能解释失败。`,`يجب تشغيل تعلّم المهارات لشرح حالات الفشل.`],"No failure groups to explain.":[`没有可解释的失败分组。`,`لا توجد مجموعات فشل لشرحها.`],"About Explain failures":[`关于“解释失败”`,`حول شرح حالات الفشل`],"Explaining needs the external API. Set it up first.":[`解释失败需要外部 API。请先设置。`,`يحتاج شرح الفشل إلى واجهة API الخارجية. أعدّها أولاً.`],"Send failures to the external API?":[`将失败记录发送到外部 API?`,`إرسال حالات الفشل إلى واجهة API الخارجية؟`],"Nothing is sent until you confirm. Nothing is saved.":[`确认之前不会发送任何内容,也不会保存任何内容。`,`لا يُرسَل شيء قبل التأكيد، ولا يُحفَظ شيء.`],"This sends the failure groups (tool names, error text and input excerpts of up to 500 characters) and this skill's SKILL.md to the external API model.":[`这会把失败分组(工具名称、错误文本和最多 500 字符的输入摘录)以及此技能的 SKILL.md 发送到外部 API 模型。`,`يرسل هذا مجموعات الفشل (أسماء الأدوات ونصوص الأخطاء ومقتطفات إدخال حتى 500 حرف) وملف SKILL.md لهذه المهارة إلى نموذج واجهة API الخارجية.`],"The text is sent as stored, after <private> removal and secret redaction.":[`文本按存储时的样子发送:已移除 <private> 内容并对机密进行脱敏。`,`يُرسَل النص كما خُزِّن: بعد إزالة <private> وإخفاء الأسرار.`],"Warning: redaction is off. The text may hold secrets that were not removed.":[`警告:脱敏已关闭。文本中可能含有未移除的机密。`,`تحذير: إخفاء الأسرار متوقف. قد يحمل النص أسراراً لم تُزَل.`],Cancel:[`取消`,`إلغاء`],"Skill fix":[`技能修复`,`إصلاح المهارة`],"Host or harness bug":[`宿主或框架缺陷`,`خلل في المضيف أو الإطار`],"Environment problem":[`环境问题`,`مشكلة في البيئة`],Unknown:[`未知`,`غير معروف`],"Suggested actions":[`建议操作`,`الإجراءات المقترحة`],"The labels and suggestions are leads from the error text only; the model cannot see the host's code.":[`标签和建议仅是来自错误文本的线索;模型看不到宿主的代码。`,`التسميات والاقتراحات مجرد مؤشرات من نص الخطأ فقط؛ لا يستطيع النموذج رؤية كود المضيف.`],"Import chat history":[`导入聊天记录`,`استيراد سجل المحادثات`],"Memory limits":[`记忆限制`,`حدود الذاكرة`],"Resolve missing project folders":[`解析缺失的项目文件夹`,`حل مجلدات المشاريع المفقودة`],"Project memories":[`项目记忆`,`ذاكرة المشروع`],"User profile":[`用户画像`,`الملف الشخصي للمستخدم`],"(preferences, patterns, and workflows)":[`(偏好、模式和工作流程)`,`(التفضيلات والأنماط وسير العمل)`],"All hosts":[`所有宿主`,`جميع المضيفين`],"Selected hosts":[`已选宿主`,`المضيفون المحددون`],"Choose at least one output.":[`请至少选择一项输出。`,`اختر مخرجاً واحداً على الأقل.`],"Choose at least one host.":[`请至少选择一个宿主。`,`اختر مضيفاً واحداً على الأقل.`],"Re-analyse handled history":[`重新分析已处理的记录`,`إعادة تحليل السجل المعالج`],"Re-analysis applies to the selected outputs. Each profile prompt can be forcibly re-analysed once. Findings merge into the existing profile.":[`重新分析适用于所选输出。每条画像提示只能强制重新分析一次。结果合并到现有画像中。`,`تنطبق إعادة التحليل على المخرجات المحددة. يمكن إعادة تحليل كل مطالبة للملف الشخصي بالقوة مرة واحدة. تُدمج النتائج في الملف الحالي.`],"Preview the current selection before starting an import.":[`开始导入前,请预览当前选择。`,`عاين الاختيار الحالي قبل بدء الاستيراد.`],"This import makes model calls. Continue?":[`此次导入会调用模型。是否继续?`,`سيجري هذا الاستيراد اتصالات بالنموذج. هل تريد المتابعة؟`],"Conversations populate project facts. User prompts populate personal preferences, recurring patterns, and workflow steps.":[`对话生成项目事实。用户提示生成个人偏好、重复模式和工作流程步骤。`,`تضيف المحادثات حقائق المشروع. وتضيف مطالبات المستخدم التفضيلات الشخصية والأنماط المتكررة وخطوات سير العمل.`],"Profile identity in Settings":[`设置中的画像身份`,`هوية الملف الشخصي في الإعدادات`],"Hosts keep their existing user identities. All hosts does not merge profiles with different identities.":[`各宿主保留现有用户身份。选择所有宿主不会合并不同身份的画像。`,`يحتفظ المضيفون بهويات المستخدم الحالية. اختيار جميع المضيفين لا يدمج ملفات الهويات المختلفة.`],"Pi session reader is unavailable. Fix the reader or deselect Pi.":[`Pi 会话读取器不可用。请修复读取器或取消选择 Pi。`,`قارئ جلسات Pi غير متاح. أصلح القارئ أو ألغِ تحديد Pi.`],"Import results":[`导入结果`,`نتائج الاستيراد`],"Import successful 🎉":[`导入成功`,`تم الاستيراد بنجاح`],"Import failed":[`导入失败`,`فشل الاستيراد`],"Import cancelled":[`导入已取消`,`تم إلغاء الاستيراد`],"The import finished while you were away.":[`导入在你离开时已结束。`,`انتهى الاستيراد أثناء غيابك.`],"Could not reload the settings. Reload the page.":[`无法重新加载设置。请刷新页面。`,`تعذر إعادة تحميل الإعدادات. أعد تحميل الصفحة.`],OK:[`确定`,`حسناً`],Dismiss:[`关闭`,`إغلاق`],"Show handled sessions":[`显示已处理的会话`,`إظهار الجلسات المعالجة`],Handled:[`已处理`,`تمت معالجتها`],"Handled sessions hidden":[`已隐藏的已处理会话`,`الجلسات المعالجة المخفية`],"Some memory units failed. Completed work is saved. A new preview and import retries only the failed units.":[`部分记忆单元失败。已完成的工作已保存。重新预览并导入只会重试失败的单元。`,`فشلت بعض وحدات الذاكرة. العمل المكتمل محفوظ. المعاينة والاستيراد الجديدان يعيدان محاولة الوحدات الفاشلة فقط.`],"Profile learning failed. Completed memory work is saved.":[`画像学习失败。已完成的记忆处理已保存。`,`فشل تعلّم الملف الشخصي. عمل الذاكرة المكتمل محفوظ.`],"Import preparation failed.":[`导入准备失败。`,`فشل تحضير الاستيراد.`],"Refresh the preview and retry.":[`请刷新预览后重试。`,`حدّث المعاينة ثم أعد المحاولة.`],"The session list is out of date. Refresh the list and try again.":[`会话列表已过期。请刷新列表后重试。`,`قائمة الجلسات قديمة. حدّث القائمة ثم أعد المحاولة.`],"The history source changed. Choose it again.":[`历史记录来源已更改。请重新选择。`,`تغيّر مصدر السجل. اختره مجدداً.`],"The history source is no longer valid. Choose it again.":[`历史记录来源已失效。请重新选择。`,`لم يعد مصدر السجل صالحاً. اختره مجدداً.`],"A Pi import is already running":[`已有 Pi 导入正在运行`,`استيراد Pi قيد التشغيل بالفعل`],"An OpenCode import is already running":[`已有 OpenCode 导入正在运行`,`استيراد OpenCode قيد التشغيل بالفعل`],"A Claude Code import is already running":[`已有 Claude Code 导入正在运行`,`استيراد Claude Code قيد التشغيل بالفعل`],"Combined counts":[`合计数量`,`الأعداد المجمعة`],"Current host":[`当前宿主`,`المضيف الحالي`],"Memory extraction":[`提取记忆`,`استخراج الذاكرة`],"Memory units":[`记忆单元`,`وحدات الذاكرة`],"Pending memory units":[`待处理记忆单元`,`وحدات الذاكرة المعلقة`],"Imported memory units":[`已导入记忆单元`,`وحدات الذاكرة المستوردة`],"Already handled memory units":[`已处理记忆单元`,`وحدات الذاكرة المعالجة سابقاً`],"Skipped memory units":[`已跳过记忆单元`,`وحدات الذاكرة المتخطاة`],"Failed memory units":[`失败的记忆单元`,`وحدات الذاكرة التي فشلت`],"Held-back turns":[`暂缓处理的轮次`,`الرسائل المؤجلة`],"Untimed turns":[`无时间戳的轮次`,`الرسائل بلا طابع زمني`],"Load errors":[`加载错误`,`أخطاء التحميل`],"Already handled profile prompts":[`已处理画像提示`,`مطالبات الملف الشخصي المعالجة سابقاً`],"Profile prompts":[`画像提示`,`مطالبات الملف الشخصي`],"Profile batches":[`画像批次`,`دفعات الملف الشخصي`],"Estimated profile analysis calls":[`预计画像分析调用次数`,`اتصالات تحليل الملف الشخصي المقدّرة`],"Waiting prompts inside OMMS":[`OMMS 内等待处理的提示`,`المطالبات المنتظرة داخل OMMS`],"No work to process":[`没有待处理工作`,`لا يوجد عمل للمعالجة`],queued:[`排队中`,`في الانتظار`],preparing:[`准备中`,`جارٍ التحضير`],"not-run":[`未运行`,`لم يُشغّل`],"Automatic profile cleanup":[`自动整理画像`,`التنظيف التلقائي للملف الشخصي`],"After a learning pass, OMMS merges duplicate profile items and removes vague ones by itself, in the background. Each run makes about one model call for every 100 items and takes several minutes on a large profile. Undo last automatic cleanup on the Profile page puts the changes back.":[`学习完成后,OMMS 会在后台自动合并重复的画像条目,并删除含糊的条目。每次运行大约每 100 个条目调用一次模型,在大型画像上需要几分钟。在“用户画像”页面选择“撤销上次自动整理”可恢复这些更改。`,`بعد كل جولة تعلّم، يدمج OMMS عناصر الملف الشخصي المكررة ويحذف العناصر الغامضة تلقائياً في الخلفية. تجري كل عملية نحو اتصال واحد بالنموذج لكل 100 عنصر وتستغرق عدة دقائق على الملف الكبير. يعيد خيار «تراجع عن آخر تنظيف تلقائي» في صفحة الملف الشخصي التغييرات.`],"Clean up the profile automatically":[`自动整理画像`,`تنظيف الملف الشخصي تلقائياً`],"Run every this many analysed prompts":[`每隔多少条已分析的提示运行一次`,`التشغيل كل عدد من المطالبات المحللة`],"Save interval":[`保存间隔`,`حفظ الفاصل`],"Enter a whole number from 50 to 100000.":[`请输入 50 到 100000 之间的整数。`,`أدخل عدداً صحيحاً من 50 إلى 100000.`],"Saved. Changes apply at the next learning pass.":[`已保存。更改将在下一次学习时生效。`,`تم الحفظ. تنطبق التغييرات في جولة التعلّم التالية.`],"Analyse waiting prompts":[`分析等待处理的提示`,`تحليل المطالبات المنتظرة`],"Re-analyse chat history":[`重新分析聊天记录`,`إعادة تحليل سجل المحادثات`],"Analyse waiting prompts reads prompts already inside OMMS with the saved external API, 50 eligible prompts per analysis call. Completed history is not re-analysed. Preferences, patterns, and workflows are the outputs.":[`分析等待处理的提示使用已保存的外部 API,读取 OMMS 内已有的提示,每次分析调用处理 50 条符合条件的提示。不会重新分析已完成的历史记录。输出包括偏好、模式和工作流程。`,`يقرأ تحليل المطالبات المنتظرة المطالبات الموجودة داخل OMMS عبر واجهة API الخارجية المحفوظة، بمعدل 50 مطالبة مؤهلة لكل اتصال تحليل. لا يُعاد تحليل السجل المكتمل. المخرجات هي التفضيلات والأنماط وسير العمل.`],"Analysis calls are an estimate. Matching, deduplication, retries, and newly waiting prompts can add calls.":[`分析调用次数为估计值。匹配、去重、重试和新增的等待提示可能增加调用次数。`,`اتصالات التحليل تقديرية. قد تضيف المطابقة وإزالة التكرار وإعادة المحاولة والمطالبات المنتظرة الجديدة اتصالات أخرى.`],"Re-analyse chat history opens a forced profile-only import. It preserves your profile and project memories. Preview and confirmation are required. Each profile prompt can be forcibly re-analysed once.":[`重新分析聊天记录会打开强制仅导入画像的流程。现有画像和项目记忆将保留。必须先预览并确认。每条画像提示只能强制重新分析一次。`,`تفتح إعادة تحليل سجل المحادثات استيراداً قسرياً للملف الشخصي فقط. تُحفظ ذاكرة المشروع وملفك الشخصي. تلزم المعاينة والتأكيد. يمكن إعادة تحليل كل مطالبة للملف الشخصي بالقوة مرة واحدة.`],"Automatic import reads older conversations when a host starts. It populates project memories and user profile input. The first backfill fixes a cutoff; later turns use live capture.":[`自动导入在宿主启动时读取较早的对话,填充项目记忆和用户画像输入。首次回填固定截止时间,之后的轮次使用实时捕获。`,`يقرأ الاستيراد التلقائي المحادثات الأقدم عند بدء المضيف. ويضيف ذاكرة المشروع ومدخلات الملف الشخصي. يثبت أول استيراد تاريخاً فاصلاً؛ وتستخدم الرسائل اللاحقة الالتقاط المباشر.`],"A directory map links a recorded project folder to its current folder. Saved maps apply globally to every host at the next import or backfill run. Review changes before saving.":[`目录映射将记录的项目文件夹链接到当前文件夹。保存的映射在下次导入或回填时全局应用于所有宿主。保存前请检查更改。`,`تربط خريطة المجلدات مجلد المشروع المسجل بمجلده الحالي. تنطبق الخرائط المحفوظة على جميع المضيفين في الاستيراد التالي. راجع التغييرات قبل الحفظ.`],"Prompt date from must not be after Prompt date to.":[`提示开始日期不能晚于结束日期。`,`يجب ألا يأتي تاريخ بدء المطالبات بعد تاريخ انتهائها.`],"Profile batch size must be a positive integer.":[`画像批次大小必须为正整数。`,`يجب أن يكون حجم دفعة الملف الشخصي عدداً صحيحاً موجباً.`],Models:[`模型`,`النماذج`],"External API fallback":[`外部 API 备用模型`,`النموذج الاحتياطي عبر واجهة API الخارجية`],none:[`无`,`لا يوجد`],ready:[`就绪`,`جاهز`],"not ready":[`未就绪`,`غير جاهز`],"Credentials (values hidden)":[`凭据(不显示内容)`,`بيانات الاعتماد (القيم مخفية)`],set:[`已设置`,`مضبوط`],"not set":[`未设置`,`غير مضبوط`],"Effective model":[`当前使用模型`,`النموذج المستخدم`],session:[`会话`,`الجلسة`],"external API":[`外部 API`,`واجهة API الخارجية`],unavailable:[`不可用`,`غير متاح`],"Project override is active. Changes to the global file may not take effect here.":[`项目设置优先。全局文件的更改可能不会在此生效。`,`إعدادات المشروع لها الأولوية. قد لا تسري تغييرات الملف العام هنا.`],"Model choice":[`模型选择`,`اختيار النموذج`],"Session model":[`会话模型`,`نموذج الجلسة`],"Manual model":[`手动选择模型`,`اختيار النموذج يدوياً`],"Manual provider/model":[`手动输入提供商/模型`,`إدخال المزوّد/النموذج يدوياً`],"Model list unavailable. Enter provider/model manually.":[`模型列表不可用。请手动输入提供商/模型。`,`قائمة النماذج غير متاحة. أدخل المزوّد/النموذج يدوياً.`],"OpenCode model list unavailable":[`OpenCode 模型列表不可用`,`قائمة نماذج OpenCode غير متاحة`],"OMMS could not find OpenCode on this computer, so it cannot list OpenCode's models here. Type the model as provider/model, for example zai-coding-plan/glm-5.3. If OpenCode is installed, open an OpenCode session and reload this page.":[`OMMS 在这台电脑上找不到 OpenCode,因此无法在此列出 OpenCode 的模型。请按 提供商/模型 格式输入模型,例如 zai-coding-plan/glm-5.3。如果已安装 OpenCode,请打开一个 OpenCode 会话,然后重新加载此页面。`,`لم يعثر OMMS على OpenCode في هذا الحاسوب، لذا لا يمكنه عرض نماذج OpenCode هنا. أدخل النموذج بصيغة المزوّد/النموذج، مثل zai-coding-plan/glm-5.3. إذا كان OpenCode مثبتاً، فافتح جلسة OpenCode ثم أعد تحميل هذه الصفحة.`],"OpenCode took too long to send its model list. Reload this page to try again, or type the model as provider/model.":[`OpenCode 发送模型列表的时间过长。请重新加载此页面重试,或按 提供商/模型 格式输入模型。`,`استغرق OpenCode وقتاً طويلاً لإرسال قائمة نماذجه. أعد تحميل هذه الصفحة للمحاولة مرة أخرى، أو أدخل النموذج بصيغة المزوّد/النموذج.`],"OpenCode has no signed-in models. Run `opencode auth login`, then reload this page.":["OpenCode 没有已登录的模型。请运行 `opencode auth login`,然后重新加载此页面。","لا توجد في OpenCode نماذج مسجَّل الدخول إليها. شغّل `opencode auth login` ثم أعد تحميل هذه الصفحة."],"This OpenCode version sent a model list OMMS cannot read. Type the model as provider/model. Update OMMS if this continues.":[`此版本的 OpenCode 发送的模型列表 OMMS 无法读取。请按 提供商/模型 格式输入模型。如果问题持续,请更新 OMMS。`,`أرسل هذا الإصدار من OpenCode قائمة نماذج لا يستطيع OMMS قراءتها. أدخل النموذج بصيغة المزوّد/النموذج. حدّث OMMS إذا استمرت المشكلة.`],"OMMS could not read Pi's model list. Type the model as provider/model.":[`OMMS 无法读取 Pi 的模型列表。请按 提供商/模型 格式输入模型。`,`تعذّر على OMMS قراءة قائمة نماذج Pi. أدخل النموذج بصيغة المزوّد/النموذج.`],"Pi has no signed-in models. Sign in to a provider in Pi, then reload this page.":[`Pi 没有已登录的模型。请在 Pi 中登录一个提供商,然后重新加载此页面。`,`لا توجد في Pi نماذج مسجَّل الدخول إليها. سجّل الدخول إلى مزوّد في Pi ثم أعد تحميل هذه الصفحة.`],"Save model":[`保存模型`,`حفظ النموذج`],"Enter a model as provider/model.":[`按 提供商/模型 格式输入。`,`أدخل النموذج بصيغة المزوّد/النموذج.`],"Saved. New capture and profile work uses these settings.":[`已保存。下一次捕获和用户画像将使用这些设置。`,`تم الحفظ. ستستخدم عمليات الالتقاط والملف الشخصي الجديدة هذه الإعدادات.`],"Saved. OMMS now reads ~/.config/omms/omms.jsonc. The legacy config was kept.":[`已保存。OMMS 现在读取 ~/.config/omms/omms.jsonc,旧配置保留。`,`تم الحفظ. يقرأ OMMS الآن الملف ~/.config/omms/omms.jsonc مع الاحتفاظ بالإعدادات القديمة.`],"Current settings were reloaded; check the values and save again.":[`已重新加载当前设置;检查数值后再次保存。`,`أُعيد تحميل الإعدادات الحالية. راجع القيم ثم احفظ مجدداً.`],"Capture diagnostics":[`捕获诊断`,`تشخيص الالتقاط`],"Time range":[`时间范围`,`الفترة الزمنية`],"24 hours":[`24 小时`,`24 ساعة`],"7 days":[`7 天`,`7 أيام`],"30 days":[`30 天`,`30 يوماً`],"90 days":[`90 天`,`90 يوماً`],"Host / model":[`主机 / 模型`,`المضيف / النموذج`],Saved:[`已保存`,`محفوظ`],Skipped:[`已跳过`,`متجاوز`],Failed:[`失败`,`فشل`],Total:[`总数`,`المجموع`],"Failure reasons":[`失败原因`,`أسباب الفشل`],"Recent attempts":[`最近尝试`,`المحاولات الأخيرة`],Time:[`时间`,`الوقت`],Host:[`主机`,`المضيف`],Source:[`来源`,`المصدر`],Session:[`会话`,`الجلسة`],Path:[`路径`,`المسار`],Model:[`模型`,`النموذج`],Stop:[`结束原因`,`سبب التوقف`],Blocks:[`区块`,`الكتل`],Prompt:[`提示词长度`,`طول الطلب`],Reply:[`回复长度`,`طول الرد`],Duration:[`耗时`,`المدة`],Outcome:[`结果`,`النتيجة`],Reason:[`原因`,`السبب`],"Save capture traces":[`保存捕获追踪`,`حفظ تتبعات الالتقاط`],"Traces can contain conversation content after redaction. Keep tracing off unless you need it for debugging.":[`追踪文件在脱敏后仍可能包含对话内容。仅在调试时开启。`,`قد تحتوي التتبعات على محتوى المحادثة بعد التنقيح. فعّلها عند التصحيح فقط.`],"This project turns tracing off. The global switch cannot turn it on here.":[`此项目已关闭追踪。全局开关无法在此开启。`,`أوقف هذا المشروع التتبع. لا يمكن للمفتاح العام تفعيله هنا.`],"Trace retention (days)":[`追踪保留天数`,`مدة حفظ التتبعات (بالأيام)`],"Attempt retention (days)":[`尝试记录保留天数`,`مدة حفظ المحاولات (بالأيام)`],"Retry retention (hours)":[`重试保留小时数`,`مدة حفظ إعادة المحاولة (بالساعات)`],"When the capture model cannot be reached, OMMS keeps the turn and tries again later. Queued turns can hold conversation content after redaction. 0 turns the queue off and deletes waiting turns.":[`捕获模型无法访问时,OMMS 会保留该轮对话并稍后重试。排队的对话在脱敏后仍可能包含对话内容。设为 0 会关闭队列并删除等待中的对话。`,`عندما يتعذر الوصول إلى نموذج الالتقاط، يحتفظ OMMS بالجولة ويعيد المحاولة لاحقاً. قد تحتوي الجولات المنتظرة على محتوى المحادثة بعد التنقيح. القيمة 0 توقف قائمة الانتظار وتحذف الجولات المنتظرة.`],"Turns waiting for retry":[`等待重试的对话`,`الجولات المنتظرة لإعادة المحاولة`],"Retry now":[`立即重试`,`أعد المحاولة الآن`],"Retrying now.":[`正在重试。`,`تجري إعادة المحاولة الآن.`],"A retry is already running.":[`重试已在运行。`,`إعادة المحاولة قيد التشغيل بالفعل.`],"These turns retry at the next Pi session start.":[`这些对话将在下次启动 Pi 会话时重试。`,`ستُعاد محاولة هذه الجولات عند بدء جلسة Pi التالية.`],"These turns retry at the next OpenCode session start.":[`这些对话将在下次启动 OpenCode 会话时重试。`,`ستُعاد محاولة هذه الجولات عند بدء جلسة OpenCode التالية.`],"These turns retry at the next Claude Code session start.":[`这些对话将在下次启动 Claude Code 会话时重试。`,`ستُعاد محاولة هذه الجولات عند بدء جلسة Claude Code التالية.`],"Claude Code capture uses the external API.":[`Claude Code 捕获使用外部 API。`,`يستخدم التقاط Claude Code واجهة API الخارجية.`],"Claude Code capture is off. Complete the external API settings.":[`Claude Code 捕获已关闭。请完成外部 API 设置。`,`التقاط Claude Code متوقف. أكمل إعدادات واجهة API الخارجية.`],"Missing settings":[`缺少的设置`,`الإعدادات الناقصة`],"memoryModel is not configured":[`未配置 memoryModel`,`لم يُضبط memoryModel`],"memoryApiUrl is not configured":[`未配置 memoryApiUrl`,`لم يُضبط memoryApiUrl`],"memoryApiKey is not configured":[`未配置 memoryApiKey`,`لم يُضبط memoryApiKey`],"memoryApiKey contains a placeholder value":[`memoryApiKey 包含占位值`,`يحتوي memoryApiKey على قيمة نائبة`],"Claude Code backfill always uses the external API. It has no backfill model setting.":[`Claude Code 回填始终使用外部 API,没有回填模型设置。`,`يستخدم استيراد Claude Code دائماً واجهة API الخارجية، ولا يوجد له إعداد لنموذج الاستيراد.`],"Claude Code transcripts folder":[`Claude Code 对话记录文件夹`,`مجلد سجلات محادثات Claude Code`],"Claude Code transcripts":[`Claude Code 对话记录`,`سجلات محادثات Claude Code`],found:[`已找到`,`موجود`],"not found":[`未找到`,`غير موجود`],"Claude Code imports always use the external API.":[`Claude Code 导入始终使用外部 API。`,`يستخدم استيراد Claude Code دائماً واجهة API الخارجية.`],"Claude Code imports use the external API. Complete the external API settings.":[`Claude Code 导入使用外部 API。请完成外部 API 设置。`,`يستخدم استيراد Claude Code واجهة API الخارجية. أكمل إعدادات واجهة API الخارجية.`],"Trace files":[`追踪文件`,`ملفات التتبع`],View:[`查看`,`عرض`],Delete:[`删除`,`حذف`],Health:[`健康检查`,`فحص الحالة`],"Config files":[`配置文件`,`ملفات الإعدادات`],"Memory store":[`记忆存储`,`مخزن الذاكرة`],Embedding:[`嵌入模型`,`نموذج التضمين`],"Web binding":[`网页服务绑定`,`ربط خادم الويب`],"OpenCode model":[`OpenCode 模型`,`نموذج OpenCode`],"Pi model":[`Pi 模型`,`نموذج Pi`],"Capture failures (24 hours)":[`捕获失败(24 小时)`,`فشل الالتقاط (24 ساعة)`],"OpenCode model test":[`OpenCode 模型测试`,`اختبار نموذج OpenCode`],"Pi model test":[`Pi 模型测试`,`اختبار نموذج Pi`],"Run checks":[`运行检查`,`تشغيل الفحوصات`],"Run checks and test models":[`运行检查并测试模型`,`تشغيل الفحوصات واختبار النماذج`],"Checking…":[`正在检查…`,`جارٍ الفحص…`],pass:[`通过`,`نجاح`],warn:[`警告`,`تحذير`],fail:[`失败`,`فشل`],"Import and backfill":[`导入和回填`,`الاستيراد والاستكمال`],"Automatic import":[`自动导入`,`الاستيراد التلقائي`],"Automatic import makes model calls. Changes apply at the next host start. Turning it off stops a running import after the current exchange.":[`自动导入会调用模型。更改在下次启动主机时生效。关闭后,正在运行的导入将在当前轮次结束后停止。`,`يستدعي الاستيراد التلقائي النموذج. تسري التغييرات عند بدء المضيف التالي. يوقف التعطيل الاستيراد بعد التبادل الحالي.`],"Import past chats automatically":[`自动导入过去的对话`,`استيراد المحادثات السابقة تلقائياً`],"Backfill model":[`历史导入模型`,`نموذج استيراد السجل`],"Same as live capture":[`与实时捕获相同`,`مثل الالتقاط المباشر`],"Saved. Changes apply at the next host start.":[`已保存。更改在下次启动主机时生效。`,`تم الحفظ. تسري التغييرات عند بدء المضيف التالي.`],State:[`状态`,`الحالة`],"not started":[`尚未开始`,`لم يبدأ`],"not-started":[`尚未开始`,`لم يبدأ`],Imported:[`已导入`,`مستورَد`],Pending:[`待处理`,`معلّق`],"Unresolved sessions":[`目录未解析的会话`,`جلسات بمجلدات غير محددة`],Cutoff:[`截止时间`,`وقت القطع`],stopped:[`已停止`,`توقف`],"Web app":[`网页应用`,`تطبيق الويب`],"Start web app at login":[`登录时启动网页应用`,`بدء تطبيق الويب عند تسجيل الدخول`],"Login item":[`登录启动项`,`عنصر بدء تسجيل الدخول`],"not installed":[`未安装`,`غير مثبّت`],"not-installed":[`未安装`,`غير مثبّت`],installed:[`已安装`,`مثبّت`],unsupported:[`不受支持`,`غير مدعوم`],"no-runtime":[`缺少运行环境`,`بيئة التشغيل غير متاحة`],"no-package":[`缺少软件包`,`الحزمة غير متاحة`],"no-launcher":[`缺少启动器`,`المشغّل غير متاح`],"Login items are unsupported on this platform.":[`此平台不支持登录启动项。`,`عناصر بدء تسجيل الدخول غير مدعومة على هذا النظام.`],"Install Node or Bun to start the web app at login.":[`安装 Node 或 Bun 后,网页应用才能在登录时启动。`,`ثبّت Node أو Bun لبدء تطبيق الويب عند تسجيل الدخول.`],"Use these commands to apply the change now:":[`使用以下命令立即应用更改:`,`استخدم هذه الأوامر لتطبيق التغيير الآن:`],"Saved. The login item changes at the next Pi or OpenCode start.":[`已保存。登录启动项将在下次启动 Pi 或 OpenCode 时更新。`,`تم الحفظ. يتغير عنصر بدء التشغيل عند بدء Pi أو OpenCode التالي.`],"History host":[`历史记录主机`,`مضيف السجل`],Scope:[`范围`,`النطاق`],"Current project":[`当前项目`,`المشروع الحالي`],"All projects":[`所有项目`,`كل المشاريع`],"Project directory":[`项目目录`,`مجلد المشروع`],"Current directory":[`当前目录`,`المجلد الحالي`],"Profile batch size":[`用户画像批量大小`,`حجم دفعة الملف الشخصي`],"Directory maps (old=new, one per line)":[`目录映射(旧=新,每行一条)`,`تعيين المجلدات (قديم=جديد، واحد في كل سطر)`],"Force reimport":[`强制重新导入`,`فرض إعادة الاستيراد`],"Skip memories":[`跳过记忆`,`تجاوز الذكريات`],"Skip profile":[`跳过用户画像`,`تجاوز الملف الشخصي`],"Import model":[`导入模型`,`نموذج الاستيراد`],"Saved external API":[`已保存的外部 API`,`واجهة API الخارجية المحفوظة`],"Preview (dry run)":[`预览(不写入)`,`معاينة (تشغيل تجريبي)`],"Start import":[`开始导入`,`بدء الاستيراد`],"Cancel after current unit":[`完成当前单元后取消`,`الإلغاء بعد الوحدة الحالية`],"Directory maps must be old=new, one per line":[`目录映射须为 旧=新,每行一条`,`يجب أن يكون تعيين المجلدات بصيغة قديم=جديد، واحد في كل سطر`],running:[`运行中`,`جارٍ التشغيل`],cancelling:[`正在取消`,`جارٍ الإلغاء`],cancelled:[`已取消`,`أُلغي`],done:[`已完成`,`اكتمل`],failed:[`失败`,`فشل`],units:[`单元`,`وحدات`],"List sessions":[`列出会话`,`عرض الجلسات`],"Refresh list":[`刷新列表`,`تحديث القائمة`],"Advanced options":[`高级选项`,`خيارات متقدمة`],"Hide advanced options":[`隐藏高级选项`,`إخفاء الخيارات المتقدمة`],"default location":[`默认位置`,`الموقع الافتراضي`],"Prompt date from":[`提示日期起`,`تاريخ الطلب من`],"Prompt date to":[`提示日期止`,`تاريخ الطلب إلى`],"Prompt dates are inclusive, use your time zone, and filter the turns inside each session, not the list. Empty dates include every turn.":[`提示日期包含首尾两天,按你所在时区计算,只筛选每个会话中的对话轮次,不筛选列表。留空则包含所有轮次。`,`تواريخ الطلب شاملة لليومين، وتُحسب بمنطقتك الزمنية، وتُصفّي الأدوار داخل كل جلسة لا القائمة. تركها فارغة يشمل كل الأدوار.`],"Sessions with directories that no longer exist":[`目录已不存在的会话`,`جلسات لم تعد مجلداتها موجودة`],"Show them and add a directory map":[`显示它们并添加目录映射`,`اعرضها وأضف تعيين مجلد`],Selected:[`已选择`,`المحدد`],"Select all matching":[`选择所有匹配项`,`تحديد كل المطابق`],"Clear selection":[`清除选择`,`مسح التحديد`],Select:[`选择`,`تحديد`],Created:[`创建时间`,`تاريخ الإنشاء`],"Resolved by":[`解析方式`,`طريقة التحديد`],recorded:[`记录的目录`,`المجلد المسجّل`],mapped:[`目录映射`,`تعيين مجلد`],"project root":[`项目根目录`,`جذر المشروع`],missing:[`缺失`,`مفقود`],"No sessions match.":[`没有匹配的会话。`,`لا توجد جلسات مطابقة.`],Previous:[`上一页`,`السابق`],Next:[`下一页`,`التالي`],None:[`无`,`لا شيء`],"Configured, not tested.":[`已配置,未测试。`,`مُعدّ، لم يُختبر.`],"An import with an OpenCode signed-in model runs from the terminal or with /import in OpenCode.":[`使用 OpenCode 已登录模型的导入需在终端运行,或在 OpenCode 中使用 /import。`,`يتم الاستيراد بنموذج OpenCode المسجَّل الدخول من الطرفية أو بالأمر /import داخل OpenCode.`],"The chosen OpenCode model is not connected here. An import with an OpenCode signed-in model runs from the terminal or with /import in OpenCode. Choose the external API for a web import.":[`所选 OpenCode 模型在此处未连接。使用 OpenCode 已登录模型的导入需在终端运行,或在 OpenCode 中使用 /import。网页导入请选择外部 API。`,`نموذج OpenCode المختار غير متصل هنا. يتم الاستيراد بنموذج OpenCode المسجَّل الدخول من الطرفية أو بالأمر /import داخل OpenCode. اختر واجهة API الخارجية للاستيراد من الصفحة.`],"Test models in Health":[`在健康检查中测试模型`,`اختبر النماذج في قسم السلامة`],Import:[`导入`,`استيراد`],sessions:[`个会话`,`جلسات`],"1 session":[`1 个会话`,`جلسة واحدة`],"List sessions first.":[`请先列出会话。`,`اعرض الجلسات أولاً.`],"Options changed. Refresh the session list first.":[`选项已更改。请先刷新会话列表。`,`تغيّرت الخيارات. حدّث قائمة الجلسات أولاً.`],"Select at least one session.":[`请至少选择一个会话。`,`حدّد جلسة واحدة على الأقل.`],"Select at most 1000 sessions one by one, or use Select all matching.":[`逐个选择最多 1000 个会话,或使用“选择所有匹配项”。`,`حدّد 1000 جلسة كحد أقصى واحدة تلو الأخرى، أو استخدم «تحديد كل المطابق».`],"Model readiness is unknown. Reload the page.":[`无法确定模型是否就绪。请重新加载页面。`,`حالة جاهزية النموذج غير معروفة. أعد تحميل الصفحة.`],"No import model is ready. Connect a model in OpenCode or complete the external API settings.":[`没有可用的导入模型。请在 OpenCode 中连接模型,或补全外部 API 设置。`,`لا يوجد نموذج استيراد جاهز. اربط نموذجاً في OpenCode أو أكمل إعدادات واجهة API الخارجية.`],"The external API is not ready":[`外部 API 未就绪`,`واجهة API الخارجية غير جاهزة`],"The external API has no memoryModel in the global config":[`全局配置中缺少外部 API 的 memoryModel`,`لا يحتوي الإعداد العام على memoryModel لواجهة API الخارجية`],"The external API has no memoryApiUrl in the global config":[`全局配置中缺少外部 API 的 memoryApiUrl`,`لا يحتوي الإعداد العام على memoryApiUrl لواجهة API الخارجية`],"The external API key is missing in the OpenCode process; check memoryApiKey and its env:// or file:// source":[`OpenCode 进程中缺少外部 API 密钥;请检查 memoryApiKey 及其 env:// 或 file:// 来源`,`مفتاح واجهة API الخارجية غير موجود في عملية OpenCode؛ تحقّق من memoryApiKey ومصدره env:// أو file://`],"The memoryProvider in the global config is not supported for imports":[`全局配置中的 memoryProvider 不支持导入`,`مزوّد memoryProvider في الإعداد العام غير مدعوم للاستيراد`],"Pi sessions folder or one .jsonl session file":[`Pi 会话文件夹或单个 .jsonl 会话文件`,`مجلد جلسات Pi أو ملف جلسة ‎.jsonl واحد`],"OpenCode database file":[`OpenCode 数据库文件`,`ملف قاعدة بيانات OpenCode`],"Absolute path, for example on a mounted volume":[`绝对路径,例如已挂载卷上的路径`,`مسار مطلق، مثلاً على وحدة تخزين مركّبة`],"Use this source":[`使用此来源`,`استخدم هذا المصدر`],Browse:[`浏览`,`استعراض`],"Use the default location":[`使用默认位置`,`استخدم الموقع الافتراضي`],"Chosen source":[`已选来源`,`المصدر المختار`],Choose:[`选择`,`اختيار`],"Only the first 500 entries are shown.":[`仅显示前 500 项。`,`تُعرض أول 500 عنصر فقط.`],"Reload the page before saving again.":[`再次保存前请重新加载页面。`,`أعد تحميل الصفحة قبل الحفظ مرة أخرى.`],"The current settings could not be reloaded. Reload the page.":[`无法重新加载当前设置。请重新加载页面。`,`تعذّر إعادة تحميل الإعدادات الحالية. أعد تحميل الصفحة.`],Log:[`日志`,`السجل`],"Capture attempts only":[`仅显示捕获尝试`,`محاولات الالتقاط فقط`],Refresh:[`刷新`,`تحديث`],"Copy log path":[`复制日志路径`,`نسخ مسار السجل`],"Log lines":[`日志行`,`أسطر السجل`],"No log has been written yet.":[`尚未写入日志。`,`لم يُكتب سجل بعد.`],"Loading log…":[`正在加载日志…`,`جارٍ تحميل السجل…`],Level:[`级别`,`المستوى`],Warning:[`警告`,`تحذير`],Error:[`错误`,`خطأ`],info:[`信息`,`معلومات`],error:[`错误`,`خطأ`],"Level guessed from the message":[`级别由消息内容推测`,`المستوى مُخمَّن من نص الرسالة`],"Copy visible records":[`复制可见记录`,`نسخ السجلات المعروضة`],Copied:[`已复制`,`تم النسخ`],"No matching log records.":[`没有匹配的日志记录。`,`لا توجد سجلات مطابقة.`],"External API":[`外部 API`,`واجهة API الخارجية`],"An OpenAI- or Anthropic-compatible endpoint that either host can use for capture and backfill.":[`兼容 OpenAI 或 Anthropic 的端点,两个宿主都可用于捕获和回填。`,`نقطة نهاية متوافقة مع OpenAI أو Anthropic يمكن لأي مضيف استخدامها للالتقاط والاستيراد.`],Provider:[`提供商`,`المزوّد`],"API URL":[`API 地址`,`عنوان API`],"API key":[`API 密钥`,`مفتاح API`],"Save endpoint":[`保存端点`,`حفظ نقطة النهاية`],"Nothing to save.":[`没有需要保存的内容。`,`لا يوجد ما يُحفظ.`],"Key source":[`密钥来源`,`مصدر المفتاح`],"environment variable":[`环境变量`,`متغير البيئة`],"key file":[`密钥文件`,`ملف المفتاح`],"set in the config file":[`在配置文件中设置`,`مضبوط في ملف الإعدادات`],"resolves in the web app":[`可在网页应用中解析`,`يُقرأ في تطبيق الويب`],"does not resolve in the web app":[`无法在网页应用中解析`,`لا يُقرأ في تطبيق الويب`],"A login web app does not see variables set only in a shell profile; a key file works everywhere.":[`登录时启动的网页应用看不到仅在 shell 配置文件中设置的变量;密钥文件在任何地方都可用。`,`تطبيق الويب الذي يبدأ عند تسجيل الدخول لا يرى المتغيرات المضبوطة في ملف الصدفة فقط؛ ملف المفتاح يعمل في كل مكان.`],"The key does not resolve in this web app. Save it to a key file instead.":[`此网页应用无法解析该密钥。请改为保存到密钥文件。`,`لا يُقرأ المفتاح في تطبيق الويب هذا. احفظه في ملف مفتاح بدلاً من ذلك.`],"Environment variable":[`环境变量`,`متغير البيئة`],"Key file":[`密钥文件`,`ملف المفتاح`],"Save key to a private file":[`将密钥保存到私有文件`,`حفظ المفتاح في ملف خاص`],"Variable name":[`变量名`,`اسم المتغير`],"Key file path":[`密钥文件路径`,`مسار ملف المفتاح`],"Key file name":[`密钥文件名`,`اسم ملف المفتاح`],"The key is written to ~/.config/omms/secrets/ readable only by you. It is never shown again.":[`密钥写入 ~/.config/omms/secrets/,仅你可读,之后不再显示。`,`يُكتب المفتاح في ~/.config/omms/secrets/ ولا يقرؤه غيرك، ولن يُعرض مرة أخرى.`],"Save key source":[`保存密钥来源`,`حفظ مصدر المفتاح`],"Key source saved.":[`密钥来源已保存。`,`تم حفظ مصدر المفتاح.`],"A key file with this name exists. Replace it?":[`已存在同名密钥文件。要替换吗?`,`يوجد ملف مفتاح بهذا الاسم. هل تريد استبداله؟`],"Enter a variable name such as ZAI_API_KEY":[`请输入变量名,例如 ZAI_API_KEY`,`أدخل اسم متغير مثل ZAI_API_KEY`],"Enter the path of a key file":[`请输入密钥文件路径`,`أدخل مسار ملف المفتاح`],"Name the key file with letters, digits, dashes, or underscores":[`密钥文件名只能包含字母、数字、短横线或下划线`,`سمِّ ملف المفتاح بحروف أو أرقام أو شرطات أو شرطات سفلية`],"Paste the key":[`请粘贴密钥`,`الصق المفتاح`],Test:[`测试`,`اختبار`],"Test call succeeded":[`测试调用成功`,`نجح استدعاء الاختبار`],"Test call failed":[`测试调用失败`,`فشل استدعاء الاختبار`],"External API needs":[`外部 API 缺少`,`تحتاج واجهة API الخارجية إلى`],"Automatic import makes model calls. A model change applies at the next run. Turning it off stops a running import after the current exchange.":[`自动导入会调用模型。模型更改在下次运行时生效。关闭后,正在进行的导入会在当前对话完成后停止。`,`يستدعي الاستيراد التلقائي النماذج. يسري تغيير النموذج في التشغيل التالي. إيقافه يوقف الاستيراد الجاري بعد المحادثة الحالية.`],"Saved. Changes apply at the next run.":[`已保存。更改在下次运行时生效。`,`تم الحفظ. تسري التغييرات في التشغيل التالي.`],paused:[`已暂停`,`متوقف مؤقتاً`],"started from auto":[`自动启动`,`بدأ تلقائياً`],"started from web":[`从网页启动`,`بدأ من الويب`],"started from cli":[`从终端启动`,`بدأ من الطرفية`],"started from slash":[`从斜杠命令启动`,`بدأ من أمر الشرطة المائلة`],"Minutes left":[`剩余分钟`,`الدقائق المتبقية`],unknown:[`未知`,`غير معروف`],about:[`约`,`حوالي`],Pause:[`暂停`,`إيقاف مؤقت`],Resume:[`继续`,`استئناف`],"Pausing after the current exchange.":[`将在当前对话完成后暂停。`,`سيتوقف مؤقتاً بعد المحادثة الحالية.`],"Backfill started.":[`回填已开始。`,`بدأ الاستيراد.`],"The list is still loading. Try again in a moment.":[`列表仍在加载。请稍后再试。`,`لا تزال القائمة قيد التحميل. حاول مرة أخرى بعد لحظة.`],"Paused. No import starts until you resume.":[`已暂停。恢复前不会开始导入。`,`تم الإيقاف مؤقتاً. لن يبدأ أي استيراد حتى تستأنفه.`],"Directory maps":[`目录映射`,`خرائط المجلدات`],"Map a directory that was moved or deleted to the project it belongs to. A change applies to the next import or backfill run.":[`将已移动或删除的目录映射到其所属项目。更改在下次导入或回填时生效。`,`اربط مجلداً نُقل أو حُذف بالمشروع الذي ينتمي إليه. يسري التغيير في الاستيراد التالي.`],"Saved maps":[`已保存的映射`,`الخرائط المحفوظة`],Keep:[`保留`,`إبقاء`],Remove:[`移除`,`إزالة`],"Unresolved directories":[`无法解析的目录`,`مجلدات غير محلولة`],"No unresolved directories in the latest run.":[`最近一次运行没有无法解析的目录。`,`لا توجد مجلدات غير محلولة في آخر تشغيل.`],"No suggestion found.":[`未找到建议。`,`لم يُعثر على اقتراح.`],"Target directory":[`目标目录`,`المجلد الهدف`],"Saved. Maps apply to the next import or backfill run.":[`已保存。映射在下次导入或回填时生效。`,`تم الحفظ. تسري الخرائط في الاستيراد التالي.`],"Memory language":[`记忆语言`,`لغة الذاكرة`],"The language that new memory summaries are written in. Automatic detects it from your prompt, but a Latin-script prompt under 100 characters counts as English.":[`新记忆摘要使用的语言。“自动”会根据你的提示检测语言,但少于 100 个字符的拉丁字母提示按英语处理。`,`اللغة التي تُكتب بها ملخصات الذاكرة الجديدة. يكتشفها الوضع التلقائي من موجّهك، لكن الموجّه بالأحرف اللاتينية الأقصر من 100 حرف يُعدّ إنجليزياً.`],"Summary language":[`摘要语言`,`لغة الملخص`],Appearance:[`外观`,`المظهر`],Theme:[`主题`,`السمة`],"Theme mode":[`主题模式`,`وضع السمة`],System:[`系统`,`النظام`],Light:[`浅色`,`فاتح`],Dark:[`深色`,`داكن`],"Light theme":[`浅色主题`,`السمة الفاتحة`],"Dark theme":[`深色主题`,`السمة الداكنة`],"On screen now":[`当前显示`,`معروضة الآن`],"No theme matches.":[`没有匹配的主题。`,`لا توجد سمة مطابقة.`],"Filter themes":[`筛选主题`,`تصفية السمات`],"System follows your operating system and switches between the light and the dark theme. The choice stays in this browser.":[`“系统”跟随操作系统,在浅色和深色主题之间切换。此选择只保存在此浏览器中。`,`يتبع «النظام» نظام التشغيل ويبدّل بين السمة الفاتحة والداكنة. يبقى الاختيار في هذا المتصفح.`],"Date and time":[`日期和时间`,`التاريخ والوقت`],"How dates and times show in this web app. The choice stays in this browser.":[`此网页应用中日期和时间的显示方式。此选择只保存在此浏览器中。`,`طريقة عرض التواريخ والأوقات في تطبيق الويب هذا. يبقى الاختيار في هذا المتصفح.`],"Date format":[`日期格式`,`تنسيق التاريخ`],"Time format":[`时间格式`,`تنسيق الوقت`],"Day month year":[`日 月 年`,`يوم شهر سنة`],"Month day year":[`月 日 年`,`شهر يوم سنة`],"Year-month-day":[`年-月-日`,`سنة-شهر-يوم`],"24-hour":[`24 小时制`,`24 ساعة`],"12-hour":[`12 小时制`,`12 ساعة`],Automatic:[`自动`,`تلقائي`],"Saved. New memories use this language.":[`已保存。新记忆将使用此语言。`,`تم الحفظ. ستستخدم الذكريات الجديدة هذه اللغة.`],"Claude Code folder":[`Claude Code 文件夹`,`مجلد Claude Code`],"Set this when Claude Code does not use ~/.claude, for example when you start it with CLAUDE_CONFIG_DIR. Leave it empty to use the default.":[`当 Claude Code 不使用 ~/.claude 时(例如用 CLAUDE_CONFIG_DIR 启动它),请设置此项。留空则使用默认文件夹。`,`اضبط هذا عندما لا يستخدم Claude Code المجلد ‎~/.claude، مثلاً عند تشغيله مع CLAUDE_CONFIG_DIR. اتركه فارغاً لاستخدام المجلد الافتراضي.`],"Save folder":[`保存文件夹`,`حفظ المجلد`],"Transcripts folder in use":[`正在使用的会话记录文件夹`,`مجلد سجلات الجلسات المستخدم`],From:[`来源`,`المصدر`],"this setting":[`此设置`,`هذا الإعداد`],"the CLAUDE_CONFIG_DIR variable of the web app":[`网页应用的 CLAUDE_CONFIG_DIR 变量`,`متغير CLAUDE_CONFIG_DIR لتطبيق الويب`],"the default folder":[`默认文件夹`,`المجلد الافتراضي`],"This folder does not exist. Claude Code capture and import will not work:":[`此文件夹不存在。Claude Code 的捕获和导入将无法工作:`,`هذا المجلد غير موجود. لن يعمل الالتقاط والاستيراد في Claude Code:`],"Enter a full path, or a path that starts with ~/.":[`请输入完整路径,或以 ~/ 开头的路径。`,`أدخل مساراً كاملاً، أو مساراً يبدأ بـ ‎~/.`],"Saved. Capture and import use this folder now.":[`已保存。捕获和导入现在使用此文件夹。`,`تم الحفظ. يستخدم الالتقاط والاستيراد هذا المجلد الآن.`],"Running version":[`运行版本`,`الإصدار الجاري`],"Global command":[`全局命令`,`الأمر العام`],"not installed globally":[`未全局安装`,`غير مثبت عمومياً`],"A newer OMMS copy runs in place of the global install. The global install is optional. To update it:":[`正在运行的是更新的 OMMS 副本,而不是全局安装。全局安装是可选的。更新方法:`,`تعمل نسخة OMMS أحدث بدلاً من التثبيت العام. التثبيت العام اختياري. لتحديثه:`],"The global install is newer than the running OMMS. The next Pi or OpenCode start replaces the web app.":[`全局安装比正在运行的 OMMS 更新。下次启动 Pi 或 OpenCode 时将替换网页应用。`,`التثبيت العام أحدث من OMMS الجاري. سيستبدل التشغيل التالي لـ Pi أو OpenCode تطبيق الويب.`],"OMMS is not installed globally. A global install is optional.":[`OMMS 未全局安装。全局安装是可选的。`,`OMMS غير مثبت عمومياً. التثبيت العام اختياري.`],"Keys and access":[`密钥与访问`,`المفاتيح والوصول`],"not needed":[`不需要`,`غير مطلوب`],"External API key":[`外部 API 密钥`,`مفتاح واجهة API الخارجية`],"Embedding server key":[`嵌入服务器密钥`,`مفتاح خادم التضمين`],"Capture and profile learning through the external API. Claude Code always uses it.":[`通过外部 API 进行捕获和用户画像学习。Claude Code 始终使用它。`,`الالتقاط وتعلّم الملف الشخصي عبر واجهة API الخارجية. يستخدمه Claude Code دائماً.`],"Sent to an embedding server on another machine.":[`发送给另一台机器上的嵌入服务器。`,`يُرسَل إلى خادم تضمين على جهاز آخر.`],"Let scripts and other computers call the web app's API.":[`允许脚本和其他电脑调用网页应用的 API。`,`تتيح للبرامج النصية والحواسيب الأخرى استدعاء واجهة API لتطبيق الويب.`],"Asks for a user name and password before the page opens.":[`打开页面前要求输入用户名和密码。`,`يطلب اسم مستخدم وكلمة مرور قبل فتح الصفحة.`],"External API card":[`外部 API 卡片`,`بطاقة واجهة API الخارجية`],"Embedding card":[`嵌入卡片`,`بطاقة التضمين`],"Table below":[`下方表格`,`الجدول أدناه`],"Form below":[`下方表单`,`النموذج أدناه`],"API tokens":[`API 令牌`,`رموز API`],"Browser password":[`浏览器密码`,`كلمة مرور المتصفح`],"The config file still sets webServerApiToken. OMMS imported it once as the token “from config file” and no longer reads the key. Use the token table instead.":[`配置文件仍设置了 webServerApiToken。OMMS 已将其导入一次,作为令牌“from config file”,之后不再读取该键。请改用令牌表。`,`لا يزال ملف الإعدادات يضبط webServerApiToken. استورده OMMS مرة واحدة كرمز باسم “from config file” ولم يعد يقرأ هذا المفتاح. استخدم جدول الرموز بدلاً منه.`],"Open this page on the computer that runs OMMS to manage tokens and the password.":[`请在运行 OMMS 的电脑上打开此页面,以管理令牌和密码。`,`افتح هذه الصفحة على الحاسوب الذي يشغّل OMMS لإدارة الرموز وكلمة المرور.`],"Revoke this token? Scripts that use it stop working.":[`撤销此令牌?使用它的脚本将停止工作。`,`إلغاء هذا الرمز؟ ستتوقف البرامج النصية التي تستخدمه عن العمل.`],"No browser password is set.":[`未设置浏览器密码。`,`لم تُضبط كلمة مرور للمتصفح.`],"A browser password is set for user":[`已为以下用户设置浏览器密码:`,`ضُبطت كلمة مرور المتصفح للمستخدم`],"A browser password is set for your computer user name.":[`已为你的电脑用户名设置浏览器密码。`,`ضُبطت كلمة مرور المتصفح لاسم مستخدم حاسوبك.`],"User name":[`用户名`,`اسم المستخدم`],Password:[`密码`,`كلمة المرور`],"Save password":[`保存密码`,`حفظ كلمة المرور`],"Clear password":[`清除密码`,`مسح كلمة المرور`],"Saved. Restart the web app to use the new browser password.":[`已保存。重启网页应用以使用新的浏览器密码。`,`تم الحفظ. أعد تشغيل تطبيق الويب لاستخدام كلمة مرور المتصفح الجديدة.`],Name:[`名称`,`الاسم`],Expires:[`过期时间`,`تاريخ الانتهاء`],"Last used":[`上次使用`,`آخر استخدام`],Never:[`永不`,`أبداً`],Revoke:[`撤销`,`إلغاء`],Copy:[`复制`,`نسخ`],"Copy this token now. It will not be shown again.":[`请立即复制此令牌。它不会再次显示。`,`انسخ هذا الرمز الآن. لن يُعرض مرة أخرى.`],"Token name":[`令牌名称`,`اسم الرمز`],"Expires after":[`有效期`,`ينتهي بعد`],"Generate token":[`生成令牌`,`إنشاء رمز`],All:[`全部`,`الكل`],Kind:[`类型`,`النوع`],"Built-in model":[`内置模型`,`النموذج المدمج`],"OpenAI-compatible server":[`OpenAI 兼容服务器`,`خادم متوافق مع OpenAI`],"Server URL":[`服务器 URL`,`عنوان URL للخادم`],"Vector size":[`向量维度`,`حجم المتجه`],"Stored memories":[`已存储的记忆`,`الذكريات المخزنة`],"Re-embedding":[`正在重新嵌入`,`جارٍ إعادة التضمين`],"Re-embed finished.":[`重新嵌入已完成。`,`اكتملت إعادة التضمين.`],"Re-embed failed":[`重新嵌入失败`,`فشلت إعادة التضمين`],Retry:[`重试`,`إعادة المحاولة`],Lock:[`锁定`,`قفل`],"Unlock to change":[`解锁以更改`,`افتح القفل للتغيير`],"The model that turns memory text into search vectors. A change re-embeds every memory.":[`将记忆文本转换为搜索向量的模型。更改后会重新嵌入所有记忆。`,`النموذج الذي يحوّل نص الذكريات إلى متجهات بحث. يؤدي تغييره إلى إعادة تضمين كل الذكريات.`],Preset:[`预设`,`إعداد مسبق`],Custom:[`自定义`,`مخصص`],"No key":[`无密钥`,`بلا مفتاح`],"Keep the saved key":[`保留已保存的密钥`,`الاحتفاظ بالمفتاح المحفوظ`],Apply:[`应用`,`تطبيق`],Cancel:[`取消`,`إلغاء الأمر`],"Test passed. Vector size":[`测试通过。向量维度`,`نجح الاختبار. حجم المتجه`],"Test failed":[`测试失败`,`فشل الاختبار`],"Every stored memory will be re-embedded":[`所有已存储的记忆都将重新嵌入`,`ستُعاد عملية تضمين كل الذكريات المخزنة`],"The hosted server is called once for each memory, which may cost money.":[`托管服务器会为每条记忆调用一次,可能产生费用。`,`يُستدعى الخادم المستضاف مرة لكل ذكرى، وقد يكلّف ذلك مالاً.`],"Search results are poor until the re-embed ends.":[`在重新嵌入结束前,搜索结果质量较差。`,`تكون نتائج البحث ضعيفة حتى تنتهي إعادة التضمين.`],"Restart open OpenCode and Pi sessions after the change.":[`更改后请重启已打开的 OpenCode 和 Pi 会话。`,`أعد تشغيل جلسات OpenCode وPi المفتوحة بعد التغيير.`],"Profile learning":[`用户画像学习`,`تعلّم الملف الشخصي`],"Catch up analyses every waiting prompt with the saved external API, 50 prompts for each model call.":[`补齐会使用已保存的外部 API 分析所有等待中的提示词,每次模型调用处理 50 条。`,`يحلّل اللحاق كل الطلبات المنتظرة عبر واجهة API الخارجية المحفوظة، 50 طلباً لكل استدعاء للنموذج.`],"Open this page on the computer that runs OMMS to start a catch-up run.":[`请在运行 OMMS 的电脑上打开此页面以开始补齐。`,`افتح هذه الصفحة على الحاسوب الذي يشغّل OMMS لبدء اللحاق.`],"Prompts waiting for profile learning":[`等待用户画像学习的提示词`,`الطلبات المنتظرة لتعلّم الملف الشخصي`],"Model calls":[`模型调用次数`,`استدعاءات النموذج`],"Batches done":[`已完成批次`,`الدفعات المكتملة`],"Prompts waiting":[`等待中的提示词`,`الطلبات المنتظرة`],Paused:[`已暂停`,`متوقف مؤقتاً`],Finished:[`已完成`,`اكتمل`],Stopped:[`已停止`,`توقّف`],"Catch up profile":[`补齐用户画像`,`اللحاق بالملف الشخصي`],"Start profile learning for the waiting prompts? Model calls":[`为等待中的提示词开始用户画像学习?模型调用次数`,`بدء تعلّم الملف الشخصي للطلبات المنتظرة؟ عدد استدعاءات النموذج`],"never used before":[`从未使用`,`لم يُستخدم من قبل`],"A newer catch-up run took over.":[`较新的补齐任务已接管。`,`تولّت عملية لحاق أحدث المهمة.`],"Browser password cleared. Restart the web app to turn it off.":[`浏览器密码已清除。重启网页应用以关闭它。`,`تم مسح كلمة مرور المتصفح. أعد تشغيل تطبيق الويب لإيقافها.`],Actions:[`操作`,`الإجراءات`],"All exchanges are done. Learning the profile from the imported prompts":[`所有对话已完成。正在从导入的提示中学习画像`,`اكتملت كل المحادثات. يجري تعلّم الملف الشخصي من المطالبات المستوردة`],batches:[`批`,`دفعات`],"Change it in":[`修改位置`,`مكان التغيير`],"Check them, then press Save maps.":[`请检查后点击保存映射。`,`راجعها ثم اضغط حفظ الخرائط.`],Credential:[`凭据`,`بيانات الاعتماد`],Email:[`邮箱`,`البريد الإلكتروني`],Filled:[`已填写`,`تم الملء`],"Finds the project each missing directory belongs to, mostly the main repository of a deleted worktree, and fills it in for you to check. Nothing is saved until you press Save maps.":[`为每个缺失的目录找到所属项目(多为已删除工作树的主仓库),并填入供你检查。点击保存映射之前不会保存任何内容。`,`يعثر على المشروع الذي ينتمي إليه كل مجلد مفقود، وغالباً المستودع الرئيسي لشجرة عمل محذوفة، ويملؤه لتراجعه. لا يُحفظ شيء حتى تضغط حفظ الخرائط.`],Hosts:[`主机`,`المضيفات`],"Import status":[`导入状态`,`حالة الاستيراد`],"in use":[`使用中`,`قيد الاستخدام`],"Last run":[`上次运行`,`آخر تشغيل`],"Last update":[`最后更新`,`آخر تحديث`],"Learning profile":[`正在学习画像`,`يجري تعلّم الملف الشخصي`],"Merge into":[`合并到`,`دمج في`],"Merge this profile into the other one? The source profile is turned off, not deleted.":[`将此画像合并到另一个画像?源画像会被停用,不会被删除。`,`دمج هذا الملف الشخصي في الآخر؟ يُوقَف الملف المصدر ولا يُحذف.`],"Merged.":[`已合并。`,`تم الدمج.`],"model not recorded":[`未记录模型`,`لم يُسجَّل نموذج`],model:[`个模型`,`نموذج`],models:[`个模型`,`نماذج`],"No directory recorded":[`未记录目录`,`لم يُسجَّل مجلد`],"No suggestion":[`无建议`,`لا اقتراح`],"Not started":[`未开始`,`لم يبدأ`],"OMMS keeps one profile for each git email. A folder whose repository has its own email starts a second profile. Choose the profile that is yours, or merge the extra one into it.":[`OMMS 为每个 git 邮箱保留一个画像。若某文件夹的仓库设置了自己的邮箱,就会产生第二个画像。请选择属于你的画像,或把多余的画像合并进去。`,`يحتفظ OMMS بملف شخصي لكل بريد git. المجلد الذي يملك مستودعه بريداً خاصاً يبدأ ملفاً شخصياً ثانياً. اختر ملفك الشخصي، أو ادمج الملف الزائد فيه.`],"Outcomes by host":[`各主机结果`,`النتائج حسب المضيف`],"Partly imported":[`部分已导入`,`مستورد جزئياً`],Patterns:[`模式`,`الأنماط`],pending:[`待处理`,`معلّق`],Preferences:[`偏好`,`التفضيلات`],Profiles:[`画像`,`الملفات الشخصية`],"Prompts analysed":[`已分析提示`,`المطالبات المحلَّلة`],Running:[`运行中`,`قيد التشغيل`],"Saved maps apply to every host.":[`已保存的映射适用于所有主机。`,`تنطبق الخرائط المحفوظة على كل المضيفات.`],"Saved: a memory was stored. Skipped: the model or a rule found nothing worth keeping, or the turn was private or trivial. Failed: the attempt hit an error. Total: the three added up. Each percentage is a share of its row's total.":[`已保存:存储了一条记忆。已跳过:模型或规则认为没有值得保留的内容,或该轮为私密或琐碎内容。失败:尝试出错。总计:三者之和。每个百分比是该行总计中的占比。`,`محفوظ: خُزّنت ذاكرة. متجاوز: لم يجد النموذج أو قاعدة ما يستحق الحفظ، أو كانت الجولة خاصة أو تافهة. فشل: واجهت المحاولة خطأ. الإجمالي: مجموع الثلاثة. كل نسبة هي حصة من إجمالي صفها.`],"Saved. OMMS now uses this profile in every folder.":[`已保存。OMMS 现在在所有文件夹中使用此画像。`,`تم الحفظ. يستخدم OMMS هذا الملف الشخصي الآن في كل المجلدات.`],Directories:[`目录数`,`عدد المجلدات`],"No target chosen":[`尚未选择目标`,`لم يُختر مجلد مستهدف`],"Smart resolve directories":[`智能解析目录`,`حلّ المجلدات تلقائياً`],Exact:[`精确`,`مطابقة تامة`],"Name match":[`名称匹配`,`مطابقة بالاسم`],Guess:[`猜测`,`تخمين`],Confidence:[`可信度`,`درجة الثقة`],"Temporary folder":[`临时文件夹`,`مجلد مؤقت`],"node_modules folder":[`node_modules 文件夹`,`مجلد node_modules`],"App data folder":[`应用数据文件夹`,`مجلد بيانات التطبيقات`],"Skills folder":[`技能文件夹`,`مجلد المهارات`],"Rows with a target":[`已有目标的行数`,`عدد الصفوف ذات المجلد المستهدف`],"Smart resolve shows each proposed map and ignore in a dialog. Tick the ones to keep, then press Confirm. Nothing is saved before that.":[`智能解析会在对话框中列出每个建议的映射和忽略项。勾选要保留的项,然后点击确认。在此之前不会保存任何内容。`,`يعرض الحلّ التلقائي كل خريطة مقترحة وكل تجاهل مقترح في مربع حوار. حدّد ما تريد الاحتفاظ به، ثم اضغط تأكيد. لا يُحفظ شيء قبل ذلك.`],"Suggested to ignore":[`建议忽略`,`مقترح للتجاهل`],Ignore:[`忽略`,`تجاهل`],Restore:[`恢复`,`استعادة`],"No target":[`无目标`,`بلا مجلد مستهدف`],"Save this map":[`保存此映射`,`حفظ هذه الخريطة`],"Tick the maps and ignores to keep, then press Confirm to save them. Saved maps apply to every host on the next import or backfill run.":[`勾选要保留的映射和忽略项,然后点击确认保存。保存的映射将在所有主机的下一次导入或回填时生效。`,`حدّد الخرائط وعناصر التجاهل التي تريد الاحتفاظ بها، ثم اضغط تأكيد لحفظها. تسري الخرائط المحفوظة على كل المضيفات في عملية الاستيراد أو الاستكمال التالية.`],"Nothing to save. Type a target in a row, or press Ignore for folders that are not projects.":[`没有可保存的内容。请在行中输入目标,或对不是项目的文件夹点击忽略。`,`لا يوجد ما يُحفظ. اكتب مجلداً مستهدفاً في صف، أو اضغط تجاهل للمجلدات التي ليست مشاريع.`],"Ignored directories":[`已忽略的目录`,`المجلدات المتجاهَلة`],"Ignored directories stay unimported and leave the unresolved counts.":[`已忽略的目录保持未导入,并且不计入未解析数量。`,`تبقى المجلدات المتجاهَلة دون استيراد، ولا تُحسب ضمن الأعداد غير المحلولة.`],"They apply to the next import or backfill run. No sessions were imported.":[`它们将在下一次导入或回填时生效。未导入任何会话。`,`تسري في عملية الاستيراد أو الاستكمال التالية. لم تُستورد أي جلسات.`],"Keep a map after its sessions import. Every import checks the map before it skips a session, so removing a map makes its sessions unresolved again on the next run.":[`会话导入后请保留映射。每次导入在跳过会话之前都会先检查映射,因此删除映射会使其会话在下次运行时重新变为未解析。`,`احتفظ بالخريطة بعد استيراد جلساتها. يفحص كل استيراد الخريطة قبل أن يتجاوز جلسة، لذا فإن حذف الخريطة يجعل جلساتها غير محلولة مجدداً في التشغيل التالي.`],"Save removals":[`保存删除`,`حفظ عمليات الحذف`],"Settings changed elsewhere. Check the list and try again.":[`设置已在其他位置更改。请检查列表后再试。`,`تغيّرت الإعدادات في مكان آخر. راجع القائمة، ثم حاول مجدداً.`],"Settings changed elsewhere and could not be refreshed. Refresh the list, then try again.":[`设置已在其他位置更改,且无法刷新。请刷新列表后再试。`,`تغيّرت الإعدادات في مكان آخر وتعذّر تحديثها. حدّث القائمة، ثم حاول مجدداً.`],"Saved. Removed maps stop applying at the next import or backfill run.":[`已保存。删除的映射将从下一次导入或回填起不再生效。`,`تم الحفظ. تتوقف الخرائط المحذوفة عن السريان في عملية الاستيراد أو الاستكمال التالية.`],"Removals could not be saved. Try again.":[`无法保存删除。请重试。`,`تعذّر حفظ عمليات الحذف. حاول مجدداً.`],"Ignored. The directory stays unimported.":[`已忽略。该目录保持未导入。`,`تم التجاهل. يبقى المجلد دون استيراد.`],"The directory could not be ignored. Try again.":[`无法忽略该目录。请重试。`,`تعذّر تجاهل المجلد. حاول مجدداً.`],"Restored. The directory shows again in each host list that reported it.":[`已恢复。该目录会重新出现在报告它的每个主机列表中。`,`تمت الاستعادة. يظهر المجلد مجدداً في قائمة كل مضيف أبلغ عنه.`],"The directory could not be restored. Try again.":[`无法恢复该目录。请重试。`,`تعذّرت استعادة المجلد. حاول مجدداً.`],"Saved, but the list could not be refreshed. Refresh the list without saving again.":[`已保存,但无法刷新列表。请刷新列表,无需再次保存。`,`تم الحفظ، لكن تعذّر تحديث القائمة. حدّث القائمة دون الحفظ مجدداً.`],"Review directory maps":[`检查目录映射`,`مراجعة خرائط المجلدات`],"Proposed maps":[`建议映射数`,`عدد الخرائط المقترحة`],Sessions:[`会话数`,`عدد الجلسات`],Confirm:[`确认`,`تأكيد`],"Saving…":[`正在保存…`,`جارٍ الحفظ…`],"Settings refreshed. No maps were saved.":[`设置已刷新。未保存任何映射。`,`حُدّثت الإعدادات. لم تُحفظ أي خرائط.`],"Settings could not be refreshed. Try Refresh list again.":[`无法刷新设置。请再次点击刷新列表。`,`تعذّر تحديث الإعدادات. حاول تحديث القائمة مجدداً.`],"Maps could not be saved. Review the targets and confirm again.":[`无法保存映射。请检查目标后再次确认。`,`تعذّر حفظ الخرائط. راجع المجلدات المستهدفة، ثم أكّد مجدداً.`],"Settings changed elsewhere. Review these maps and confirm again.":[`设置已在其他位置更改。请检查这些映射后再次确认。`,`تغيّرت الإعدادات في مكان آخر. راجع هذه الخرائط، ثم أكّد مجدداً.`],"Settings changed elsewhere and could not be refreshed. Refresh the list before confirming again.":[`设置已在其他位置更改,且无法刷新。请刷新列表后再次确认。`,`تغيّرت الإعدادات في مكان آخر وتعذّر تحديثها. حدّث القائمة قبل التأكيد مجدداً.`],"Maps were saved, but the list could not be refreshed. Refresh the list without saving again.":[`映射已保存,但无法刷新列表。请刷新列表,无需再次保存。`,`حُفظت الخرائط، لكن تعذّر تحديث القائمة. حدّث القائمة دون الحفظ مجدداً.`],"No model was recorded for these attempts. This happens with records written by older OMMS versions, and when an attempt stops before a model is chosen.":[`这些尝试没有记录模型。旧版 OMMS 写入的记录,以及在选定模型之前就停止的尝试,会出现这种情况。`,`لم يُسجَّل نموذج لهذه المحاولات. يحدث ذلك في السجلات التي كتبتها إصدارات أقدم من OMMS، وعندما تتوقف المحاولة قبل اختيار نموذج.`],"These sessions cannot be mapped.":[`这些会话无法映射。`,`لا يمكن ربط هذه الجلسات.`],unresolved:[`未解析`,`غير محلول`],"Use this profile":[`使用此画像`,`استخدام هذا الملف الشخصي`],"Use this profile for every folder?":[`在所有文件夹中使用此画像?`,`استخدام هذا الملف الشخصي في كل المجلدات؟`],"Used for":[`用途`,`الاستخدام`],Workflows:[`工作流`,`سير العمل`],Memory:[`记忆`,`الذاكرة`],Setting:[`设置`,`الإعداد`],Value:[`数值`,`القيمة`],Default:[`默认值`,`القيمة الافتراضية`],Unit:[`单位`,`الوحدة`],Affects:[`影响`,`التأثير`],Results:[`条结果`,`نتائج`],Memories:[`条记忆`,`ذكريات`],Bytes:[`字节`,`بايت`],"Approximate tokens":[`约计令牌`,`رموز تقريبية`],"Maximum memory search results. Manual searches can request fewer; prompt retrieval uses this ceiling.":[`记忆搜索结果的最大数量。手动搜索可以请求更少;提示词检索使用此上限。`,`الحد الأقصى لنتائج بحث الذاكرة. يمكن للبحث اليدوي طلب عدد أقل؛ ويستخدم استرجاع الطلب هذا السقف.`],"Recent memories added at session start in OpenCode V1 and Claude Code. Pi and OpenCode V2 use prompt-based search instead.":[`会话开始时在 OpenCode V1 和 Claude Code 中加入的近期记忆。Pi 和 OpenCode V2 改用基于提示词的搜索。`,`الذكريات الحديثة التي تُضاف عند بدء الجلسة في OpenCode V1 و Claude Code. أما Pi و OpenCode V2 فيستخدمان البحث عبر الطلب بدلاً منها.`],"Conversation input sent to the memory-summary model through the shared capture pipeline. Smaller values can omit conversation text.":[`通过共享捕获管道发送给记忆摘要模型的对话输入。数值较小时可能省略部分对话文本。`,`مدخلات المحادثة التي تُرسل إلى نموذج تلخيص الذاكرة عبر مسار الالتقاط المشترك. القيم الأصغر قد تحذف نصاً من المحادثة.`],"OpenCode profile-learning input. Smaller values can omit prompts from that input. This control does not limit the other hosts' profile input.":[`OpenCode 画像学习的输入。数值较小时可能从该输入中省略部分提示词。此设置不限制其他主机的画像输入。`,`مدخلات تعلّم الملف الشخصي في OpenCode. القيم الأصغر قد تحذف مطالبات من هذه المدخلات. لا يقيّد هذا الإعداد مدخلات الملف الشخصي في المضيفات الأخرى.`],"Automatic memory context, including profile text and formatting, added to agent requests across all hosts. Smaller values can show fewer or shorter memories.":[`自动加入各主机代理请求的记忆上下文,包括画像文本和格式化内容。数值较小时会显示更少或更短的记忆。`,`سياق الذاكرة المُضاف تلقائياً إلى طلبات الوكيل في كل المضيفات، بما في ذلك نص الملف الشخصي والتنسيق. القيم الأصغر قد تعرض ذكريات أقل أو أقصر.`],"Enter a positive whole number.":[`请输入正整数。`,`أدخل رقماً صحيحاً موجباً.`],"Enter a whole number from 16,384 to 16,777,216.":[`请输入 16,384 到 16,777,216 之间的整数。`,`أدخل رقماً صحيحاً من 16,384 إلى 16,777,216.`],"Enter a whole number from 1,024 to 16,777,216.":[`请输入 1,024 到 16,777,216 之间的整数。`,`أدخل رقماً صحيحاً من 1,024 إلى 16,777,216.`],"Enter a whole number from 256 to 65,536.":[`请输入 256 到 65,536 之间的整数。`,`أدخل رقماً صحيحاً من 256 إلى 65,536.`],"Byte limits count UTF-8 bytes.":[`字节限制按 UTF-8 字节计数。`,`تُحتسب حدود البايت بوحدات بايت UTF-8.`],"Approximate tokens are estimated as ceil(UTF-8 bytes / 4). A provider can count more or fewer tokens for the same text.":[`约计令牌按 ceil(UTF-8 字节数 / 4) 估算。同一文本,提供商统计的令牌数可能更多或更少。`,`تُقدَّر الرموز التقريبية بالصيغة ceil(بايتات UTF-8 / 4). قد يحسب المزوّد للنص نفسه رموزاً أكثر أو أقل.`],"These controls do not delete stored data, set a spending limit, limit model replies, or control Graphify output.":[`这些设置不会删除已存储的数据、设定消费限额、限制模型回复,也不会控制 Graphify 输出。`,`لا تحذف هذه الإعدادات البيانات المخزنة، ولا تضع حد إنفاق، ولا تحدّ من ردود النموذج، ولا تتحكم في خرج Graphify.`],"Edit ~/.config/omms/omms.jsonc directly to set these limits without the web UI.":[`也可以直接编辑 ~/.config/omms/omms.jsonc 来设置这些限制,无需网页界面。`,`عدّل الملف ~/.config/omms/omms.jsonc مباشرة لضبط هذه الحدود دون واجهة الويب.`],"Save memory limits":[`保存记忆限制`,`حفظ حدود الذاكرة`],"Saved. New memory operations use these limits.":[`已保存。新的记忆操作将使用这些限制。`,`تم الحفظ. ستستخدم عمليات الذاكرة الجديدة هذه الحدود.`],"Invalid setting":[`无效的设置`,`إعداد غير صالح`],"Config changed. Reload settings and save again.":[`设置文件已更改。请重新加载设置后再次保存。`,`تغيّر ملف الإعدادات. أعد تحميل الإعدادات ثم احفظ مجدداً.`],"The memory settings could not be loaded. Reload the page to try again.":[`无法加载记忆设置。请重新加载页面重试。`,`تعذّر تحميل إعدادات الذاكرة. أعد تحميل الصفحة للمحاولة مجدداً.`],"The memory settings could not be saved.":[`无法保存记忆设置。`,`تعذّر حفظ إعدادات الذاكرة.`],"Effective value":[`生效值`,`القيمة السارية`],project:[`项目`,`المشروع`],"The project value stays in force. Saving edits the global file only.":[`项目值仍然生效。保存只修改全局文件。`,`تبقى قيمة المشروع سارية، والحفظ يعدّل الملف العام فقط.`],"Similarity score":[`相似度分数`,`درجة التشابه`],"Enter a number from 0 to 1.":[`请输入 0 到 1 之间的数字。`,`أدخل رقماً من 0 إلى 1.`],"Lowest score a memory needs to be returned by search. Lower values return more memories, including less relevant ones. Higher values can return none. The default depends on the embedder.":[`记忆被搜索返回所需的最低分数。较低的值会返回更多记忆,包括相关性较低的;较高的值可能一条也不返回。默认值取决于嵌入模型。`,`أدنى درجة تحتاجها الذاكرة لتُعاد في نتائج البحث. القيم الأدنى تعيد ذكريات أكثر بمن فيها الأقل صلة، والقيم الأعلى قد لا تعيد شيئاً. تعتمد القيمة الافتراضية على نموذج التضمين.`],"Reset to default":[`恢复默认`,`إعادة إلى الافتراضي`],"Differs from default":[`与默认值不同`,`يختلف عن الافتراضي`],"Keyword matching":[`关键词匹配`,`مطابقة الكلمات`],"Search finds memories by meaning and by exact words from your prompt.":[`搜索按含义和提示中的确切词语查找记忆。`,`يجد البحث الذكريات بالمعنى وبالكلمات الدقيقة من مطالبتك.`],"Word matching mode":[`词语匹配模式`,`وضع مطابقة الكلمات`],"Boost (default)":[`加分(默认)`,`تعزيز (افتراضي)`],"Rank fusion (experimental)":[`排名融合(实验性)`,`دمج الترتيب (تجريبي)`],"Boost adds a small score bonus to memories that contain a word of your prompt.":[`加分会给包含提示中某个词的记忆增加少量分数。`,`يضيف التعزيز مكافأة صغيرة في الدرجة للذكريات التي تحتوي على كلمة من مطالبتك.`],"Rank fusion merges a list by meaning and a list by words. A memory that contains a word of your prompt can be returned even when its meaning score is below the similarity threshold. Experimental: it has not been shown to find more relevant memories.":[`排名融合会合并按含义排序的列表和按词语排序的列表。即使含义得分低于相似度阈值,包含提示中某个词的记忆也可能被返回。实验性:尚未证明能找到更多相关记忆。`,`يدمج دمج الترتيب قائمة بالمعنى وقائمة بالكلمات. قد تُعاد ذاكرة تحتوي على كلمة من مطالبتك حتى لو كانت درجة المعنى أقل من حد التشابه. تجريبي: لم يثبت أنه يجد ذكريات أكثر صلة.`],"Rank fusion is not used while the reranker is on. Search uses the boost.":[`重排序器开启时不使用排名融合,搜索使用加分模式。`,`لا يُستخدم دمج الترتيب أثناء تشغيل معيد الترتيب. يستخدم البحث التعزيز.`],"A project file can override this setting. This page edits the global value.":[`项目文件可以覆盖此设置。此页面编辑全局值。`,`يمكن لملف المشروع تجاوز هذا الإعداد. تعدّل هذه الصفحة القيمة العامة.`],"Saved. New searches use this mode.":[`已保存。新的搜索将使用此模式。`,`تم الحفظ. تستخدم عمليات البحث الجديدة هذا الوضع.`],"The keyword matching setting could not be saved. Reload the page to try again.":[`无法保存关键词匹配设置。请重新加载页面后重试。`,`تعذّر حفظ إعداد مطابقة الكلمات. أعد تحميل الصفحة للمحاولة مرة أخرى.`],"The keyword matching setting could not be loaded. Reload the page to try again.":[`无法加载关键词匹配设置。请重新加载页面后重试。`,`تعذّر تحميل إعداد مطابقة الكلمات. أعد تحميل الصفحة للمحاولة مرة أخرى.`],Reranker:[`重排序器`,`إعادة الترتيب`],"Use a reranker":[`使用重排序器`,`استخدم معيد الترتيب`],Key:[`密钥`,`المفتاح`],Timeout:[`超时`,`مهلة الانتهاء`],"Search is unchanged while the switch is off.":[`开关关闭时,搜索行为保持不变。`,`يظل البحث دون تغيير أثناء إيقاف المفتاح.`],"The reranker reorders the best memory search results with your reranker server and keeps the top results.":[`重排序器使用您的重排序服务器对最佳记忆搜索结果重新排序,并保留最靠前的结果。`,`يعيد معيد الترتيب ترتيب أفضل نتائج بحث الذاكرة عبر خادم إعادة الترتيب لديك ويحتفظ بالنتائج العليا.`],"The reranker sends the prompt and the text of candidate memories to the server URL. A server on the same machine is recommended.":[`重排序器会将提示和候选记忆的文本发送到该服务器 URL。建议使用同一台机器上的服务器。`,`يرسل معيد الترتيب المطالبة ونص الذكريات المرشحة إلى عنوان URL للخادم. يُنصح بخادم على الجهاز نفسه.`],"This URL is not on this machine: memory text leaves this machine.":[`此 URL 不在本机上:记忆文本将离开本机。`,`هذا العنوان ليس على هذا الجهاز: نص الذاكرة يغادر جهازك.`],"A project file cannot change these settings. The reranker settings are global only.":[`项目文件无法更改这些设置。重排序器设置仅限全局。`,`لا يمكن لملف المشروع تغيير هذه الإعدادات. إعدادات معيد الترتيب عامة فقط.`],"The default of 4000 keeps the search inside OpenCode V2's 5-second wait. A value over 5000 can make OpenCode V2 send the request with no memory.":[`默认值 4000 使搜索保持在 OpenCode V2 的 5 秒等待之内。超过 5000 的值可能导致 OpenCode V2 在不注入记忆的情况下发送请求。`,`تحافظ القيمة الافتراضية 4000 على بقاء البحث داخل مهلة انتظار OpenCode V2 البالغة 5 ثوانٍ. القيمة الأعلى من 5000 قد تجعل OpenCode V2 يرسل الطلب دون ذاكرة.`],"Enter the server URL and model before turning the reranker on.":[`打开重排序器前,请先填写服务器 URL 和模型。`,`أدخل عنوان URL للخادم والنموذج قبل تشغيل معيد الترتيب.`],"The key must be an env:// or file:// reference, or left empty.":[`密钥必须是 env:// 或 file:// 引用,或留空。`,`يجب أن يكون المفتاح مرجع env:// أو file://، أو يُترك فارغاً.`],"Enter a whole number from 500 to 30,000.":[`请输入 500 到 30,000 之间的整数。`,`أدخل رقماً صحيحاً من 500 إلى 30,000.`],"Optional env:// or file:// key reference.":[`可选的 env:// 或 file:// 密钥引用。`,`مرجع مفتاح env:// أو file:// اختياري.`],milliseconds:[`毫秒`,`ميلي ثانية`],Save:[`保存`,`حفظ`],"Saved. New searches use these settings.":[`已保存。新的搜索将使用这些设置。`,`تم الحفظ. ستستخدم عمليات البحث الجديدة هذه الإعدادات.`],"The reranker settings could not be saved. Reload the page to try again.":[`无法保存重排序器设置。请重新加载页面重试。`,`تعذّر حفظ إعدادات معيد الترتيب. أعد تحميل الصفحة للمحاولة مجدداً.`],"The reranker settings could not be loaded. Reload the page to try again.":[`无法加载重排序器设置。请重新加载页面重试。`,`تعذّر تحميل إعدادات معيد الترتيب. أعد تحميل الصفحة للمحاولة مجدداً.`],"Test passed.":[`测试通过。`,`نجح الاختبار.`],"Test failed:":[`测试失败:`,`فشل الاختبار:`],"Change icon":[`更换图标`,`تغيير الأيقونة`],"Check again":[`再次检查`,`تحقق مرة أخرى`],"Choose a host to see its history import, sessions and settings.":[`选择一个宿主,查看其历史导入、会话和设置。`,`اختر مضيفاً لعرض استيراد سجله وجلساته وإعداداته.`],"Choose icon":[`选择图标`,`اختر أيقونة`],"Every avatar is shown at the same size. Images are cropped to a square.":[`所有头像大小一致。图片会被裁剪为正方形。`,`تظهر كل الصور الرمزية بالحجم نفسه. تُقصّ الصور إلى مربع.`],"Every host":[`所有宿主`,`كل المضيفين`],"Fix the service named here, then press Check again.":[`请修复此处所列的服务,然后点击“再次检查”。`,`أصلح الخدمة المذكورة هنا، ثم اضغط «تحقق مرة أخرى».`],"How many memories a search returns":[`一次搜索返回多少条记忆`,`عدد الذكريات التي يعيدها البحث`],"How to set up":[`如何设置`,`كيفية الإعداد`],"Ignore all":[`全部忽略`,`تجاهل الكل`],"Memory injection":[`记忆注入`,`حقن الذاكرة`],"Inject memories with the first message":[`随第一条消息注入记忆`,`حقن الذكريات مع الرسالة الأولى`],"Added once, with the first message of a new session. Nothing is added when a new session opens. OMMS searches the query below and adds only matching memories.":[`仅随新会话的第一条消息添加一次。新会话打开时不会添加任何内容。OMMS 会用下面的查询进行搜索,只添加匹配的记忆。`,`تُضاف مرة واحدة مع أول رسالة في جلسة جديدة. لا يُضاف شيء عند فتح جلسة جديدة. يبحث OMMS بالاستعلام أدناه ويضيف الذكريات المطابقة فقط.`],"Memories are added at these moments:":[`记忆会在这些时刻添加:`,`تُضاف الذكريات في هذه اللحظات:`],"With every message: the memories that match that message. On by default. chatMessage.enabled in the config file turns it off, and the first-message and subagent options with it.":[`随每条消息:与该消息匹配的记忆。默认开启。配置文件中的 chatMessage.enabled 可将其关闭,第一条消息和子代理选项也会随之关闭。`,`مع كل رسالة: الذكريات المطابقة لتلك الرسالة. مفعّلة افتراضيًا. يوقفها chatMessage.enabled في ملف الإعدادات، وتتوقف معها خيارات الرسالة الأولى والوكلاء الفرعيين.`],"With the first message of a new session: the memories that match the query below. Needs the first switch.":[`随新会话的第一条消息:与下面查询匹配的记忆。需要打开第一个开关。`,`مع أول رسالة في جلسة جديدة: الذكريات المطابقة للاستعلام أدناه. تتطلب المفتاح الأول.`],"For a subagent: the memories that match its task. Claude Code adds them once, when the subagent starts. OpenCode V2 and Pi add them with each prompt the subagent gets. Needs the Subagent memory switch.":[`对于子代理:与其任务匹配的记忆。Claude Code 在子代理启动时添加一次。OpenCode V2 和 Pi 在子代理收到的每条提示时添加。需要打开“子代理记忆”开关。`,`للوكيل الفرعي: الذكريات المطابقة لمهمته. يضيفها Claude Code مرة واحدة عند بدء الوكيل. ويضيفها OpenCode V2 وPi مع كل طلب يتلقاه الوكيل. يتطلب مفتاح ذاكرة الوكلاء الفرعيين.`],"After a compaction or resume: the memories that session captured. Needs the Restore switch.":[`压缩或恢复之后:该会话捕获的记忆。需要打开“还原”开关。`,`بعد الضغط أو الاستئناف: الذكريات التي التقطتها تلك الجلسة. تتطلب مفتاح الاستعادة.`],"Nothing is added when a new session opens.":[`新会话打开时不会添加任何内容。`,`لا يُضاف شيء عند فتح جلسة جديدة.`],"Claude Code can add memories when a session opens. Pi and OpenCode V2 cannot. To keep all three the same, OMMS adds them with the first message on every host.":[`Claude Code 可以在会话打开时添加记忆,Pi 和 OpenCode V2 不能。为了让三者保持一致,OMMS 在所有宿主上都随第一条消息添加记忆。`,`يمكن لـ Claude Code إضافة الذكريات عند فتح الجلسة، ولا يمكن ذلك لـ Pi وOpenCode V2. للإبقاء على الثلاثة متطابقة، يضيف OMMS الذكريات مع الرسالة الأولى على كل مضيف.`],"Added when a session resumes or compacts. Restores the memories that session captured.":[`会话恢复或压缩时添加。还原该会话捕获的记忆。`,`تُضاف عند استئناف الجلسة أو ضغطها. تستعيد الذكريات التي التقطتها تلك الجلسة.`],"First-message search query":[`第一条消息的搜索查询`,`استعلام البحث للرسالة الأولى`],"Sets how OMMS adds memories to the context the model sees.":[`设置 OMMS 如何将记忆添加到模型的上下文中。`,`يحدد كيفية إضافة OMMS للذكريات إلى سياق النموذج.`],"Subagent memory":[`子代理记忆`,`ذاكرة الوكلاء الفرعيين`],"Subagents get memories that match their task. Claude Code adds them once, at start. OpenCode V2 and Pi add them with each subagent prompt. No rows are shown for them.":[`子代理会获得与其任务匹配的记忆。Claude Code 在启动时添加一次。OpenCode V2 和 Pi 在每条子代理提示时添加。不会为它们显示记忆行。`,`يحصل الوكلاء الفرعيون على الذكريات المطابقة لمهمتهم. يضيفها Claude Code مرة واحدة عند البدء. ويضيفها OpenCode V2 وPi مع كل طلب للوكيل الفرعي. لا تُعرض لهم أي صفوف.`],"Restore memories after compaction or resume":[`压缩或恢复后还原记忆`,`استعادة الذكريات بعد الضغط أو الاستئناف`],"Most memories to restore":[`最多还原的记忆数`,`أقصى عدد من الذكريات للاستعادة`],"Applies to OpenCode V2, Pi and Claude Code. OpenCode V1 is not covered. On Pi, a subagent gets memory only when its agent maps the OMMS extension in om-pi-subagents. Turn it on in /omps-settings, Agent capabilities, Memory.":[`适用于 OpenCode V2、Pi 和 Claude Code,不包括 OpenCode V1。在 Pi 上,只有当子代理的 agent 在 om-pi-subagents 中映射了 OMMS 扩展时,子代理才会获得记忆。请在 /omps-settings 的 Agent capabilities 中打开 Memory。`,`ينطبق على OpenCode V2 وPi وClaude Code. لا يشمل OpenCode V1. على Pi لا يحصل الوكيل الفرعي على الذكريات إلا إذا ربط وكيله امتداد OMMS في om-pi-subagents. فعّل ذلك من /omps-settings ثم Agent capabilities ثم Memory.`],"A project config can turn the first-message and subagent options off. It can turn restore on or off.":[`项目配置只能关闭第一条消息和子代理选项,但可以开启或关闭还原。`,`يمكن لإعدادات المشروع إيقاف خياري الرسالة الأولى والوكلاء الفرعيين فقط، ويمكنها تشغيل الاستعادة أو إيقافها.`],"Saved. The next session uses these options.":[`已保存。下一个会话将使用这些选项。`,`تم الحفظ. ستستخدم الجلسة التالية هذه الخيارات.`],"The memory injection settings could not be loaded. Reload the page to try again.":[`无法加载记忆注入设置。请重新加载页面后重试。`,`تعذّر تحميل إعدادات حقن الذاكرة. أعد تحميل الصفحة للمحاولة مرة أخرى.`],"First message {opening} · Subagents {subagent} · Restore {restore}":[`第一条消息 {opening} · 子代理 {subagent} · 还原 {restore}`,`الرسالة الأولى {opening} · الوكلاء الفرعيون {subagent} · الاستعادة {restore}`],"Invalid openingContext setting":[`openingContext 设置无效`,`إعداد openingContext غير صالح`],"Invalid subagentMemory setting":[`subagentMemory 设置无效`,`إعداد subagentMemory غير صالح`],"Invalid compaction.enabled setting":[`compaction.enabled 设置无效`,`إعداد compaction.enabled غير صالح`],"Invalid compaction.memoryLimit setting: accepted positive safe integers":[`compaction.memoryLimit 设置无效:只接受正整数`,`إعداد compaction.memoryLimit غير صالح: يُقبل عدد صحيح موجب فقط`],"openingContextQuery must be text of 500 characters or fewer":[`openingContextQuery 必须是不超过 500 个字符的文本`,`يجب أن يكون openingContextQuery نصاً لا يزيد عن 500 حرف`],"Import all hosts":[`导入所有宿主`,`استيراد كل المضيفين`],"Import progress":[`导入进度`,`تقدم الاستيراد`],"Running · history imported {date}":[`运行中 · 历史已导入 {date}`,`قيد التشغيل · استُورد السجل {date}`],"Running · history imported {date} · last saved {when}":[`运行中 · 历史已导入 {date} · 上次保存 {when}`,`قيد التشغيل · استُورد السجل {date} · آخر حفظ {when}`],"Running · last saved {when}":[`运行中 · 上次保存 {when}`,`قيد التشغيل · آخر حفظ {when}`],"today {time}":[`今天 {time}`,`اليوم {time}`],"yesterday {time}":[`昨天 {time}`,`أمس {time}`],"Importing makes model calls and can cost money.":[`导入会调用模型,可能产生费用。`,`يجري الاستيراد اتصالات بالنموذج وقد يكلّف مالاً.`],"Importing · {percent}%":[`正在导入 · {percent}%`,`جارٍ الاستيراد · {percent}%`],"Memories are not being saved.":[`记忆当前无法保存。`,`لا يتم حفظ الذكريات حالياً.`],"Memories not saved":[`记忆未保存`,`الذكريات غير محفوظة`],"Memory views":[`记忆视图`,`عروض الذاكرة`],"Mode: {mode}":[`模式:{mode}`,`الوضع: {mode}`],"No icon matches.":[`没有匹配的图标。`,`لا توجد أيقونة مطابقة.`],"Not set up":[`未设置`,`غير مُعد`],"Automatic import is on. Nothing was waiting before {date}. Use Sessions below for newer chats.":[`自动导入已开启。在 {date} 之前没有待导入的内容。更新的聊天请使用下方的“会话”。`,`الاستيراد التلقائي قيد التشغيل. لم يكن هناك ما ينتظر قبل {date}. استخدم «الجلسات» أدناه للمحادثات الأحدث.`],"Automatic import is on. Nothing is waiting.":[`自动导入已开启。没有待导入的内容。`,`الاستيراد التلقائي قيد التشغيل. لا يوجد ما ينتظر.`],"OMMS did not find this host's chat history on this computer. Install the host and use it once, then reload this page.":[`OMMS 在这台电脑上没有找到该宿主的聊天记录。请安装该宿主并使用一次,然后重新加载此页面。`,`لم يعثر OMMS على سجل محادثات هذا المضيف على هذا الحاسوب. ثبّت المضيف واستخدمه مرة واحدة، ثم أعد تحميل هذه الصفحة.`],Off:[`关`,`متوقف`],On:[`开`,`قيد التشغيل`],"On · {model}":[`开 · {model}`,`قيد التشغيل · {model}`],"PNG, JPEG, WebP or GIF, up to 20 MB.":[`PNG、JPEG、WebP 或 GIF,最大 20 MB。`,`PNG أو JPEG أو WebP أو GIF، حتى 20 ميغابايت.`],"Paused · {pending} pending":[`已暂停 · 待处理 {pending}`,`متوقف مؤقتاً · {pending} قيد الانتظار`],"Paused. Resume to continue.":[`已暂停。点击“恢复”继续。`,`متوقف مؤقتاً. اضغط «استئناف» للمتابعة.`],"Prompts waiting for profile learning, and re-analysis of old chats":[`等待画像学习的提示,以及旧聊天的重新分析`,`مطالبات تنتظر تعلم الملف الشخصي، وإعادة تحليل المحادثات القديمة`],"Results {results} · Similarity {similarity}":[`结果数 {results} · 相似度 {similarity}`,`النتائج {results} · التشابه {similarity}`],"Runs one import for every host you tick. It makes model calls and can cost money.":[`对勾选的每个宿主运行一次导入。它会调用模型,可能产生费用。`,`يشغّل استيراداً واحداً لكل مضيف تحدده. يجري اتصالات بالنموذج وقد يكلّف مالاً.`],"Saved maps and ignored directories":[`已保存的映射和已忽略的目录`,`الخرائط المحفوظة والمجلدات المتجاهلة`],"Search icons":[`搜索图标`,`ابحث عن أيقونة`],"Settings for every host":[`适用于所有宿主的设置`,`إعدادات لكل المضيفين`],Shared:[`共享`,`مشترك`],"Stopped · {pending} pending":[`已停止 · 待处理 {pending}`,`متوقف · {pending} قيد الانتظار`],"Stopped: {error}":[`已停止:{error}`,`توقف: {error}`],"These directories stay unimported and leave the unresolved counts.":[`这些目录保持未导入状态,并从未解析计数中移除。`,`تبقى هذه المجلدات غير مستوردة وتخرج من أعداد غير المحلولة.`],"These settings apply to every host. Open a row to change it.":[`这些设置适用于所有宿主。展开一行即可修改。`,`تنطبق هذه الإعدادات على كل المضيفين. افتح صفاً لتغييره.`],"This browser could not read the image.":[`此浏览器无法读取该图片。`,`تعذّر على هذا المتصفح قراءة الصورة.`],"This host is not set up on this machine.":[`此宿主尚未在这台机器上设置。`,`لم يتم إعداد هذا المضيف على هذا الجهاز.`],"This switch applies to every host. Automatic import makes model calls.":[`此开关适用于所有宿主。自动导入会调用模型。`,`ينطبق هذا المفتاح على كل المضيفين. يجري الاستيراد التلقائي اتصالات بالنموذج.`],"Upload image":[`上传图片`,`رفع صورة`],"Use external API":[`使用外部 API`,`استخدام واجهة API الخارجية`],settings:[`设置`,`الإعدادات`],"{saved} saved · {ignored} ignored":[`已保存 {saved} · 已忽略 {ignored}`,`{saved} محفوظة · {ignored} متجاهلة`],"The image is larger than 20 MB.":[`图片超过 20 MB。`,`الصورة أكبر من 20 ميغابايت.`],"Only PNG, JPEG, WebP and GIF images are accepted.":[`仅接受 PNG、JPEG、WebP 和 GIF 图片。`,`تُقبل صور PNG وJPEG وWebP وGIF فقط.`],"Importing {done} / {total}.":[`正在导入 {done} / {total}。`,`جارٍ الاستيراد {done} / {total}.`],"Importing {done} / {total}. About {minutes} min left.":[`正在导入 {done} / {total}。约剩 {minutes} 分钟。`,`جارٍ الاستيراد {done} / {total}. يتبقى نحو {minutes} دقيقة.`],"Nothing is waiting to import.":[`没有待导入的内容。`,`لا يوجد ما ينتظر الاستيراد.`],"{pending} still waiting to import.":[`仍有 {pending} 条待导入。`,`لا يزال {pending} بانتظار الاستيراد.`]};function Qv(e,t){return t===`en`?e:Zv[e]?.[t===`zh`?0:1]??e}function Y(){let{language:e}=G();return t=>Qv(t,e)}function $v(e){try{return localStorage.getItem(e)!==`0`}catch{return!0}}function ey(e,t){try{localStorage.setItem(e,t?`1`:`0`)}catch{}}function ty({storageKey:e,sections:t,back:n}){let r=Y(),[i,a]=(0,v.useState)(()=>$v(e)),o=()=>a(t=>(ey(e,!t),!t)),s=e=>t=>{t.preventDefault();let n=document.getElementById(e);n&&(n.scrollIntoView(af),of(n))};return(0,H.jsxs)(`div`,{className:`fixed top-16 end-3 z-20 flex flex-col items-end gap-1 md:top-3`,children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-expanded":i,"aria-controls":`${e}-nav`,"aria-label":r(i?`Hide contents`:`Show contents`),onClick:o,className:`bg-card/95 shadow-sm backdrop-blur`,children:(0,H.jsx)(qe,{className:`size-4`,"aria-hidden":`true`})}),i?(0,H.jsx)(`nav`,{id:`${e}-nav`,"aria-label":r(`Contents`),className:`max-h-[70vh] w-48 max-w-full overflow-y-auto rounded-xl border border-border bg-card/95 px-2 py-1.5 shadow-sm backdrop-blur`,children:(0,H.jsxs)(`ul`,{children:[n?(0,H.jsx)(`li`,{className:`mb-1 border-b border-border pb-1`,children:(0,H.jsxs)(`button`,{type:`button`,onClick:n.onBack,className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-start text-sm hover:bg-interactive-hover`,children:[(0,H.jsx)(N,{className:`rtl:-scale-x-100 size-3.5 shrink-0`,"aria-hidden":`true`}),n.label]})}):null,t.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`a`,{href:`#${e.id}`,onClick:s(e.id),className:`block rounded-lg px-2 py-1.5 text-start text-sm hover:bg-interactive-hover`,children:r(e.title)})},e.id))]})}):null]})}var ny=class extends Error{status;constructor(e,t){super(e),this.name=`SettingsRequestError`,this.status=t}};async function X(e,t={}){let n=(t.method??`GET`).toUpperCase(),r=n!==`GET`&&n!==`HEAD`,i=await fetch(e,{...t,headers:{"x-omms-token":window.__OMMS_TOKEN__??``,...r||t.body?{"Content-Type":`application/json`}:{},...t.headers}}),a=await i.json();if(!i.ok)throw new ny(a.error??`Request failed (${i.status})`,i.status);return a}var ry=new Set,iy=0;function ay(e){iy++;for(let t of ry)t(e)}function oy(){let e=iy;return{isCurrent:()=>iy===e}}async function sy(){try{let e=await X(`/api/settings`);return ay(e),e}catch{return null}}function cy(e){return ry.add(e),()=>{ry.delete(e)}}function ly(e,t){return`${e.replace(/\.+$/,``)}. ${t}`}function uy(){let e=0;return{begin(){let t=++e;return()=>t===e}}}async function dy(e,t){e(!0);try{return await t()}finally{e(!1)}}function fy(e,t){if(e===`env`){let n=(t.name??``).trim();if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(n))throw Error(`Enter a variable name such as ZAI_API_KEY`);return{source:e,name:n}}if(e===`file`){let n=(t.path??``).trim();if(!n)throw Error(`Enter the path of a key file`);return{source:e,path:n}}let n=(t.name??``).trim()||`memory-api`;if(!/^[A-Za-z0-9_-]{1,64}$/.test(n))throw Error(`Name the key file with letters, digits, dashes, or underscores`);if(!(t.value??``).trim())throw Error(`Paste the key`);return{source:e,name:n,value:t.value??``,replace:t.replace===!0}}function py(e){let t=[],n=e.memoryProvider===`orcarouter`;return!n&&!e.memoryModel&&t.push(`memoryModel`),!n&&!e.memoryApiUrl&&t.push(`memoryApiUrl`),e.keySet||t.push(`memoryApiKey`),t}function my(e,t){if(t===`inherit`||t===`external`)return{[`${e}Model`]:t};let n=t.indexOf(`/`);if(n<1||n===t.length-1)throw Error(`Enter a model as provider/model.`);return{[`${e}Provider`]:t.slice(0,n),[`${e}Model`]:t.slice(n+1)}}function hy(e){return{kind:e.relation,command:e.relation===`older`?`npm i -g om-memory-system@latest`:null}}function gy(e,t){return e.filter(e=>!t.has(e.from))}function _y({status:e}){let t=Y();return(0,H.jsxs)(`div`,{className:`space-y-1 rounded-lg border border-border p-3`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:Yd(`claude-code`)}),e?.ready===!0&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`Claude Code capture uses the external API.`)}),e?.ready===!1&&(0,H.jsxs)(`div`,{role:`alert`,className:`space-y-1 text-xs`,children:[(0,H.jsx)(`p`,{className:`text-amber-600`,children:t(`Claude Code capture is off. Complete the external API settings.`)}),(e.issues??[]).length>0&&(0,H.jsxs)(`p`,{children:[t(`Missing settings`),`: `,(e.issues??[]).map(e=>t(e)).join(`; `)]})]})]})}function vy(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(t=>{e&&o(t.message)});for(let t of[`opencode`,`pi`])X(`/api/settings/models?host=${t}`).then(n=>{e&&i(e=>({...e,[t]:n}))}).catch(()=>{e&&i(e=>({...e,[t]:{available:!1}}))});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);async function l(n,r){if(!t)return;let i;try{i=my(n,r)}catch(t){o(e(t.message));return}c(!0);let a,s;try{a=await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:i,revision:t.revision})})}catch(e){s=e}let l=await sy()!==null;if(c(!1),a){let t=e(a.migratedLegacy?`Saved. OMMS now reads ~/.config/omms/omms.jsonc. The legacy config was kept.`:`Saved. New capture and profile work uses these settings.`);o(l?t:`${t} ${e(`Reload the page before saving again.`)}`)}else o(ly(s?.message??``,e(l?`Current settings were reloaded; check the values and save again.`:`The current settings could not be reloaded. Reload the page.`)))}let u=py({memoryProvider:t?.settings.memoryProvider?.globalValue,memoryModel:t?.settings.memoryModel?.globalValue,memoryApiUrl:t?.settings.memoryApiUrl?.globalValue,keySet:!!t?.secrets.memoryApiKey?.set});return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Models`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Models`)}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[e(`External API fallback`),`: `,t?.fallback.model??e(`none`),` (`,e(t?.fallback.configured?`ready`:`not ready`),`).`]}),[`opencode`,`pi`].map(e=>(0,H.jsx)(yy,{host:e,model:t?.settings[`${e}Model`],provider:t?.settings[`${e}Provider`],effective:e===`pi`?t?.effective.pi.kind:t?.effective.opencode.mode??`unready`,list:r[e],externalMissing:u,busy:s||!t,onSave:t=>l(e,t)},e)),(0,H.jsx)(_y,{status:t?.effective[`claude-code`]}),a&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:a})]})}function yy({host:e,model:t,provider:n,effective:r,list:i,externalMissing:a,busy:o,onSave:s}){let c=Y(),l=t?.globalValue===`inherit`||!t?.globalValue?`inherit`:t.globalValue===`external`?`external`:`${n?.globalValue??``}/${t.globalValue}`,[u,d]=(0,v.useState)(),[f,p]=(0,v.useState)(),[m,h]=(0,v.useState)(),g=u??(l===`inherit`||l===`external`?l:`manual`),_=i?.models??[],y=l===`inherit`||l===`external`?``:l,b=m||y||(_[0]?`${_[0].provider}/${_[0].model}`:`typed`),x=!_.some(e=>`${e.provider}/${e.model}`===b),S=f??y;return(0,H.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-border p-3`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:Yd(e)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[c(`Effective model`),`:`,` `,t?.value===`external`&&r===`manual`?c(`external API`):t?.value===`inherit`||r===`session`?c(`session`):r===`manual`?c(`external API`):r===`unready`?c(`unavailable`):`${n?.value??``}/${t?.value??``}`]}),(t?.source===`project`||n?.source===`project`)&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:c(`Project override is active. Changes to the global file may not take effect here.`)}),(0,H.jsx)(`label`,{className:`block text-sm`,htmlFor:`${e}-model`,children:c(`Model choice`)}),(0,H.jsxs)(Dr,{id:`${e}-model`,className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,value:g,onChange:e=>d(e.target.value),children:[(0,H.jsx)(`option`,{value:`inherit`,children:c(`Session model`)}),(0,H.jsx)(`option`,{value:`manual`,children:c(`Manual model`)}),(0,H.jsx)(`option`,{value:`external`,disabled:a.length>0,children:c(`External API`)})]}),a.length>0&&(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[c(`External API needs`),`: `,a.join(`, `)]}),g===`manual`&&i?.available&&_.length>0&&(0,H.jsxs)(Dr,{className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,"aria-label":`${Yd(e)} ${c(`Model`)}`,value:x?`typed`:b,onChange:e=>h(e.target.value),children:[_.map(e=>(0,H.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.name,` (`,e.provider,`/`,e.model,`)`]},`${e.provider}/${e.model}`)),(0,H.jsx)(`option`,{value:`typed`,children:c(`Manual provider/model`)})]}),g===`manual`&&x&&(0,H.jsx)(`input`,{className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,"aria-label":`${e} ${c(`Manual provider/model`)}`,placeholder:`provider/model`,value:S,onChange:e=>{p(e.target.value),h(`typed`)}}),g===`manual`&&i&&!i.available&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i.reason?c(i.reason):c(`Model list unavailable. Enter provider/model manually.`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded-lg border border-border px-3 py-1.5 text-sm`,disabled:o,onClick:()=>s(g===`manual`?x?S.trim():b:g),children:c(`Save model`)})]})}var by=[`openai-chat`,`openai-responses`,`anthropic`,`minimax`,`orcarouter`,`google-gemini`];function xy(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(`file`),[s,c]=(0,v.useState)({name:``,path:``,value:``}),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(t=>{e&&u(t.message)});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);let p=e=>String(t?.settings[e]?.globalValue??``),m=e=>r[e]??p(e);async function h(){if(!t)return;let n={};for(let e of[`memoryProvider`,`memoryApiUrl`,`memoryModel`]){let t=m(e).trim();t&&t!==p(e)&&(n[e]=t)}if(!Object.keys(n).length){u(e(`Nothing to save.`));return}f(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:n,revision:t.revision})}),i({}),u(e(`Saved. New capture and profile work uses these settings.`))}catch(e){u(e.message)}await sy(),f(!1)}async function g(n=!1){if(!t)return;let r;try{r=fy(a,{...s,replace:n})}catch(t){u(e(t.message));return}f(!0);try{await X(`/api/settings/external-api/key`,{method:`POST`,body:JSON.stringify({...r,revision:t.revision})}),c(e=>({...e,value:``})),u(e(`Key source saved.`))}catch(t){let r=t.message;if(a===`paste`&&!n&&r.includes(`Confirm to replace`)){f(!1),window.confirm(e(`A key file with this name exists. Replace it?`))&&await g(!0);return}u(r)}await sy(),f(!1)}async function _(){f(!0);try{let t=await X(`/api/settings/external-api/test`,{method:`POST`,body:`{}`});u(t.ok?`${e(`Test call succeeded`)}: ${t.model??``}`:`${e(`Test call failed`)}: ${t.error??``}`)}catch(e){u(e.message)}f(!1)}let y=t?.externalKey;return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`External API`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`External API`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`An OpenAI- or Anthropic-compatible endpoint that either host can use for capture and backfill.`)}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[e(`Provider`),(0,H.jsx)(`div`,{className:Er,children:(0,H.jsx)(Dr,{"aria-label":e(`Provider`),className:`mt-1 block w-full rounded border border-border bg-background p-2`,value:m(`memoryProvider`)||`openai-chat`,onChange:e=>i({...r,memoryProvider:e.target.value}),children:by.map(e=>(0,H.jsx)(`option`,{value:e,children:e},e))})})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[e(`API URL`),(0,H.jsx)(`input`,{dir:`ltr`,className:`mt-1 block w-full rounded border border-border bg-background p-2 font-mono`,placeholder:`https://api.example.com/v1`,value:m(`memoryApiUrl`),onChange:e=>i({...r,memoryApiUrl:e.target.value})})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[e(`Model`),(0,H.jsx)(`input`,{dir:`ltr`,className:`mt-1 block w-full rounded border border-border bg-background p-2 font-mono`,placeholder:`glm-5-turbo`,value:m(`memoryModel`),onChange:e=>i({...r,memoryModel:e.target.value})})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:d||!t,onClick:()=>void h(),children:e(`Save endpoint`)}),(0,H.jsxs)(`fieldset`,{className:`space-y-2 rounded-lg border border-border p-3 text-sm`,children:[(0,H.jsx)(`legend`,{className:`px-1 font-medium`,children:e(`API key`)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e(`Key source`),`:`,` `,y?.source===`env`?`${e(`environment variable`)} ${y.reference}`:y?.source===`file`?`${e(`key file`)} ${y.reference}`:y?.source===`literal`?e(`set in the config file`):e(`not set`),y?.source&&` · ${e(y.resolvesInWebApp?`resolves in the web app`:`does not resolve in the web app`)}`]}),y?.source===`env`&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`A login web app does not see variables set only in a shell profile; a key file works everywhere.`)}),y?.source&&!y.resolvesInWebApp&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`The key does not resolve in this web app. Save it to a key file instead.`)}),[[`env`,`Environment variable`],[`file`,`Key file`],[`paste`,`Save key to a private file`]].map(([t,n])=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`radio`,name:`omms-key-source`,checked:a===t,onChange:()=>o(t)}),e(n)]},t)),a===`env`&&(0,H.jsx)(`input`,{"aria-label":e(`Variable name`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`ZAI_API_KEY`,value:s.name,onChange:e=>c({...s,name:e.target.value})}),a===`file`&&(0,H.jsx)(`input`,{"aria-label":e(`Key file path`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`~/.config/omms/secrets/zai.key`,value:s.path,onChange:e=>c({...s,path:e.target.value})}),a===`paste`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`input`,{"aria-label":e(`Key file name`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`memory-api`,value:s.name,onChange:e=>c({...s,name:e.target.value})}),(0,H.jsx)(`input`,{"aria-label":e(`API key`),type:`password`,autoComplete:`off`,className:`w-full rounded border border-border bg-background p-2`,value:s.value,onChange:e=>c({...s,value:e.target.value})}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The key is written to ~/.config/omms/secrets/ readable only by you. It is never shown again.`)})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:d||!t,onClick:()=>void g(),children:e(`Save key source`)})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:d,onClick:()=>void _(),children:e(`Test`)}),l&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:l})]})}var Sy=new Set([`localhost`,`127.0.0.1`,`::1`,`[::1]`,`0:0:0:0:0:0:0:1`]);function Cy(e){let t=e.trim().toLowerCase();return Sy.has(t)||/^127(?:\.\d{1,3}){3}$/.test(t)}function wy(e){try{return Cy(new URL(e).hostname)}catch{return!1}}function Ty(e,t){return e?`set`:t?`missing`:`not-needed`}function Ey(e){let{access:t,secrets:n}=e,r=t.embeddingApiUrl;return{memoryApiKey:(e=>e===`not-needed`?`never-used`:e)(Ty(!!n.memoryApiKey?.set,e.externalUsed||e.claudeCodeInUse)),embeddingApiKey:Ty(!!n.embeddingApiKey?.set,!!r&&!wy(r)),apiTokens:Ty(t.tokenAvailable,!Cy(t.host)&&!t.authEnabled),webPassword:Ty(!!n.webServerAuthPassword?.set,!1)}}function Dy(e){return e?`Browser password cleared. Restart the web app to turn it off.`:`Saved. Restart the web app to use the new browser password.`}var Oy=[{id:`ollama`,label:`Ollama`,url:`http://localhost:11434/v1`},{id:`llamacpp`,label:`llama.cpp`,url:`http://localhost:8080/v1`},{id:`openrouter`,label:`OpenRouter`,url:`https://openrouter.ai/api/v1`},{id:`openai`,label:`OpenAI`,url:`https://api.openai.com/v1`},{id:`custom`,label:`Custom`,url:``}];function ky(e,t){let n=Oy.find(t=>t.id===e);return n&&n.url?n.url:t}function Ay(e){if(e.kind===`builtin`)return{kind:`builtin`,model:e.model.trim()};let t=e.key===`none`||e.key===`saved`?{source:e.key}:fy(e.key,{...e.keyInput,name:e.keyInput.name||`embedding-api`});return{kind:`server`,url:e.url.trim(),model:e.model.trim(),key:t}}function jy(e){return JSON.stringify([e.kind,e.kind===`server`?e.url.trim():``,e.model.trim(),e.kind===`server`?e.key:`none`,e.kind===`server`?e.keyInput:null])}function My(e,t){return e!==void 0&&e===jy(t)}function Ny(e,t){let n=t.kind===`server`&&!wy(t.url);return{count:e.toLocaleString(`en-US`),risks:[...n?[`The hosted server is called once for each memory, which may cost money.`]:[],`Search results are poor until the re-embed ends.`,`Restart open OpenCode and Pi sessions after the change.`]}}var Py=`Xenova/nomic-embed-text-v1`;function Fy(e,t=Py){return e===`builtin`?{kind:e,model:t}:{kind:e}}function Iy(e,t){return e===`server`&&t?`saved`:`none`}function Ly({current:e,keySet:t}){let n=Y();return(0,H.jsxs)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-sm`,children:[(0,H.jsx)(`dt`,{children:n(`Kind`)}),(0,H.jsx)(`dd`,{children:n(e.kind===`server`?`OpenAI-compatible server`:`Built-in model`)}),e.url&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`Server URL`)}),(0,H.jsx)(`dd`,{className:`break-all`,children:e.url})]}),(0,H.jsx)(`dt`,{children:n(`Model`)}),(0,H.jsx)(`dd`,{className:`break-all`,children:e.model}),(0,H.jsx)(`dt`,{children:n(`Vector size`)}),(0,H.jsx)(`dd`,{children:e.dimensions}),(0,H.jsx)(`dt`,{children:n(`API key`)}),(0,H.jsx)(`dd`,{children:n(t?`set`:`not set`)}),(0,H.jsx)(`dt`,{children:n(`Stored memories`)}),(0,H.jsx)(`dd`,{children:e.memoryCount.toLocaleString(`en-US`)})]})}function Ry({run:e,onRetry:t}){let n=Y();return e.state===`idle`?null:(0,H.jsxs)(`div`,{role:`status`,className:`space-y-1 text-sm`,children:[e.state===`running`&&(0,H.jsxs)(`p`,{children:[n(`Re-embedding`),`: `,e.progress.processed,`/`,e.progress.total]}),e.state===`done`&&(0,H.jsx)(`p`,{children:n(`Re-embed finished.`)}),e.state===`failed`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`p`,{className:`text-red-600`,children:[n(`Re-embed failed`),`: `,e.error??``]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,onClick:t,children:n(`Retry`)})]})]})}function zy(e,t){return{kind:e.kind,url:e.url??``,model:e.model,key:Iy(e.kind,t),keyInput:{name:``,path:``,value:``}}}function By(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(),[d,f]=(0,v.useState)(),[p,m]=(0,v.useState)({state:`idle`,progress:{processed:0,total:0}}),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(!1);async function b(){let e=await X(`/api/settings/embedding`);return n(e),m(e.run),e}(0,v.useEffect)(()=>{let e=!0,t=oy();b().catch(t=>e&&g(t.message)),X(`/api/settings`).then(n=>e&&t.isCurrent()&&i(n)).catch(()=>{}),X(`/api/web/status`).then(t=>e&&o(!!t.isLocal)).catch(()=>{});let n=cy(t=>e&&i(t));return()=>{e=!1,n()}},[]),(0,v.useEffect)(()=>{if(p.state!==`running`)return;let e=setInterval(()=>{X(`/api/settings/embedding/run`).then(e=>{m(e),e.state!==`running`&&b()}).catch(()=>{})},1e3);return()=>clearInterval(e)},[p.state]);function x(){if(s||!t){c(!1),u(void 0),f(void 0);return}u(zy(t,!!r?.secrets.embeddingApiKey?.set)),c(!0)}let S=e=>u(t=>t&&{...t,...e});async function C(){l&&await dy(y,async()=>{try{let t=await X(`/api/settings/embedding/test`,{method:`POST`,body:JSON.stringify(Ay(l))});t.ok&&t.dimensions?(f({key:jy(l),dimensions:t.dimensions}),g(`${e(`Test passed. Vector size`)}: ${t.dimensions}`)):(f(void 0),g(`${e(`Test failed`)}: ${t.reason??``}`))}catch(t){g(e(t.message))}})}async function w(){if(!l||!t||!r)return;let{count:n,risks:i}=Ny(t.memoryCount,l),a=[`${e(`Every stored memory will be re-embedded`)}: ${n}`,...i.map(t=>e(t))].join(`
124
124
  `);window.confirm(a)&&await dy(y,async()=>{try{let e=await X(`/api/settings/embedding/apply`,{method:`POST`,body:JSON.stringify({candidate:Ay(l),revision:r.revision})});m(e),c(!1),u(void 0),f(void 0),g(``)}catch(e){g(e.message)}await sy()})}async function T(){try{m(await X(`/api/settings/embedding/run`,{method:`POST`,body:`{}`}))}catch(e){g(e.message)}}let E=!!r?.secrets.embeddingApiKey?.set;return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Embedding`),children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Embedding`)}),a&&(0,H.jsx)(`button`,{type:`button`,"aria-label":e(s?`Lock`:`Unlock to change`),title:e(s?`Lock`:`Unlock to change`),className:`rounded border border-border px-2 py-1`,disabled:!t||p.state===`running`,onClick:x,children:s?`🔓`:`🔒`})]}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`The model that turns memory text into search vectors. A change re-embeds every memory.`)}),t&&!s&&(0,H.jsx)(Ly,{current:t,keySet:E}),s&&l&&(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[[`builtin`,`server`].map(n=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`radio`,name:`omms-embedding-kind`,checked:l.kind===n,onChange:()=>S(Fy(n,t?.kind===`builtin`?t.model:`Xenova/nomic-embed-text-v1`))}),e(n===`server`?`OpenAI-compatible server`:`Built-in model`)]},n)),l.kind===`server`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`label`,{className:`block`,children:[e(`Preset`),(0,H.jsx)(`div`,{className:`w-72 max-w-full`,children:(0,H.jsx)(Dr,{"aria-label":e(`Preset`),className:`mt-1 block w-full rounded border border-border bg-background p-2`,value:Oy.find(e=>e.url===l.url)?.id??`custom`,onChange:e=>S({url:ky(e.target.value,l.url)}),children:Oy.map(t=>(0,H.jsx)(`option`,{value:t.id,children:t.id===`custom`?e(`Custom`):t.label},t.id))})})]}),(0,H.jsxs)(`label`,{className:`block`,children:[e(`Server URL`),(0,H.jsx)(`input`,{className:`mt-1 block w-full rounded border border-border bg-background p-2`,value:l.url,onChange:e=>S({url:e.target.value})})]})]}),(0,H.jsxs)(`label`,{className:`block`,children:[e(`Model`),(0,H.jsx)(`input`,{className:`mt-1 block w-full rounded border border-border bg-background p-2`,placeholder:l.kind===`server`?`nomic-embed-text`:`Xenova/nomic-embed-text-v1`,value:l.model,onChange:e=>S({model:e.target.value})})]}),l.kind===`server`&&(0,H.jsxs)(`fieldset`,{className:`space-y-2 rounded-lg border border-border p-3`,children:[(0,H.jsx)(`legend`,{className:`px-1 font-medium`,children:e(`API key`)}),[[`none`,`No key`],...E?[[`saved`,`Keep the saved key`]]:[],[`env`,`Environment variable`],[`file`,`Key file`],[`paste`,`Save key to a private file`]].map(([t,n])=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`radio`,name:`omms-embedding-key`,checked:l.key===t,onChange:()=>S({key:t})}),e(n)]},t)),l.key===`env`&&(0,H.jsx)(`input`,{"aria-label":e(`Variable name`),className:`w-full rounded border border-border bg-background p-2`,placeholder:`OPENROUTER_API_KEY`,value:l.keyInput.name,onChange:e=>S({keyInput:{...l.keyInput,name:e.target.value}})}),l.key===`file`&&(0,H.jsx)(`input`,{"aria-label":e(`Key file path`),className:`w-full rounded border border-border bg-background p-2`,value:l.keyInput.path,onChange:e=>S({keyInput:{...l.keyInput,path:e.target.value}})}),l.key===`paste`&&(0,H.jsx)(`input`,{"aria-label":e(`API key`),type:`password`,autoComplete:`off`,className:`w-full rounded border border-border bg-background p-2`,value:l.keyInput.value,onChange:e=>S({keyInput:{...l.keyInput,value:e.target.value}})})]}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:_||!l.model.trim(),onClick:()=>void C(),children:e(`Test`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:_||!My(d?.key,l),onClick:()=>void w(),children:e(`Apply`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,onClick:x,children:e(`Cancel`)})]})]}),(0,H.jsx)(Ry,{run:p,onRetry:()=>void T()}),h&&(0,H.jsx)(`p`,{className:`text-sm`,children:h})]})}async function Vy(e,t){return e()?(await t(),!0):!1}var Hy=[[`7`,`7 days`],[`30`,`30 days`],[`90`,`90 days`],[`never`,`Never`]];function Uy({tokens:e,newValue:t,busy:n,onGenerate:r,onRevoke:i}){let a=Y(),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(`30`),u=e=>e===null?a(`Never`):$p(e);return(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`table`,{className:`w-full text-left text-xs`,children:[(0,H.jsx)(`thead`,{children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(`th`,{children:a(`Name`)}),(0,H.jsx)(`th`,{children:a(`Created`)}),(0,H.jsx)(`th`,{children:a(`Expires`)}),(0,H.jsx)(`th`,{children:a(`Last used`)}),(0,H.jsx)(`th`,{})]})}),(0,H.jsx)(`tbody`,{children:e.map(e=>(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(`td`,{children:e.name}),(0,H.jsx)(`td`,{children:u(e.createdAt)}),(0,H.jsx)(`td`,{children:u(e.expiresAt)}),(0,H.jsx)(`td`,{children:e.lastUsedAt===null?`-`:u(e.lastUsedAt)}),(0,H.jsx)(`td`,{children:(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-2 py-0.5`,disabled:n,onClick:()=>i(e),children:a(`Revoke`)})})]},e.id))})]}),t&&(0,H.jsxs)(`div`,{role:`status`,className:`space-y-1 rounded border border-border p-2 text-xs`,children:[(0,H.jsx)(`code`,{className:`block break-all`,children:t}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-2 py-0.5`,onClick:()=>void navigator.clipboard?.writeText(t),children:a(`Copy`)}),(0,H.jsx)(`p`,{className:`text-amber-600`,children:a(`Copy this token now. It will not be shown again.`)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-end gap-2 text-sm`,children:[(0,H.jsxs)(`label`,{className:`block`,children:[a(`Token name`),(0,H.jsx)(`input`,{className:`mt-1 block rounded border border-border bg-background p-1.5`,placeholder:`ci`,value:o,onChange:e=>s(e.target.value)})]}),(0,H.jsxs)(`label`,{className:`block`,children:[a(`Expires after`),(0,H.jsx)(Dr,{"aria-label":a(`Expires after`),className:`mt-1 block rounded border border-border bg-background p-1.5`,value:c,onChange:e=>l(e.target.value),children:Hy.map(([e,t])=>(0,H.jsx)(`option`,{value:e,children:a(t)},e))})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:n||!o.trim(),onClick:()=>r(o.trim(),c===`never`?null:Number(c)),children:a(`Generate token`)})]})]})}var Wy=`relative overflow-x-auto rounded-lg border border-border`,Gy=`px-3 py-2 text-start font-medium`,Ky=`bg-muted/50 text-xs text-muted-foreground`,qy=`px-3 py-2 text-start font-medium`,Jy=`border-t border-border transition-colors hover:bg-muted/30`,Yy=`px-3 py-1.5`;function Xy(e){return{secrets:e.secrets??{},externalUsed:e.effective?.opencode?.mode===`manual`||e.effective?.pi?.kind===`manual`,claudeCodeInUse:!!(e.claudeCodeEvidence?.attempts||e.claudeCodeEvidence?.folderSet),access:e.access??{host:`127.0.0.1`,authEnabled:!1,tokenAvailable:!1,embeddingApiUrl:null}}}var Zy=[{id:`memoryApiKey`,label:`External API key`,purpose:`Capture and profile learning through the external API. Claude Code always uses it.`,hosts:`OpenCode, Pi, Claude Code`,where:`External API card`},{id:`embeddingApiKey`,label:`Embedding server key`,purpose:`Sent to an embedding server on another machine.`,hosts:`OpenCode, Pi, Claude Code`,where:`Embedding card`},{id:`apiTokens`,label:`API tokens`,purpose:`Let scripts and other computers call the web app's API.`,hosts:`Web app`,where:`Table below`},{id:`webPassword`,label:`Browser password`,purpose:`Asks for a user name and password before the page opens.`,hosts:`Web app`,where:`Form below`}];function Qy({state:e}){let t=Y();return e===`set`?(0,H.jsxs)(`span`,{children:[`✅ `,t(`set`)]}):e===`missing`?(0,H.jsxs)(`span`,{className:`text-red-600`,children:[`⛔️ `,t(`missing`)]}):e===`never-used`?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:t(`never used before`)}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:t(`not needed`)})}function $y({states:e}){let t=Y();return(0,H.jsx)(`div`,{className:Wy,children:(0,H.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,H.jsx)(`caption`,{className:V(Gy,`sr-only`),children:t(`Keys and access`)}),(0,H.jsx)(`thead`,{className:Ky,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(`th`,{className:qy,children:t(`Credential`)}),(0,H.jsx)(`th`,{className:qy,children:t(`State`)}),(0,H.jsx)(`th`,{className:qy,children:t(`Used for`)}),(0,H.jsx)(`th`,{className:qy,children:t(`Hosts`)}),(0,H.jsx)(`th`,{className:qy,children:t(`Change it in`)})]})}),(0,H.jsx)(`tbody`,{children:Zy.map(n=>(0,H.jsxs)(`tr`,{className:V(Jy,`align-top`),children:[(0,H.jsx)(`td`,{className:V(Yy,`font-medium`),children:t(n.label)}),(0,H.jsx)(`td`,{className:V(Yy,`whitespace-nowrap`),children:(0,H.jsx)(Qy,{state:e[n.id]})}),(0,H.jsx)(`td`,{className:Yy,children:t(n.purpose)}),(0,H.jsx)(`td`,{className:Yy,children:n.hosts===`Web app`?t(`Web app`):n.hosts}),(0,H.jsx)(`td`,{className:Yy,children:t(n.where)})]},n.id))})]})})}function eb({value:e,onChange:t}){let n=Y();return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`label`,{className:`block w-full max-w-72`,children:[(0,H.jsx)(`span`,{children:n(`User name`)}),(0,H.jsx)(`input`,{className:`mt-1 block w-full rounded border border-border bg-background p-2`,autoComplete:`username`,value:e.username,onChange:n=>t({...e,username:n.target.value})})]}),(0,H.jsxs)(`label`,{className:`block w-full max-w-72`,children:[(0,H.jsx)(`span`,{children:n(`Password`)}),(0,H.jsx)(`input`,{type:`password`,autoComplete:`new-password`,className:`mt-1 block w-full rounded border border-border bg-background p-2`,value:e.value,onChange:n=>t({...e,value:n.target.value})})]})]})}function tb(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)([]),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)({username:``,value:``}),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1);async function h(){let e=await X(`/api/settings/tokens`);o(e.tokens)}(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(t=>{e&&f(t.message)}),X(`/api/web/status`).then(async t=>{!e||!t.isLocal||(i(!0),await h())}).catch(()=>{});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);async function g(e){await dy(m,async()=>{try{await e()}catch(e){f(e.message)}await sy()}).catch(()=>{})}let _=(e,t)=>g(async()=>{let n=await X(`/api/settings/tokens`,{method:`POST`,body:JSON.stringify({name:e,expiresInDays:t})});c(n.value),f(``),await h()}),y=t=>g(async()=>{c(void 0),await Vy(()=>window.confirm(e(`Revoke this token? Scripts that use it stop working.`)),async()=>{await X(`/api/settings/tokens/${t.id}`,{method:`DELETE`}),await h()})}),b=n=>g(async()=>{t&&(await X(`/api/settings/web-password`,{method:`POST`,body:JSON.stringify(n?{clear:!0,revision:t.revision}:{password:l.value,username:l.username,revision:t.revision})}),u({username:``,value:``}),f(e(Dy(n))))}),x=t?.access;return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Keys and access`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Keys and access`)}),t&&(0,H.jsx)($y,{states:Ey(Xy(t))}),x?.configTokenIgnored&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`The config file still sets webServerApiToken. OMMS imported it once as the token “from config file” and no longer reads the key. Use the token table instead.`)}),r?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`fieldset`,{className:`space-y-2 rounded-lg border border-border p-3 text-sm`,children:[(0,H.jsx)(`legend`,{className:`px-1 font-medium`,children:e(`API tokens`)}),(0,H.jsx)(Uy,{tokens:a,newValue:s,busy:p,onGenerate:(e,t)=>void _(e,t),onRevoke:e=>void y(e)})]}),(0,H.jsxs)(`fieldset`,{className:`space-y-2 rounded-lg border border-border p-3 text-sm`,children:[(0,H.jsx)(`legend`,{className:`px-1 font-medium`,children:e(`Browser password`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:x?.authEnabled?x.authUsername?`${e(`A browser password is set for user`)} ${x.authUsername}.`:e(`A browser password is set for your computer user name.`):e(`No browser password is set.`)}),(0,H.jsx)(eb,{value:l,onChange:u}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:p||!t||!l.value,onClick:()=>void b(!1),children:e(`Save password`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:p||!t||!x?.authEnabled,onClick:()=>void b(!0),children:e(`Clear password`)})]})]})]}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`Open this page on the computer that runs OMMS to manage tokens and the password.`)}),d&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:d})]})}function nb(){let e=Y(),[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(``);async function l(){let e=await X(`/api/settings/profiles`);n(e.profiles)}if((0,v.useEffect)(()=>{l().catch(e=>c(e.message))},[]),t.length<2)return null;let u=t=>dy(o,async()=>{if(window.confirm(`${e(`Use this profile for every folder?`)} ${t.userId}`))try{let n=await sy();await X(`/api/settings/profiles/use`,{method:`POST`,body:JSON.stringify({userId:t.userId,revision:n?.revision})}),await sy(),await l(),c(e(`Saved. OMMS now uses this profile in every folder.`))}catch(e){c(e.message)}}),d=n=>dy(o,async()=>{let i=t.find(e=>e.id===(r[n.id]??t.find(e=>e.id!==n.id)?.id));if(i&&window.confirm(`${e(`Merge this profile into the other one? The source profile is turned off, not deleted.`)}\n${n.userId} → ${i.userId}`))try{await X(`/api/settings/profiles/merge`,{method:`POST`,body:JSON.stringify({sourceId:n.id,targetId:i.id})}),await l(),c(e(`Merged.`))}catch(e){c(e.message)}});return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Profiles`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Profiles`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`OMMS keeps one profile for each git email. A folder whose repository has its own email starts a second profile. Choose the profile that is yours, or merge the extra one into it.`)}),(0,H.jsx)(`div`,{className:Wy,children:(0,H.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,H.jsx)(`caption`,{className:V(Gy,`sr-only`),children:e(`Profiles`)}),(0,H.jsx)(`thead`,{className:Ky,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(`th`,{className:qy,children:e(`Email`)}),(0,H.jsx)(`th`,{className:qy,children:e(`Preferences`)}),(0,H.jsx)(`th`,{className:qy,children:e(`Patterns`)}),(0,H.jsx)(`th`,{className:qy,children:e(`Workflows`)}),(0,H.jsx)(`th`,{className:qy,children:e(`Prompts analysed`)}),(0,H.jsx)(`th`,{className:qy,children:e(`Last update`)}),(0,H.jsx)(`th`,{className:qy,children:e(`Actions`)})]})}),(0,H.jsx)(`tbody`,{children:t.map(n=>(0,H.jsxs)(`tr`,{className:Jy,children:[(0,H.jsxs)(`td`,{className:V(Yy,`font-medium`),children:[n.userId,n.inUse&&(0,H.jsxs)(`span`,{className:`ms-2 text-xs text-green-700`,children:[`✅ `,e(`in use`)]})]}),(0,H.jsx)(`td`,{className:Yy,children:n.preferences}),(0,H.jsx)(`td`,{className:Yy,children:n.patterns}),(0,H.jsx)(`td`,{className:Yy,children:n.workflows}),(0,H.jsx)(`td`,{className:Yy,children:n.totalPromptsAnalyzed}),(0,H.jsx)(`td`,{className:Yy,children:Qp(n.lastAnalyzedAt)}),(0,H.jsxs)(`td`,{className:V(Yy,`space-y-1`),children:[!n.inUse&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-2 py-1`,disabled:a,onClick:()=>void u(n),children:e(`Use this profile`)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`label`,{className:`sr-only`,htmlFor:`merge-${n.id}`,children:e(`Merge into`)}),(0,H.jsx)(`select`,{id:`merge-${n.id}`,className:`rounded border border-border bg-background px-1 py-1 text-xs`,value:r[n.id]??``,onChange:e=>i(t=>({...t,[n.id]:e.target.value})),children:t.filter(e=>e.id!==n.id).map(e=>(0,H.jsx)(`option`,{value:e.id,children:e.userId},e.id))}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-2 py-1`,disabled:a,onClick:()=>void d(n),children:e(`Merge into`)})]})]})]},n.id))})]})}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:s})]})}var rb=[`opencode`,`pi`,`claude-code`];function ib(e){return!e.provider&&!e.model?null:`${e.provider??``}/${e.model??``}`}function ab(e){let t=new Map;for(let n of e){let e=t.get(n.host)??{host:n.host,total:0,saved:0,skipped:0,failed:0,models:[]};e.total+=n.total,e.saved+=n.saved,e.skipped+=n.skipped,e.failed+=n.failed;let r=ib(n),i=e.models.find(e=>e.label===r);i?(i.total+=n.total,i.saved+=n.saved,i.skipped+=n.skipped,i.failed+=n.failed):e.models.push({label:r,provider:n.provider,model:n.model,total:n.total,saved:n.saved,skipped:n.skipped,failed:n.failed}),t.set(n.host,e)}let n=e=>{let t=rb.indexOf(e);return t<0?rb.length:t};return[...t.values()].map(e=>({...e,models:e.models.sort((e,t)=>t.total-e.total)})).sort((e,t)=>n(e.host)-n(t.host))}function ob(e,t){return t>0?Math.round(100*e/t):0}function sb(e){let t=new Map;for(let n of e){let e=`${n.host}\u0000${n.reason}`,r=t.get(e)??{host:n.host,reason:n.reason,count:0};r.count+=n.count,t.set(e,r)}return[...t.values()].sort((e,t)=>t.count-e.count)}function cb({row:e}){return(0,H.jsxs)(H.Fragment,{children:[[e.saved,e.skipped,e.failed].map((t,n)=>(0,H.jsxs)(`td`,{className:V(Yy,`text-end tabular-nums`),children:[t,` `,(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[ob(t,e.total),`%`]})]},n)),(0,H.jsx)(`td`,{className:V(Yy,`text-end font-medium tabular-nums`),children:e.total})]})}function lb(e,t){return`/api/settings/diagnostics?days=${e}${t===`all`?``:`&host=${t}`}`}function ub(){let e=Y(),[t,n]=(0,v.useState)(7),[r,i]=(0,v.useState)(`all`),[a,o]=(0,v.useState)(()=>new Set),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)([]),[d,f]=(0,v.useState)(),[p,m]=(0,v.useState)(``),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(``),[b]=(0,v.useState)(uy),x=(0,v.useCallback)(async(e,t)=>{let n=oy(),r=b.begin();try{let[i,a,o]=await Promise.all([X(lb(e,t)),X(`/api/settings/traces`),X(`/api/settings`)]);if(!r())return;c(i),u(a.traces),n.isCurrent()&&f(o),g(``)}catch(e){if(!r())return;g(e.message)}},[b]);(0,v.useEffect)(()=>{x(t,r)},[t,r,x]),(0,v.useEffect)(()=>cy(e=>f(e)),[]);async function S(n){if(!d)return;let i;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({revision:d.revision,edits:n})})}catch(e){i=e}let a=await sy()!==null;if(!i){y(``),await x(t,r),a||g(e(`Reload the page before saving again.`));return}g(ly(i.message,e(a?`Current settings were reloaded; check the values and save again.`:`The current settings could not be reloaded. Reload the page.`)))}async function C(e){try{let t=await X(`/api/settings/traces/${encodeURIComponent(e)}`);m(t.content)}catch(e){g(e.message)}}async function w(n){if(window.confirm(`${e(`Delete`)} ${n}?`))try{await X(`/api/settings/traces/${encodeURIComponent(n)}`,{method:`DELETE`}),m(``),await x(t,r)}catch(e){g(e.message)}}async function T(n){try{let{result:i}=await X(`/api/settings/capture-retry/${n}/run`,{method:`POST`,body:`{}`});y(e(i===`scheduled`?n===`pi`?`These turns retry at the next Pi session start.`:n===`claude-code`?`These turns retry at the next Claude Code session start.`:`These turns retry at the next OpenCode session start.`:i===`running`?`A retry is already running.`:`Retrying now.`)),await x(t,r)}catch(e){g(e.message)}}let E=d?.settings.captureTrace,D=Number(d?.settings.captureRetryRetentionHours?.value??72);return(0,H.jsxs)(`section`,{className:`space-y-4 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Capture diagnostics`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Capture diagnostics`)}),(0,H.jsxs)(`label`,{className:`flex items-center gap-2 pb-2 text-sm`,children:[e(`Time range`),(0,H.jsxs)(Dr,{"aria-label":e(`Time range`),className:`rounded-lg border border-border bg-background px-2 py-1`,value:t,onChange:e=>n(Number(e.target.value)),children:[(0,H.jsx)(`option`,{value:1,children:e(`24 hours`)}),(0,H.jsx)(`option`,{value:7,children:e(`7 days`)}),(0,H.jsx)(`option`,{value:30,children:e(`30 days`)}),(0,H.jsx)(`option`,{value:90,children:e(`90 days`)})]}),e(`Host`),(0,H.jsxs)(Dr,{"aria-label":e(`Host`),className:`rounded-lg border border-border bg-background px-2 py-1`,value:r,onChange:e=>i(e.target.value),children:[(0,H.jsx)(`option`,{value:`all`,children:e(`All`)}),[`opencode`,`pi`,`claude-code`].map(e=>(0,H.jsx)(`option`,{value:e,children:Yd(e)},e))]})]}),h&&(0,H.jsx)(`p`,{role:`alert`,children:h}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Saved: a memory was stored. Skipped: the model or a rule found nothing worth keeping, or the turn was private or trivial. Failed: the attempt hit an error. Total: the three added up. Each percentage is a share of its row's total.`)}),(0,H.jsx)(`div`,{className:Wy,children:(0,H.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,H.jsx)(`caption`,{className:Gy,children:e(`Outcomes by host`)}),(0,H.jsx)(`thead`,{className:Ky,children:(0,H.jsx)(`tr`,{children:[`Host / model`,`Saved`,`Skipped`,`Failed`,`Total`].map((t,n)=>(0,H.jsx)(`th`,{scope:`col`,className:V(qy,n>0&&`text-end`),children:e(t)},t))})}),(0,H.jsx)(`tbody`,{children:ab(s?.byModel??[]).map(t=>{let n=a.has(t.host);return(0,H.jsxs)(v.Fragment,{children:[(0,H.jsxs)(`tr`,{className:V(Jy,`font-medium`),children:[(0,H.jsx)(`td`,{className:Yy,children:(0,H.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1`,"aria-expanded":n,onClick:()=>o(e=>{let r=new Set(e);return n?r.delete(t.host):r.add(t.host),r}),children:[(0,H.jsx)(`span`,{"aria-hidden":!0,children:n?`▾`:`▸`}),Xd(t.host),(0,H.jsxs)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:[`(`,t.models.length,` `,e(t.models.length===1?`model`:`models`),`)`]})]})}),(0,H.jsx)(cb,{row:t})]}),n&&t.models.map(n=>(0,H.jsxs)(`tr`,{className:`border-t border-border transition-colors hover:bg-muted/30`,children:[(0,H.jsx)(`td`,{className:V(`px-3 py-1.5`,`ps-8`),children:n.label?(0,H.jsx)(`span`,{className:`font-mono text-xs`,children:n.label}):(0,H.jsx)(`span`,{className:`text-xs italic text-muted-foreground`,title:e(`No model was recorded for these attempts. This happens with records written by older OMMS versions, and when an attempt stops before a model is chosen.`),children:e(`model not recorded`)})}),(0,H.jsx)(cb,{row:n})]},`${t.host}-${n.label??`none`}`))]},t.host)})})]})}),(0,H.jsx)(`div`,{className:Wy,children:(0,H.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,H.jsx)(`caption`,{className:Gy,children:e(`Failure reasons`)}),(0,H.jsx)(`thead`,{className:Ky,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(`th`,{scope:`col`,className:qy,children:e(`Host`)}),(0,H.jsx)(`th`,{scope:`col`,className:qy,children:e(`Reason`)}),(0,H.jsx)(`th`,{scope:`col`,className:V(qy,`text-end`),children:e(`Total`)})]})}),(0,H.jsx)(`tbody`,{children:sb(s?.byReason??[]).map((e,t)=>(0,H.jsxs)(`tr`,{className:Jy,children:[(0,H.jsx)(`td`,{className:V(Yy,`text-muted-foreground`),children:Xd(e.host)}),(0,H.jsx)(`td`,{className:V(Yy,`font-mono text-xs`),children:e.reason}),(0,H.jsx)(`td`,{className:V(Yy,`text-end tabular-nums`),children:e.count})]},`${e.host}-${e.reason}-${t}`))})]})}),(0,H.jsx)(`div`,{className:V(Wy,`max-h-72 overflow-y-auto`),children:(0,H.jsxs)(`table`,{className:`w-full min-w-max text-sm`,children:[(0,H.jsx)(`caption`,{className:Gy,children:e(`Recent attempts`)}),(0,H.jsx)(`thead`,{className:V(Ky,`sticky top-0`),children:(0,H.jsx)(`tr`,{children:[`Time`,`Host`,`Source`,`Session`,`Path`,`Model`,`Stop`,`Blocks`,`Prompt`,`Reply`,`Duration`,`Outcome`,`Reason`].map(t=>(0,H.jsx)(`th`,{scope:`col`,className:qy,children:e(t)},t))})}),(0,H.jsx)(`tbody`,{children:s?.recent.map((e,t)=>(0,H.jsx)(`tr`,{className:Jy,children:[Qp(e.timestamp),Xd(e.host),e.sourceType,e.sessionId,e.path,`${e.provider??``}/${e.model??``}`,e.stopReason,e.blockTypes?.join(`, `),e.promptChars,e.replyChars,e.durationMs,e.outcome,e.reason].map((e,t)=>(0,H.jsx)(`td`,{className:V(Yy,`whitespace-nowrap`),children:e??``},t))},`${e.timestamp}-${t}`))})]})}),(0,H.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-3 text-sm`,children:[(0,H.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:E?.value===!0,disabled:!d,onChange:t=>{t.target.checked&&!window.confirm(e(`Traces can contain conversation content after redaction. Keep tracing off unless you need it for debugging.`))||S({captureTrace:t.target.checked})}}),` `,e(`Save capture traces`)]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Traces can contain conversation content after redaction. Keep tracing off unless you need it for debugging.`)}),E?.source===`project`&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`This project turns tracing off. The global switch cannot turn it on here.`)}),[`captureTraceRetentionDays`,`captureAttemptRetentionDays`].map(t=>(0,H.jsxs)(`label`,{className:`block`,children:[e(t===`captureTraceRetentionDays`?`Trace retention (days)`:`Attempt retention (days)`),` `,(0,H.jsx)(`input`,{type:`number`,min:1,className:`ms-2 w-20 rounded border border-border bg-background p-1`,defaultValue:Number(d?.settings[t]?.value??30),onBlur:e=>{let n=Number(e.target.value);Number.isSafeInteger(n)&&n>0&&n!==d?.settings[t]?.value&&S({[t]:n})}},`${t}-${d?.settings[t]?.value}`)]},t)),(0,H.jsxs)(`label`,{className:`block`,children:[e(`Retry retention (hours)`),` `,(0,H.jsx)(`input`,{type:`number`,min:0,max:720,className:`ms-2 w-20 rounded border border-border bg-background p-1`,defaultValue:D,onBlur:e=>{let t=Number(e.target.value);Number.isSafeInteger(t)&&t>=0&&t<=720&&t!==D&&S({captureRetryRetentionHours:t})}},`captureRetryRetentionHours-${D}`)]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`When the capture model cannot be reached, OMMS keeps the turn and tries again later. Queued turns can hold conversation content after redaction. 0 turns the queue off and deletes waiting turns.`)}),(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:e(`Turns waiting for retry`)}),[`pi`,`opencode`,`claude-code`].map(t=>{let n=s?.retryQueue?.[t]??0;return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`w-24`,children:Yd(t)}),(0,H.jsx)(`span`,{className:`tabular-nums`,children:n}),(0,H.jsx)(`button`,{type:`button`,disabled:n===0||D===0,className:`disabled:opacity-50`,onClick:()=>void T(t),children:e(`Retry now`)})]},t)}),_&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:_}),(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:e(`Trace files`)}),l.map(t=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(`span`,{children:[t.file,` (`,t.size,` bytes)`]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>void C(t.file),children:e(`View`)}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>void w(t.file),children:e(`Delete`)})]},t.file)),p&&(0,H.jsx)(`pre`,{className:`max-h-60 overflow-auto whitespace-pre-wrap break-words rounded bg-background p-2 text-xs`,children:p})]})]})}function db(){let e=Y(),[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(``);async function s(e){i(!0);try{let t=await X(`/api/settings/health`,{method:`POST`,body:JSON.stringify({testModels:e})});n(t.checks),o(``)}catch(e){o(e.message)}finally{i(!1)}}return(0,H.jsxs)(`section`,{id:`settings-health`,className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Health`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Health`)}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(`button`,{className:`rounded-lg border border-border px-3 py-1.5 text-sm`,disabled:r,onClick:()=>void s(!1),children:e(`Run checks`)}),(0,H.jsx)(`button`,{className:`rounded-lg border border-border px-3 py-1.5 text-sm`,disabled:r,onClick:()=>void s(!0),children:e(`Run checks and test models`)})]}),r&&(0,H.jsx)(`p`,{role:`status`,children:e(`Checking…`)}),a&&(0,H.jsx)(`p`,{role:`alert`,children:a}),(0,H.jsx)(`ul`,{className:`space-y-2 text-sm`,children:t.map(t=>(0,H.jsxs)(`li`,{className:`rounded-lg border border-border p-2`,children:[(0,H.jsx)(`strong`,{className:t.status===`fail`?`text-red-600`:t.status===`warn`?`text-amber-600`:`text-green-600`,children:e(t.status).toUpperCase()}),` `,`· `,e(t.check),`: `,t.reason]},t.check))})]})}function fb(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>{e&&n(t)}).catch(t=>{e&&c(t.message)}),X(`/api/settings/web-autostart`).then(t=>{e&&i(t)}).catch(t=>{e&&c(t.message)}),X(`/api/settings/version`).then(t=>{e&&o(t)}).catch(()=>{});let t=cy(t=>{e&&n(t)});return()=>{e=!1,t()}},[]);async function d(n){if(t){u(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:{webServerAutoStart:n},revision:t.revision})}),c(e(`Saved. The login item changes at the next Pi or OpenCode start.`))}catch(e){c(e.message)}await sy(),u(!1)}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Web app`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Web app`)}),(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:!!t?.settings.webServerAutoStart?.globalValue,disabled:l||!t,onChange:e=>void d(e.target.checked)}),e(`Start web app at login`)]}),(0,H.jsxs)(`p`,{className:`text-sm`,children:[e(`Login item`),`: `,e(r?.state??`not installed`)]}),r?.state===`unsupported`&&(0,H.jsx)(`p`,{role:`status`,children:e(`Login items are unsupported on this platform.`)}),r?.state===`no-runtime`&&(0,H.jsx)(`p`,{role:`status`,children:e(`Install Node or Bun to start the web app at login.`)}),a&&(0,H.jsx)(pb,{info:a}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Use these commands to apply the change now:`)}),(0,H.jsxs)(`div`,{className:`space-y-1 font-mono text-xs`,children:[(0,H.jsx)(`p`,{children:`om-memory-system web`}),(0,H.jsx)(`p`,{children:`om-memory-system web install`}),(0,H.jsx)(`p`,{children:`om-memory-system web uninstall`}),(0,H.jsx)(`p`,{children:`om-memory-system web status`})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:s})]})}function pb({info:e}){let t=Y(),n=hy(e);return(0,H.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,H.jsxs)(`p`,{children:[t(`Running version`),`: `,e.running,` · `,t(`Global command`),`:`,` `,e.global??t(`not installed globally`)]}),n.kind===`older`&&(0,H.jsx)(`p`,{role:`status`,children:t(`A newer OMMS copy runs in place of the global install. The global install is optional. To update it:`)}),n.kind===`newer`&&(0,H.jsx)(`p`,{role:`status`,className:`text-amber-600`,children:t(`The global install is newer than the running OMMS. The next Pi or OpenCode start replaces the web app.`)}),n.kind===`missing`&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`OMMS is not installed globally. A global install is optional.`)}),n.command&&(0,H.jsx)(`p`,{className:`font-mono text-xs`,children:n.command})]})}function mb(e){let t=e.trim();return t===``||t.startsWith(`~/`)||t.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(t)||t.startsWith(`\\\\`)}function hb(e,t,n){return n?t:typeof e==`string`?e:``}function gb(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(!1),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{let e=!0,t=t=>{e&&(n(t),i(e=>hb(t.settings.claudeConfigDir?.globalValue,e,l.current)))},r=oy();X(`/api/settings`).then(e=>{r.isCurrent()&&t(e)}).catch(t=>{e&&o(t.message)});let a=cy(e=>t(e));return()=>{e=!1,a()}},[]);async function u(){if(t){if(!mb(r)){o(e(`Enter a full path, or a path that starts with ~/.`));return}c(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:{claudeConfigDir:r.trim()},revision:t.revision})}),l.current=!1,o(e(`Saved. Capture and import use this folder now.`))}catch(e){o(e.message)}await sy(),c(!1)}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Claude Code folder`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Claude Code folder`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`Set this when Claude Code does not use ~/.claude, for example when you start it with CLAUDE_CONFIG_DIR. Leave it empty to use the default.`)}),(0,H.jsxs)(`label`,{className:`block space-y-1 text-sm`,children:[(0,H.jsx)(`span`,{children:e(`Claude Code folder`)}),(0,H.jsx)(`input`,{className:`w-full rounded border border-border bg-background p-2 font-mono`,placeholder:`~/.claude`,value:r,disabled:s||!t,onChange:e=>{l.current=!0,i(e.target.value)}})]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:s||!t,onClick:()=>void u(),children:e(`Save folder`)}),(0,H.jsx)(_b,{folder:t?.claudeFolder}),a&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:a})]})}function _b({folder:e}){let t=Y();if(!e)return null;let n={setting:t(`this setting`),env:t(`the CLAUDE_CONFIG_DIR variable of the web app`),default:t(`the default folder`)};return(0,H.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,H.jsxs)(`p`,{children:[t(`Transcripts folder in use`),`: `,(0,H.jsx)(`span`,{className:`font-mono`,children:e.root})]}),(0,H.jsxs)(`p`,{children:[t(`From`),`: `,n[e.source]]}),!e.exists&&(0,H.jsxs)(`p`,{role:`status`,className:`text-amber-600`,children:[t(`This folder does not exist. Claude Code capture and import will not work:`),` `,(0,H.jsx)(`span`,{className:`font-mono`,children:e.root})]})]})}function vb(e,t){return`/api/settings/log?lines=200${e===`all`?``:`&level=${e}`}${t?`&filter=capture`:``}`}function yb(e){let t=/^\d{4}-(\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})/.exec(e);return t?`${t[1]} ${t[2]}`:e}function bb(e){return e.map(e=>{let t=e.message.replace(/\s*\n\s*/g,` `);return`${e.time} ${e.level.toUpperCase()} ${t}${e.data?`: ${e.data}`:``}`}).join(`
125
125
  `)}function xb(e){return e.scrollHeight-e.scrollTop-e.clientHeight<24}var Sb={info:`info`,warn:`warning`,error:`destructive`};function Cb({level:e,guessed:t}){let n=Y(),r=(0,H.jsxs)(id,{variant:Sb[e],tabIndex:t?0:void 0,className:`w-14 justify-center`,children:[n(e),t&&(0,H.jsxs)(`span`,{className:`sr-only`,children:[`, `,n(`Level guessed from the message`)]})]});return t?(0,H.jsx)(Hp,{content:n(`Level guessed from the message`),children:r}):r}function wb({records:e,emptyText:t,label:n}){let r=(0,v.useRef)(null),i=(0,v.useRef)(!0);return(0,v.useLayoutEffect)(()=>{let e=r.current;e&&i.current&&(e.scrollTop=e.scrollHeight)},[e]),(0,H.jsx)(`div`,{ref:r,role:`log`,"aria-live":`off`,"aria-label":n,tabIndex:0,onScroll:()=>{r.current&&(i.current=xb(r.current))},className:`max-h-80 overflow-auto rounded-lg bg-background p-3 text-xs`,children:e.length===0?(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:t}):(0,H.jsx)(`ol`,{dir:`ltr`,className:`space-y-1.5 text-start`,children:e.map(e=>(0,H.jsxs)(`li`,{className:`flex flex-wrap items-start gap-x-2 gap-y-1`,children:[(0,H.jsx)(`time`,{dateTime:e.time,title:e.time,className:`shrink-0 font-mono text-muted-foreground`,children:yb(e.time)}),(0,H.jsx)(Cb,{level:e.level,guessed:e.guessed}),(0,H.jsxs)(`span`,{className:`min-w-0 basis-full break-words whitespace-pre-wrap sm:basis-0 sm:flex-1`,children:[e.message,e.data&&(0,H.jsxs)(`span`,{className:`font-mono text-muted-foreground`,children:[` `,e.data]})]})]},e.seq))})})}var Tb=5e3,Eb=[{level:`all`,label:`All`},{level:`warn`,label:`Warning`},{level:`error`,label:`Error`}];function Db(e){let[t,n]=(0,v.useState)(!0);return(0,v.useEffect)(()=>{let t=e.current;if(!t)return;let r=!0,i=document.visibilityState===`visible`,a=()=>n(r&&i),o=typeof IntersectionObserver>`u`?void 0:new IntersectionObserver(([e])=>{r=e?.isIntersecting??!0,a()});o?.observe(t);let s=()=>{i=document.visibilityState===`visible`,a()};return document.addEventListener(`visibilitychange`,s),a(),()=>{o?.disconnect(),document.removeEventListener(`visibilitychange`,s)}},[e]),t}function Ob(){let e=Y(),t=(0,v.useRef)(null),n=(0,v.useRef)(0),[r,i]=(0,v.useState)(`all`),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1),h=Db(t),g=(0,v.useCallback)(async()=>{let e=++n.current;try{let t=await X(vb(r,a));if(e!==n.current)return;u(t),f(``)}catch(t){e===n.current&&f(t.message)}},[r,a]);(0,v.useEffect)(()=>{if(s){n.current++;return}g()},[g,s]),(0,v.useEffect)(()=>{if(s||!h)return;let e=setInterval(()=>void g(),Tb);return()=>clearInterval(e)},[s,h,g]);async function _(e){try{await navigator.clipboard.writeText(e),m(!0),setTimeout(()=>m(!1),2e3)}catch{m(!1)}}let y=l?.records??[],b=e(r===`all`&&!a?`No log has been written yet.`:`No matching log records.`);return(0,H.jsxs)(`section`,{ref:t,className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Log`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Log`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-sm`,children:[(0,H.jsx)(`div`,{role:`group`,"aria-label":e(`Level`),className:`flex gap-1.5`,children:Eb.map(t=>(0,H.jsx)(K,{type:`button`,size:`sm`,variant:r===t.level?`default`:`outline`,"aria-pressed":r===t.level,onClick:()=>i(t.level),children:e(t.label)},t.level))}),(0,H.jsxs)(`label`,{children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:a,onChange:e=>o(e.target.checked)}),` `,e(`Capture attempts only`)]})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,H.jsx)(K,{type:`button`,size:`sm`,variant:`outline`,"aria-pressed":s,onClick:()=>c(!s),children:e(s?`Resume`:`Pause`)}),(0,H.jsx)(K,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>void g(),children:e(`Refresh`)}),(0,H.jsx)(K,{type:`button`,size:`sm`,variant:`outline`,disabled:y.length===0,onClick:()=>void _(bb(y)),children:e(`Copy visible records`)}),l&&(0,H.jsx)(K,{type:`button`,size:`sm`,variant:`outline`,onClick:()=>void _(l.path),children:e(`Copy log path`)}),(0,H.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:p?e(`Copied`):s?e(`Paused`):``})]}),(0,H.jsx)(`p`,{dir:`ltr`,className:`break-all text-start font-mono text-xs text-muted-foreground`,children:l?.path}),d&&(0,H.jsx)(`p`,{role:`alert`,children:d}),(0,H.jsx)(wb,{records:y,label:e(`Log lines`),emptyText:l?b:e(`Loading log…`)})]})}var kb=[{code:`en`,name:`English`},{code:`id`,name:`Bahasa Indonesia`},{code:`zh`,name:`中文`},{code:`ja`,name:`日本語`},{code:`es`,name:`Español`},{code:`fr`,name:`Français`},{code:`de`,name:`Deutsch`},{code:`ru`,name:`Русский`},{code:`pt`,name:`Português`},{code:`ar`,name:`العربية`},{code:`ko`,name:`한국어`}];function Ab(e){return typeof e==`string`&&e?e:`auto`}function jb(e){let t=[...kb];return e!==`auto`&&!t.some(t=>t.code===e)&&t.push({code:e}),t}function Mb({value:e,onChange:t,disabled:n}){let r=Y();return(0,H.jsx)(`div`,{className:Er,children:(0,H.jsxs)(Dr,{id:`capture-language`,className:`w-full rounded-lg border border-border bg-background p-2 text-sm`,value:e,disabled:n,onChange:e=>t(e.target.value),children:[(0,H.jsx)(`option`,{value:`auto`,children:r(`Automatic`)}),jb(e).map(e=>(0,H.jsx)(`option`,{value:e.code,children:e.name??e.code},e.code))]})})}function Nb(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(t=>{e&&i(t.message)});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);async function s(n){if(t){o(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:{autoCaptureLanguage:n},revision:t.revision})}),i(e(`Saved. New memories use this language.`))}catch(e){i(e.message)}await sy(),o(!1)}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Memory language`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Memory language`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`The language that new memory summaries are written in. Automatic detects it from your prompt, but a Latin-script prompt under 100 characters counts as English.`)}),(0,H.jsx)(`label`,{className:`block space-y-1 text-sm`,htmlFor:`capture-language`,children:e(`Summary language`)}),(0,H.jsx)(Mb,{value:Ab(t?.settings.autoCaptureLanguage?.value),disabled:a||!t,onChange:e=>void s(e)}),r&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:r})]})}function Pb({theme:e}){let{canvas:t,elevated:n,text:r,textSecondary:i,accent:a,border:o}=e.colours;return(0,H.jsxs)(`span`,{"aria-hidden":`true`,className:`flex h-9 w-14 shrink-0 flex-col justify-center gap-1 rounded-md border px-1.5`,style:{background:t,borderColor:o},children:[(0,H.jsx)(`span`,{className:`h-1.5 w-8 rounded-full`,style:{background:r}}),(0,H.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`span`,{className:`h-1.5 w-5 rounded-full`,style:{background:i}}),(0,H.jsx)(`span`,{className:`size-2.5 rounded-full`,style:{background:a,boxShadow:`0 0 0 2px ${n}`}})]})]})}function Fb({variant:e,selected:t,filter:n,inUse:r,onSelect:i}){let a=Y(),o=a(e===`light`?`Light theme`:`Dark theme`),s=Hf(e).filter(e=>e.name.toLowerCase().includes(n));return(0,H.jsxs)(`fieldset`,{"aria-label":o,className:`flex min-w-0 flex-col gap-2`,children:[(0,H.jsxs)(`legend`,{className:`flex w-full items-center gap-2 pb-2`,children:[(0,H.jsx)(`span`,{className:`text-ui font-semibold`,children:o}),r?(0,H.jsx)(id,{children:a(`On screen now`)}):null]}),s.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`No theme matches.`)}):(0,H.jsx)(`div`,{className:`relative flex max-h-80 min-w-0 flex-col overflow-y-auto rounded-[10px] border border-border p-1`,children:s.map(n=>{let r=n.id===t;return(0,H.jsxs)(`label`,{className:`flex min-h-11 cursor-pointer items-center gap-3 rounded-md px-2 py-1.5 transition-colors duration-150 hover:bg-interactive-hover has-[:checked]:bg-selection has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-[-2px] has-[:focus-visible]:outline-ring`,children:[(0,H.jsx)(`input`,{type:`radio`,name:`theme-${e}`,value:n.id,checked:r,onChange:()=>i(n.id),className:`sr-only`}),(0,H.jsx)(Pb,{theme:n}),(0,H.jsx)(`bdi`,{className:`min-w-0 flex-1 truncate text-ui`,children:n.name}),Wf(n)?(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a(`Default`)}):null,r?(0,H.jsx)(ae,{"aria-hidden":`true`,className:`size-4 shrink-0 text-primary-label`}):null]},n.id)})})]})}var Ib=[{value:`system`,label:`System`,Icon:tt},{value:`light`,label:`Light`,Icon:Pt},{value:`dark`,label:`Dark`,Icon:nt}],Lb={auto:`Automatic`,dmy:`Day month year`,mdy:`Month day year`,iso:`Year-month-day`},Rb={auto:`Automatic`,h23:`24-hour`,h12:`12-hour`};function zb(){let e=Y(),t=bp(),n=vp(),[r,i]=(0,v.useState)(``),a=r.trim().toLowerCase();return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:e(`Theme`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`System follows your operating system and switches between the light and the dark theme. The choice stays in this browser.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,H.jsx)(`fieldset`,{"aria-label":e(`Theme mode`),className:`inline-flex rounded-[10px] border border-border p-0.5`,children:Ib.map(({value:n,label:r,Icon:i})=>(0,H.jsxs)(`label`,{className:`flex h-8 cursor-pointer items-center gap-1.5 rounded-md px-3 text-ui text-muted-foreground transition-colors duration-150 hover:bg-interactive-hover has-[:checked]:bg-selection has-[:checked]:text-foreground has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-ring`,children:[(0,H.jsx)(`input`,{type:`radio`,name:`theme-mode`,value:n,checked:t.mode===n,onChange:()=>xp(n),className:`sr-only`}),(0,H.jsx)(i,{"aria-hidden":`true`,className:`size-3.5`}),e(r)]},n))}),(0,H.jsx)(ad,{type:`search`,"aria-label":e(`Filter themes`),placeholder:e(`Filter themes`),value:r,onChange:e=>i(e.target.value),className:`w-full sm:w-60`})]}),(0,H.jsxs)(`div`,{className:`grid min-w-0 grid-cols-1 gap-x-6 gap-y-4 md:grid-cols-2`,children:[(0,H.jsx)(Fb,{variant:`light`,selected:t.light,filter:a,inUse:n===`light`,onSelect:e=>Sp(`light`,e)}),(0,H.jsx)(Fb,{variant:`dark`,selected:t.dark,filter:a,inUse:n===`dark`,onSelect:e=>Sp(`dark`,e)})]})]})}function Bb(){let e=Y(),{dateFormat:t}=G(),n=new Date;return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:e(`Date and time`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`How dates and times show in this web app. The choice stays in this browser.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,H.jsxs)(`label`,{className:`block space-y-1 text-sm`,children:[(0,H.jsx)(`span`,{children:e(`Date format`)}),(0,H.jsx)(`div`,{className:Er,children:(0,H.jsx)(Dr,{"aria-label":e(`Date format`),className:`w-full`,value:t.date,onChange:e=>Li({date:e.target.value}),children:yi.map(r=>(0,H.jsx)(`option`,{value:r,children:`${e(Lb[r])} · ${rm(n,{...t,date:r})}`},r))})})]}),(0,H.jsxs)(`label`,{className:`block space-y-1 text-sm`,children:[(0,H.jsx)(`span`,{children:e(`Time format`)}),(0,H.jsx)(`div`,{className:Er,children:(0,H.jsx)(Dr,{"aria-label":e(`Time format`),className:`w-full`,value:t.time,onChange:e=>Li({time:e.target.value}),children:bi.map(r=>(0,H.jsx)(`option`,{value:r,children:`${e(Rb[r])} · ${tm(n,{...t,time:r})}`},r))})})]})]})]})}function Vb(){let e=Y();return(0,H.jsxs)(`section`,{className:`space-y-6 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Appearance`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Appearance`)}),(0,H.jsx)(zb,{}),(0,H.jsx)(Bb,{})]})}async function Hb(e,t){try{let n=await fetch(e,{method:t?`POST`:`GET`,headers:{"x-omms-token":window.__OMMS_TOKEN__??``,...t?{"Content-Type":`application/json`}:{}},...t?{body:JSON.stringify(t)}:{}}),r=await n.json();return r.success?{ok:!0,code:r.code??`ok`,data:r.data,message:r.message}:{ok:!1,code:r.code??`error`,error:r.error??`Request failed (${n.status})`,...r.savedContent===void 0?{}:{savedContent:r.savedContent}}}catch(e){return{ok:!1,code:`network`,error:e instanceof Error?e.message:String(e)}}}var Ub=(e,t)=>e?`path=${encodeURIComponent(e)}`:`name=${encodeURIComponent(t)}`,Wb={overview:()=>Hb(`/api/skills`),skill:(e,t,n)=>Hb(`/api/skills/skill?${Ub(e,t)}${n?`&turnLimit=${n.limit}&turnOffset=${n.offset}`:``}`),activity:(e={days:30})=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&t.set(n,String(r));return Hb(`/api/skills/activity?${t}`)},history:(e,t,n)=>Hb(`/api/skills/history?${Ub(e,t)}&limit=${n.limit}&offset=${n.offset}`),proposals:e=>Hb(e?`/api/skills/proposals?state=${e}`:`/api/skills/proposals`),proposal:e=>Hb(`/api/skills/proposals/${encodeURIComponent(e)}`),stats:()=>Hb(`/api/skills/stats`),turnFailures:e=>Hb(`/api/skills/turns/${e}/failures`),skillFailures:(e,t)=>Hb(`/api/skills/failures?${Ub(e,t)}`),explainFailures:(e,t)=>Hb(`/api/skills/explain-failures`,{path:e??void 0,name:e?void 0:t}),draftImprovement:e=>Hb(`/api/skills/draft`,{skill:e}),draftNew:(e,t)=>Hb(`/api/skills/draft`,{idea:e,folder:t}),ideas:()=>Hb(`/api/skills/ideas`,{}),apply:e=>Hb(`/api/skills/apply`,{id:e}),reject:e=>Hb(`/api/skills/reject`,{id:e}),undo:e=>Hb(`/api/skills/undo`,{id:e}),setMode:(e,t)=>Hb(`/api/skills/mode`,{skillPath:e,mode:t}),deleteTurns:()=>Hb(`/api/skills/delete-turns`,{confirm:!0}),recordPast:()=>Hb(`/api/skills/record-past`,{})};function Gb(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function Kb(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.name.toLowerCase().includes(n)):e}function qb(e){return e.state===`applied`&&e.appliedBy===`automatic`?`applied automatically`:e.state}function Jb(e){return e.filter(e=>e.state!==`pending`).sort((e,t)=>t.updatedAt-e.updatedAt)}function Yb(e){return e.split(`
126
126
  `).map(e=>e.startsWith(`@@`)?{kind:`hunk`,text:e}:e.startsWith(`+`)?{kind:`add`,text:e}:e.startsWith(`-`)?{kind:`del`,text:e}:{kind:`ctx`,text:e})}function Xb(e){if(e.diff===null)return{added:e.content.trim()?e.content.split(`
127
127
  `).length:0,removed:0};let t=Yb(e.diff);return{added:t.filter(e=>e.kind===`add`).length,removed:t.filter(e=>e.kind===`del`).length}}function Zb(e){let{content:t,diff:n,...r}=e;return{...r,...Xb({content:t,diff:n}),hasDiff:n!==null}}var Qb=160;function $b(e){let t=e.summary??``;return t.length>Qb||t.split(`
128
- `).length>2||e.hasDiff||e.added>0||e.evidenceTurnIds.length>0}var ex=e=>e.toLocaleString(`en-US`);function tx(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function nx(e,t){let n=t.trim();return n&&!e.includes(n)?[...e,n]:e}function rx(e,t){return e.filter(e=>e!==t)}var ix=[`done`,`failed`,`cancelled`],ax=e=>ix.includes(e.state);function ox(e){return e.summary?.skillTurnsRecorded===void 0?(e.hosts??[]).reduce((e,t)=>e+(t.summary?.skillTurnsRecorded??0),0):e.summary.skillTurnsRecorded}function sx(e){let t=e.total??0;return t>0?Math.min(100,Math.floor((e.processed??0)*100/t)):0}var cx={info:{box:`border-status-info/25 bg-status-info/10`,icon:`text-status-info`,Icon:Be},warning:{box:`border-status-warning/25 bg-status-warning/10`,icon:`text-status-warning`,Icon:Bt},danger:{box:`border-destructive/25 bg-destructive/10`,icon:`text-destructive-label`,Icon:at}};function lx({tone:e,children:t,className:n}){let{box:r,icon:i,Icon:a}=cx[e];return(0,H.jsxs)(`div`,{role:e===`danger`?`alert`:`note`,"data-tone":e,className:V(`flex min-w-0 items-start gap-2.5 rounded-xl border px-3 py-2.5 text-start text-sm`,r,n),children:[(0,H.jsx)(a,{className:V(`mt-0.5 size-4 shrink-0`,i),"aria-hidden":`true`}),(0,H.jsx)(`div`,{className:`min-w-0 space-y-1.5 text-foreground`,children:t})]})}function ux(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(``),s=(0,v.useRef)(!0),c=(0,v.useRef)(!1),l=(0,v.useRef)(e);l.current=e;let u=t?.id,d=!!t&&!ax(t);(0,v.useEffect)(()=>(s.current=!0,()=>{s.current=!1}),[]),(0,v.useEffect)(()=>{if(!d)return;c.current=!0;let e=setInterval(()=>{X(`/api/settings/imports/current`).then(e=>{!s.current||!e.job||e.job.id!==u||n(e.job)}).catch(e=>{s.current&&o(e.message)})},1e3);return()=>clearInterval(e)},[d,u]),(0,v.useEffect)(()=>{t&&ax(t)&&c.current&&(c.current=!1,l.current())},[t]);async function f(){if(r||d)return;i(!0),o(``);let e=await Wb.recordPast();if(s.current){if(i(!1),!e.ok){o(e.error);return}n(e.data.job)}}return{job:t,running:d,starting:r,error:a,start:f}}function dx({onEnd:e}){let{job:t,running:n,starting:r,error:i,start:a}=ux(e);return(0,H.jsx)(fx,{job:t,running:n,starting:r,error:i,onStart:()=>void a()})}function fx({job:e,running:t,starting:n,error:r,onStart:i}){let a=Y(),o=e?sx(e):0;return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:t||n,onClick:i,children:[(0,H.jsx)(Ct,{"aria-hidden":`true`}),a(`Record past turns`)]}),n?(0,H.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),a(`Finding past sessions…`)]}):null,t&&e?(0,H.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,H.jsx)(`div`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":o,"aria-label":a(`Record past turns`),className:`h-2 w-full overflow-hidden rounded bg-muted`,children:(0,H.jsx)(`div`,{className:`h-full bg-primary`,style:{width:`${o}%`}})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[a(`Skill turns`),`: `,ex(e.processed??0),` / `,ex(e.total??0),` ·`,` `,o,`%`]})]}):null,e&&ax(e)?(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:e.state===`done`?Gb(a(`Recorded {count} past turns.`),{count:ex(ox(e))}):a(`Record past turns did not finish.`)}):null,r?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:r}):null]})}function px(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!1),o=(0,v.useRef)(!0);(0,v.useEffect)(()=>{o.current=!0,X(`/api/settings`).then(e=>{o.current&&t(e)}).catch(e=>{o.current&&r(e.message)});let e=cy(e=>{o.current&&t(e)});return()=>{o.current=!1,e()}},[]);async function s(t){if(!e)return n||`Settings are not loaded`;let r=null;return await dy(a,async()=>{try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:t,revision:e.revision})})}catch(e){r=e.message}await sy()}),r}return{snapshot:e,loadError:n,busy:i,save:s}}function mx({label:e,checked:t,disabled:n,onChange:r}){return(0,H.jsxs)(`label`,{className:`flex min-w-0 items-start gap-2.5 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,role:`switch`,className:`mt-1 size-4 shrink-0`,checked:t,disabled:n,onChange:e=>r(e.target.checked)}),(0,H.jsx)(`span`,{className:`min-w-0 break-words font-medium`,children:e})]})}function hx(e){let t=Y(),{recording:n,redact:r,stats:i,busy:a,confirm:o}=e;return(0,H.jsxs)(`section`,{className:`space-y-4 rounded-xl border border-border bg-card p-4`,"aria-label":t(`Skill learning`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:t(`Skill learning`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Record agent turns so OMMS can rank your skills and draft improvements.`)}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(mx,{label:t(`Record agent turns`),checked:n,disabled:a,onChange:e.onRecording}),e.projectOff?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`A project config turns recording off for this project.`)}):null,n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{children:t(`OMMS stores full prompts, replies and tool calls in skills.db on this computer. Drafting sends recorded turns to the external API. The file holds whatever the turns hold.`)}),(0,H.jsx)(`p`,{children:t(`The memory chat sends skill counts and short change summaries to the external API, never turn text.`)})]}),(0,H.jsx)(dx,{onEnd:e.onRecordPastEnd})]}):null]}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(mx,{label:t(`Remove private text and secrets`),checked:r,disabled:a,onChange:e.onRedact}),o===`redact`?(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:t(`Stop removing private text and secrets?`)}),(0,H.jsx)(`p`,{children:t(`New turns will be stored as written.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,variant:`destructive`,size:`sm`,disabled:a,onClick:()=>e.onRedact(!1),children:t(`Turn off`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>e.onConfirm(null),children:t(`Cancel`)})]})]}):null,r?null:(0,H.jsx)(lx,{tone:`danger`,children:(0,H.jsx)(`p`,{children:t(`<private> text, API keys and passwords will be stored as written and sent to the external API when drafting.`)})})]}),(0,H.jsxs)(`dl`,{className:`grid max-w-md grid-cols-2 gap-3 text-sm`,children:[(0,H.jsxs)(`div`,{className:`rounded-xl border border-border px-3 py-2.5`,children:[(0,H.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:t(`Recorded turns`)}),(0,H.jsx)(`dd`,{className:`font-medium tabular-nums`,children:i?ex(i.turns):`…`})]}),(0,H.jsxs)(`div`,{className:`rounded-xl border border-border px-3 py-2.5`,children:[(0,H.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:t(`File size`)}),(0,H.jsx)(`dd`,{className:`font-medium tabular-nums`,children:i?tx(i.fileSize):`…`})]})]}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`sm`,disabled:a||!i||i.turns===0,onClick:()=>e.onConfirm(`delete`),children:[(0,H.jsx)(Rt,{"aria-hidden":`true`}),t(`Delete recorded turns`)]}),o===`delete`&&i?(0,H.jsxs)(lx,{tone:`danger`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:Gb(t(`Delete {count} recorded turns? This cannot be undone.`),{count:ex(i.turns)})}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,variant:`destructive`,size:`sm`,onClick:e.onDeleteTurns,children:t(`Delete`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>e.onConfirm(null),children:t(`Cancel`)})]})]}):null]}),e.message?(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:e.message}):null,e.failure?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:e.failure}):null]})}function gx(){let e=Y(),{snapshot:t,loadError:n,busy:r,save:i}=px(),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(null),p=(0,v.useCallback)(async()=>{let e=await Wb.stats();e.ok&&o(e.data)},[]);(0,v.useEffect)(()=>{p()},[p]);let m=t?.settings.skillLearning;async function h(t){c(``),u(``),f(null);let n=await i(t);n?u(n):c(e(`Saved.`)),await p()}async function g(){f(null),u(``);let t=await Wb.deleteTurns();t.ok?c(Gb(e(`Deleted {count} recorded turns.`),{count:ex(t.data.deleted)})):u(t.error),await p()}return(0,H.jsx)(hx,{recording:m?.globalValue===!0,redact:t?.settings.skillLearningRedact?.globalValue!==!1,projectOff:m?.source===`project`&&m.value===!1,stats:a,busy:r||!t,confirm:d,message:s,failure:l||n,onRecording:e=>void h({skillLearning:e}),onRedact:e=>{e||d===`redact`?h({skillLearningRedact:e}):f(`redact`)},onConfirm:f,onDeleteTurns:()=>void g(),onRecordPastEnd:()=>void p()})}var _x={"settings-section-external-api":xy,"settings-section-models":vy,"settings-section-embedding":By,"settings-section-keys":tb,"settings-section-diagnostics":ub,"settings-section-health":db,"settings-section-claude-folder":gb,"settings-section-capture-language":Nb,"settings-section-appearance":Vb,"settings-section-profiles":nb,"settings-section-web-app":fb,"settings-section-skill-learning":gx,"settings-section-log":Ob};function vx(){return(0,v.useEffect)(()=>{sf(window.location.hash,document)},[]),(0,H.jsxs)(`div`,{className:`settings-view space-y-6`,children:[(0,H.jsx)(ty,{storageKey:`omms-settings-toc-open`,sections:Xv}),Xv.map(({id:e})=>{let t=_x[e];return(0,H.jsx)(`div`,{id:e,className:`scroll-mt-20 md:scroll-mt-4`,children:(0,H.jsx)(t,{})},e)})]})}function yx(e,t){return t?t.target:e.suggestion?.kind===`map`?e.suggestion.target:``}function bx(e,t){let n=new Map,r=new Map,i=[];for(let a of e){let e=t[a.directory],o=yx(a,e).trim();if(a.directory!==``&&o){let t=e||a.suggestion?.kind!==`map`?`exact`:a.suggestion.confidence,r=(n.get(a.directory)?.sessions??0)+a.sessions;n.set(a.directory,{from:a.directory,to:o,sessions:r,confidence:t})}else if(a.directory!==``&&!e&&a.suggestion?.kind===`ignore`){let e=(r.get(a.directory)?.sessions??0)+a.sessions;r.set(a.directory,{directory:a.directory,sessions:e,reason:a.suggestion.reason})}else i.push({...a})}return{maps:[...n.values()],ignores:[...r.values()],unmapped:i}}function xx(e){return new Set([...e.maps.filter(e=>e.confidence!==`guess`).map(e=>e.from),...e.ignores.map(e=>e.directory)])}function Sx(e,t,n,r){let i={},a=n.maps.filter(e=>r.has(e.from));if(a.length){let t=new Map(e.map(e=>[e.from,{...e}]));for(let e of a)t.set(e.from,{from:e.from,to:e.to});i.importPathMaps=[...t.values()]}let o=n.ignores.filter(e=>r.has(e.directory));return o.length&&(i.importIgnoredDirectories=[...new Set([...t,...o.map(e=>e.directory)])]),i}function Cx(e){let t=new Map;for(let n of e)t.set(n.to,[...t.get(n.to)??[],n]);return[...t].map(([e,t])=>({target:e,maps:t.sort((e,t)=>e.from.localeCompare(t.from))})).sort((e,t)=>t.maps.length-e.maps.length||e.target.localeCompare(t.target))}function wx(e){return e.filter(e=>e.directory!==``)}function Tx(e,t){return[...new Set([...e,...wx(t).map(e=>e.directory)])]}function Ex(e,t){return e(t===`exact`?`Exact`:t===`name`?`Name match`:`Guess`)}function Dx(e,t){return e(t===`temporary`?`Temporary folder`:t===`node_modules`?`node_modules folder`:t===`app-data`?`App data folder`:`Skills folder`)}function Ox({host:e,rows:t,decisions:n,busy:r,onDecide:i,onResolve:a,onIgnore:o,onIgnoreAll:s,open:c}){let l=Y(),u=t.filter(e=>e.directory!==``),d=u.filter(e=>yx(e,n[e.directory]).trim()).length;return(0,H.jsxs)(`details`,{className:`min-w-0 rounded-lg border border-border p-3`,open:c||void 0,children:[(0,H.jsxs)(`summary`,{id:`directory-maps-${e}`,className:`scroll-mt-20 cursor-pointer rounded font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsxs)(`h3`,{className:`inline text-subsection-title font-semibold`,children:[Yd(e),`: `,l(`Unresolved directories`)]}),(0,H.jsxs)(`span`,{className:`mt-1 block text-xs font-normal text-muted-foreground`,children:[l(`Directories`),`: `,u.length,` · `,l(`Unresolved sessions`),`:`,` `,t.reduce((e,t)=>e+t.sessions,0),` · `,l(`Rows with a target`),`:`,` `,d]})]}),(0,H.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[t.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:l(`No unresolved directories in the latest run.`)}):(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`[&_button]:h-auto [&_button]:min-h-8 [&_button]:whitespace-normal [&_button]:py-1.5`,children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:r||u.length===0,onClick:a,children:l(`Smart resolve directories`)}),s&&u.length>0&&(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,className:`ms-2`,disabled:r,onClick:s,children:l(`Ignore all`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`Smart resolve shows each proposed map and ignore in a dialog. Tick the ones to keep, then press Confirm. Nothing is saved before that.`)})]}),t.map(e=>{if(e.directory===``)return(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[l(`No directory recorded`),` ·`,` `,e.sessions===1?l(`1 session`):`${e.sessions} ${l(`sessions`)}`,` ·`,` `,l(`These sessions cannot be mapped.`)]},`no-directory`);let t=n[e.directory],a=yx(e,t),s=!t&&e.suggestion?.kind===`ignore`?e.suggestion:null;return(0,H.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2 border-t border-border pt-2 text-sm`,children:[(0,H.jsxs)(`details`,{className:`min-w-0 flex-1`,open:c||void 0,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:e.directory}),` `,`· `,e.sessions===1?l(`1 session`):`${e.sessions} ${l(`sessions`)}`,(0,H.jsx)(`span`,{className:`mt-1 block text-xs text-muted-foreground`,children:s?(0,H.jsxs)(H.Fragment,{children:[l(`Suggested to ignore`),`: `,Dx(l,s.reason)]}):(0,H.jsxs)(H.Fragment,{children:[l(`Target directory`),`:`,` `,a?(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:a}):l(`No target chosen`)]})})]}),(0,H.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[!e.suggestion&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`No suggestion found.`)}),(0,H.jsx)(ad,{"aria-label":`${e.directory} ${l(`Target directory`)}`,dir:`ltr`,placeholder:l(`Target directory`),value:a,disabled:r,onChange:t=>i(e,t.target.value)})]})]}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,className:`shrink-0`,"aria-label":`${l(`Ignore`)} ${e.directory}`,disabled:r,onClick:()=>o(e),children:l(`Ignore`)})]},e.directory)})]})]})}function kx({host:e,review:t,busy:n,canConfirm:r,onRefresh:i,error:a,onClose:o,onConfirm:s}){let c=Y(),[l,u]=(0,v.useState)(()=>({review:t,ticked:xx(t)})),d=l.review===t?l.ticked:xx(t),f=(e,n)=>u(r=>{let i=new Set(r.review===t?r.ticked:xx(t));return n?i.add(e):i.delete(e),{review:t,ticked:i}}),p=[...t.maps.map(e=>e.from),...t.ignores.map(e=>e.directory)],m=p.filter(e=>d.has(e)).length,h=e=>(0,H.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[c(`Sessions`),`: `,e]});return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>{!e&&!n&&o()},children:(0,H.jsxs)(q,{className:`sm:max-w-2xl flex flex-col overflow-hidden`,showCloseButton:!n,onEscapeKeyDown:e=>{n&&e.preventDefault()},onInteractOutside:e=>{n&&e.preventDefault()},children:[(0,H.jsxs)(Hl,{children:[(0,H.jsxs)(Wl,{children:[c(`Review directory maps`),`: `,Yd(e)]}),(0,H.jsx)(Gl,{children:c(`Tick the maps and ignores to keep, then press Confirm to save them. Saved maps apply to every host on the next import or backfill run.`)})]}),(0,H.jsxs)(`div`,{className:`min-h-0 overflow-y-auto space-y-4`,children:[(0,H.jsxs)(`p`,{className:`text-sm`,children:[c(`Proposed maps`),`: `,t.maps.length,` · `,c(`Suggested to ignore`),`:`,` `,t.ignores.length,` · `,c(`No target`),`: `,t.unmapped.length]}),!p.length&&(0,H.jsx)(`p`,{className:`text-sm`,children:c(`Nothing to save. Type a target in a row, or press Ignore for folders that are not projects.`)}),t.maps.length>0&&(0,H.jsxs)(`section`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:c(`Proposed maps`)}),(0,H.jsx)(`ul`,{className:`space-y-3`,children:t.maps.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 border-t border-border pt-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,className:`mt-1 shrink-0`,"aria-label":`${c(`Save this map`)} ${e.from}`,checked:d.has(e.from),disabled:n,onChange:t=>f(e.from,t.target.checked)}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`block break-all`,children:e.from}),(0,H.jsxs)(`div`,{className:`mt-1`,children:[c(`Target directory`),`:`,` `,(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:e.to})]}),(0,H.jsxs)(`div`,{className:`text-xs`,children:[c(`Confidence`),`: `,Ex(c,e.confidence)]}),h(e.sessions)]})]},e.from))})]}),t.ignores.length>0&&(0,H.jsxs)(`section`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:c(`Suggested to ignore`)}),(0,H.jsx)(`ul`,{className:`space-y-3`,children:t.ignores.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 border-t border-border pt-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,className:`mt-1 shrink-0`,"aria-label":`${c(`Ignore`)} ${e.directory}`,checked:d.has(e.directory),disabled:n,onChange:t=>f(e.directory,t.target.checked)}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`block break-all`,children:e.directory}),(0,H.jsx)(`div`,{className:`mt-1`,children:Dx(c,e.reason)}),h(e.sessions)]})]},e.directory))})]}),t.unmapped.length>0&&(0,H.jsxs)(`section`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:c(`No target`)}),(0,H.jsx)(`ul`,{className:`space-y-3`,children:t.unmapped.map((e,t)=>(0,H.jsxs)(`li`,{className:`min-w-0 border-t border-border pt-2 text-sm`,children:[e.directory===``?c(`No directory recorded`):(0,H.jsx)(`code`,{dir:`ltr`,className:`block break-all`,children:e.directory}),(0,H.jsx)(`div`,{children:e.directory===``?c(`These sessions cannot be mapped.`):c(`No target chosen`)}),h(e.sessions)]},`${e.directory}-${t}`))})]})]}),a&&(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:a}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:n,onClick:o,children:c(`Cancel`)}),!r&&(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:n,onClick:i,children:c(`Refresh list`)}),(0,H.jsx)(K,{type:`button`,disabled:n||!r||m===0,onClick:()=>s(new Set(p.filter(e=>d.has(e)))),children:c(n?`Saving…`:`Confirm`)})]})]})})}function Ax({host:e,rows:t,busy:n,onConfirm:r,onCancel:i}){let a=Y(),o=t.reduce((e,t)=>e+t.sessions,0);return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>!e&&!n&&i(),children:(0,H.jsxs)(q,{className:`sm:max-w-xl`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:`${a(`Ignore all`)}: ${Yd(e)}`}),(0,H.jsx)(Gl,{children:`${a(`These directories stay unimported and leave the unresolved counts.`)} ${a(`Directories`)}: ${t.length} · ${a(`Sessions`)}: ${o}`})]}),(0,H.jsx)(`ul`,{className:`max-h-64 space-y-1 overflow-y-auto text-sm`,children:t.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`min-w-0 flex-1 break-all`,children:e.directory}),(0,H.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.sessions})]},e.directory))}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:n,onClick:i,children:a(`Cancel`)}),(0,H.jsx)(K,{type:`button`,disabled:n,onClick:r,children:a(`Ignore all`)})]})]})})}var jx=[`pi`,`opencode`,`claude-code`];function Mx({hosts:e=jx,saved:t=!0,title:n,anchorId:r}={}){let i=Y(),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)(),[d,f]=(0,v.useState)(new Set),[p,m]=(0,v.useState)({}),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(!1),[b,x]=(0,v.useState)(),[S,C]=(0,v.useState)(``),[w,T]=(0,v.useState)(),E=(0,v.useRef)(!1),D=(0,v.useRef)(void 0),O=()=>X(`/api/settings/import-maps`).then(e=>{u(e),f(new Set),m({})}).catch(e=>g(e.message));(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>{e&&(D.current=t.revision,c(t))}).catch(t=>{e&&g(t.message)}),O();let t=cy(t=>{if(!e)return;let n=t;c(n),n.revision!==D.current&&(D.current=n.revision,X(`/api/settings/import-maps`).then(t=>{e&&D.current===n.revision&&u(t)}).catch(()=>{}))});return()=>{e=!1,t()}},[]);function k(e,t){E.current||w||(C(``),x({host:e,review:bx(t,p)}))}function A(e,t){m(n=>({...n,[e.directory]:{directory:e.directory,target:t}}))}let j=()=>s?.settings?.importPathMaps?.globalValue??l?.saved??[],M=()=>l?.ignored??[];async function N(e,t,n){if(!s||!l||E.current||w)return!E.current&&!w&&g(`The list is still loading. Try again in a moment.`),!1;E.current=!0,y(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:e,revision:s.revision})})}catch(e){let t=e instanceof ny&&e.status===409;try{if(!t)return g(n),await sy(),!1;g(`Settings changed elsewhere. Check the list and try again.`);try{await te()}catch{T(`conflict`),g(`Settings changed elsewhere and could not be refreshed. Refresh the list, then try again.`)}return!1}finally{E.current=!1,y(!1)}}g(t);try{await te()}catch{T(`saved`),g(`Saved, but the list could not be refreshed. Refresh the list without saving again.`)}finally{E.current=!1,y(!1)}return!0}function P(){N({importPathMaps:gy(l?.saved??[],d)},`Saved. Removed maps stop applying at the next import or backfill run.`,`Removals could not be saved. Try again.`).then(e=>{e&&f(new Set)})}function ee(e){N({importIgnoredDirectories:[...new Set([...M(),e.directory])]},`Ignored. The directory stays unimported.`,`The directory could not be ignored. Try again.`)}function F(){if(!a)return;let{rows:e}=a;N({importIgnoredDirectories:Tx(M(),e)},`Ignored. The directories stay unimported.`,`The directories could not be ignored. Try again.`).then(e=>{e&&o(void 0)})}function I(e){N({importIgnoredDirectories:M().filter(t=>t!==e)},`Restored. The directory shows again in each host list that reported it.`,`The directory could not be restored. Try again.`)}async function te(){let[e,t]=await Promise.all([X(`/api/settings`),X(`/api/settings/import-maps`)]);D.current=e.revision,ay(e),u(t),T(void 0)}async function L(){if(E.current)return;E.current=!0,y(!0);let e=w===`saved`;try{await te(),e?g(`Saved. Maps apply to the next import or backfill run.`):b?C(`Settings changed elsewhere. Review these maps and confirm again.`):g(`Settings refreshed. No maps were saved.`)}catch{e?g(`Maps were saved, but the list could not be refreshed. Refresh the list without saving again.`):b?C(`Settings changed elsewhere and could not be refreshed. Refresh the list before confirming again.`):g(`Settings could not be refreshed. Try Refresh list again.`)}finally{E.current=!1,y(!1)}}async function ne(e){if(!s||!l||!b||E.current||w)return;let t=Sx(j(),M(),b.review,e);if(!t.importPathMaps&&!t.importIgnoredDirectories)return;E.current=!0,y(!0),C(``);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:t,revision:s.revision})})}catch(e){let t=e instanceof ny&&e.status===409;if(C(t?`Settings changed elsewhere. Review these maps and confirm again.`:`Maps could not be saved. Review the targets and confirm again.`),t)try{await te()}catch{T(`conflict`),C(`Settings changed elsewhere and could not be refreshed. Refresh the list before confirming again.`)}E.current=!1,y(!1);return}let n=new Set(e);m(e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e)))),f(e=>new Set([...e].filter(e=>!n.has(e)))),u(e=>e&&{...e,saved:t.importPathMaps??e.saved,ignored:t.importIgnoredDirectories??e.ignored}),x(void 0);let r=b.review.maps.filter(t=>e.has(t.from)).length,a=b.review.ignores.filter(t=>e.has(t.directory)).length;g(`${i(`Saved maps`)}: ${r} · ${i(`Ignored directories`)}: ${a}. ${i(`They apply to the next import or backfill run. No sessions were imported.`)}`);try{await te()}catch{T(`saved`),g(`Maps were saved, but the list could not be refreshed. Refresh the list without saving again.`)}finally{E.current=!1,y(!1)}}return(0,H.jsxs)(`section`,{id:r??`directory-maps`,className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":i(n??`Resolve missing project folders`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:i(n??`Resolve missing project folders`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`A directory map links a recorded project folder to its current folder. Saved maps apply globally to every host at the next import or backfill run. Review changes before saving.`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`Map a directory that was moved or deleted to the project it belongs to. A change applies to the next import or backfill run.`)}),t&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`details`,{className:`min-w-0 rounded-lg border border-border p-3`,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h3`,{className:`inline text-subsection-title font-semibold`,children:i(`Saved maps`)}),` ·`,` `,l?.saved.length??0,(0,H.jsx)(`span`,{className:`mt-1 block text-xs font-normal text-muted-foreground`,children:i(`Saved maps apply to every host.`)})]}),(0,H.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`Keep a map after its sessions import. Every import checks the map before it skips a session, so removing a map makes its sessions unresolved again on the next run.`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:_||!!w||!s||!l||d.size===0,onClick:P,children:i(`Save removals`)}),!l?.saved.length&&(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`none`)}),Cx(l?.saved??[]).map(e=>(0,H.jsxs)(`details`,{className:`min-w-0 border-t border-border pt-2`,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded text-sm focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:e.target}),` `,`· `,e.maps.length]}),(0,H.jsx)(`ul`,{className:`mt-2 space-y-1 text-sm`,children:e.maps.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`min-w-0 flex-1 break-all ${d.has(e.from)?`line-through`:``}`,children:e.from}),(0,H.jsx)(`button`,{type:`button`,className:`shrink-0 rounded border border-border px-2 py-0.5 text-xs`,"aria-label":`${d.has(e.from)?i(`Keep`):i(`Remove`)} ${e.from}`,disabled:_,onClick:()=>f(t=>{let n=new Set(t);return n.has(e.from)?n.delete(e.from):n.add(e.from),n}),children:d.has(e.from)?i(`Keep`):i(`Remove`)})]},e.from))})]},e.target))]})]}),(0,H.jsxs)(`details`,{className:`min-w-0 rounded-lg border border-border p-3`,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h3`,{className:`inline text-subsection-title font-semibold`,children:i(`Ignored directories`)}),` `,`· `,l?.ignored?.length??0,(0,H.jsx)(`span`,{className:`mt-1 block text-xs font-normal text-muted-foreground`,children:i(`Ignored directories stay unimported and leave the unresolved counts.`)})]}),(0,H.jsxs)(`ul`,{className:`mt-3 space-y-1 text-sm`,children:[!l?.ignored?.length&&(0,H.jsx)(`li`,{className:`text-muted-foreground`,children:i(`none`)}),l?.ignored?.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`min-w-0 flex-1 break-all`,children:e}),(0,H.jsx)(`button`,{type:`button`,className:`shrink-0 rounded border border-border px-2 py-0.5 text-xs`,"aria-label":`${i(`Restore`)} ${e}`,disabled:_||!!w||!s,onClick:()=>I(e),children:i(`Restore`)})]},e))]})]})]}),e.map(t=>{let n=l?.[t]??[];return(0,H.jsx)(Ox,{host:t,rows:n,decisions:p,busy:_||!!w||!s||!l,onDecide:A,onResolve:()=>k(t,n),onIgnore:ee,onIgnoreAll:()=>o({host:t,rows:wx(n)}),open:e.length===1},t)}),a&&(0,H.jsx)(Ax,{host:a.host,rows:a.rows,busy:_,onConfirm:F,onCancel:()=>o(void 0)}),b&&(0,H.jsx)(kx,{host:b.host,review:b.review,busy:_,canConfirm:!w,error:i(S),onRefresh:()=>void L(),onClose:()=>{E.current||x(void 0)},onConfirm:e=>void ne(e)}),w&&!b&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:_,onClick:()=>void L(),children:i(`Refresh list`)}),h&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:i(h)})]})}function Nx(e){return!e||e.total<=0?null:{percent:e.percent,done:`${e.done.toLocaleString(`en-US`)} / ${e.total.toLocaleString(`en-US`)}`,minutesLeft:e.minutesLeft===null?`unknown`:`about ${e.minutesLeft}`}}function Px(e,t){return e??!t}function Fx(e,t){let n=t.indexOf(`/`);if(t!==`inherit`&&t!==`external`&&(n<1||n===t.length-1))throw Error(`Enter a model as provider/model.`);return{[`${e}BackfillModel`]:t}}function Ix(e,t){if(t?.state===`running`)return t.phase===`profile`?{kind:`learning-profile`,done:t.profileDone??0,total:t.profileTotal??0}:{kind:`running`};if(t?.paused)return{kind:`paused`};if(t?.state===`failed`&&(t.updatedAt??t.startedAt??0)>=(e?.updatedAt??0))return{kind:`failed`,error:t.error??e?.error??null};if(!e||e.state===`not-started`)return t?.state===`done`?{kind:`imported`}:{kind:`not-started`};let n=t?.state===`done`&&(e.counts.failed??0)>0;return e.state===`failed`&&!n?{kind:`failed`,error:e.error}:e.state===`running`?{kind:`running`}:e.counts.pending>0?{kind:`stopped`,pending:e.counts.pending}:e.counts.unresolved>0?{kind:`partly`,unresolved:e.counts.unresolved}:{kind:`imported`}}function Lx(e){return e?.state===`running`&&e.phase!==`profile`}function Rx(e){return!e||e.state===`running`||!e.state||!e.updatedAt||!e.surface?null:{finishedAt:e.updatedAt,surface:e.surface,imported:e.imported??0,skipped:e.skipped??0,failed:e.failed??0,state:e.state}}function zx({host:e,backfill:t}){let n=Y(),{snapshot:r,lists:i,busy:a}=t,[o,s]=(0,v.useState)(),[c,l]=(0,v.useState)(),u=r?.settings??{},d=String(u[`${e}BackfillModel`]?.globalValue??`inherit`),f=o??d,p=i[e]?.models??[],m=Px(c,f===`inherit`||f===`external`||p.some(e=>`${e.provider}/${e.model}`===f)),h=py({memoryProvider:u.memoryProvider?.globalValue,memoryModel:u.memoryModel?.globalValue,memoryApiUrl:u.memoryApiUrl?.globalValue,keySet:!!r?.secrets?.memoryApiKey?.set});return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":`${Yd(e)} ${n(`settings`)}`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:`${Yd(e)} ${n(`settings`)}`}),e===`claude-code`?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Claude Code backfill always uses the external API. It has no backfill model setting.`)}):(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,H.jsxs)(`label`,{className:`block`,children:[n(`Backfill model`),(0,H.jsx)(`div`,{dir:`ltr`,children:(0,H.jsxs)(Dr,{"aria-label":`${Yd(e)} ${n(`Backfill model`)}`,className:`mt-1 block w-full`,value:m?`typed`:f,onChange:e=>{l(e.target.value===`typed`),s(e.target.value)},children:[(0,H.jsx)(`option`,{value:`inherit`,children:n(`Same as live capture`)}),(0,H.jsx)(`option`,{value:`external`,disabled:h.length>0,children:n(`External API`)}),p.map(e=>(0,H.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.name,` (`,e.provider,`/`,e.model,`)`]},`${e.provider}/${e.model}`)),(0,H.jsx)(`option`,{value:`typed`,children:n(`Manual provider/model`)})]})})]}),m&&(0,H.jsx)(`input`,{"aria-label":`${Yd(e)} ${n(`Manual provider/model`)}`,className:`w-full rounded-[10px] border border-border bg-card p-2`,dir:`ltr`,placeholder:`provider/model`,value:f===`typed`?``:f,onChange:e=>s(e.target.value)}),h.length>0&&(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[n(`External API needs`),`: `,h.join(`, `)]}),i[e]?.available===!1&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i[e].reason?n(i[e].reason):n(`Model list unavailable. Enter provider/model manually.`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:a||!r,onClick:()=>t.saveModel(e,f),children:n(`Save model`)})]}),(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:!!u.autoBackfill?.globalValue,disabled:a||!r,onChange:e=>void t.save({autoBackfill:e.target.checked})}),n(`Import past chats automatically`)]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`This switch applies to every host. Automatic import makes model calls.`)})]})}var Bx={pi:{kind:`default`},opencode:{kind:`default`},"claude-code":{kind:`default`}},Vx=Bx,Hx=!1,Ux=new Set,Wx=e=>{Vx=e;for(let e of Ux)e()},Gx=e=>(Ux.add(e),()=>Ux.delete(e));async function Kx(e,t){let n=await X(e,t);Wx({...Bx,...n.hosts})}function qx(){let e=(0,v.useSyncExternalStore)(Gx,()=>Vx,()=>Bx);return(0,v.useEffect)(()=>{Hx||(Hx=!0,Kx(`/api/host-appearance`).catch(()=>{Hx=!1}))},[]),{looks:e,setIcon:(e,t)=>Kx(`/api/host-appearance/${e}`,{method:`PUT`,body:JSON.stringify({kind:`icon`,icon:t})}),setImage:(e,t)=>Kx(`/api/host-appearance/${e}`,{method:`PUT`,body:JSON.stringify({kind:`image`,png:t})}),reset:e=>Kx(`/api/host-appearance/${e}`,{method:`DELETE`})}}var Jx={anchor:j,atom:F,bird:I,"book-open":te,bot:L,braces:ne,brain:re,bug:R,cat:ie,cloud:pe,code:me,command:he,compass:ge,cpu:ve,database:ye,dog:be,feather:Ce,"file-code":we,fish:Te,flame:Ee,flower:De,folder:Ae,gem:je,ghost:Me,"git-branch":Ne,globe:Fe,hash:Ie,heart:Le,infinity:ze,key:Ve,layers:He,leaf:Ue,library:We,lightbulb:Ge,link:Ke,"message-square":Qe,moon:nt,mountain:rt,network:it,orbit:st,package:ct,"pen-tool":ft,plug:_t,puzzle:bt,rocket:St,server:Dt,settings:Ot,shield:kt,sparkles:At,"square-terminal":Mt,star:Nt,sun:Pt,target:It,terminal:Lt,"wand-sparkles":Wt,wrench:Kt,zap:Jt},Yx=Object.keys(Jx),Xx={pi:`Pi`,opencode:`OC`,"claude-code":`CC`};function Zx({host:e,look:t,className:n}){let r=V(`grid size-10 shrink-0 place-items-center overflow-hidden rounded-[10px] border`,n);if(t.kind===`image`)return(0,H.jsx)(`span`,{className:V(r,`border-border bg-muted`),"aria-hidden":`true`,children:(0,H.jsx)(`img`,{src:t.image,alt:``,className:`size-full object-cover`})});let i=t.kind===`icon`?Jx[t.icon]:void 0,a=td(e);return(0,H.jsx)(`span`,{className:V(r,`text-ui font-semibold [color:oklch(0.42_0.13_var(--host-hue))] dark:[color:oklch(0.8_0.13_var(--host-hue))]`),style:{backgroundColor:`oklch(0.72 0.14 ${a} / 0.18)`,borderColor:`oklch(0.72 0.14 ${a} / 0.45)`,"--host-hue":String(a)},"aria-hidden":`true`,children:i?(0,H.jsx)(i,{className:`size-5`}):Xx[e]})}function Qx({className:e,iconClassName:t=`size-5`}){return(0,H.jsx)(`span`,{"aria-hidden":`true`,className:V(`grid size-10 shrink-0 place-items-center overflow-hidden rounded-[10px] border border-border bg-muted text-muted-foreground`,e),children:(0,H.jsx)(He,{className:t})})}function $x({host:e,run:t,row:n}){let r=Y(),i=Lx(t)?Nx(t):null,a=Rx(t),o=Ix(n,t),s=`${ud(e)}#host-unresolved`;return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[o.kind===`learning-profile`&&(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[r(`All exchanges are done. Learning the profile from the imported prompts`),`:`,` `,o.done,` / `,o.total,` `,r(`batches`)]}),i&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`div`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i.percent,"aria-label":r(`Import progress`),className:`h-2 w-full overflow-hidden rounded bg-muted`,children:(0,H.jsx)(`div`,{className:`h-full bg-primary`,style:{width:`${i.percent}%`}})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[i.percent,`% · `,i.done,` · `,r(`Minutes left`),`:`,` `,i.minutesLeft===`unknown`?r(`unknown`):i.minutesLeft.replace(`about`,r(`about`))]})]}),t?.state===`running`&&t.surface&&(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:r(`started from ${t.surface}`)}),a&&(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[r(`Last run`),`: `,Qp(a.finishedAt),` · `,r(`started from ${a.surface}`),` `,`· `,r(a.state),` · `,r(`Imported`),`: `,a.imported,` · `,r(`Skipped`),`:`,` `,a.skipped,` · `,r(`Failed`),`: `,a.failed]}),n&&(0,H.jsxs)(`div`,{className:`space-y-1 text-muted-foreground`,children:[!a&&(0,H.jsxs)(`p`,{children:[r(`Imported`),`: `,n.counts.imported,` · `,r(`Skipped`),`: `,n.counts.skipped,` ·`,` `,r(`Failed`),`: `,n.counts.failed]}),(0,H.jsxs)(`p`,{children:[r(`Pending`),`: `,n.counts.pending,` · `,r(`Unresolved sessions`),`:`,` `,n.counts.unresolved,n.counts.unresolved>0&&(0,H.jsxs)(H.Fragment,{children:[` `,(0,H.jsx)(`a`,{className:`underline focus-visible:outline-2 focus-visible:outline-ring`,href:s,"aria-label":`${Yd(e)}: ${r(`Resolve missing project folders`)}`,onClick:e=>{e.preventDefault(),_f(s)},children:r(`Resolve missing project folders`)})]})]}),(0,H.jsxs)(`p`,{children:[r(`Model`),`: `,(0,H.jsx)(`bdi`,{dir:`ltr`,children:n.model??r(`none`)})]}),(0,H.jsxs)(`p`,{children:[r(`Cutoff`),`: `,Qp(n.cutoff)]}),n.error&&(0,H.jsx)(`p`,{role:`alert`,children:n.error})]})]})}function eS(e){let{run:t,runNowUnavailable:n}=e,r=n===null,i=n!==null&&e.host!==`claude-code`,a={text:`{reason}`,params:{reason:n??``}},o=(e,t,n,r=!0)=>({state:e,action:{kind:t,enabled:r},sentence:n,offerExternal:!1});if(!e.setUp)return o(`not-set-up`,`setup`,{text:`This host is not set up on this machine.`});if(t?.state===`running`){if(t.paused)return o(`running`,`pause`,{text:`Pausing after the current exchange.`},!1);let e=t.minutesLeft;return o(`running`,`pause`,{text:e===null?`Importing {done} / {total}.`:`Importing {done} / {total}. About {minutes} min left.`,params:{done:t.done,total:t.total,...e===null?{}:{minutes:e}}})}if(t?.paused)return{...o(`paused`,`resume`,r?{text:`Paused. Resume to continue.`}:a,r),offerExternal:i};if(t?.state===`failed`)return{...o(`failed`,`retry`,r?{text:`Stopped: {error}`,params:{error:t.error??`unknown error`}}:a,r),offerExternal:i};if(!r||t?.state===`stopped`&&e.pending>0)return{...o(`stopped`,`resume`,r?{text:`{pending} still waiting to import.`,params:{pending:e.pending}}:a,r),offerExternal:i};let s=t?.state===`done`&&t.total===0,c;return c=s&&e.cutoff!==null?{text:`Automatic import is on. Nothing was waiting before {date}. Use Sessions below for newer chats.`,params:{date:e.formatDate(e.cutoff)}}:e.pending>0?{text:`{pending} still waiting to import.`,params:{pending:e.pending}}:{text:`Automatic import is on. Nothing is waiting.`},o(`running`,`pause`,c)}function tS(e){let{run:t}=e;if(!e.setUp)return{text:`Not set up`};if(t?.state===`running`)return{text:`Importing · {percent}%`,params:{percent:t.percent}};if(t?.paused)return{text:`Paused · {pending} pending`,params:{pending:e.pending}};if(t?.state===`failed`)return{text:`Failed`};if(e.runNowUnavailable!==null||t?.state===`stopped`&&e.pending>0)return{text:`Stopped · {pending} pending`,params:{pending:e.pending}};let n=t?.updatedAt&&t.state===`done`?e.formatDate(t.updatedAt):null,r=e.lastSaved===null?null:e.formatSaved(e.lastSaved);return n&&r?{text:`Running · history imported {date} · last saved {when}`,params:{date:n,when:r}}:n?{text:`Running · history imported {date}`,params:{date:n}}:r?{text:`Running · last saved {when}`,params:{when:r}}:{text:`Running`}}function nS(e,t){let n=e(t.text);return Object.entries(t.params??{}).reduce((e,[t,n])=>e.replaceAll(`{${t}}`,String(n)),n)}var rS={pi:`https://github.com/cmdaltctr/omms/blob/main/docs/pi-adapter.md`,opencode:`https://github.com/cmdaltctr/omms/blob/main/docs/opencode-adapter.md`,"claude-code":`https://github.com/cmdaltctr/omms/blob/main/docs/claude-code-adapter.md`},iS={"not-set-up":`Not set up`,running:`Running`,paused:`Paused`,failed:`Failed`,stopped:`Stopped`};function aS({host:e,statuses:t}){let n=Y(),{looks:r}=qx(),{backfill:i}=t,a=t.status(e),o=i.rows[e],s=i.runs?.[e]?.run??null,c=()=>{let t=a.action.kind;t===`pause`?i.control(e,`pause`):t===`resume`?i.control(e,`resume`):t===`retry`&&i.control(e,`run`)},l={setup:n(`How to set up`),pause:n(`Pause`),resume:n(`Resume`),retry:n(`Retry`)},u={pause:dt,resume:gt,retry:Tt,setup:Se}[a.action.kind];return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":Yd(e),children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(Zx,{host:e,look:r[e]}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`h2`,{className:`text-page-title font-semibold`,children:Yd(e)}),(0,H.jsxs)(`p`,{className:V(`text-sm`,a.state===`failed`?`text-destructive-label`:`text-muted-foreground`),children:[n(`State`),`: `,n(iS[a.state])]})]})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[a.action.kind===`setup`?(0,H.jsx)(K,{asChild:!0,variant:`outline`,children:(0,H.jsxs)(`a`,{href:rS[e],target:`_blank`,rel:`noreferrer`,children:[(0,H.jsx)(Se,{"aria-hidden":`true`}),l.setup]})}):(0,H.jsxs)(K,{type:`button`,disabled:i.busy||!a.action.enabled,onClick:c,children:[(0,H.jsx)(u,{"aria-hidden":`true`}),l[a.action.kind]]}),a.offerExternal&&(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:i.busy,onClick:()=>i.saveModel(e,`external`),children:n(`Use external API`)})]}),(0,H.jsx)(`p`,{className:`break-words text-sm text-muted-foreground`,role:`status`,children:nS(n,a.sentence)}),a.state!==`not-set-up`&&(0,H.jsx)($x,{host:e,run:s,row:o}),i.message&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:i.message}),a.action.kind!==`setup`&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Importing makes model calls and can cost money.`)})]})}function oS(e,t,n){let r=!n&&e!==null&&e.revision===t.revision;return{page:r?{...t,listedAt:e.listedAt}:t,sameListing:r}}function sS(e,t){let n=0;return async r=>{let i=++n;try{let t=await r;i===n&&e(t)}catch(e){i===n&&t?.(e)}}}function cS(e){let t=document.getElementById(`directory-maps-${e}`),n=t?.parentElement;if(!t||!n){typeof window<`u`&&window.location&&_f(`${J.memory}#directory-maps-${e}`);return}n.open=!0,t.focus({preventScroll:!0}),t.scrollIntoView?.(af)}function lS({badge:e,host:t}){let n=Y(),[r,i]=(()=>{switch(e.kind){case`imported`:return[`${n(`Imported`)} ✅`,`border-green-600/40 text-green-700`];case`partly`:return[`${n(`Partly imported`)} (${e.unresolved} ${n(`unresolved`)})`,`border-amber-500/50 text-amber-700`];case`running`:return[n(`Running`),`border-primary/50 text-primary`];case`learning-profile`:return[`${n(`Learning profile`)} ${e.done} / ${e.total}`,`border-primary/50 text-primary`];case`paused`:return[n(`Paused`),`border-border text-muted-foreground`];case`stopped`:return[`${n(`Stopped`)} (${e.pending} ${n(`pending`)})`,`border-amber-500/50 text-amber-700`];case`failed`:return[`${n(`Failed`)} ⛔️`,`border-red-600/40 text-red-700`];case`not-started`:return[n(`Not started`),`border-border text-muted-foreground`]}})(),a=V(`inline-block rounded-full border px-2 py-0.5 text-xs font-medium`,i);return e.kind===`partly`?(0,H.jsx)(`a`,{href:`/memory#directory-maps-${t}`,onClick:e=>{e.preventDefault(),cS(t)},"aria-label":`${Yd(t)}: ${n(`Resolve missing project folders`)}. ${r}`,className:V(a,`underline focus-visible:outline-2 focus-visible:outline-ring`),children:r}):(0,H.jsx)(`span`,{className:a,title:e.kind===`failed`&&e.error?e.error:void 0,children:r})}var uS=[`pi`,`opencode`,`claude-code`];function dS(){let e=Y(),[t,n]=(0,v.useState)({}),[r,i]=(0,v.useState)({});return(0,v.useEffect)(()=>{let e=sS(n),t=sS(i),r=()=>{e(X(`/api/settings/backfill`)),t(X(`/api/settings/backfill/runs`))};r();let a=setInterval(r,1e4),o=cy(r);return()=>{clearInterval(a),o()}},[]),(0,H.jsx)(`div`,{className:`flex flex-wrap gap-2`,"aria-label":e(`Import status`),children:uS.map(e=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border px-3 py-1.5 text-sm`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:Yd(e)}),(0,H.jsx)(lS,{host:e,badge:Ix(t[e]??null,r[e]?.run??null)})]},e))})}function fS(e){let t=Y(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(``),f=`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`;async function p(t){try{let n=await X(`/api/settings/imports/sources/validate`,{method:`POST`,body:JSON.stringify({host:e.host,path:t})});a(n),r(n.displayPath),e.onChoose(n),d(``)}catch(e){d(e.message)}}async function m(t){try{let n=await X(`/api/settings/imports/sources/browse`,{method:`POST`,body:JSON.stringify({host:e.host,...t?{path:t}:{}})});s(n),d(``)}catch(e){let t=e.message;/loopback/i.test(t)&&l(!0),d(t)}}function h(){a(null),r(``),s(null),e.onChoose(null)}return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,H.jsxs)(`label`,{className:`block`,children:[e.host===`pi`?t(`Pi sessions folder or one .jsonl session file`):e.host===`claude-code`?t(`Claude Code transcripts folder`):t(`OpenCode database file`),(0,H.jsx)(`input`,{className:`mt-1 block w-full rounded border border-border bg-background p-2 font-mono`,dir:`ltr`,value:n,placeholder:t(`Absolute path, for example on a mounted volume`),onChange:e=>r(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(`button`,{type:`button`,className:f,disabled:!n.trim(),onClick:()=>void p(n.trim()),children:t(`Use this source`)}),!c&&(0,H.jsx)(`button`,{type:`button`,className:f,onClick:()=>void m(o?.path),children:t(`Browse`)}),i&&(0,H.jsx)(`button`,{type:`button`,className:f,onClick:h,children:t(`Use the default location`)})]}),i&&(0,H.jsxs)(`p`,{role:`status`,children:[t(`Chosen source`),`:`,` `,(0,H.jsx)(`bdi`,{dir:`ltr`,className:`font-mono break-all`,children:i.displayPath})]}),u&&(0,H.jsx)(`p`,{role:`alert`,children:u}),o&&(0,H.jsxs)(`div`,{className:`rounded border border-border p-2`,children:[(0,H.jsx)(`p`,{dir:`ltr`,className:`font-mono text-xs break-all`,children:o.path}),(0,H.jsxs)(`ul`,{className:`max-h-60 overflow-auto`,children:[o.parent&&(0,H.jsx)(`li`,{children:(0,H.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>void m(o.parent),children:`..`})}),o.entries.map(n=>(0,H.jsxs)(`li`,{className:`flex items-center gap-2`,children:[n.kind===`folder`?(0,H.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>void m(n.path),children:(0,H.jsxs)(`bdi`,{dir:`ltr`,children:[n.name,`/`]})}):(0,H.jsx)(`bdi`,{dir:`ltr`,className:`font-mono text-xs`,children:n.name}),(n.kind!==`folder`||e.host!==`opencode`)&&(0,H.jsx)(`button`,{type:`button`,className:`text-xs underline`,onClick:()=>void p(n.path),children:t(`Choose`)})]},n.path))]}),o.truncated&&(0,H.jsx)(`p`,{className:`text-xs`,children:t(`Only the first 500 entries are shown.`)})]})]})}function pS(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);return t?[Number(t[1]),Number(t[2])-1,Number(t[3])]:null}function mS(e){let t=pS(e);return t?new Date(t[0],t[1],t[2],0,0,0,0).getTime():void 0}function hS(e){let t=pS(e);return t?new Date(t[0],t[1],t[2],23,59,59,999).getTime():void 0}var gS=[`pi`,`opencode`,`claude-code`],_S=()=>({mode:`ids`,picked:new Map});function vS(){let e=e=>({enabled:e,source:null,page:null,listedWith:``,selection:_S(),modelChoice:`external`});return{hosts:{pi:e(!0),opencode:e(!1),"claude-code":e(!1)},scope:`current-project`,project:``,maps:``,since:``,until:``,profileBatch:``,force:!1,memories:!0,profile:!0,skills:!0,showHandled:!1}}var yS=[`scope`,`project`,`memories`,`profile`,`skills`,`force`,`showHandled`];function bS(e,t){let n={...e,...t};if(yS.every(t=>n[t]===e[t]))return n;let r={...n.hosts};for(let e of gS)r[e]={...r[e],page:null,listedWith:``,selection:_S()};return{...n,hosts:r}}function xS(e,t){return JSON.stringify([e.hosts[t].source?.sourceToken,e.scope,e.project,e.maps,e.memories,e.profile,e.skills,e.force,e.showHandled])}function SS(e){return{skipMemories:e.skills||!e.memories,skipProfile:e.skills||!e.profile,force:e.force,includeHandled:e.showHandled||e.force,...e.skills&&!e.memories&&!e.profile?{skillTurnsOnly:!0}:{}}}function CS(e,t){let n=e.hosts[t].page;return n?n.total-(e.scope===`all-projects`?n.unresolvedCount:0):0}function wS(e,t){let n=e.hosts[t].selection;return n.mode===`all`?CS(e,t)-n.excluded.size:n.picked.size}function TS(e,t){if(!t.selectable||!t.directory)return e;if(e.mode===`all`){let n=new Set(e.excluded);return n.has(t.key)?n.delete(t.key):n.add(t.key),{mode:`all`,excluded:n}}let n=new Map(e.picked);return n.has(t.key)?n.delete(t.key):n.set(t.key,t.directory),{mode:`ids`,picked:n}}function ES(e){return e.split(`
128
+ `).length>2||e.hasDiff||e.added>0||e.evidenceTurnIds.length>0}var ex=e=>e.toLocaleString(`en-US`);function tx(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function nx(e,t){let n=t.trim();return n&&!e.includes(n)?[...e,n]:e}function rx(e,t){return e.filter(e=>e!==t)}var ix=[`done`,`failed`,`cancelled`],ax=e=>ix.includes(e.state);function ox(e){return e.summary?.skillTurnsRecorded===void 0?(e.hosts??[]).reduce((e,t)=>e+(t.summary?.skillTurnsRecorded??0),0):e.summary.skillTurnsRecorded}function sx(e){let t=e.total??0;return t>0?Math.min(100,Math.floor((e.processed??0)*100/t)):0}var cx={success:{box:`border-status-success/25 bg-status-success/10`,icon:`text-status-success`,Icon:fe},info:{box:`border-status-info/25 bg-status-info/10`,icon:`text-status-info`,Icon:Be},warning:{box:`border-status-warning/25 bg-status-warning/10`,icon:`text-status-warning`,Icon:Bt},danger:{box:`border-destructive/25 bg-destructive/10`,icon:`text-destructive-label`,Icon:at}};function lx({tone:e,children:t,className:n}){let{box:r,icon:i,Icon:a}=cx[e];return(0,H.jsxs)(`div`,{role:e===`danger`?`alert`:`note`,"data-tone":e,className:V(`flex min-w-0 items-start gap-2.5 rounded-xl border px-3 py-2.5 text-start text-sm`,r,n),children:[(0,H.jsx)(a,{className:V(`mt-0.5 size-4 shrink-0`,i),"aria-hidden":`true`}),(0,H.jsx)(`div`,{className:`min-w-0 space-y-1.5 text-foreground`,children:t})]})}function ux(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(``),s=(0,v.useRef)(!0),c=(0,v.useRef)(!1),l=(0,v.useRef)(e);l.current=e;let u=t?.id,d=!!t&&!ax(t);(0,v.useEffect)(()=>(s.current=!0,()=>{s.current=!1}),[]),(0,v.useEffect)(()=>{if(!d)return;c.current=!0;let e=setInterval(()=>{X(`/api/settings/imports/current`).then(e=>{!s.current||!e.job||e.job.id!==u||n(e.job)}).catch(e=>{s.current&&o(e.message)})},1e3);return()=>clearInterval(e)},[d,u]),(0,v.useEffect)(()=>{t&&ax(t)&&c.current&&(c.current=!1,l.current())},[t]);async function f(){if(r||d)return;i(!0),o(``);let e=await Wb.recordPast();if(s.current){if(i(!1),!e.ok){o(e.error);return}n(e.data.job)}}return{job:t,running:d,starting:r,error:a,start:f}}function dx({onEnd:e}){let{job:t,running:n,starting:r,error:i,start:a}=ux(e);return(0,H.jsx)(fx,{job:t,running:n,starting:r,error:i,onStart:()=>void a()})}function fx({job:e,running:t,starting:n,error:r,onStart:i}){let a=Y(),o=e?sx(e):0;return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:t||n,onClick:i,children:[(0,H.jsx)(Ct,{"aria-hidden":`true`}),a(`Record past turns`)]}),n?(0,H.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),a(`Finding past sessions…`)]}):null,t&&e?(0,H.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,H.jsx)(`div`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":o,"aria-label":a(`Record past turns`),className:`h-2 w-full overflow-hidden rounded bg-muted`,children:(0,H.jsx)(`div`,{className:`h-full bg-primary`,style:{width:`${o}%`}})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[a(`Skill turns`),`: `,ex(e.processed??0),` / `,ex(e.total??0),` ·`,` `,o,`%`]})]}):null,e&&ax(e)?(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:e.state===`done`?Gb(a(`Recorded {count} past turns.`),{count:ex(ox(e))}):a(`Record past turns did not finish.`)}):null,r?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:r}):null]})}function px(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(!1),o=(0,v.useRef)(!0);(0,v.useEffect)(()=>{o.current=!0,X(`/api/settings`).then(e=>{o.current&&t(e)}).catch(e=>{o.current&&r(e.message)});let e=cy(e=>{o.current&&t(e)});return()=>{o.current=!1,e()}},[]);async function s(t){if(!e)return n||`Settings are not loaded`;let r=null;return await dy(a,async()=>{try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:t,revision:e.revision})})}catch(e){r=e.message}await sy()}),r}return{snapshot:e,loadError:n,busy:i,save:s}}function mx({label:e,checked:t,disabled:n,onChange:r}){return(0,H.jsxs)(`label`,{className:`flex min-w-0 items-start gap-2.5 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,role:`switch`,className:`mt-1 size-4 shrink-0`,checked:t,disabled:n,onChange:e=>r(e.target.checked)}),(0,H.jsx)(`span`,{className:`min-w-0 break-words font-medium`,children:e})]})}function hx(e){let t=Y(),{recording:n,redact:r,stats:i,busy:a,confirm:o}=e;return(0,H.jsxs)(`section`,{className:`space-y-4 rounded-xl border border-border bg-card p-4`,"aria-label":t(`Skill learning`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:t(`Skill learning`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Record agent turns so OMMS can rank your skills and draft improvements.`)}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(mx,{label:t(`Record agent turns`),checked:n,disabled:a,onChange:e.onRecording}),e.projectOff?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`A project config turns recording off for this project.`)}):null,n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{children:t(`OMMS stores full prompts, replies and tool calls in skills.db on this computer. Drafting sends recorded turns to the external API. The file holds whatever the turns hold.`)}),(0,H.jsx)(`p`,{children:t(`The memory chat sends skill counts and short change summaries to the external API, never turn text.`)})]}),(0,H.jsx)(dx,{onEnd:e.onRecordPastEnd})]}):null]}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(mx,{label:t(`Remove private text and secrets`),checked:r,disabled:a,onChange:e.onRedact}),o===`redact`?(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:t(`Stop removing private text and secrets?`)}),(0,H.jsx)(`p`,{children:t(`New turns will be stored as written.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,variant:`destructive`,size:`sm`,disabled:a,onClick:()=>e.onRedact(!1),children:t(`Turn off`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>e.onConfirm(null),children:t(`Cancel`)})]})]}):null,r?null:(0,H.jsx)(lx,{tone:`danger`,children:(0,H.jsx)(`p`,{children:t(`<private> text, API keys and passwords will be stored as written and sent to the external API when drafting.`)})})]}),(0,H.jsxs)(`dl`,{className:`grid max-w-md grid-cols-2 gap-3 text-sm`,children:[(0,H.jsxs)(`div`,{className:`rounded-xl border border-border px-3 py-2.5`,children:[(0,H.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:t(`Recorded turns`)}),(0,H.jsx)(`dd`,{className:`font-medium tabular-nums`,children:i?ex(i.turns):`…`})]}),(0,H.jsxs)(`div`,{className:`rounded-xl border border-border px-3 py-2.5`,children:[(0,H.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:t(`File size`)}),(0,H.jsx)(`dd`,{className:`font-medium tabular-nums`,children:i?tx(i.fileSize):`…`})]})]}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`sm`,disabled:a||!i||i.turns===0,onClick:()=>e.onConfirm(`delete`),children:[(0,H.jsx)(Rt,{"aria-hidden":`true`}),t(`Delete recorded turns`)]}),o===`delete`&&i?(0,H.jsxs)(lx,{tone:`danger`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:Gb(t(`Delete {count} recorded turns? This cannot be undone.`),{count:ex(i.turns)})}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,variant:`destructive`,size:`sm`,onClick:e.onDeleteTurns,children:t(`Delete`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>e.onConfirm(null),children:t(`Cancel`)})]})]}):null]}),e.message?(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:e.message}):null,e.failure?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:e.failure}):null]})}function gx(){let e=Y(),{snapshot:t,loadError:n,busy:r,save:i}=px(),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(null),p=(0,v.useCallback)(async()=>{let e=await Wb.stats();e.ok&&o(e.data)},[]);(0,v.useEffect)(()=>{p()},[p]);let m=t?.settings.skillLearning;async function h(t){c(``),u(``),f(null);let n=await i(t);n?u(n):c(e(`Saved.`)),await p()}async function g(){f(null),u(``);let t=await Wb.deleteTurns();t.ok?c(Gb(e(`Deleted {count} recorded turns.`),{count:ex(t.data.deleted)})):u(t.error),await p()}return(0,H.jsx)(hx,{recording:m?.globalValue===!0,redact:t?.settings.skillLearningRedact?.globalValue!==!1,projectOff:m?.source===`project`&&m.value===!1,stats:a,busy:r||!t,confirm:d,message:s,failure:l||n,onRecording:e=>void h({skillLearning:e}),onRedact:e=>{e||d===`redact`?h({skillLearningRedact:e}):f(`redact`)},onConfirm:f,onDeleteTurns:()=>void g(),onRecordPastEnd:()=>void p()})}var _x={"settings-section-external-api":xy,"settings-section-models":vy,"settings-section-embedding":By,"settings-section-keys":tb,"settings-section-diagnostics":ub,"settings-section-health":db,"settings-section-claude-folder":gb,"settings-section-capture-language":Nb,"settings-section-appearance":Vb,"settings-section-profiles":nb,"settings-section-web-app":fb,"settings-section-skill-learning":gx,"settings-section-log":Ob};function vx(){return(0,v.useEffect)(()=>{sf(window.location.hash,document)},[]),(0,H.jsxs)(`div`,{className:`settings-view space-y-6`,children:[(0,H.jsx)(ty,{storageKey:`omms-settings-toc-open`,sections:Xv}),Xv.map(({id:e})=>{let t=_x[e];return(0,H.jsx)(`div`,{id:e,className:`scroll-mt-20 md:scroll-mt-4`,children:(0,H.jsx)(t,{})},e)})]})}function yx(e,t){return t?t.target:e.suggestion?.kind===`map`?e.suggestion.target:``}function bx(e,t){let n=new Map,r=new Map,i=[];for(let a of e){let e=t[a.directory],o=yx(a,e).trim();if(a.directory!==``&&o){let t=e||a.suggestion?.kind!==`map`?`exact`:a.suggestion.confidence,r=(n.get(a.directory)?.sessions??0)+a.sessions;n.set(a.directory,{from:a.directory,to:o,sessions:r,confidence:t})}else if(a.directory!==``&&!e&&a.suggestion?.kind===`ignore`){let e=(r.get(a.directory)?.sessions??0)+a.sessions;r.set(a.directory,{directory:a.directory,sessions:e,reason:a.suggestion.reason})}else i.push({...a})}return{maps:[...n.values()],ignores:[...r.values()],unmapped:i}}function xx(e){return new Set([...e.maps.filter(e=>e.confidence!==`guess`).map(e=>e.from),...e.ignores.map(e=>e.directory)])}function Sx(e,t,n,r){let i={},a=n.maps.filter(e=>r.has(e.from));if(a.length){let t=new Map(e.map(e=>[e.from,{...e}]));for(let e of a)t.set(e.from,{from:e.from,to:e.to});i.importPathMaps=[...t.values()]}let o=n.ignores.filter(e=>r.has(e.directory));return o.length&&(i.importIgnoredDirectories=[...new Set([...t,...o.map(e=>e.directory)])]),i}function Cx(e){let t=new Map;for(let n of e)t.set(n.to,[...t.get(n.to)??[],n]);return[...t].map(([e,t])=>({target:e,maps:t.sort((e,t)=>e.from.localeCompare(t.from))})).sort((e,t)=>t.maps.length-e.maps.length||e.target.localeCompare(t.target))}function wx(e){return e.filter(e=>e.directory!==``)}function Tx(e,t){return[...new Set([...e,...wx(t).map(e=>e.directory)])]}function Ex(e,t){return e(t===`exact`?`Exact`:t===`name`?`Name match`:`Guess`)}function Dx(e,t){return e(t===`temporary`?`Temporary folder`:t===`node_modules`?`node_modules folder`:t===`app-data`?`App data folder`:`Skills folder`)}function Ox({host:e,rows:t,decisions:n,busy:r,onDecide:i,onResolve:a,onIgnore:o,onIgnoreAll:s,open:c}){let l=Y(),u=t.filter(e=>e.directory!==``),d=u.filter(e=>yx(e,n[e.directory]).trim()).length;return(0,H.jsxs)(`details`,{className:`min-w-0 rounded-lg border border-border p-3`,open:c||void 0,children:[(0,H.jsxs)(`summary`,{id:`directory-maps-${e}`,className:`scroll-mt-20 cursor-pointer rounded font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsxs)(`h3`,{className:`inline text-subsection-title font-semibold`,children:[Yd(e),`: `,l(`Unresolved directories`)]}),(0,H.jsxs)(`span`,{className:`mt-1 block text-xs font-normal text-muted-foreground`,children:[l(`Directories`),`: `,u.length,` · `,l(`Unresolved sessions`),`:`,` `,t.reduce((e,t)=>e+t.sessions,0),` · `,l(`Rows with a target`),`:`,` `,d]})]}),(0,H.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[t.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:l(`No unresolved directories in the latest run.`)}):(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`[&_button]:h-auto [&_button]:min-h-8 [&_button]:whitespace-normal [&_button]:py-1.5`,children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:r||u.length===0,onClick:a,children:l(`Smart resolve directories`)}),s&&u.length>0&&(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,className:`ms-2`,disabled:r,onClick:s,children:l(`Ignore all`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`Smart resolve shows each proposed map and ignore in a dialog. Tick the ones to keep, then press Confirm. Nothing is saved before that.`)})]}),t.map(e=>{if(e.directory===``)return(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[l(`No directory recorded`),` ·`,` `,e.sessions===1?l(`1 session`):`${e.sessions} ${l(`sessions`)}`,` ·`,` `,l(`These sessions cannot be mapped.`)]},`no-directory`);let t=n[e.directory],a=yx(e,t),s=!t&&e.suggestion?.kind===`ignore`?e.suggestion:null;return(0,H.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2 border-t border-border pt-2 text-sm`,children:[(0,H.jsxs)(`details`,{className:`min-w-0 flex-1`,open:c||void 0,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:e.directory}),` `,`· `,e.sessions===1?l(`1 session`):`${e.sessions} ${l(`sessions`)}`,(0,H.jsx)(`span`,{className:`mt-1 block text-xs text-muted-foreground`,children:s?(0,H.jsxs)(H.Fragment,{children:[l(`Suggested to ignore`),`: `,Dx(l,s.reason)]}):(0,H.jsxs)(H.Fragment,{children:[l(`Target directory`),`:`,` `,a?(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:a}):l(`No target chosen`)]})})]}),(0,H.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[!e.suggestion&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`No suggestion found.`)}),(0,H.jsx)(ad,{"aria-label":`${e.directory} ${l(`Target directory`)}`,dir:`ltr`,placeholder:l(`Target directory`),value:a,disabled:r,onChange:t=>i(e,t.target.value)})]})]}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,className:`shrink-0`,"aria-label":`${l(`Ignore`)} ${e.directory}`,disabled:r,onClick:()=>o(e),children:l(`Ignore`)})]},e.directory)})]})]})}function kx({host:e,review:t,busy:n,canConfirm:r,onRefresh:i,error:a,onClose:o,onConfirm:s}){let c=Y(),[l,u]=(0,v.useState)(()=>({review:t,ticked:xx(t)})),d=l.review===t?l.ticked:xx(t),f=(e,n)=>u(r=>{let i=new Set(r.review===t?r.ticked:xx(t));return n?i.add(e):i.delete(e),{review:t,ticked:i}}),p=[...t.maps.map(e=>e.from),...t.ignores.map(e=>e.directory)],m=p.filter(e=>d.has(e)).length,h=e=>(0,H.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[c(`Sessions`),`: `,e]});return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>{!e&&!n&&o()},children:(0,H.jsxs)(q,{className:`sm:max-w-2xl flex flex-col overflow-hidden`,showCloseButton:!n,onEscapeKeyDown:e=>{n&&e.preventDefault()},onInteractOutside:e=>{n&&e.preventDefault()},children:[(0,H.jsxs)(Hl,{children:[(0,H.jsxs)(Wl,{children:[c(`Review directory maps`),`: `,Yd(e)]}),(0,H.jsx)(Gl,{children:c(`Tick the maps and ignores to keep, then press Confirm to save them. Saved maps apply to every host on the next import or backfill run.`)})]}),(0,H.jsxs)(`div`,{className:`min-h-0 overflow-y-auto space-y-4`,children:[(0,H.jsxs)(`p`,{className:`text-sm`,children:[c(`Proposed maps`),`: `,t.maps.length,` · `,c(`Suggested to ignore`),`:`,` `,t.ignores.length,` · `,c(`No target`),`: `,t.unmapped.length]}),!p.length&&(0,H.jsx)(`p`,{className:`text-sm`,children:c(`Nothing to save. Type a target in a row, or press Ignore for folders that are not projects.`)}),t.maps.length>0&&(0,H.jsxs)(`section`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:c(`Proposed maps`)}),(0,H.jsx)(`ul`,{className:`space-y-3`,children:t.maps.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 border-t border-border pt-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,className:`mt-1 shrink-0`,"aria-label":`${c(`Save this map`)} ${e.from}`,checked:d.has(e.from),disabled:n,onChange:t=>f(e.from,t.target.checked)}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`block break-all`,children:e.from}),(0,H.jsxs)(`div`,{className:`mt-1`,children:[c(`Target directory`),`:`,` `,(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:e.to})]}),(0,H.jsxs)(`div`,{className:`text-xs`,children:[c(`Confidence`),`: `,Ex(c,e.confidence)]}),h(e.sessions)]})]},e.from))})]}),t.ignores.length>0&&(0,H.jsxs)(`section`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:c(`Suggested to ignore`)}),(0,H.jsx)(`ul`,{className:`space-y-3`,children:t.ignores.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 border-t border-border pt-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,className:`mt-1 shrink-0`,"aria-label":`${c(`Ignore`)} ${e.directory}`,checked:d.has(e.directory),disabled:n,onChange:t=>f(e.directory,t.target.checked)}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`block break-all`,children:e.directory}),(0,H.jsx)(`div`,{className:`mt-1`,children:Dx(c,e.reason)}),h(e.sessions)]})]},e.directory))})]}),t.unmapped.length>0&&(0,H.jsxs)(`section`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:c(`No target`)}),(0,H.jsx)(`ul`,{className:`space-y-3`,children:t.unmapped.map((e,t)=>(0,H.jsxs)(`li`,{className:`min-w-0 border-t border-border pt-2 text-sm`,children:[e.directory===``?c(`No directory recorded`):(0,H.jsx)(`code`,{dir:`ltr`,className:`block break-all`,children:e.directory}),(0,H.jsx)(`div`,{children:e.directory===``?c(`These sessions cannot be mapped.`):c(`No target chosen`)}),h(e.sessions)]},`${e.directory}-${t}`))})]})]}),a&&(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:a}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:n,onClick:o,children:c(`Cancel`)}),!r&&(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:n,onClick:i,children:c(`Refresh list`)}),(0,H.jsx)(K,{type:`button`,disabled:n||!r||m===0,onClick:()=>s(new Set(p.filter(e=>d.has(e)))),children:c(n?`Saving…`:`Confirm`)})]})]})})}function Ax({host:e,rows:t,busy:n,onConfirm:r,onCancel:i}){let a=Y(),o=t.reduce((e,t)=>e+t.sessions,0);return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>!e&&!n&&i(),children:(0,H.jsxs)(q,{className:`sm:max-w-xl`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:`${a(`Ignore all`)}: ${Yd(e)}`}),(0,H.jsx)(Gl,{children:`${a(`These directories stay unimported and leave the unresolved counts.`)} ${a(`Directories`)}: ${t.length} · ${a(`Sessions`)}: ${o}`})]}),(0,H.jsx)(`ul`,{className:`max-h-64 space-y-1 overflow-y-auto text-sm`,children:t.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`min-w-0 flex-1 break-all`,children:e.directory}),(0,H.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.sessions})]},e.directory))}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:n,onClick:i,children:a(`Cancel`)}),(0,H.jsx)(K,{type:`button`,disabled:n,onClick:r,children:a(`Ignore all`)})]})]})})}var jx=[`pi`,`opencode`,`claude-code`];function Mx({hosts:e=jx,saved:t=!0,title:n,anchorId:r}={}){let i=Y(),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)(),[l,u]=(0,v.useState)(),[d,f]=(0,v.useState)(new Set),[p,m]=(0,v.useState)({}),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(!1),[b,x]=(0,v.useState)(),[S,C]=(0,v.useState)(``),[w,T]=(0,v.useState)(),E=(0,v.useRef)(!1),D=(0,v.useRef)(void 0),O=()=>X(`/api/settings/import-maps`).then(e=>{u(e),f(new Set),m({})}).catch(e=>g(e.message));(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>{e&&(D.current=t.revision,c(t))}).catch(t=>{e&&g(t.message)}),O();let t=cy(t=>{if(!e)return;let n=t;c(n),n.revision!==D.current&&(D.current=n.revision,X(`/api/settings/import-maps`).then(t=>{e&&D.current===n.revision&&u(t)}).catch(()=>{}))});return()=>{e=!1,t()}},[]);function k(e,t){E.current||w||(C(``),x({host:e,review:bx(t,p)}))}function A(e,t){m(n=>({...n,[e.directory]:{directory:e.directory,target:t}}))}let j=()=>s?.settings?.importPathMaps?.globalValue??l?.saved??[],M=()=>l?.ignored??[];async function N(e,t,n){if(!s||!l||E.current||w)return!E.current&&!w&&g(`The list is still loading. Try again in a moment.`),!1;E.current=!0,y(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:e,revision:s.revision})})}catch(e){let t=e instanceof ny&&e.status===409;try{if(!t)return g(n),await sy(),!1;g(`Settings changed elsewhere. Check the list and try again.`);try{await te()}catch{T(`conflict`),g(`Settings changed elsewhere and could not be refreshed. Refresh the list, then try again.`)}return!1}finally{E.current=!1,y(!1)}}g(t);try{await te()}catch{T(`saved`),g(`Saved, but the list could not be refreshed. Refresh the list without saving again.`)}finally{E.current=!1,y(!1)}return!0}function P(){N({importPathMaps:gy(l?.saved??[],d)},`Saved. Removed maps stop applying at the next import or backfill run.`,`Removals could not be saved. Try again.`).then(e=>{e&&f(new Set)})}function ee(e){N({importIgnoredDirectories:[...new Set([...M(),e.directory])]},`Ignored. The directory stays unimported.`,`The directory could not be ignored. Try again.`)}function F(){if(!a)return;let{rows:e}=a;N({importIgnoredDirectories:Tx(M(),e)},`Ignored. The directories stay unimported.`,`The directories could not be ignored. Try again.`).then(e=>{e&&o(void 0)})}function I(e){N({importIgnoredDirectories:M().filter(t=>t!==e)},`Restored. The directory shows again in each host list that reported it.`,`The directory could not be restored. Try again.`)}async function te(){let[e,t]=await Promise.all([X(`/api/settings`),X(`/api/settings/import-maps`)]);D.current=e.revision,ay(e),u(t),T(void 0)}async function L(){if(E.current)return;E.current=!0,y(!0);let e=w===`saved`;try{await te(),e?g(`Saved. Maps apply to the next import or backfill run.`):b?C(`Settings changed elsewhere. Review these maps and confirm again.`):g(`Settings refreshed. No maps were saved.`)}catch{e?g(`Maps were saved, but the list could not be refreshed. Refresh the list without saving again.`):b?C(`Settings changed elsewhere and could not be refreshed. Refresh the list before confirming again.`):g(`Settings could not be refreshed. Try Refresh list again.`)}finally{E.current=!1,y(!1)}}async function ne(e){if(!s||!l||!b||E.current||w)return;let t=Sx(j(),M(),b.review,e);if(!t.importPathMaps&&!t.importIgnoredDirectories)return;E.current=!0,y(!0),C(``);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:t,revision:s.revision})})}catch(e){let t=e instanceof ny&&e.status===409;if(C(t?`Settings changed elsewhere. Review these maps and confirm again.`:`Maps could not be saved. Review the targets and confirm again.`),t)try{await te()}catch{T(`conflict`),C(`Settings changed elsewhere and could not be refreshed. Refresh the list before confirming again.`)}E.current=!1,y(!1);return}let n=new Set(e);m(e=>Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e)))),f(e=>new Set([...e].filter(e=>!n.has(e)))),u(e=>e&&{...e,saved:t.importPathMaps??e.saved,ignored:t.importIgnoredDirectories??e.ignored}),x(void 0);let r=b.review.maps.filter(t=>e.has(t.from)).length,a=b.review.ignores.filter(t=>e.has(t.directory)).length;g(`${i(`Saved maps`)}: ${r} · ${i(`Ignored directories`)}: ${a}. ${i(`They apply to the next import or backfill run. No sessions were imported.`)}`);try{await te()}catch{T(`saved`),g(`Maps were saved, but the list could not be refreshed. Refresh the list without saving again.`)}finally{E.current=!1,y(!1)}}return(0,H.jsxs)(`section`,{id:r??`directory-maps`,className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":i(n??`Resolve missing project folders`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:i(n??`Resolve missing project folders`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`A directory map links a recorded project folder to its current folder. Saved maps apply globally to every host at the next import or backfill run. Review changes before saving.`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`Map a directory that was moved or deleted to the project it belongs to. A change applies to the next import or backfill run.`)}),t&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`details`,{className:`min-w-0 rounded-lg border border-border p-3`,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h3`,{className:`inline text-subsection-title font-semibold`,children:i(`Saved maps`)}),` ·`,` `,l?.saved.length??0,(0,H.jsx)(`span`,{className:`mt-1 block text-xs font-normal text-muted-foreground`,children:i(`Saved maps apply to every host.`)})]}),(0,H.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`Keep a map after its sessions import. Every import checks the map before it skips a session, so removing a map makes its sessions unresolved again on the next run.`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:_||!!w||!s||!l||d.size===0,onClick:P,children:i(`Save removals`)}),!l?.saved.length&&(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`none`)}),Cx(l?.saved??[]).map(e=>(0,H.jsxs)(`details`,{className:`min-w-0 border-t border-border pt-2`,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded text-sm focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`break-all`,children:e.target}),` `,`· `,e.maps.length]}),(0,H.jsx)(`ul`,{className:`mt-2 space-y-1 text-sm`,children:e.maps.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`min-w-0 flex-1 break-all ${d.has(e.from)?`line-through`:``}`,children:e.from}),(0,H.jsx)(`button`,{type:`button`,className:`shrink-0 rounded border border-border px-2 py-0.5 text-xs`,"aria-label":`${d.has(e.from)?i(`Keep`):i(`Remove`)} ${e.from}`,disabled:_,onClick:()=>f(t=>{let n=new Set(t);return n.has(e.from)?n.delete(e.from):n.add(e.from),n}),children:d.has(e.from)?i(`Keep`):i(`Remove`)})]},e.from))})]},e.target))]})]}),(0,H.jsxs)(`details`,{className:`min-w-0 rounded-lg border border-border p-3`,children:[(0,H.jsxs)(`summary`,{className:`cursor-pointer rounded font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h3`,{className:`inline text-subsection-title font-semibold`,children:i(`Ignored directories`)}),` `,`· `,l?.ignored?.length??0,(0,H.jsx)(`span`,{className:`mt-1 block text-xs font-normal text-muted-foreground`,children:i(`Ignored directories stay unimported and leave the unresolved counts.`)})]}),(0,H.jsxs)(`ul`,{className:`mt-3 space-y-1 text-sm`,children:[!l?.ignored?.length&&(0,H.jsx)(`li`,{className:`text-muted-foreground`,children:i(`none`)}),l?.ignored?.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2`,children:[(0,H.jsx)(`code`,{dir:`ltr`,className:`min-w-0 flex-1 break-all`,children:e}),(0,H.jsx)(`button`,{type:`button`,className:`shrink-0 rounded border border-border px-2 py-0.5 text-xs`,"aria-label":`${i(`Restore`)} ${e}`,disabled:_||!!w||!s,onClick:()=>I(e),children:i(`Restore`)})]},e))]})]})]}),e.map(t=>{let n=l?.[t]??[];return(0,H.jsx)(Ox,{host:t,rows:n,decisions:p,busy:_||!!w||!s||!l,onDecide:A,onResolve:()=>k(t,n),onIgnore:ee,onIgnoreAll:()=>o({host:t,rows:wx(n)}),open:e.length===1},t)}),a&&(0,H.jsx)(Ax,{host:a.host,rows:a.rows,busy:_,onConfirm:F,onCancel:()=>o(void 0)}),b&&(0,H.jsx)(kx,{host:b.host,review:b.review,busy:_,canConfirm:!w,error:i(S),onRefresh:()=>void L(),onClose:()=>{E.current||x(void 0)},onConfirm:e=>void ne(e)}),w&&!b&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,disabled:_,onClick:()=>void L(),children:i(`Refresh list`)}),h&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:i(h)})]})}function Nx(e){return!e||e.total<=0?null:{percent:e.percent,done:`${e.done.toLocaleString(`en-US`)} / ${e.total.toLocaleString(`en-US`)}`,minutesLeft:e.minutesLeft===null?`unknown`:`about ${e.minutesLeft}`}}function Px(e,t){return e??!t}function Fx(e,t){let n=t.indexOf(`/`);if(t!==`inherit`&&t!==`external`&&(n<1||n===t.length-1))throw Error(`Enter a model as provider/model.`);return{[`${e}BackfillModel`]:t}}function Ix(e,t){if(t?.state===`running`)return t.phase===`profile`?{kind:`learning-profile`,done:t.profileDone??0,total:t.profileTotal??0}:{kind:`running`};if(t?.paused)return{kind:`paused`};if(t?.state===`failed`&&(t.updatedAt??t.startedAt??0)>=(e?.updatedAt??0))return{kind:`failed`,error:t.error??e?.error??null};if(!e||e.state===`not-started`)return t?.state===`done`?{kind:`imported`}:{kind:`not-started`};let n=t?.state===`done`&&(e.counts.failed??0)>0;return e.state===`failed`&&!n?{kind:`failed`,error:e.error}:e.state===`running`?{kind:`running`}:e.counts.pending>0?{kind:`stopped`,pending:e.counts.pending}:e.counts.unresolved>0?{kind:`partly`,unresolved:e.counts.unresolved}:{kind:`imported`}}function Lx(e){return e?.state===`running`&&e.phase!==`profile`}function Rx(e){return!e||e.state===`running`||!e.state||!e.updatedAt||!e.surface?null:{finishedAt:e.updatedAt,surface:e.surface,imported:e.imported??0,skipped:e.skipped??0,failed:e.failed??0,state:e.state}}function zx({host:e,backfill:t}){let n=Y(),{snapshot:r,lists:i,busy:a}=t,[o,s]=(0,v.useState)(),[c,l]=(0,v.useState)(),u=r?.settings??{},d=String(u[`${e}BackfillModel`]?.globalValue??`inherit`),f=o??d,p=i[e]?.models??[],m=Px(c,f===`inherit`||f===`external`||p.some(e=>`${e.provider}/${e.model}`===f)),h=py({memoryProvider:u.memoryProvider?.globalValue,memoryModel:u.memoryModel?.globalValue,memoryApiUrl:u.memoryApiUrl?.globalValue,keySet:!!r?.secrets?.memoryApiKey?.set});return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":`${Yd(e)} ${n(`settings`)}`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:`${Yd(e)} ${n(`settings`)}`}),e===`claude-code`?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Claude Code backfill always uses the external API. It has no backfill model setting.`)}):(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,H.jsxs)(`label`,{className:`block`,children:[n(`Backfill model`),(0,H.jsx)(`div`,{dir:`ltr`,children:(0,H.jsxs)(Dr,{"aria-label":`${Yd(e)} ${n(`Backfill model`)}`,className:`mt-1 block w-full`,value:m?`typed`:f,onChange:e=>{l(e.target.value===`typed`),s(e.target.value)},children:[(0,H.jsx)(`option`,{value:`inherit`,children:n(`Same as live capture`)}),(0,H.jsx)(`option`,{value:`external`,disabled:h.length>0,children:n(`External API`)}),p.map(e=>(0,H.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.name,` (`,e.provider,`/`,e.model,`)`]},`${e.provider}/${e.model}`)),(0,H.jsx)(`option`,{value:`typed`,children:n(`Manual provider/model`)})]})})]}),m&&(0,H.jsx)(`input`,{"aria-label":`${Yd(e)} ${n(`Manual provider/model`)}`,className:`w-full rounded-[10px] border border-border bg-card p-2`,dir:`ltr`,placeholder:`provider/model`,value:f===`typed`?``:f,onChange:e=>s(e.target.value)}),h.length>0&&(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[n(`External API needs`),`: `,h.join(`, `)]}),i[e]?.available===!1&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i[e].reason?n(i[e].reason):n(`Model list unavailable. Enter provider/model manually.`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:a||!r,onClick:()=>t.saveModel(e,f),children:n(`Save model`)})]}),(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:!!u.autoBackfill?.globalValue,disabled:a||!r,onChange:e=>void t.save({autoBackfill:e.target.checked})}),n(`Import past chats automatically`)]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`This switch applies to every host. Automatic import makes model calls.`)})]})}var Bx={pi:{kind:`default`},opencode:{kind:`default`},"claude-code":{kind:`default`}},Vx=Bx,Hx=!1,Ux=new Set,Wx=e=>{Vx=e;for(let e of Ux)e()},Gx=e=>(Ux.add(e),()=>Ux.delete(e));async function Kx(e,t){let n=await X(e,t);Wx({...Bx,...n.hosts})}function qx(){let e=(0,v.useSyncExternalStore)(Gx,()=>Vx,()=>Bx);return(0,v.useEffect)(()=>{Hx||(Hx=!0,Kx(`/api/host-appearance`).catch(()=>{Hx=!1}))},[]),{looks:e,setIcon:(e,t)=>Kx(`/api/host-appearance/${e}`,{method:`PUT`,body:JSON.stringify({kind:`icon`,icon:t})}),setImage:(e,t)=>Kx(`/api/host-appearance/${e}`,{method:`PUT`,body:JSON.stringify({kind:`image`,png:t})}),reset:e=>Kx(`/api/host-appearance/${e}`,{method:`DELETE`})}}var Jx={anchor:j,atom:F,bird:I,"book-open":te,bot:L,braces:ne,brain:re,bug:R,cat:ie,cloud:pe,code:me,command:he,compass:ge,cpu:ve,database:ye,dog:be,feather:Ce,"file-code":we,fish:Te,flame:Ee,flower:De,folder:Ae,gem:je,ghost:Me,"git-branch":Ne,globe:Fe,hash:Ie,heart:Le,infinity:ze,key:Ve,layers:He,leaf:Ue,library:We,lightbulb:Ge,link:Ke,"message-square":Qe,moon:nt,mountain:rt,network:it,orbit:st,package:ct,"pen-tool":ft,plug:_t,puzzle:bt,rocket:St,server:Dt,settings:Ot,shield:kt,sparkles:At,"square-terminal":Mt,star:Nt,sun:Pt,target:It,terminal:Lt,"wand-sparkles":Wt,wrench:Kt,zap:Jt},Yx=Object.keys(Jx),Xx={pi:`Pi`,opencode:`OC`,"claude-code":`CC`};function Zx({host:e,look:t,className:n}){let r=V(`grid size-10 shrink-0 place-items-center overflow-hidden rounded-[10px] border`,n);if(t.kind===`image`)return(0,H.jsx)(`span`,{className:V(r,`border-border bg-muted`),"aria-hidden":`true`,children:(0,H.jsx)(`img`,{src:t.image,alt:``,className:`size-full object-cover`})});let i=t.kind===`icon`?Jx[t.icon]:void 0,a=td(e);return(0,H.jsx)(`span`,{className:V(r,`text-ui font-semibold [color:oklch(0.42_0.13_var(--host-hue))] dark:[color:oklch(0.8_0.13_var(--host-hue))]`),style:{backgroundColor:`oklch(0.72 0.14 ${a} / 0.18)`,borderColor:`oklch(0.72 0.14 ${a} / 0.45)`,"--host-hue":String(a)},"aria-hidden":`true`,children:i?(0,H.jsx)(i,{className:`size-5`}):Xx[e]})}function Qx({className:e,iconClassName:t=`size-5`}){return(0,H.jsx)(`span`,{"aria-hidden":`true`,className:V(`grid size-10 shrink-0 place-items-center overflow-hidden rounded-[10px] border border-border bg-muted text-muted-foreground`,e),children:(0,H.jsx)(He,{className:t})})}function $x({host:e,run:t,row:n}){let r=Y(),i=Lx(t)?Nx(t):null,a=Rx(t),o=Ix(n,t),s=`${ud(e)}#host-unresolved`;return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[o.kind===`learning-profile`&&(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[r(`All exchanges are done. Learning the profile from the imported prompts`),`:`,` `,o.done,` / `,o.total,` `,r(`batches`)]}),i&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`div`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i.percent,"aria-label":r(`Import progress`),className:`h-2 w-full overflow-hidden rounded bg-muted`,children:(0,H.jsx)(`div`,{className:`h-full bg-primary`,style:{width:`${i.percent}%`}})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[i.percent,`% · `,i.done,` · `,r(`Minutes left`),`:`,` `,i.minutesLeft===`unknown`?r(`unknown`):i.minutesLeft.replace(`about`,r(`about`))]})]}),t?.state===`running`&&t.surface&&(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:r(`started from ${t.surface}`)}),a&&(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[r(`Last run`),`: `,Qp(a.finishedAt),` · `,r(`started from ${a.surface}`),` `,`· `,r(a.state),` · `,r(`Imported`),`: `,a.imported,` · `,r(`Skipped`),`:`,` `,a.skipped,` · `,r(`Failed`),`: `,a.failed]}),n&&(0,H.jsxs)(`div`,{className:`space-y-1 text-muted-foreground`,children:[!a&&(0,H.jsxs)(`p`,{children:[r(`Imported`),`: `,n.counts.imported,` · `,r(`Skipped`),`: `,n.counts.skipped,` ·`,` `,r(`Failed`),`: `,n.counts.failed]}),(0,H.jsxs)(`p`,{children:[r(`Pending`),`: `,n.counts.pending,` · `,r(`Unresolved sessions`),`:`,` `,n.counts.unresolved,n.counts.unresolved>0&&(0,H.jsxs)(H.Fragment,{children:[` `,(0,H.jsx)(`a`,{className:`underline focus-visible:outline-2 focus-visible:outline-ring`,href:s,"aria-label":`${Yd(e)}: ${r(`Resolve missing project folders`)}`,onClick:e=>{e.preventDefault(),_f(s)},children:r(`Resolve missing project folders`)})]})]}),(0,H.jsxs)(`p`,{children:[r(`Model`),`: `,(0,H.jsx)(`bdi`,{dir:`ltr`,children:n.model??r(`none`)})]}),(0,H.jsxs)(`p`,{children:[r(`Cutoff`),`: `,Qp(n.cutoff)]}),n.error&&(0,H.jsx)(`p`,{role:`alert`,children:n.error})]})]})}function eS(e){let{run:t,runNowUnavailable:n}=e,r=n===null,i=n!==null&&e.host!==`claude-code`,a={text:`{reason}`,params:{reason:n??``}},o=(e,t,n,r=!0)=>({state:e,action:{kind:t,enabled:r},sentence:n,offerExternal:!1});if(!e.setUp)return o(`not-set-up`,`setup`,{text:`This host is not set up on this machine.`});if(t?.state===`running`){if(t.paused)return o(`running`,`pause`,{text:`Pausing after the current exchange.`},!1);let e=t.minutesLeft;return o(`running`,`pause`,{text:e===null?`Importing {done} / {total}.`:`Importing {done} / {total}. About {minutes} min left.`,params:{done:t.done,total:t.total,...e===null?{}:{minutes:e}}})}if(t?.paused)return{...o(`paused`,`resume`,r?{text:`Paused. Resume to continue.`}:a,r),offerExternal:i};if(t?.state===`failed`)return{...o(`failed`,`retry`,r?{text:`Stopped: {error}`,params:{error:t.error??`unknown error`}}:a,r),offerExternal:i};if(!r||t?.state===`stopped`&&e.pending>0)return{...o(`stopped`,`resume`,r?{text:`{pending} still waiting to import.`,params:{pending:e.pending}}:a,r),offerExternal:i};let s=t?.state===`done`&&t.total===0,c;return c=s&&e.cutoff!==null?{text:`Automatic import is on. Nothing was waiting before {date}. Use Sessions below for newer chats.`,params:{date:e.formatDate(e.cutoff)}}:e.pending>0?{text:`{pending} still waiting to import.`,params:{pending:e.pending}}:{text:`Automatic import is on. Nothing is waiting.`},o(`running`,`pause`,c)}function tS(e){let{run:t}=e;if(!e.setUp)return{text:`Not set up`};if(t?.state===`running`)return{text:`Importing · {percent}%`,params:{percent:t.percent}};if(t?.paused)return{text:`Paused · {pending} pending`,params:{pending:e.pending}};if(t?.state===`failed`)return{text:`Failed`};if(e.runNowUnavailable!==null||t?.state===`stopped`&&e.pending>0)return{text:`Stopped · {pending} pending`,params:{pending:e.pending}};let n=t?.updatedAt&&t.state===`done`?e.formatDate(t.updatedAt):null,r=e.lastSaved===null?null:e.formatSaved(e.lastSaved);return n&&r?{text:`Running · history imported {date} · last saved {when}`,params:{date:n,when:r}}:n?{text:`Running · history imported {date}`,params:{date:n}}:r?{text:`Running · last saved {when}`,params:{when:r}}:{text:`Running`}}function nS(e,t){let n=e(t.text);return Object.entries(t.params??{}).reduce((e,[t,n])=>e.replaceAll(`{${t}}`,String(n)),n)}var rS={pi:`https://github.com/cmdaltctr/omms/blob/main/docs/pi-adapter.md`,opencode:`https://github.com/cmdaltctr/omms/blob/main/docs/opencode-adapter.md`,"claude-code":`https://github.com/cmdaltctr/omms/blob/main/docs/claude-code-adapter.md`},iS={"not-set-up":`Not set up`,running:`Running`,paused:`Paused`,failed:`Failed`,stopped:`Stopped`};function aS({host:e,statuses:t}){let n=Y(),{looks:r}=qx(),{backfill:i}=t,a=t.status(e),o=i.rows[e],s=i.runs?.[e]?.run??null,c=()=>{let t=a.action.kind;t===`pause`?i.control(e,`pause`):t===`resume`?i.control(e,`resume`):t===`retry`&&i.control(e,`run`)},l={setup:n(`How to set up`),pause:n(`Pause`),resume:n(`Resume`),retry:n(`Retry`)},u={pause:dt,resume:gt,retry:Tt,setup:Se}[a.action.kind];return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":Yd(e),children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(Zx,{host:e,look:r[e]}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`h2`,{className:`text-page-title font-semibold`,children:Yd(e)}),(0,H.jsxs)(`p`,{className:V(`text-sm`,a.state===`failed`?`text-destructive-label`:`text-muted-foreground`),children:[n(`State`),`: `,n(iS[a.state])]})]})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[a.action.kind===`setup`?(0,H.jsx)(K,{asChild:!0,variant:`outline`,children:(0,H.jsxs)(`a`,{href:rS[e],target:`_blank`,rel:`noreferrer`,children:[(0,H.jsx)(Se,{"aria-hidden":`true`}),l.setup]})}):(0,H.jsxs)(K,{type:`button`,disabled:i.busy||!a.action.enabled,onClick:c,children:[(0,H.jsx)(u,{"aria-hidden":`true`}),l[a.action.kind]]}),a.offerExternal&&(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:i.busy,onClick:()=>i.saveModel(e,`external`),children:n(`Use external API`)})]}),(0,H.jsx)(`p`,{className:`break-words text-sm text-muted-foreground`,role:`status`,children:nS(n,a.sentence)}),a.state!==`not-set-up`&&(0,H.jsx)($x,{host:e,run:s,row:o}),i.message&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:i.message}),a.action.kind!==`setup`&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Importing makes model calls and can cost money.`)})]})}function oS(e,t,n){let r=!n&&e!==null&&e.revision===t.revision;return{page:r?{...t,listedAt:e.listedAt}:t,sameListing:r}}function sS(e,t){let n=0;return async r=>{let i=++n;try{let t=await r;i===n&&e(t)}catch(e){i===n&&t?.(e)}}}function cS(e){let t=document.getElementById(`directory-maps-${e}`),n=t?.parentElement;if(!t||!n){typeof window<`u`&&window.location&&_f(`${J.memory}#directory-maps-${e}`);return}n.open=!0,t.focus({preventScroll:!0}),t.scrollIntoView?.(af)}function lS({badge:e,host:t}){let n=Y(),[r,i]=(()=>{switch(e.kind){case`imported`:return[`${n(`Imported`)} ✅`,`border-green-600/40 text-green-700`];case`partly`:return[`${n(`Partly imported`)} (${e.unresolved} ${n(`unresolved`)})`,`border-amber-500/50 text-amber-700`];case`running`:return[n(`Running`),`border-primary/50 text-primary`];case`learning-profile`:return[`${n(`Learning profile`)} ${e.done} / ${e.total}`,`border-primary/50 text-primary`];case`paused`:return[n(`Paused`),`border-border text-muted-foreground`];case`stopped`:return[`${n(`Stopped`)} (${e.pending} ${n(`pending`)})`,`border-amber-500/50 text-amber-700`];case`failed`:return[`${n(`Failed`)} ⛔️`,`border-red-600/40 text-red-700`];case`not-started`:return[n(`Not started`),`border-border text-muted-foreground`]}})(),a=V(`inline-block rounded-full border px-2 py-0.5 text-xs font-medium`,i);return e.kind===`partly`?(0,H.jsx)(`a`,{href:`/memory#directory-maps-${t}`,onClick:e=>{e.preventDefault(),cS(t)},"aria-label":`${Yd(t)}: ${n(`Resolve missing project folders`)}. ${r}`,className:V(a,`underline focus-visible:outline-2 focus-visible:outline-ring`),children:r}):(0,H.jsx)(`span`,{className:a,title:e.kind===`failed`&&e.error?e.error:void 0,children:r})}var uS=[`pi`,`opencode`,`claude-code`];function dS(){let e=Y(),[t,n]=(0,v.useState)({}),[r,i]=(0,v.useState)({});return(0,v.useEffect)(()=>{let e=sS(n),t=sS(i),r=()=>{e(X(`/api/settings/backfill`)),t(X(`/api/settings/backfill/runs`))};r();let a=setInterval(r,1e4),o=cy(r);return()=>{clearInterval(a),o()}},[]),(0,H.jsx)(`div`,{className:`flex flex-wrap gap-2`,"aria-label":e(`Import status`),children:uS.map(e=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border px-3 py-1.5 text-sm`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:Yd(e)}),(0,H.jsx)(lS,{host:e,badge:Ix(t[e]??null,r[e]?.run??null)})]},e))})}function fS(e){let t=Y(),[n,r]=(0,v.useState)(``),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(``),f=`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`;async function p(t){try{let n=await X(`/api/settings/imports/sources/validate`,{method:`POST`,body:JSON.stringify({host:e.host,path:t})});a(n),r(n.displayPath),e.onChoose(n),d(``)}catch(e){d(e.message)}}async function m(t){try{let n=await X(`/api/settings/imports/sources/browse`,{method:`POST`,body:JSON.stringify({host:e.host,...t?{path:t}:{}})});s(n),d(``)}catch(e){let t=e.message;/loopback/i.test(t)&&l(!0),d(t)}}function h(){a(null),r(``),s(null),e.onChoose(null)}return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,H.jsxs)(`label`,{className:`block`,children:[e.host===`pi`?t(`Pi sessions folder or one .jsonl session file`):e.host===`claude-code`?t(`Claude Code transcripts folder`):t(`OpenCode database file`),(0,H.jsx)(`input`,{className:`mt-1 block w-full rounded border border-border bg-background p-2 font-mono`,dir:`ltr`,value:n,placeholder:t(`Absolute path, for example on a mounted volume`),onChange:e=>r(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(`button`,{type:`button`,className:f,disabled:!n.trim(),onClick:()=>void p(n.trim()),children:t(`Use this source`)}),!c&&(0,H.jsx)(`button`,{type:`button`,className:f,onClick:()=>void m(o?.path),children:t(`Browse`)}),i&&(0,H.jsx)(`button`,{type:`button`,className:f,onClick:h,children:t(`Use the default location`)})]}),i&&(0,H.jsxs)(`p`,{role:`status`,children:[t(`Chosen source`),`:`,` `,(0,H.jsx)(`bdi`,{dir:`ltr`,className:`font-mono break-all`,children:i.displayPath})]}),u&&(0,H.jsx)(`p`,{role:`alert`,children:u}),o&&(0,H.jsxs)(`div`,{className:`rounded border border-border p-2`,children:[(0,H.jsx)(`p`,{dir:`ltr`,className:`font-mono text-xs break-all`,children:o.path}),(0,H.jsxs)(`ul`,{className:`max-h-60 overflow-auto`,children:[o.parent&&(0,H.jsx)(`li`,{children:(0,H.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>void m(o.parent),children:`..`})}),o.entries.map(n=>(0,H.jsxs)(`li`,{className:`flex items-center gap-2`,children:[n.kind===`folder`?(0,H.jsx)(`button`,{type:`button`,className:`underline`,onClick:()=>void m(n.path),children:(0,H.jsxs)(`bdi`,{dir:`ltr`,children:[n.name,`/`]})}):(0,H.jsx)(`bdi`,{dir:`ltr`,className:`font-mono text-xs`,children:n.name}),(n.kind!==`folder`||e.host!==`opencode`)&&(0,H.jsx)(`button`,{type:`button`,className:`text-xs underline`,onClick:()=>void p(n.path),children:t(`Choose`)})]},n.path))]}),o.truncated&&(0,H.jsx)(`p`,{className:`text-xs`,children:t(`Only the first 500 entries are shown.`)})]})]})}function pS(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);return t?[Number(t[1]),Number(t[2])-1,Number(t[3])]:null}function mS(e){let t=pS(e);return t?new Date(t[0],t[1],t[2],0,0,0,0).getTime():void 0}function hS(e){let t=pS(e);return t?new Date(t[0],t[1],t[2],23,59,59,999).getTime():void 0}var gS=[`pi`,`opencode`,`claude-code`],_S=()=>({mode:`ids`,picked:new Map});function vS(){let e=e=>({enabled:e,source:null,page:null,listedWith:``,selection:_S(),modelChoice:`external`});return{hosts:{pi:e(!0),opencode:e(!1),"claude-code":e(!1)},scope:`current-project`,project:``,maps:``,since:``,until:``,profileBatch:``,force:!1,memories:!0,profile:!0,skills:!0,showHandled:!1}}var yS=[`scope`,`project`,`memories`,`profile`,`skills`,`force`,`showHandled`];function bS(e,t){let n={...e,...t};if(yS.every(t=>n[t]===e[t]))return n;let r={...n.hosts};for(let e of gS)r[e]={...r[e],page:null,listedWith:``,selection:_S()};return{...n,hosts:r}}function xS(e,t){return JSON.stringify([e.hosts[t].source?.sourceToken,e.scope,e.project,e.maps,e.memories,e.profile,e.skills,e.force,e.showHandled])}function SS(e){return{skipMemories:e.skills||!e.memories,skipProfile:e.skills||!e.profile,force:e.force,includeHandled:e.showHandled||e.force,...e.skills&&!e.memories&&!e.profile?{skillTurnsOnly:!0}:{}}}function CS(e,t){let n=e.hosts[t].page;return n?n.total-(e.scope===`all-projects`?n.unresolvedCount:0):0}function wS(e,t){let n=e.hosts[t].selection;return n.mode===`all`?CS(e,t)-n.excluded.size:n.picked.size}function TS(e,t){if(!t.selectable||!t.directory)return e;if(e.mode===`all`){let n=new Set(e.excluded);return n.has(t.key)?n.delete(t.key):n.add(t.key),{mode:`all`,excluded:n}}let n=new Map(e.picked);return n.has(t.key)?n.delete(t.key):n.set(t.key,t.directory),{mode:`ids`,picked:n}}function ES(e){return e.split(`
129
129
  `).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.indexOf(`=`);if(t<1||t===e.length-1)throw Error(`Directory maps must be old=new, one per line`);return{from:e.slice(0,t),to:e.slice(t+1)}})}function DS(e){if(!e.memories&&!e.profile&&!e.skills)return`Choose at least one output.`;if(!gS.some(t=>e.hosts[t].enabled))return`Choose at least one host.`;try{ES(e.maps);let t=e.since?mS(e.since):void 0,n=e.until?hS(e.until):void 0;if(t!==void 0&&n!==void 0&&t>n)return`Prompt date from must not be after Prompt date to.`}catch(e){return e.message}return e.profileBatch&&(!Number.isInteger(Number(e.profileBatch))||Number(e.profileBatch)<1)?`Profile batch size must be a positive integer.`:null}function OS(e,t){let n=DS(e);if(n)throw Error(n);return{hosts:gS.filter(t=>e.hosts[t].enabled).map(t=>{let n=e.hosts[t];if(!n.page||n.listedWith!==xS(e,t))throw Error(`Options changed. Refresh the session list first.`);let r=n.selection;return{host:t,source:n.page.source.sourceToken,modelChoice:n.modelChoice||void 0,selection:r.mode===`all`||CS(e,t)===0?{mode:`all`,excludedKeys:r.mode===`all`?[...r.excluded]:[],revision:n.page.revision,listedAt:n.page.listedAt,...e.showHandled||e.force?{includeHandled:!0}:{}}:{mode:`ids`,sessions:[...r.picked].map(([e,t])=>({key:e,directory:t})),listedAt:n.page.listedAt}}}),options:{dryRun:t,force:e.force,skipMemories:!e.memories,skipProfile:!e.profile,skipSkills:!e.skills,scope:e.scope,...e.scope===`current-project`&&e.project?{project:e.project}:{},...e.since?{since:mS(e.since)}:{},...e.until?{until:hS(e.until)}:{},...e.profileBatch?{profileBatch:Number(e.profileBatch)}:{},pathMaps:ES(e.maps)}}}function kS(e){return JSON.stringify({...e,hosts:gS.filter(t=>e.hosts[t].enabled).map(t=>{let n=e.hosts[t];return{host:t,...n,selection:n.selection.mode===`all`?{mode:`all`,excluded:[...n.selection.excluded].sort()}:{mode:`ids`,picked:[...n.selection.picked].sort()}}})})}var AS=`${J.settings}#settings-section-skill-learning`,jS=`mt-1 block w-full min-w-0 rounded border border-border bg-background p-2`,MS=`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`;function NS({draft:e,skillRecording:t,advanced:n,onChange:r,onAdvanced:i}){let a=Y();return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-4 text-sm`,children:[(0,H.jsxs)(`label`,{children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":a(`Project memories`),checked:e.memories,onChange:e=>r({memories:e.target.checked})}),` `,a(`Project memories`)]}),(0,H.jsxs)(`label`,{children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":a(`User profile`),checked:e.profile,onChange:e=>r({profile:e.target.checked})}),` `,a(`User profile`),` `,a(`(preferences, patterns, and workflows)`)]}),(0,H.jsxs)(`label`,{children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":a(`Skill turns`),checked:t&&e.skills,disabled:!t,onChange:e=>r({skills:e.target.checked})}),` `,a(`Skill turns`)]})]}),!t&&(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[a(`Skill turns are recorded only while Record agent turns is on.`),` `,(0,H.jsx)(`a`,{className:`underline`,href:AS,onClick:e=>{e.preventDefault(),_f(AS)},children:a(`Open the Skill learning card`)})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[a(`Scope`),(0,H.jsx)(`div`,{className:Er,children:(0,H.jsxs)(Dr,{"aria-label":a(`Scope`),className:jS,value:e.scope,onChange:e=>r({scope:e.target.value}),children:[(0,H.jsx)(`option`,{value:`current-project`,children:a(`Current project`)}),(0,H.jsx)(`option`,{value:`all-projects`,children:a(`All projects`)})]})})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":a(`Show handled sessions`),checked:e.showHandled,onChange:e=>r({showHandled:e.target.checked})}),` `,a(`Show handled sessions`)]}),(0,H.jsx)(`button`,{type:`button`,className:MS,onClick:i,"aria-expanded":n,children:a(n?`Hide advanced options`:`Advanced options`)}),(0,H.jsxs)(`div`,{hidden:!n,className:`space-y-3 rounded-lg border border-border p-3`,children:[(0,H.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[e.scope===`current-project`&&(0,H.jsxs)(`label`,{className:`text-sm`,children:[a(`Project directory`),(0,H.jsx)(`input`,{"aria-label":a(`Project directory`),className:`mt-1 block w-full min-w-0 rounded border border-border bg-background p-2`,dir:`ltr`,value:e.project,placeholder:a(`Current directory`),onChange:e=>r({project:e.target.value})})]}),[[`Prompt date from`,`since`],[`Prompt date to`,`until`],[`Profile batch size`,`profileBatch`]].map(([t,n])=>(0,H.jsxs)(`label`,{className:`text-sm`,children:[a(t),(0,H.jsx)(`input`,{"aria-label":a(t),type:n===`profileBatch`?`text`:`date`,inputMode:n===`profileBatch`?`numeric`:void 0,className:jS,value:e[n],onChange:e=>r({[n]:e.target.value})})]},n))]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`Prompt dates are inclusive, use your time zone, and filter the turns inside each session, not the list. Empty dates include every turn.`)}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[a(`Directory maps (old=new, one per line)`),(0,H.jsx)(`textarea`,{"aria-label":a(`Directory maps (old=new, one per line)`),dir:`ltr`,className:jS,rows:2,value:e.maps,onChange:e=>r({maps:e.target.value})})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":a(`Re-analyse handled history`),checked:e.force,onChange:e=>r({force:e.target.checked})}),` `,a(`Re-analyse handled history`)]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`Re-analysis applies to the selected outputs. Each profile prompt can be forcibly re-analysed once. Findings merge into the existing profile.`)})]})]})}function PS({host:e,draft:t,readiness:n,advanced:r,listing:i,onChange:a,onList:o,onUnresolved:s}){let c=Y(),l=t.hosts[e],u=l.page,d=u&&l.listedWith!==xS(t,e),f=CS(t,e),p=e=>l.selection.mode===`all`?!l.selection.excluded.has(e.key):l.selection.picked.has(e.key),m={recorded:c(`recorded`),mapped:c(`mapped`),worktree:c(`project root`),unresolved:c(`missing`)},h=e===`pi`&&n?.piReader.available===!1;return(0,H.jsxs)(`section`,{hidden:!l.enabled,"aria-label":Yd(e),className:`space-y-3 rounded-lg border border-border p-3 min-w-0`,children:[(0,H.jsx)(`h3`,{className:`text-subsection-title font-semibold`,children:Yd(e)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[c(`Source`),`:`,` `,(0,H.jsx)(`bdi`,{dir:`ltr`,className:`break-all`,children:l.source?.displayPath??u?.source.displayPath??c(`default location`)})]}),h&&(0,H.jsx)(`p`,{role:`alert`,children:c(n?.piReader.reason??`Pi session reader is unavailable. Fix the reader or deselect Pi.`)}),e===`claude-code`&&n?.claudeCode&&(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[c(`Claude Code transcripts`),`:`,` `,(0,H.jsx)(`bdi`,{dir:`ltr`,className:`font-mono break-all`,children:n.claudeCode.defaultRoot}),` `,`(`,c(n.claudeCode.defaultRootFound?`found`:`not found`),`).`,` `,c(`Claude Code imports always use the external API.`)]}),(0,H.jsx)(`div`,{hidden:!r,children:(0,H.jsx)(fS,{host:e,onChoose:e=>a({source:e})})}),(0,H.jsx)(`button`,{type:`button`,className:MS,disabled:i||h,onClick:()=>o(0,!0),children:c(u?`Refresh list`:`List sessions`)}),d&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:c(`Options changed. Refresh the session list first.`)}),u&&t.scope===`current-project`&&u.unresolvedCount>0&&(0,H.jsxs)(`p`,{className:`text-sm`,children:[c(`Sessions with directories that no longer exist`),`: `,u.unresolvedCount,`.`,` `,(0,H.jsx)(`button`,{type:`button`,className:`underline`,onClick:s,children:c(`Show them and add a directory map`)})]}),u&&(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,H.jsxs)(`span`,{role:`status`,children:[c(`Selected`),`: `,wS(t,e),` / `,f]}),(0,H.jsxs)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,disabled:f===0,onClick:()=>a({selection:{mode:`all`,excluded:new Set}}),children:[c(`Select all matching`),` (`,f,`)`]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,onClick:()=>a({selection:_S()}),children:c(`Clear selection`)})]}),(0,H.jsxs)(`div`,{className:`max-w-full overflow-x-auto`,children:[(0,H.jsxs)(`table`,{className:`w-full text-start text-sm`,children:[(0,H.jsx)(`thead`,{children:(0,H.jsx)(`tr`,{className:`text-muted-foreground`,children:[`Select`,`Created`,`Session`,`Project directory`,`Resolved by`].map(e=>(0,H.jsx)(`th`,{className:`p-1`,children:c(e)},e))})}),(0,H.jsx)(`tbody`,{children:u.rows.map(t=>(0,H.jsxs)(`tr`,{className:`border-t border-border`,children:[(0,H.jsx)(`td`,{className:`p-1`,children:(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":`${Yd(e)}: ${c(`Select`)} ${t.sessionId??t.key}`,checked:t.selectable&&p(t),disabled:!t.selectable,onChange:()=>a({selection:TS(l.selection,t)})})}),(0,H.jsx)(`td`,{className:`p-1 whitespace-nowrap`,children:t.createdAt?Qp(t.createdAt):`—`}),(0,H.jsxs)(`td`,{className:`p-1 font-mono text-xs`,children:[(0,H.jsx)(`bdi`,{dir:`ltr`,children:t.sessionId??t.key}),t.handled&&(0,H.jsx)(`span`,{className:`ms-2 rounded border border-border px-1 font-sans text-muted-foreground`,children:c(`Handled`)})]}),(0,H.jsx)(`td`,{className:`p-1 font-mono text-xs break-all`,children:(0,H.jsx)(`bdi`,{dir:`ltr`,children:t.directory??t.recordedDirectory??`—`})}),(0,H.jsx)(`td`,{className:`p-1`,children:m[t.via]})]},t.key))})]}),u.total===0&&(0,H.jsx)(`p`,{className:`text-sm`,children:c(`No sessions match.`)}),(u.hiddenHandled??0)>0&&(0,H.jsxs)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:[c(`Handled sessions hidden`),`: `,u.hiddenHandled]})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,disabled:i||u.offset===0,onClick:()=>o(Math.max(0,u.offset-50),!1),children:c(`Previous`)}),(0,H.jsxs)(`span`,{children:[u.total?u.offset+1:0,`–`,Math.min(u.offset+50,u.total),` /`,` `,u.total]}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,disabled:i||u.offset+50>=u.total,onClick:()=>o(u.offset+50,!1),children:c(`Next`)})]})]}),(0,H.jsxs)(`label`,{className:`block text-sm`,children:[c(`Import model`),(0,H.jsx)(`div`,{dir:`ltr`,children:(0,H.jsxs)(Dr,{"aria-label":c(`Import model`),className:jS,value:l.modelChoice,onChange:e=>a({modelChoice:e.target.value}),children:[(0,H.jsx)(`option`,{value:``,children:c(`None`)}),e!==`claude-code`&&n?.opencode.models.map(e=>(0,H.jsxs)(`option`,{value:`${e.provider}/${e.model}`,children:[e.name,` (`,e.provider,`/`,e.model,`)`]},`${e.provider}/${e.model}`)),(0,H.jsxs)(`option`,{value:`external`,children:[c(`Saved external API`),n&&n.external.state!==`ready`?` (${c(`not ready`)})`:``]})]})})]}),e!==`claude-code`&&n&&!n.opencode.available&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c(`An import with an OpenCode signed-in model runs from the terminal or with /import in OpenCode.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c(`Configured, not tested.`)})]})}var FS=`omms-memory-import-hosts`;function IS(e,t){try{let n=t??localStorage,r=gS.filter(t=>e.hosts[t].enabled);n.setItem(FS,JSON.stringify({hosts:r,scope:e.scope,skills:e.skills}))}catch{}}function LS(e,t){try{let n=t??localStorage,r=JSON.parse(n.getItem(`omms-memory-import-hosts`)??`null`);if(!r||typeof r!=`object`)return e;let{hosts:i,scope:a,skills:o}=r;return Array.isArray(i)&&i.length>0&&i.every(e=>gS.includes(e))&&(a===`current-project`||a===`all-projects`)?{...e,scope:a,skills:typeof o==`boolean`?o:e.skills,hosts:Object.fromEntries(gS.map(t=>[t,{...e.hosts[t],enabled:i.includes(t)}]))}:e}catch{return e}}var RS={"missing-model":`The external API has no memoryModel in the global config`,"missing-url":`The external API has no memoryApiUrl in the global config`,"missing-key":`The external API key is missing in the OpenCode process; check memoryApiKey and its env:// or file:// source`,"unsupported-provider":`The memoryProvider in the global config is not supported for imports`};function zS(e,t,n,r){return!t.memories&&!t.profile?null:e.map(e=>{let i=t.hosts[e].modelChoice,a=null;return n?i?i===`external`&&n.external.state!==`ready`?a=RS[n.external.state]??`The external API is not ready`:e===`claude-code`&&i!==`external`?a=`Claude Code imports use the external API. Complete the external API settings.`:i!==`external`&&!n.opencode.models.some(e=>`${e.provider}/${e.model}`===i)&&(a=`No import model is ready. Connect a model in OpenCode or complete the external API settings.`):a=`No import model is ready. Connect a model in OpenCode or complete the external API settings.`:a=`Model readiness is unknown. Reload the page.`,a?`${Yd(e)}: ${r(a)}`:null}).find(Boolean)??null}var BS=[`running`,`cancelling`],VS=[`done`,`failed`,`cancelled`];function HS(e){if(!e||e.dryRun||!BS.includes(e.state))return null;let t=e.hosts?.find(e=>e.state===`running`);if(!t)return null;let n=t.phase===`profile`,r=(n?t.profileProcessed:t.processed)??0,i=(n?t.profileTotal:t.total)??0;return{host:t.host,phase:n?`profile`:t.phase===`skill-turns`?`skill-turns`:`memory`,done:r,total:i,percent:i>0?Math.min(100,Math.floor(r*100/i)):0}}function US(e,t,n){return!t||t.dryRun||!VS.includes(t.state)||t.state===`cancelled`||t.id===n?`none`:e?e.id===t.id&&VS.includes(e.state)?`none`:`dialog`:`banner`}function WS(e){return e?e.hosts?.length?e.hosts.reduce((e,t)=>e+(t.summary?.unitsFailed??0),0):e.summary?.unitsFailed??0:0}function GS(e){return e.hosts?.find(e=>e.error)?.error??e.error}var KS=`Could not reload the settings. Reload the page.`;async function qS(e,t){let[n]=await Promise.all([e(),t().catch(()=>{})]);return n===null?KS:null}var JS=`omms.import.dismissedEnd`;function YS(){try{return window.localStorage.getItem(JS)}catch{return null}}function XS(e){try{window.localStorage.setItem(JS,e)}catch{}}function ZS(e,t){let n=e.summary,r=n?.profile;return[[`sessions`,e.sessions],[`Memory units`,n?.unitsTotal??e.total],[`Pending memory units`,n?.unitsWouldImport],[`Imported memory units`,n?.unitsImported],[`Already handled memory units`,n?.unitsAlreadyHandled],[`Skipped memory units`,n?.unitsSkipped],[`Failed memory units`,n?.unitsFailed],[`Held-back turns`,n?.unitsHeldBack],[`Untimed turns`,n?.unitsUntimed],[`Skill turns to record`,n?.skillTurnsWouldRecord],[`Skill turns already recorded`,n?.skillTurnsAlreadyRecorded],[`Skill turns recorded`,n?.skillTurnsRecorded],[`Skill turns already present`,n?.skillTurnsAlreadyPresent],[`Load errors`,n?.loadErrors],[`Profile prompts`,r?r.promptsRecorded+r.promptsWouldRecord:void 0],[`Already handled profile prompts`,r?.promptsAlreadyHandled],[`Profile batches`,r?.batchesBuilt],[`Estimated profile analysis calls`,e.profileEstimate?.analysisCalls],[`Waiting prompts inside OMMS`,e.profileEstimate?.waitingPrompts],[`Unresolved sessions`,n?.unresolved]].filter(([,e])=>e!==void 0).map(([e,n])=>`${t(String(e))}: ${n}`).join(` · `)}function QS(e,t){let n=e.match(/^(Pi|OpenCode|Claude Code): /),r=n?e.slice(n[0].length):e,i=`Refresh the preview and retry.`,a=r.endsWith(` ${i}`),o=a?r.slice(0,-31):r,s=a&&/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*\.$/.test(o),c=t(o);return(0,H.jsxs)(H.Fragment,{children:[n&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`bdi`,{dir:`ltr`,children:n[1]}),`: `]}),s?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`bdi`,{dir:`ltr`,children:o.slice(0,-1)}),`.`]}):c===o?(0,H.jsx)(`bdi`,{dir:`ltr`,children:o}):c.split(/(Pi|OpenCode|Claude Code)/).map((e,t)=>/^(Pi|OpenCode|Claude Code)$/.test(e)?(0,H.jsx)(`bdi`,{dir:`ltr`,children:e},t):e),a&&(0,H.jsxs)(H.Fragment,{children:[` `,t(i)]})]})}function $S({job:e}){let t=Y();if(!e)return null;let n=e.hosts??(e.host?[{...e,host:e.host}]:[]);return(0,H.jsxs)(`div`,{role:`status`,className:`space-y-3 text-sm`,"aria-label":t(`Import results`),children:[(0,H.jsxs)(`p`,{children:[t(e.dryRun?`Preview (dry run)`:`Import`),` · `,t(e.state),e.activeHost&&(0,H.jsxs)(H.Fragment,{children:[` `,`· `,t(`Current host`),`: `,Yd(e.activeHost)]})]}),(0,H.jsxs)(`p`,{children:[t(`Combined counts`),`: `,ZS(e,t)]}),(0,H.jsx)(`ul`,{className:`space-y-2`,children:n.map(e=>(0,H.jsxs)(`li`,{className:`rounded border border-border p-2`,children:[(0,H.jsxs)(`p`,{children:[Yd(e.host),` ·`,` `,t(e.state===`no-work`?`No work to process`:e.state),e.phase&&(0,H.jsxs)(H.Fragment,{children:[` `,`·`,` `,t(e.phase===`profile`?`Learning profile`:e.phase===`preparing`?`preparing`:e.phase===`skill-turns`?`Skill turns`:`Memory extraction`)]})]}),e.phase===`profile`?(0,H.jsxs)(`p`,{children:[t(`Profile batches`),`: `,e.profileProcessed??0,`/`,e.profileTotal??0]}):(e.phase===`memory`||e.phase===`skill-turns`)&&e.total!==void 0&&(0,H.jsxs)(`p`,{children:[t(e.phase===`skill-turns`?`Skill turns`:`Memory units`),`:`,` `,e.processed??0,`/`,e.total]}),(0,H.jsx)(`p`,{children:ZS(e,t)}),(e.error||e.blocker)&&(0,H.jsx)(`p`,{role:`alert`,children:QS(e.error??e.blocker,t)}),e.report&&(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-background p-2 text-xs`,children:e.report})]},e.host))}),e.error&&(0,H.jsx)(`p`,{role:`alert`,children:QS(e.error,t)}),e.report&&(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-background p-2 text-xs`,children:e.report}),e.dryRun&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`Analysis calls are an estimate. Matching, deduplication, retries, and newly waiting prompts can add calls.`)})]})}function eC({job:e}){let t=Y(),n=e.state===`failed`,r=GS(e),i=WS(e);return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[n&&r&&(0,H.jsx)(`p`,{role:`alert`,children:QS(r,t)}),i>0&&(0,H.jsxs)(`p`,{children:[t(`Failed memory units`),`: `,i]}),!n&&(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:ZS({summary:{unitsImported:e.summary?.unitsImported,unitsFailed:e.summary?.unitsFailed??0}},t)})]})}function tC({job:e,onReload:t}){let n=Y(),r=(0,v.useRef)(null),[i,a]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(!e)return;let t=US(r.current,e,YS());r.current=e,t!==`none`&&a({job:e,view:t})},[e]);let o=()=>{i&&XS(i.job.id),a(null)},s=i?n(i.job.state===`failed`?`Import failed`:`Import successful 🎉`):``;return(0,H.jsxs)(H.Fragment,{children:[e?.state===`cancelled`&&!e.dryRun&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:n(`Import cancelled`)}),i?.view===`banner`&&(0,H.jsxs)(`div`,{role:`status`,className:`flex flex-wrap items-start justify-between gap-2 rounded-lg border border-border bg-card p-3`,children:[(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`p`,{className:`text-sm font-semibold`,children:s}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`The import finished while you were away.`)}),(0,H.jsx)(eC,{job:i.job})]}),(0,H.jsx)(K,{variant:`outline`,size:`sm`,onClick:o,children:n(`Dismiss`)})]}),(0,H.jsx)(zl,{open:i?.view===`dialog`,onOpenChange:e=>{e||(o(),t())},children:(0,H.jsxs)(q,{showCloseButton:!1,className:i?.job.state===`failed`?`border-destructive/40`:void 0,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:s}),(0,H.jsx)(Gl,{className:`sr-only`,children:s})]}),i&&(0,H.jsx)(eC,{job:i.job}),(0,H.jsx)(Ul,{children:(0,H.jsx)(K,{autoFocus:!0,onClick:()=>{o(),t()},children:n(`OK`)})})]})})]})}var nC={memory:`Memory units`,"skill-turns":`Skill turns`,profile:`Profile batches`};function rC({job:e}){let t=Y(),n=HS(e);return n?(0,H.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,H.jsx)(`div`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n.percent,"aria-label":t(`Import progress`),className:`h-2 w-full overflow-hidden rounded bg-muted`,children:(0,H.jsx)(`div`,{className:`h-full bg-green-600`,style:{width:`${n.percent}%`}})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[(0,H.jsx)(`bdi`,{dir:`ltr`,children:Yd(n.host)}),` · `,t(nC[n.phase]),`: `,n.done,` /`,` `,n.total,` · `,n.percent,`%`]})]}):null}var iC=[`queued`,`preparing`,`running`,`cancelling`];function aC(e){return e&&iC.includes(e.state)?e:null}function oC(e,t){if(!e||!t)return e;if(!e.hosts)return e.host===t?e:null;let n=e.hosts.find(e=>e.host===t);if(!n)return null;if(e.hosts.length===1)return e;let r=e.hosts.some(e=>e.state===`failed`||e.error);return{...e,state:n.state,activeHost:e.activeHost===t?t:null,error:n.error??(r?void 0:e.error),sessions:n.sessions,processed:n.processed,total:n.total,summary:n.summary,profileEstimate:n.profileEstimate,hosts:[n]}}function sC(e){return cy(()=>e())}function cC({profilePreset:e=0,host:t}={}){let n=Y(),[r,i]=(0,v.useState)(()=>{let e=vS();if(!t)return LS(e);for(let n of gS)e.hosts[n].enabled=n===t;return e}),{snapshot:a}=px(),o=a?.settings?.skillLearning?.value===!0,s=e=>o?e:{...e,skills:!1},c=s(r),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)({}),[b,x]=(0,v.useState)(!1),[S,C]=(0,v.useState)(``),w=(0,v.useRef)(!1),T=(0,v.useRef)({pi:0,opencode:0,"claude-code":0}),E=(0,v.useRef)(!0),D=(0,v.useRef)(uy()),O=kS(c),k=(0,v.useRef)(O);k.current=O;let A=oC(p,t),j=gS.filter(e=>c.hosts[e].enabled),M=t?[t]:gS,N=(0,v.useRef)(r.skills);(0,v.useEffect)(()=>{t||IS({...r,skills:N.current})},[r,t]);let P=p?.state===`running`||p?.state===`cancelling`||p?.state===`preparing`||p?.state===`queued`;function ee(e=!1){let t=D.current.begin();return X(`/api/settings/imports/current`).then(n=>{E.current&&t()&&m(e?aC(n.job):n.job)})}(0,v.useEffect)(()=>{E.current=!0;let e=()=>{g(null),X(`/api/settings/imports/readiness`).then(e=>{E.current&&f(e)}).catch(()=>{E.current&&f(null)})};e(),ee(!0).catch(()=>{});let t=sC(e);return()=>{E.current=!1,t()}},[]);function F(){qS(sy,ee).then(e=>{E.current&&e&&C(e)})}(0,v.useEffect)(()=>{if(!P)return;let e=setInterval(()=>{w.current||ee().catch(e=>{E.current&&C(e.message)})},1e3);return()=>clearInterval(e)},[P]),(0,v.useEffect)(()=>{e&&(i(e=>bS(e,{memories:!1,profile:!0,skills:!1,force:!0})),g(null))},[e]);function I(e){e.skills!==void 0&&(N.current=e.skills),g(null),i(t=>bS(t,e))}function te(e,t){g(null),i(n=>({...n,hosts:{...n.hosts,[e]:{...n.hosts[e],...t}}}))}async function L(e,t,n){let r=++T.current[e],a=xS(c,e);g(null),y(t=>({...t,[e]:!0}));try{let o=await X(`/api/settings/imports/sessions`,{method:`POST`,body:JSON.stringify({host:e,...c.hosts[e].source?{source:c.hosts[e].source.sourceToken}:{},scope:c.scope,...c.scope===`current-project`&&c.project?{project:c.project}:{},pathMaps:ES(c.maps),offset:t,limit:50,refresh:n,...SS(c)})});if(!E.current||T.current[e]!==r)return;i(t=>{if(xS(s(t),e)!==a)return t;let r=t.hosts[e],i=oS(r.page,o,n);return{...t,hosts:{...t.hosts,[e]:{...r,page:i.page,listedWith:a,selection:i.sameListing?r.selection:_S()}}}}),C(``)}catch(t){E.current&&T.current[e]===r&&C(t.message)}finally{E.current&&T.current[e]===r&&y(t=>({...t,[e]:!1}))}}let ne=DS(c),re=j.some(e=>e===`pi`&&d?.piReader.available===!1),R=j.map(e=>{let t=c.hosts[e];return t.page?t.listedWith===xS(c,e)?CS(c,e)>0&&wS(c,e)===0?`${Yd(e)}: ${n(`Select at least one session.`)}`:t.selection.mode===`ids`&&t.selection.picked.size>1e3?`${Yd(e)}: ${n(`Select at most 1000 sessions one by one, or use Select all matching.`)}`:null:`${Yd(e)}: ${n(`Options changed. Refresh the session list first.`)}`:`${Yd(e)}: ${n(`List sessions first.`)}`}).find(Boolean),ie=zS(j,c,d,n),ae=!!(h&&h.fingerprint===O&&h.id===p?.id&&p.dryRun&&p.state===`done`&&!p.error&&!p.hosts?.some(e=>e.error||e.blocker||[`failed`,`cancelled`,`not-run`].includes(e.state))),oe=b||P||j.some(e=>_[e])||re||!!(ne||R);async function se(e){if(w.current||oe||!e&&(!ae||ie))return;if(!e){let e=[c.memories&&n(`Project memories`),c.profile&&n(`User profile`),c.skills&&n(`Skill turns`)].filter(Boolean).join(` · `),t=j.map(e=>`${Yd(e)}: ${c.hosts[e].modelChoice===`external`?`${n(`Saved external API`)} (${d?.external.provider}/${d?.external.model})`:c.hosts[e].modelChoice}`).join(`
130
130
  `);if((c.memories||c.profile)&&!window.confirm([n(`This import makes model calls. Continue?`),j.map(Yd).join(` · `),n(c.scope===`current-project`?`Current project`:`All projects`),c.project,e,t,ZS(p??{},n),...(p?.hosts??[]).map(e=>`${Yd(e.host)}: ${ZS(e,n)}`)].filter(Boolean).join(`
131
- `)))return}w.current=!0,D.current.begin(),x(!0);let t=O;g(null);try{let n=await X(`/api/settings/imports`,{method:`POST`,body:JSON.stringify(OS(c,e))});if(!E.current)return;m(n),e&&t===k.current&&g({id:n.id,fingerprint:t}),C(``)}catch(e){E.current&&C(e.message),ee().catch(()=>{})}finally{w.current=!1,E.current&&x(!1)}}async function ce(){if(!w.current){w.current=!0,D.current.begin();try{let e=await X(`/api/settings/imports/current/cancel`,{method:`POST`,body:`{}`});E.current&&m(e.job)}catch(e){E.current&&C(e.message)}finally{w.current=!1}}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4 min-w-0`,"aria-label":n(t?`Sessions`:`Import chat history`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:n(t?`Sessions`:`Import chat history`)}),!t&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Conversations populate project facts. User prompts populate personal preferences, recurring patterns, and workflow steps.`)}),(0,H.jsxs)(`p`,{className:`flex flex-wrap gap-3 text-sm`,children:[(0,H.jsx)(`a`,{className:`underline`,href:J.project,onClick:e=>{e.preventDefault(),_f(J.project)},children:n(`Project memories`)}),(0,H.jsx)(`a`,{className:`underline`,href:J.profile,onClick:e=>{e.preventDefault(),_f(J.profile)},children:n(`User profile`)}),(0,H.jsx)(`a`,{className:`underline`,href:`${J.settings}#settings-section-profiles`,onClick:e=>{e.preventDefault(),_f(`${J.settings}#settings-section-profiles`)},children:n(`Profile identity in Settings`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Hosts keep their existing user identities. All hosts does not merge profiles with different identities.`)}),(0,H.jsx)(dS,{}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-sm`,children:[gS.map(e=>(0,H.jsxs)(`label`,{children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":Yd(e),checked:c.hosts[e].enabled,onChange:t=>te(e,{enabled:t.target.checked})}),` `,Yd(e)]},e)),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,onClick:()=>I({hosts:{pi:{...c.hosts.pi,enabled:!0},opencode:{...c.hosts.opencode,enabled:!0},"claude-code":{...c.hosts[`claude-code`],enabled:!0}}}),children:n(`All hosts`)}),(0,H.jsxs)(`span`,{role:`status`,children:[n(`Selected hosts`),`: `,j.length]})]})]}),(0,H.jsx)(NS,{draft:c,skillRecording:o,advanced:l,onChange:I,onAdvanced:()=>u(e=>!e)}),M.map(e=>(0,H.jsx)(PS,{host:e,draft:c,readiness:d,advanced:l,listing:!!_[e],onChange:t=>te(e,t),onList:(t,n)=>L(e,t,n),onUnresolved:()=>{I({scope:`all-projects`}),u(!0)}},e)),ne&&(0,H.jsx)(`p`,{role:`alert`,children:n(ne)}),!P&&(R||ie)&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:R??ie}),!ae&&!P&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Preview the current selection before starting an import.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(`button`,{type:`button`,className:MS,disabled:oe,onClick:()=>se(!0),children:n(`Preview (dry run)`)}),(0,H.jsx)(`button`,{type:`button`,className:MS,disabled:oe||!ae||!!ie,onClick:()=>se(!1),children:n(`Start import`)}),P&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,disabled:p?.state===`cancelling`,onClick:()=>ce(),children:n(`Cancel after current unit`)})]}),S&&(0,H.jsx)(`p`,{role:`alert`,children:QS(S,n)}),(0,H.jsx)(rC,{job:A}),(0,H.jsx)(tC,{job:A,onReload:F}),(0,H.jsx)($S,{job:A})]})}var lC=3e5,uC=null,dC,fC=new Set,pC=new Set;async function mC(e){try{uC=await X(`/api/memory/write-health${e?`?fresh=1`:``}`)}catch{}for(let e of[...fC,...pC])e()}function hC(e){return fC.add(e),fC.size===1&&(mC(!1),dC=setInterval(()=>{document.hidden||mC(!1)},lC)),()=>{fC.delete(e),fC.size===0&&clearInterval(dC)}}function gC(){return{health:(0,v.useSyncExternalStore)(hC,()=>uC,()=>null),recheck:()=>mC(!0)}}function _C(e){return pC.add(e),()=>pC.delete(e)}function vC(){return(0,v.useSyncExternalStore)(_C,()=>uC,()=>null)}function yC(e){let t=(t,...n)=>n.every((n,r)=>e[t+r]===n);return t(0,137,80,78,71,13,10,26,10)?`png`:t(0,255,216,255)?`jpeg`:t(0,71,73,70,56)?`gif`:t(0,82,73,70,70)&&t(8,87,69,66,80)?`webp`:null}async function bC(e){return e.size>20971520?`size`:yC(new Uint8Array(await e.slice(0,16).arrayBuffer()))?null:`type`}function xC(e,t){let n=Math.min(e,t);return{x:Math.floor((e-n)/2),y:Math.floor((t-n)/2),side:n}}async function SC(e){let t=await createImageBitmap(e);try{let{x:e,y:n,side:r}=xC(t.width,t.height),i=document.createElement(`canvas`);i.width=128,i.height=128;let a=i.getContext(`2d`);if(!a)throw Error(`This browser cannot draw the image`);a.imageSmoothingQuality=`high`,a.drawImage(t,e,n,r,r,0,0,128,128);let o=await new Promise(e=>i.toBlob(e,`image/png`));if(!o)throw Error(`This browser cannot save the image`);let s=new Uint8Array(await o.arrayBuffer()),c=``;for(let e of s)c+=String.fromCharCode(e);return btoa(c)}finally{t.close()}}function CC({host:e,onClose:t}){let n=Y(),{looks:r,setIcon:i,setImage:a,reset:o}=qx(),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1),h=s===null?r[e]:`reset`in s?{kind:`default`}:s.look,g=Yx.filter(e=>e.includes(l.trim().toLowerCase()));async function _(e){if(!e)return;f(``);let t=await bC(e);if(t){f(n(t===`size`?`The image is larger than 20 MB.`:`Only PNG, JPEG, WebP and GIF images are accepted.`));return}try{let t=await SC(e);c({look:{kind:`image`,image:`data:image/png;base64,${t}`},png:t})}catch{f(n(`This browser could not read the image.`))}}async function y(){if(s===null)return t();m(!0);try{`reset`in s?await o(e):s.look.kind===`icon`?await i(e,s.look.icon):s.png&&await a(e,s.png),t()}catch(e){f(e.message),m(!1)}}return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>!e&&!p&&t(),children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:`${n(`Change icon`)}: ${Yd(e)}`}),(0,H.jsx)(Gl,{children:n(`Every avatar is shown at the same size. Images are cropped to a square.`)})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(Zx,{host:e,look:h}),(0,H.jsxs)(`label`,{className:`inline-flex`,children:[(0,H.jsx)(`input`,{type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif`,className:`sr-only peer`,onChange:e=>void _(e.target.files?.[0])}),(0,H.jsxs)(`span`,{className:`inline-flex h-8 cursor-pointer items-center gap-1.5 rounded-[9px] border border-border px-3 text-ui font-medium hover:bg-interactive-hover peer-focus-visible:outline-2 peer-focus-visible:outline-ring`,children:[(0,H.jsx)(Re,{className:`size-4`,"aria-hidden":`true`}),n(`Upload image`)]})]}),(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>c({reset:!0}),children:[(0,H.jsx)(wt,{"aria-hidden":`true`}),n(`Reset to default`)]})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`PNG, JPEG, WebP or GIF, up to 20 MB.`)}),(0,H.jsx)(ad,{type:`search`,value:l,onChange:e=>u(e.target.value),"aria-label":n(`Search icons`),placeholder:n(`Search icons`)}),(0,H.jsxs)(`div`,{role:`group`,"aria-label":n(`Choose icon`),className:`grid max-h-48 grid-cols-6 gap-1 overflow-y-auto sm:grid-cols-8`,children:[g.map(e=>{let t=Jx[e],n=h.kind===`icon`&&h.icon===e;return(0,H.jsx)(`button`,{type:`button`,title:e,"aria-label":e,"aria-pressed":n,onClick:()=>c({look:{kind:`icon`,icon:e}}),className:V(`grid size-10 place-items-center rounded-[9px] border border-transparent text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,n&&`border-primary bg-primary/10 text-primary-label`),children:(0,H.jsx)(t,{className:`size-5`,"aria-hidden":`true`})},e)}),g.length===0&&(0,H.jsx)(`p`,{className:`col-span-full text-sm text-muted-foreground`,children:n(`No icon matches.`)})]}),d&&(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:d}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,onClick:t,disabled:p,children:n(`Cancel`)}),(0,H.jsx)(K,{type:`button`,onClick:()=>void y(),disabled:p||s===null,children:n(`Save`)})]})]})})}function wC({view:e,line:t,warning:n,notSetUp:r,current:i,compact:a}){let o=Y(),{looks:s}=qx(),[c,l]=(0,v.useState)(!1),u=e===`shared`?null:e,d=u?Yd(u):o(`Shared`),f=ud(e),p=u?(0,H.jsx)(Zx,{host:u,look:s[u],className:a?`size-8`:void 0}):(0,H.jsx)(Qx,{className:a?`size-8`:void 0});return(0,H.jsxs)(`div`,{className:`relative h-full min-w-0`,children:[(0,H.jsxs)(`a`,{href:f,"aria-current":i?`page`:void 0,onClick:e=>{e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),_f(f))},className:V(`flex h-full min-w-0 flex-col gap-3 rounded-xl border bg-card p-4 text-start transition-colors duration-150 hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,a&&`flex-row items-center gap-2 p-2 pe-10`,n?`border-[var(--status-warning)]`:`border-border`,i&&`bg-sidebar-accent`,r&&`opacity-70`),children:[p,(0,H.jsxs)(`span`,{className:`min-w-0 space-y-1`,children:[(0,H.jsx)(`span`,{className:`block break-words text-subsection-title font-semibold`,children:d}),(0,H.jsx)(`span`,{className:`block break-words text-xs text-muted-foreground`,children:n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`font-medium text-status-warning`,children:o(`Memories not saved`)}),!a&&(0,H.jsx)(`span`,{className:`block`,children:n})]}):t})]})]}),u&&(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:a?`icon-xs`:`icon-sm`,className:`absolute end-2 top-2`,"aria-label":`${o(`Change icon`)}: ${d}`,title:o(`Change icon`),onClick:()=>l(!0),children:(0,H.jsx)(mt,{"aria-hidden":`true`})}),c&&u&&(0,H.jsx)(CC,{host:u,onClose:()=>l(!1)})]})}function TC({current:e,statuses:t}){let n=Y(),{health:r}=gC(),i=r&&!r.ok?r.reason??``:null;return(0,H.jsx)(`nav`,{"aria-label":n(`Memory views`),children:(0,H.jsx)(`ul`,{className:`grid grid-cols-2 gap-2 lg:grid-cols-4`,children:ld.map(r=>{let a=r===`shared`?null:r,o=a?t.line(a):{text:`Every host`};return(0,H.jsx)(`li`,{className:`min-w-0`,children:(0,H.jsx)(wC,{compact:!0,view:r,current:r===e,line:nS(n,o),warning:a&&t.input(a).setUp?i:null,notSetUp:a?!t.input(a).setUp:!1})},r)})})})}function EC({reason:e,checking:t,onCheck:n}){let r=Y();return(0,H.jsxs)(`div`,{role:`alert`,className:`flex flex-wrap items-center gap-x-3 gap-y-2 rounded-xl border border-[var(--status-warning)] bg-card p-3 text-sm`,children:[(0,H.jsx)(Bt,{className:`size-4 shrink-0 text-status-warning`,"aria-hidden":`true`}),(0,H.jsxs)(`p`,{className:`min-w-0 flex-1 break-words`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:r(`Memories are not being saved.`)}),` `,e?/[.!?]$/.test(e)?e:`${e}.`:``,` `,r(`Fix the service named here, then press Check again.`)]}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:t,onClick:n,children:r(`Check again`)})]})}function DC(){let{health:e,recheck:t}=gC(),[n,r]=(0,v.useState)(!1);return!e||e.ok?null:(0,H.jsx)(EC,{reason:e.reason,checking:n,onCheck:()=>{r(!0),t().finally(()=>r(!1))}})}function OC({host:e,statuses:t,profilePreset:n}){let r=Y(),i=!t.input(e).setUp;return(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(TC,{current:e,statuses:t}),(0,H.jsx)(DC,{}),(0,H.jsx)(aS,{host:e,statuses:t}),i?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`${Yd(e)}: ${r(`OMMS did not find this host's chat history on this computer. Install the host and use it once, then reload this page.`)}`}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(cC,{host:e,profilePreset:n}),(0,H.jsx)(Mx,{hosts:[e],saved:!1,title:`Sessions that need a folder`,anchorId:`host-unresolved`}),(0,H.jsx)(zx,{host:e,backfill:t.backfill})]})]})}function kC({statuses:e,profilePreset:t}){let n=Y(),{health:r}=gC(),[i,a]=(0,v.useState)(!1),o=r&&!r.ok?r.reason??``:null;return(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Choose a host to see its history import, sessions and settings.`)}),(0,H.jsx)(`ul`,{className:`grid grid-cols-2 items-stretch gap-3 lg:grid-cols-4`,children:ld.map(t=>{let r=t===`shared`?null:t,i=r?e.line(r):{text:`Settings for every host`};return(0,H.jsx)(`li`,{className:`min-w-0`,children:(0,H.jsx)(wC,{view:t,line:nS(n,i),warning:r&&e.input(r).setUp?o:null,notSetUp:r?!e.input(r).setUp:!1})},t)})}),(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-label":n(`Import all hosts`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,"aria-expanded":i,"aria-controls":`memory-import-all`,onClick:()=>a(e=>!e),children:n(`Import all hosts`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Runs one import for every host you tick. It makes model calls and can cost money.`)})]}),(0,H.jsx)(`div`,{id:`memory-import-all`,hidden:!i,children:i&&(0,H.jsx)(cC,{profilePreset:t})})]})]})}var AC=[{value:`boost`,label:`Boost (default)`},{value:`rrf`,label:`Rank fusion (experimental)`}];function jC(e){return e===`boost`||e===`rrf`}function MC(e){return jC(e)?e:`boost`}function NC(e){return{keywordMode:e}}function PC(e){let t=t=>{let n=e[t]?.value;return typeof n==`string`&&n.trim().length>0};return e.rerankerEnabled?.value===!0&&t(`rerankerApiUrl`)&&t(`rerankerModel`)}function FC(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(`boost`),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1),u=(0,v.useRef)(void 0);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&(u.current=r,n(r),i(MC(r.settings.keywordMode?.globalValue)))}).catch(()=>{e&&c({kind:`load-failed`})});let r=cy(t=>{if(!e)return;let r=u.current,a=t;u.current=a,n(a),i(e=>!r||e===MC(r.settings.keywordMode?.globalValue)?MC(a.settings.keywordMode?.globalValue):e)});return()=>{e=!1,r()}},[]);let d=MC(t?.settings.keywordMode?.globalValue),f=t?.settings.keywordMode?.source===`project`,p=t?PC(t.settings):!1;async function m(){if(!t||l.current)return;l.current=!0,o(!0);let e=!1,n=!1;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:NC(r),revision:t.revision})}),e=!0}catch(e){n=e?.message?.includes(`Config changed`)===!0}let i=await sy()!==null;o(!1),l.current=!1,c(n?{kind:`save`,ok:e,reloaded:i,stale:n}:{kind:`save`,ok:e,reloaded:i})}function h(t){if(t.kind===`load-failed`)return e(`The keyword matching setting could not be loaded. Reload the page to try again.`);let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);return t.stale?ly(e(`Config changed. Reload settings and save again.`),n):t.ok?e(`Saved. New searches use this mode.`):ly(e(`The keyword matching setting could not be saved. Reload the page to try again.`),n)}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Keyword matching`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Keyword matching`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Search finds memories by meaning and by exact words from your prompt.`)}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),m()},children:[(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`keyword-mode`,children:e(`Word matching mode`)}),(0,H.jsx)(`div`,{className:`w-72 max-w-full`,children:(0,H.jsx)(Dr,{id:`keyword-mode`,className:`w-full`,value:r,disabled:a,onChange:e=>{jC(e.target.value)&&i(e.target.value)},children:AC.map(t=>(0,H.jsx)(`option`,{value:t.value,children:e(t.label)},t.value))})}),(0,H.jsx)(`span`,{id:`keyword-mode-help`,className:`block text-xs text-muted-foreground`,children:`keywordMode`})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(r===`rrf`?`Rank fusion merges a list by meaning and a list by words. A memory that contains a word of your prompt can be returned even when its meaning score is below the similarity threshold. Experimental: it has not been shown to find more relevant memories.`:`Boost adds a small score bonus to memories that contain a word of your prompt.`)}),p&&r===`rrf`&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`Rank fusion is not used while the reranker is on. Search uses the boost.`)}),f&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`A project file can override this setting. This page edits the global value.`)}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{type:`submit`,disabled:a||!t||r===d,children:e(`Save`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a||r===d,onClick:()=>i(d),children:e(`Cancel`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:h(s)})]})}var IC=`Enter a positive whole number.`,LC=[{key:`maxMemories`,id:`memory-maxMemories`,default:10,unit:`Results`,affects:`Maximum memory search results. Manual searches can request fewer; prompt retrieval uses this ceiling.`,min:1,max:2**53-1,accepted:IC,kind:`integer`},{key:`chatMessage.maxMemories`,id:`memory-chatMessage-maxMemories`,default:3,unit:`Memories`,affects:`Recent memories added at session start in OpenCode V1 and Claude Code. Pi and OpenCode V2 use prompt-based search instead.`,min:1,max:2**53-1,accepted:IC,kind:`integer`},{key:`autoCaptureMaxContextBytes`,id:`memory-autoCaptureMaxContextBytes`,default:131072,unit:`Bytes`,affects:`Conversation input sent to the memory-summary model through the shared capture pipeline. Smaller values can omit conversation text.`,min:16384,max:16777216,accepted:`Enter a whole number from 16,384 to 16,777,216.`,kind:`integer`},{key:`userProfileMaxContextBytes`,id:`memory-userProfileMaxContextBytes`,default:32768,unit:`Bytes`,affects:`OpenCode profile-learning input. Smaller values can omit prompts from that input. This control does not limit the other hosts' profile input.`,min:1024,max:16777216,accepted:`Enter a whole number from 1,024 to 16,777,216.`,kind:`integer`},{key:`retrievalMaxTokens`,id:`memory-retrievalMaxTokens`,default:2e3,unit:`Approximate tokens`,affects:`Automatic memory context, including profile text and formatting, added to agent requests across all hosts. Smaller values can show fewer or shorter memories.`,min:256,max:65536,accepted:`Enter a whole number from 256 to 65,536.`,kind:`integer`},{key:`similarityThreshold`,id:`memory-similarityThreshold`,default:.6,unit:`Similarity score`,affects:`Lowest score a memory needs to be returned by search. Lower values return more memories, including less relevant ones. Higher values can return none. The default depends on the embedder.`,min:0,max:1,accepted:`Enter a number from 0 to 1.`,kind:`decimal`}];[...LC.flatMap(e=>[e.unit,e.affects,e.accepted])];function RC(e,t){let n=typeof t==`string`?t.trim():``;if(!n||!/^-?\d+(\.\d+)?$/.test(n))return;let r=Number(n);if(!(e.kind===`integer`&&!Number.isInteger(r)))return r>=e.min&&r<=e.max?r:void 0}function zC(e){return e.toLocaleString(`en-US`)}function BC(e,t,n){let r=t[e.key];return typeof r==`string`?r:String(n[e.key]??e.default)}function VC(e,t){let n=!1;for(let r of LC){let i=e[r.key];if(typeof i!=`string`)continue;let a=RC(r,i);if(a===void 0)return!1;a!==(t[r.key]??r.default)&&(n=!0)}return n}function HC(e,t){let n={};if(!VC(e,t))return n;for(let r of LC){let i=e[r.key];if(typeof i!=`string`)continue;let a=RC(r,i);a!==(t[r.key]??r.default)&&(n[r.key]=a)}return n}var UC=`Config changed. Reload settings and save again.`;function WC(e){if(e===`Config changed. Reload settings and save again.`)return{kind:`stale`};let t=LC.map(e=>e.key.replace(/\./g,`\\.`)).join(`|`),n=RegExp(`^Invalid (${t}) setting\\b`).exec(e);return n?{kind:`invalid`,key:n[1]}:{kind:`unknown`}}function GC(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(()=>{e&&c({kind:`load-failed`})});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);let u={},d={};for(let e of LC){let n=t?.settings[e.key];u[e.key]=typeof n?.globalValue==`number`?n.globalValue:void 0,d[e.key]=typeof n?.default==`number`?n.default:e.default}let f=VC(r,u),p=`~/.config/omms/omms.jsonc`,m=e(`Edit ~/.config/omms/omms.jsonc directly to set these limits without the web UI.`).split(p);async function h(){if(!t||!f||l.current)return;let e=HC(r,u);Object.keys(e).length&&await _(e)}async function g(e){!t||a||l.current||t.settings[e]?.hasGlobal&&await _({[e]:null})}async function _(e){if(!t||l.current)return;l.current=!0,o(!0);let n=!1,r;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:e,revision:t.revision})}),n=!0}catch(e){r=e}let a=await sy()!==null;o(!1),l.current=!1,n?(i(t=>{let n={...t};for(let t of Object.keys(e))delete n[t];return n}),c({kind:`saved`,reloaded:a})):c({kind:`save-failed`,failure:WC(r?.message??``),reloaded:a})}function y(t){if(t.kind===`load-failed`)return e(`The memory settings could not be loaded. Reload the page to try again.`);if(t.kind===`saved`)return t.reloaded?e(`Saved. New memory operations use these limits.`):`${e(`Saved. New memory operations use these limits.`)} ${e(`Reload the page before saving again.`)}`;let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);if(t.failure.kind===`stale`)return ly(e(UC),n);if(t.failure.kind===`invalid`){let r=t.failure,i=LC.find(e=>e.key===r.key);return ly(`${e(`Invalid setting`)} ${i.key}: ${e(i.accepted)}`,n)}return ly(e(`The memory settings could not be saved.`),n)}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Memory limits`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Memory limits`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Byte limits count UTF-8 bytes.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Approximate tokens are estimated as ceil(UTF-8 bytes / 4). A provider can count more or fewer tokens for the same text.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`These controls do not delete stored data, set a spending limit, limit model replies, or control Graphify output.`)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[m[0],(0,H.jsx)(`code`,{dir:`ltr`,children:p}),m[1]]}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),h()},children:[(0,H.jsx)(`div`,{className:Wy,children:(0,H.jsxs)(`table`,{className:`w-full min-w-[56rem] text-sm`,children:[(0,H.jsx)(`caption`,{className:`sr-only`,children:e(`Memory limits`)}),(0,H.jsx)(`thead`,{className:Ky,children:(0,H.jsx)(`tr`,{children:[`Setting`,`Value`,`Default`,`Unit`,`Affects`].map(t=>(0,H.jsx)(`th`,{className:qy,children:e(t)},t))})}),(0,H.jsx)(`tbody`,{children:LC.map(n=>{let o=r[n.key],s=BC(n,r,u),c=typeof o==`string`&&RC(n,o)===void 0,l=t?.settings[n.key],f=l?.source===`project`,p=l?.hasGlobal===!0,m=p&&typeof l?.globalValue==`number`&&l.globalValue!==d[n.key];return(0,H.jsxs)(`tr`,{className:Jy,children:[(0,H.jsxs)(`td`,{className:Yy,children:[(0,H.jsx)(`code`,{dir:`ltr`,children:n.key}),f&&(0,H.jsxs)(`div`,{className:`mt-1 space-y-0.5 text-xs text-amber-600`,children:[(0,H.jsxs)(`p`,{children:[e(`Effective value`),`: `,String(l?.value??``),` (`,e(`project`),`)`]}),(0,H.jsx)(`p`,{children:e(`Project override is active. Changes to the global file may not take effect here.`)}),(0,H.jsx)(`p`,{children:e(`The project value stays in force. Saving edits the global file only.`)})]})]}),(0,H.jsxs)(`td`,{className:Yy,children:[(0,H.jsx)(`input`,{type:`number`,id:`${n.id}-input`,className:`w-36 tabular-nums`,inputMode:n.kind===`decimal`?`decimal`:`numeric`,step:n.kind===`decimal`?.01:1,min:n.min,max:n.max,"aria-label":`${n.key} ${e(`Value`)}`,"aria-describedby":`${n.id}-help`,"aria-invalid":c||void 0,disabled:a,value:s,onChange:e=>i(t=>({...t,[n.key]:e.target.value}))}),(0,H.jsx)(`span`,{id:`${n.id}-help`,className:`block text-xs ${c?`text-red-600`:`text-muted-foreground`}`,children:e(n.accepted)}),(0,H.jsx)(`button`,{type:`button`,"data-reset":n.key,className:`mt-1 block text-xs underline`,disabled:a||!p,"aria-label":`${n.key} ${e(`Reset to default`)}`,onClick:()=>void g(n.key),children:e(`Reset to default`)})]}),(0,H.jsxs)(`td`,{className:`${Yy} tabular-nums`,children:[zC(d[n.key]),m&&(0,H.jsx)(`span`,{className:`block text-xs text-amber-600`,children:e(`Differs from default`)})]}),(0,H.jsx)(`td`,{className:Yy,children:e(n.unit)}),(0,H.jsx)(`td`,{className:Yy,children:e(n.affects)})]},n.key)})})]})}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(`button`,{type:`submit`,disabled:a||!t||!f,onClick:()=>void h(),children:e(`Save memory limits`)}),(0,H.jsx)(`button`,{type:`button`,disabled:a,onClick:()=>i({}),children:e(`Cancel`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:y(s)})]})}var KC=`Enter a whole number from 50 to 100000.`;function qC(e){let t=e.trim();if(!/^\d+$/.test(t))return{ok:!1,message:KC};let n=Number(t);return n<50||n>1e5?{ok:!1,message:KC}:{ok:!0,value:n}}function JC(e,t){let n=qC(t);return n.ok?n.value===e?{kind:`none`}:{kind:`edit`,edits:{userProfileAutoCleanupInterval:n.value}}:{kind:`error`,message:n.message}}function YC(e,t){return e===t?null:{userProfileAutoCleanupEnabled:t}}var XC=500;function ZC(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),d=t?.settings.userProfileAutoCleanupEnabled?.globalValue!==!1,f=Number(t?.settings.userProfileAutoCleanupInterval?.globalValue??XC);(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>{e&&n(t)}).catch(t=>{e&&c(t.message)});let t=cy(t=>{e&&n(t)});return()=>{e=!1,t()}},[]),(0,v.useEffect)(()=>{t&&i(String(f))},[t,f]);async function p(n){if(t){u(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:n,revision:t.revision})}),c(e(`Saved. Changes apply at the next learning pass.`))}catch(e){c(e.message)}await sy(),u(!1)}}function m(){let t=JC(f,r);if(t.kind===`error`){o(e(t.message));return}o(``),t.kind===`edit`&&p(t.edits)}return(0,H.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-3`,children:[(0,H.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`Automatic profile cleanup`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`After a learning pass, OMMS merges duplicate profile items and removes vague ones by itself, in the background. Each run makes about one model call for every 100 items and takes several minutes on a large profile. Undo last automatic cleanup on the Profile page puts the changes back.`)}),(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:d,disabled:l||!t,onChange:e=>{let t=YC(d,e.target.checked);t&&p(t)}}),e(`Clean up the profile automatically`)]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,H.jsx)(`label`,{htmlFor:`auto-cleanup-interval`,children:e(`Run every this many analysed prompts`)}),(0,H.jsx)(`input`,{id:`auto-cleanup-interval`,className:`w-28 rounded border border-border bg-background px-2 py-1`,inputMode:`numeric`,value:r,disabled:l||!t,"aria-invalid":a?!0:void 0,"aria-describedby":a?`auto-cleanup-interval-error`:void 0,onChange:e=>{i(e.target.value),o(``)}}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:l||!t||r.trim()===String(f),onClick:m,children:e(`Save interval`)})]}),a&&(0,H.jsx)(`p`,{id:`auto-cleanup-interval-error`,role:`alert`,className:`text-sm text-destructive`,children:a}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:s})]})}function QC({preview:e,job:t,busy:n,onStart:r,onPause:i}){let a=Y(),o=t.state===`running`;return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,H.jsxs)(`p`,{children:[a(`Prompts waiting for profile learning`),`: `,e.waiting,` ·`,` `,a(`Estimated profile analysis calls`),`: `,e.calls]}),t.state!==`idle`&&(0,H.jsxs)(`p`,{role:`status`,children:[a(`Batches done`),`: `,t.batchesBuilt,` · `,a(`Prompts waiting`),`: `,t.remaining,t.state===`paused`&&` · ${a(`Paused`)}`,t.state===`done`&&` · ${a(`Finished`)}`]}),t.state===`superseded`&&(0,H.jsx)(`p`,{children:a(`A newer catch-up run took over.`)}),t.state===`failed`&&(0,H.jsxs)(`p`,{className:`text-red-600`,children:[a(`Stopped`),`: `,t.reason??`error`]}),o?(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,onClick:i,children:a(`Pause`)}):(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:n||e.waiting===0,onClick:r,children:a(t.state===`idle`||t.state===`done`?`Analyse waiting prompts`:`Resume`)})]})}function $C({onReanalyse:e}={}){let t=Y(),[n,r]=(0,v.useState)(),[i,a]=(0,v.useState)({state:`idle`,batchesBuilt:0,remaining:0}),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(``);async function f(){let e=await X(`/api/settings/profile/catch-up`);r(e.preview),a(e.job)}(0,v.useEffect)(()=>{f().catch(e=>d(e.message)),X(`/api/web/status`).then(e=>s(!!e.isLocal)).catch(()=>{})},[]),(0,v.useEffect)(()=>{if(i.state!==`running`)return;let e=setInterval(()=>void f().catch(()=>{}),2e3);return()=>clearInterval(e)},[i.state]);async function p(){if(!n)return;let e=i.state!==`idle`&&i.state!==`done`;if(window.confirm(`${t(`Start profile learning for the waiting prompts? Model calls`)}: ${n.calls}`)){l(!0);try{a(await X(`/api/settings/profile/catch-up/${e?`resume`:`start`}`,{method:`POST`,body:`{}`})),d(``)}catch(e){d(e.message)}l(!1)}}async function m(){try{a(await X(`/api/settings/profile/catch-up/pause`,{method:`POST`,body:`{}`}))}catch(e){d(e.message)}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":t(`Profile learning`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:t(`Profile learning`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Analyse waiting prompts reads prompts already inside OMMS with the saved external API, 50 eligible prompts per analysis call. Completed history is not re-analysed. Preferences, patterns, and workflows are the outputs.`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Analysis calls are an estimate. Matching, deduplication, retries, and newly waiting prompts can add calls.`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Re-analyse chat history opens a forced profile-only import. It preserves your profile and project memories. Preview and confirmation are required. Each profile prompt can be forcibly re-analysed once.`)}),e&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,onClick:e,children:t(`Re-analyse chat history`)}),n&&(o?(0,H.jsx)(QC,{preview:n,job:i,busy:c,onStart:()=>void p(),onPause:()=>void m()}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Open this page on the computer that runs OMMS to start a catch-up run.`)})),u&&(0,H.jsx)(`p`,{role:`alert`,children:u}),(0,H.jsx)(ZC,{})]})}function ew(e){let t=typeof e==`string`?e.trim():``;if(!t||!/^\d+$/.test(t))return;let n=Number(t);return n>=500&&n<=3e4?n:void 0}function tw(e){return/^(env:\/\/[A-Za-z_][A-Za-z0-9_]*|file:\/\/.+)$/.test(e.trim())}function nw(e){try{let t=new URL(e.trim()).hostname.toLowerCase();return!(t===`localhost`||t===`::1`||t===`[::1]`||/^127\.\d+\.\d+\.\d+$/.test(t))}catch{return!1}}function rw(e){if(e.enabled&&(e.url.trim().length===0||e.model.trim().length===0))return{field:`url-model`};if(e.key.trim().length>0&&!tw(e.key))return{field:`key`};if(ew(e.timeout)===void 0)return{field:`timeout`}}function iw(e){return rw(e)===void 0}function aw(e){return{rerankerEnabled:e.enabled,rerankerApiUrl:e.url.trim()||null,rerankerModel:e.model.trim()||null,rerankerApiKey:e.key.trim()||null,rerankerTimeoutMs:ew(e.timeout)??4e3}}function ow(e){let t=e?.settings,n=e?.secrets.rerankerApiKey?.reference;return{enabled:t?.rerankerEnabled?.value===!0,url:typeof t?.rerankerApiUrl?.value==`string`?t.rerankerApiUrl.value:``,model:typeof t?.rerankerModel?.value==`string`?t.rerankerModel.value:``,key:e?.secrets.rerankerApiKey?.set?`${e.secrets.rerankerApiKey.source}://${n??``}`:``,timeout:typeof t?.rerankerTimeoutMs?.value==`number`?String(t.rerankerTimeoutMs.value):`4000`}}function sw(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({enabled:!1,url:``,model:``,key:``,timeout:`4000`}),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1),u=(0,v.useRef)(void 0);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&(u.current=r,n(r),i(ow(r)))}).catch(()=>{e&&c({kind:`load-failed`})});let r=cy(t=>{if(!e)return;let r=u.current,a=t;u.current=a,n(a),i(e=>!r||JSON.stringify(e)===JSON.stringify(ow(r))?ow(a):e)});return()=>{e=!1,r()}},[]);let d=rw(r),f=iw(r),p=r.url.trim().length>0&&nw(r.url);function m(e){i(t=>({...t,...e}))}async function h(){if(a||l.current||!f)return;l.current=!0,o(!0);let e=!1,t;try{let n=await X(`/api/settings/reranker/test`,{method:`POST`,body:JSON.stringify({rerankerApiUrl:r.url.trim()||void 0,rerankerModel:r.model.trim()||void 0,rerankerApiKey:r.key.trim()||void 0,rerankerTimeoutMs:ew(r.timeout)??4e3})});e=n.success===!0,t=n.code}catch{t=`reranker_unreachable`}o(!1),l.current=!1,c({kind:`test`,ok:e,code:t})}async function g(){if(!t||!f||l.current)return;l.current=!0,o(!0);let e=!1,n=!1;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:aw(r),revision:t.revision})}),e=!0}catch(e){n=e?.message?.includes(`Config changed`)===!0}let i=await sy()!==null;o(!1),l.current=!1,c(n?{kind:`save`,ok:e,reloaded:i,stale:n}:{kind:`save`,ok:e,reloaded:i})}function _(t){if(t.kind===`load-failed`)return e(`The reranker settings could not be loaded. Reload the page to try again.`);if(t.kind===`test`)return t.ok?e(`Test passed.`):`${e(`Test failed:`)} ${t.code??`reranker_unreachable`}`;let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);return t.stale?ly(e(`Config changed. Reload settings and save again.`),n):t.ok?e(`Saved. New searches use these settings.`):ly(e(`The reranker settings could not be saved. Reload the page to try again.`),n)}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Reranker`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Reranker`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The reranker reorders the best memory search results with your reranker server and keeps the top results.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The reranker sends the prompt and the text of candidate memories to the server URL. A server on the same machine is recommended.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`A project file cannot change these settings. The reranker settings are global only.`)}),!r.enabled&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Search is unchanged while the switch is off.`)}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),g()},children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`checkbox`,id:`reranker-enabled`,role:`switch`,checked:r.enabled,disabled:a,"aria-label":e(`Use a reranker`),onChange:e=>m({enabled:e.target.checked})}),(0,H.jsx)(Fp,{htmlFor:`reranker-enabled`,children:e(`Use a reranker`)})]}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-url`,children:e(`Server URL`)}),(0,H.jsx)(ad,{type:`url`,id:`reranker-url`,dir:`ltr`,placeholder:`http://127.0.0.1:3008/v1`,disabled:a,value:r.url,"aria-invalid":d?.field===`url-model`||void 0,"aria-describedby":`reranker-url-help`,onChange:e=>m({url:e.target.value})}),(0,H.jsx)(`span`,{id:`reranker-url-help`,className:`block text-xs text-muted-foreground`,children:d?.field===`url-model`?e(`Enter the server URL and model before turning the reranker on.`):`rerankerApiUrl`}),p&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`This URL is not on this machine: memory text leaves this machine.`)})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-model`,children:e(`Model`)}),(0,H.jsx)(ad,{type:`text`,id:`reranker-model`,dir:`ltr`,disabled:a,value:r.model,"aria-invalid":d?.field===`url-model`||void 0,onChange:e=>m({model:e.target.value})}),(0,H.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:`rerankerModel`})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-key`,children:e(`Key`)}),(0,H.jsx)(ad,{type:`text`,id:`reranker-key`,dir:`ltr`,disabled:a,value:r.key,"aria-invalid":d?.field===`key`||void 0,"aria-describedby":`reranker-key-help`,onChange:e=>m({key:e.target.value})}),(0,H.jsx)(`span`,{id:`reranker-key-help`,className:`block text-xs text-muted-foreground`,children:d?.field===`key`?e(`The key must be an env:// or file:// reference, or left empty.`):e(`Optional env:// or file:// key reference.`)})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-timeout`,children:e(`Timeout`)}),(0,H.jsx)(ad,{type:`number`,id:`reranker-timeout`,className:`tabular-nums`,inputMode:`numeric`,step:1,min:500,max:3e4,disabled:a,value:r.timeout,"aria-invalid":d?.field===`timeout`||void 0,"aria-describedby":`reranker-timeout-help`,onChange:e=>m({timeout:e.target.value})}),(0,H.jsx)(`span`,{id:`reranker-timeout-help`,className:`block text-xs text-muted-foreground`,children:d?.field===`timeout`?e(`Enter a whole number from 500 to 30,000.`):e(`milliseconds`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The default of 4000 keeps the search inside OpenCode V2's 5-second wait. A value over 5000 can make OpenCode V2 send the request with no memory.`)})]})]}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{type:`submit`,disabled:a||!t||!f,onClick:()=>void g(),children:e(`Save`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a||!f,onClick:()=>void h(),children:e(`Test`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a,onClick:()=>i(ow(t)),children:e(`Cancel`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:_(s)})]})}var cw=e=>{let t=e?.value??e?.globalValue;return t==null||t===``?null:String(t)};function lw(e,t){let n=cw(e?.maxMemories),r=cw(e?.similarityThreshold),i=cw(e?.keywordMode),a=cw(e?.rerankerModel);return{profile:{text:`Prompts waiting for profile learning, and re-analysis of old chats`},limits:n&&r?{text:`Results {results} · Similarity {similarity}`,params:{results:n,similarity:r}}:{text:`How many memories a search returns`},keywords:i?{text:`Mode: {mode}`,params:{mode:i}}:{text:`Keyword matching`},reranker:cw(e?.rerankerApiUrl)?a?{text:`On · {model}`,params:{model:a}}:{text:`On`}:{text:`Off`},maps:t?{text:`{saved} saved · {ignored} ignored`,params:t}:{text:`Saved maps and ignored directories`}}}function uw({id:e,title:t,summary:n,children:r}){return(0,H.jsxs)(`details`,{id:e,"data-shared-row":!0,className:`scroll-mt-20 rounded-xl border border-border bg-card`,children:[(0,H.jsxs)(`summary`,{className:`flex min-h-11 cursor-pointer flex-wrap items-baseline gap-x-3 gap-y-1 rounded-xl p-4 focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h2`,{className:`text-subsection-title font-semibold`,children:t}),(0,H.jsx)(`span`,{className:`min-w-0 break-words text-xs text-muted-foreground`,children:n})]}),(0,H.jsx)(`div`,{className:`border-t border-border p-4`,children:r})]})}function dw({statuses:e,onReanalyse:t}){let n=Y(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)();(0,v.useEffect)(()=>{let e=!0,t=()=>{X(`/api/settings`).then(t=>e&&i(t.settings)).catch(()=>{}),X(`/api/settings/import-maps`).then(t=>e&&o({saved:t.saved.length,ignored:t.ignored?.length??0})).catch(()=>{})};t();let n=cy(t);return()=>{e=!1,n()}},[]);let s=lw(r,a),c=e=>nS(n,s[e]);return(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(TC,{current:`shared`,statuses:e}),(0,H.jsxs)(`header`,{className:`space-y-1`,children:[(0,H.jsx)(`h2`,{className:`text-page-title font-semibold`,children:n(`Shared`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`These settings apply to every host. Open a row to change it.`)})]}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(uw,{id:`shared-profile`,title:n(`Profile learning`),summary:c(`profile`),children:(0,H.jsx)($C,{onReanalyse:t})}),(0,H.jsx)(uw,{id:`shared-limits`,title:n(`Memory limits`),summary:c(`limits`),children:(0,H.jsx)(GC,{})}),(0,H.jsx)(uw,{id:`shared-keywords`,title:n(`Keyword matching`),summary:c(`keywords`),children:(0,H.jsx)(FC,{})}),(0,H.jsx)(uw,{id:`shared-reranker`,title:n(`Reranker`),summary:c(`reranker`),children:(0,H.jsx)(sw,{})}),(0,H.jsx)(uw,{id:`shared-directory-maps`,title:n(`Directory maps`),summary:c(`maps`),children:(0,H.jsx)(Mx,{hosts:[]})})]})]})}var fw=3e3;function pw(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({pi:null,opencode:null,"claude-code":null}),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(!1),p=(0,v.useRef)(sS(i,e=>u(e.message))),m=(0,v.useRef)(sS(o,e=>u(e.message))),h=()=>p.current(X(`/api/settings/backfill`)),g=()=>m.current(X(`/api/settings/backfill/runs`));(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>e&&n(t)).catch(t=>e&&u(t.message)),h(),g();for(let t of[`pi`,`opencode`])X(`/api/settings/models?host=${t}`).then(n=>e&&c(e=>({...e,[t]:n}))).catch(()=>e&&c(e=>({...e,[t]:{available:!1}})));let t=cy(t=>{e&&(n(t),h())}),r=setInterval(()=>{e&&(h(),g())},fw);return()=>{e=!1,clearInterval(r),t()}},[]);async function _(n){if(t){f(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:n,revision:t.revision})}),u(e(`Saved. Changes apply at the next run.`))}catch(e){u(e.message)}await sy(),f(!1)}}async function y(t,n){f(!0);let r=a?.[t]?.run?.state===`running`;try{await X(`/api/settings/backfill/${t}/${n}`,{method:`POST`,body:`{}`}),u(e(n===`pause`?r?`Pausing after the current exchange.`:`Paused. No import starts until you resume.`:`Backfill started.`))}catch(e){u(e.message)}await Promise.all([g(),h()]),f(!1)}function b(t,n){try{_(Fx(t,n.trim()))}catch(t){u(e(t.message))}}return{snapshot:t,rows:r,runs:a,lists:s,message:l,busy:d,save:_,control:y,saveModel:b,setMessage:u}}var mw=6e4;function hw(){let e=pw(),[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(null),a=Y();(0,v.useEffect)(()=>{let e=!0,t=()=>void X(`/api/settings/imports/readiness`).then(t=>e&&n(t)).catch(()=>e&&n(null));t();let r=cy(t);return()=>{e=!1,r()}},[]),(0,v.useEffect)(()=>{let e=!0,t=()=>void X(`/api/settings/last-saved`).then(t=>e&&i(t.hosts)).catch(()=>void 0);t();let n=cy(t),r=setInterval(t,mw);return()=>{e=!1,n(),clearInterval(r)}},[]);let o=e=>{let t=Mi(new Date(e),new Date),n=tm(e);return t===`earlier`?`${em(e)} ${n}`:a(t===`today`?`today {time}`:`yesterday {time}`).replaceAll(`{time}`,n)},s=n=>({host:n,run:e.runs?.[n]?.run??null,pending:e.rows[n]?.counts.pending??0,cutoff:e.rows[n]?.cutoff??null,runNowUnavailable:e.runs?.[n]?.runNowUnavailable??null,setUp:t?.defaultSourceFound?.[n]!==!1,formatDate:em,lastSaved:r?.[n]??null,formatSaved:o});return{backfill:e,readiness:t,input:s,status:e=>eS(s(e)),line:e=>tS(s(e))}}function gw(){let e=fd(yf().split(`#`)[0]),t=hw(),[n,r]=(0,v.useState)(0);(0,v.useEffect)(()=>{cf(window.location.hash)},[e]);function i(){r(e=>e+1),_f(J.memory)}return(0,H.jsxs)(`div`,{className:`settings-view`,children:[e===null&&(0,H.jsx)(kC,{statuses:t,profilePreset:n}),e===`shared`&&(0,H.jsx)(dw,{statuses:t,onReanalyse:i}),e!==null&&e!==`shared`&&(0,H.jsx)(OC,{host:e,statuses:t,profilePreset:n})]})}var _w=`/api/chat`,vw={"Content-Type":`application/json`},yw=15e4,bw=(e,t,n,r)=>oi(`${_w}${e}`,{method:t,headers:vw,body:n===void 0?void 0:JSON.stringify(n),timeout:r}),xw={status:()=>oi(`${_w}/status`),list:()=>oi(`${_w}/conversations`),get:e=>oi(`${_w}/conversations/${encodeURIComponent(e)}`),create:(e,t)=>bw(`/conversations`,`POST`,{folderId:e,scopeTag:t}),rename:(e,t)=>bw(`/conversations/${encodeURIComponent(e)}`,`PATCH`,{title:t}),move:(e,t)=>bw(`/conversations/${encodeURIComponent(e)}`,`PATCH`,{folderId:t}),remove:e=>bw(`/conversations/${encodeURIComponent(e)}`,`DELETE`),removeMany:e=>bw(`/conversations/bulk-delete`,`POST`,{ids:e}),ask:(e,t,n,r=!1)=>bw(`/conversations/${encodeURIComponent(e)}/messages`,`POST`,{question:t,scopeTag:n,retry:r},yw),createFolder:e=>bw(`/folders`,`POST`,{name:e}),renameFolder:(e,t)=>bw(`/folders/${encodeURIComponent(e)}`,`PATCH`,{name:t}),removeFolder:e=>bw(`/folders/${encodeURIComponent(e)}`,`DELETE`)},Sw={conversations:[],folders:[],readOnly:!1};function Cw(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(Sw),[i,a]=(0,v.useState)([]),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(null),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(async()=>{let e=await xw.list();e.success&&e.data&&r(e.data)},[]);(0,v.useEffect)(()=>{xw.status().then(e=>e.success&&e.data&&t(e.data)),oi(`/api/tags`).then(e=>e.success&&e.data&&a(e.data.project)),m()},[m]);let h=(0,v.useCallback)(e=>e===null||i.some(t=>t.tag===e),[i]),g=(0,v.useCallback)(async e=>{let t=await xw.get(e);if(!t.success||!t.data)return void U.error(t.error??``);s(e),l(t.data);let n=t.data.conversation.scopeTag;d(h(n)?n:void 0)},[h]),_=(0,v.useCallback)(async(e=null)=>{let t=await xw.create(e,null);if(!t.success||!t.data)return void U.error(t.error??``);await m(),s(t.data.id),l({conversation:t.data,messages:[]}),d(null)},[m]),y=(0,v.useCallback)(async(e,t=!1)=>{if(u===void 0)return;let n=o;if(!n){let e=await xw.create(null,u);if(!e.success||!e.data)return void U.error(e.error??``);n=e.data.id,s(n),l({conversation:e.data,messages:[]})}p(e);let r=await xw.ask(n,e,u,t);if(p(null),!r.success||!r.data)return void U.error(r.error??``);await g(n),await m()},[o,u,g,m]),b=(0,v.useCallback)(e=>{let t=c?.messages??[],n=t[t.findIndex(t=>t.id===e.id)-1];n?.role===`user`&&y(n.content,!0)},[c,y]),x=(0,v.useCallback)(async e=>{o&&e.includes(o)&&(s(null),l(null),d(null)),await m()},[o,m]),S=(0,v.useCallback)(async e=>{let t=e.length===1?await xw.remove(e[0]):await xw.removeMany(e);if(!t.success)return void U.error(t.error??``);await x(e)},[x]),C=(0,v.useCallback)(async e=>{let t=n.conversations.filter(t=>t.folderId===e).map(e=>e.id),r=await xw.removeFolder(e);if(!r.success)return void U.error(r.error??``);await x(t)},[n,x]),w=(0,v.useCallback)(async e=>{let t=await e();return t.success?(await m(),o&&await g(o),null):t.code===`conflict`?`conflict`:t.error??`error`},[m,o,g]);return{status:e,list:n,projects:i,activeId:o,detail:c,scope:u,setScope:d,pending:f,scopeMissing:!!c&&u===void 0,open:g,newChat:_,ask:y,retry:b,deleteChats:S,deleteFolder:C,change:w}}function ww(e,t){return e||t?[`S`,`P`,`K`]:[`S`,`P`]}function Tw(e,t,n){return e?e.kind===`memory`?t.has(e.id):e.kind===`skill`&&n.has(e.id):!1}function Ew(e,t,n){return e.modified&&e.lastAppliedAt!==null?t(`chat-skill-modified-yes`,{date:n(e.lastAppliedAt)}):t(`chat-skill-modified-no`)}var Dw=e=>`chat-skill-kind-${e}`;function Ow(e,t){let n=[[t(`chat-search-phrases`),e.queries],[t(`chat-search-tags`),e.tags],[t(`chat-search-categories`),e.profileCategories]];return e.skills&&n.push([t(`chat-search-skills`),e.skills]),e.skillIntent&&n.push([t(`chat-search-skill-intent`),[t(`chat-intent-${e.skillIntent}`)]]),n}function kw(e){return e.startsWith(`P`)?`border-blue-600/40 bg-blue-500/10 text-blue-700 hover:bg-blue-500/20 dark:text-blue-400`:e.startsWith(`K`)?`border-violet-600/40 bg-violet-500/10 text-violet-700 hover:bg-violet-500/20 dark:text-violet-400`:`border-primary/30 bg-primary/10 text-primary-label hover:bg-primary/20`}function Aw({label:e,deleted:t,onOpen:n}){let{t:r}=G();return(0,H.jsx)(`button`,{type:`button`,"aria-haspopup":`dialog`,"aria-label":r(`chat-cite-label`,{label:e}),onClick:n,className:V(`mx-0.5 inline-flex h-5 cursor-pointer items-center rounded-md border px-1.5 align-baseline text-[11px] font-medium tabular-nums transition-colors duration-200 ease-in focus-visible:outline-2 focus-visible:outline-ring`,kw(e),t&&`line-through opacity-70`),children:e})}var jw={S:`chat-legend-memory`,P:`chat-legend-profile`,K:`chat-legend-skill`};function Mw({label:e,text:t}){return(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:V(`inline-flex h-5 items-center rounded-md border px-1.5 text-[11px] font-medium`,kw(e)),children:e}),(0,H.jsx)(`span`,{dir:`auto`,children:t})]})}function Nw({letters:e}){let{t}=G();return(0,H.jsx)(`p`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground`,children:e.map(e=>(0,H.jsx)(Mw,{label:e,text:t(jw[e])},e))})}var Pw=`__all__`,Fw=`__choose__`;function Iw({projects:e,scope:t,scopeMissing:n,disabled:r,onScope:i,onAsk:a}){let{t:o}=G(),[s,c]=(0,v.useState)(``),l=r||t===void 0;function u(e){e?.preventDefault(),!(l||!s.trim())&&(a(s.trim()),c(``))}function d(e){e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),u())}return(0,H.jsxs)(`form`,{onSubmit:u,className:`grid gap-2 rounded-2xl border border-border bg-card p-2.5 shadow-sm`,children:[(0,H.jsx)(Ip,{value:s,disabled:r,rows:2,maxLength:4e3,placeholder:o(`chat-input-placeholder`),"aria-label":o(`chat-input-placeholder`),className:`min-h-14 resize-none border-0 bg-transparent shadow-none focus-visible:ring-0`,onChange:e=>c(e.target.value),onKeyDown:d}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsxs)(`label`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`shrink-0`,children:o(`chat-scope-label`)}),(0,H.jsxs)(Dr,{className:`h-8 min-w-0 max-w-64 flex-1 text-xs`,"aria-label":o(`chat-scope-label`),disabled:r,value:t===void 0?Fw:t??Pw,onChange:e=>{let t=e.target.value;t!==Fw&&i(t===Pw?null:t)},children:[t===void 0?(0,H.jsx)(`option`,{value:Fw,children:o(`chat-scope-missing`)}):null,(0,H.jsx)(`option`,{value:Pw,children:o(`chat-scope-all`)}),e.map(e=>(0,H.jsx)(`option`,{value:e.tag,children:e.projectName||e.displayName||e.tag},e.tag))]})]}),(0,H.jsxs)(K,{type:`submit`,size:`sm`,disabled:l||!s.trim(),"aria-label":o(`chat-send`),children:[(0,H.jsx)(ee,{}),o(`chat-send`)]})]}),n?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`chat-scope-choose`)}):null]})}function Lw({status:e}){let{t}=G();return(0,H.jsxs)(`div`,{role:`alert`,className:`grid gap-2 rounded-xl border border-border bg-card p-4`,children:[(0,H.jsxs)(`p`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,H.jsx)(Bt,{className:`size-4 shrink-0`,"aria-hidden":`true`}),t(`chat-setup-title`)]}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`chat-setup-body`,{names:e.missing.join(`, `)})}),(0,H.jsxs)(`a`,{href:`/settings#settings-section-external-api`,className:`inline-flex w-fit items-center gap-1.5 text-sm text-primary-label underline-offset-4 hover:underline`,children:[(0,H.jsx)(Ot,{className:`size-3.5`,"aria-hidden":`true`}),t(`chat-setup-link`)]})]})}var Rw=`__none__`;function zw({folders:e,folderId:t,onMove:n}){let{t:r}=G();return(0,H.jsxs)(Dr,{className:`h-8 w-full text-xs`,"aria-label":r(`chat-move`),value:t??Rw,onChange:e=>n(e.target.value===Rw?null:e.target.value),children:[(0,H.jsx)(`option`,{value:Rw,children:r(`chat-no-folder`)}),e.map(e=>(0,H.jsx)(`option`,{value:e.id,children:e.name},e.id))]})}function Bw(e){let{t}=G(),{conversation:n,active:r,selectMode:i}=e,a=n.title||t(`chat-new`);return i?(0,H.jsx)(`li`,{children:(0,H.jsxs)(`label`,{className:`flex min-h-11 md:min-h-9 cursor-pointer items-center gap-2 rounded-lg px-2 text-sm hover:bg-interactive-hover`,children:[(0,H.jsx)(Qo,{checked:e.selected,onCheckedChange:e.onToggleSelect,"aria-label":t(`chat-select-chat`,{title:a})}),(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 flex-1 truncate`,title:a,children:a})]})}):(0,H.jsxs)(`li`,{children:[(0,H.jsxs)(`div`,{className:V(`group flex items-center gap-1 rounded-lg`,r?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-interactive-hover`),children:[(0,H.jsx)(`button`,{type:`button`,className:`min-h-11 md:min-h-9 min-w-0 flex-1 cursor-pointer overflow-hidden rounded-lg px-2 text-start text-sm focus-visible:outline-2 focus-visible:outline-ring`,"aria-current":r?`true`:void 0,title:a,onClick:e.onOpen,children:(0,H.jsx)(`span`,{dir:`auto`,className:`block truncate`,children:a})}),e.readOnly?null:(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`me-1 shrink-0 text-muted-foreground`,"aria-label":t(`chat-chat-actions`),"aria-expanded":e.actionsOpen,onClick:e.onToggleActions,children:(0,H.jsx)(xe,{})})]}),e.actionsOpen?(0,H.jsxs)(`div`,{className:`ms-2 mt-1 mb-2 grid gap-1.5 rounded-lg border border-border bg-card p-2`,children:[(0,H.jsx)(zw,{folders:e.folders,folderId:n.folderId,onMove:e.onMove}),(0,H.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,onClick:e.onRename,children:[(0,H.jsx)(mt,{}),t(`chat-rename`)]}),(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`xs`,onClick:e.onDelete,children:[(0,H.jsx)(Rt,{}),t(`chat-delete`)]})]})]}):null]})}function Vw({name:e,count:t,actions:n,onSelectAll:r,children:i}){let{t:a}=G(),[o,s]=(0,v.useState)(!0),c=o?Oe:Ae;return(0,H.jsxs)(`section`,{className:`grid grid-cols-[minmax(0,1fr)] gap-0.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsxs)(`button`,{type:`button`,className:`flex min-h-11 md:min-h-8 min-w-0 flex-1 cursor-pointer items-center gap-1.5 rounded-lg px-1.5 text-xs font-medium text-muted-foreground transition-colors duration-200 ease-in hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,"aria-expanded":o,onClick:()=>s(!o),children:[(0,H.jsx)(ce,{className:V(`size-3.5 shrink-0 transition-transform rtl:-scale-x-100`,o&&`rotate-90`),"aria-hidden":`true`}),(0,H.jsx)(c,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`min-w-0 truncate uppercase tracking-wide`,children:e}),(0,H.jsx)(`span`,{className:`tabular-nums`,"aria-label":a(t===1?`chat-folder-count-one`:`chat-folder-count`,{count:t}),children:t})]}),r&&t>0?(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`xs`,onClick:r,children:a(`chat-select-all-folder`)}):null,n&&!r?(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center`,role:`group`,"aria-label":a(`chat-folder-actions`),children:[(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":a(`chat-new`),title:a(`chat-new`),onClick:n.onNewChat,children:(0,H.jsx)(vt,{})}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":a(`chat-rename`),title:a(`chat-rename`),onClick:n.onRename,children:(0,H.jsx)(mt,{})}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":a(`chat-delete`),title:a(`chat-delete`),onClick:n.onDelete,children:(0,H.jsx)(Rt,{})})]}):null]}),o?(0,H.jsx)(`ul`,{className:`grid grid-cols-[minmax(0,1fr)] gap-0.5 ps-3`,children:i}):null]})}function Hw(e){let{t}=G(),{chat:n,selectMode:r,selected:i}=e,[a,o]=(0,v.useState)(null),{conversations:s,folders:c,readOnly:l}=n.list,u=s.filter(e=>!e.folderId),d=e=>e===`conflict`?t(`chat-folder-exists`):e,f=t=>{let n=new Set(i);n.has(t)?n.delete(t):n.add(t),e.onSelected(n)},p=t=>e.onSelected(new Set([...i,...t])),m=r=>e.onName({title:t(`chat-chat-rename-title`),label:t(`chat-chat-title`),initial:r.title,submitLabel:t(`chat-save`),submit:e=>n.change(()=>xw.rename(r.id,e))}),h=t=>t.map(t=>(0,H.jsx)(Bw,{conversation:t,folders:c,active:t.id===n.activeId,selectMode:r,selected:i.has(t.id),actionsOpen:a===t.id,readOnly:l,onOpen:()=>{n.open(t.id),e.onOpened?.()},onToggleSelect:()=>f(t.id),onToggleActions:()=>o(a===t.id?null:t.id),onRename:()=>m(t),onMove:e=>void n.change(()=>xw.move(t.id,e)),onDelete:()=>e.onDelete({kind:`chats`,ids:[t.id]})},t.id));return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3`,children:[(0,H.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:r?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,"aria-live":`polite`,children:t(`chat-selected-count`,{count:i.size})}),(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`xs`,disabled:i.size===0,onClick:()=>e.onDelete({kind:`chats`,ids:[...i]}),children:[(0,H.jsx)(Rt,{}),t(`chat-delete-selected`)]}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`xs`,onClick:()=>e.onSelectMode(!1),children:t(`chat-select-done`)})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{type:`button`,size:`xs`,disabled:l,onClick:()=>void n.newChat(),children:[(0,H.jsx)(vt,{}),t(`chat-new`)]}),(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,disabled:l,onClick:()=>e.onName({title:t(`chat-folder-create-title`),label:t(`chat-folder-name`),initial:``,submitLabel:t(`chat-create`),submit:async e=>d(await n.change(()=>xw.createFolder(e)))}),children:[(0,H.jsx)(ke,{}),t(`chat-new-folder`)]}),(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`xs`,disabled:l||s.length===0,onClick:()=>e.onSelectMode(!0),children:[(0,H.jsx)(jt,{}),t(`chat-select`)]})]})}),s.length===0&&c.length===0?(0,H.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,children:t(`chat-empty-list`)}):null,c.map(i=>{let a=s.filter(e=>e.folderId===i.id);return(0,H.jsx)(Vw,{name:i.name,count:a.length,onSelectAll:r?()=>p(a.map(e=>e.id)):void 0,actions:l?void 0:{onNewChat:()=>void n.newChat(i.id),onRename:()=>e.onName({title:t(`chat-folder-rename-title`),label:t(`chat-folder-name`),initial:i.name,submitLabel:t(`chat-save`),submit:async e=>d(await n.change(()=>xw.renameFolder(i.id,e)))}),onDelete:()=>e.onDelete({kind:`folder`,id:i.id,name:i.name,count:a.length})},children:h(a)},i.id)}),u.length>0?(0,H.jsx)(Vw,{name:t(`chat-no-folder`),count:u.length,onSelectAll:r?()=>p(u.map(e=>e.id)):void 0,children:h(u)}):null]})}function Uw({request:e,onConfirm:t,onCancel:n}){let{t:r}=G(),[i,a]=(0,v.useState)(!1);return(0,H.jsx)(zl,{open:e!==null,onOpenChange:e=>!e&&!i&&n(),children:(0,H.jsxs)(q,{className:`sm:max-w-md`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:e?.kind===`folder`?r(`chat-delete-folder-title`):r(`chat-delete-chats-title`)}),(0,H.jsx)(Gl,{children:e?Ww(e,r):null})]}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:n,disabled:i,children:r(`chat-cancel`)}),(0,H.jsx)(K,{type:`button`,variant:`destructive`,disabled:i,onClick:async()=>{e&&(a(!0),await t(e),a(!1))},children:r(`chat-delete-confirm`)})]})]})})}function Ww(e,t){if(e.kind===`folder`)return t(e.count===1?`chat-delete-folder-body-one`:`chat-delete-folder-body`,{name:e.name,count:e.count});let n=e.ids.length;return t(n===1?`chat-delete-chats-body-one`:`chat-delete-chats-body`,{count:n})}function Gw({request:e,onClose:t}){let{t:n}=G(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!1);(0,v.useEffect)(()=>{i(e?.initial??``),o(null)},[e]);async function l(n){if(n.preventDefault(),!e||!r.trim())return;c(!0);let i=await e.submit(r.trim());c(!1),i?o(i):t()}return(0,H.jsx)(zl,{open:e!==null,onOpenChange:e=>!e&&t(),children:(0,H.jsx)(q,{className:`sm:max-w-sm`,children:(0,H.jsxs)(`form`,{onSubmit:l,className:`grid gap-4`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:e?.title})}),(0,H.jsxs)(`div`,{className:`grid gap-2`,children:[(0,H.jsx)(Fp,{htmlFor:`chat-name-input`,children:e?.label}),(0,H.jsx)(ad,{id:`chat-name-input`,value:r,maxLength:80,autoFocus:!0,"aria-invalid":a?!0:void 0,onChange:e=>i(e.target.value)}),a?(0,H.jsx)(`p`,{className:`text-xs text-destructive-label`,children:a}):null]}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:t,children:n(`chat-cancel`)}),(0,H.jsx)(K,{type:`submit`,disabled:s||!r.trim(),children:e?.submitLabel})]})]})})})}var Kw=/\[([SPK]\d+)\]/g,qw=/<(?:[^>"']|"[^"]*"|'[^']*')*>/g,Jw=/^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/,Yw=new Set([`a`,`code`,`pre`,`button`]);function Xw(e,t,n,r){let i=new Set(t),a=(e,t)=>{if(!i.has(t))return e;let a=[`cite-chip`];t.startsWith(`P`)&&a.push(`cite-profile`),t.startsWith(`K`)&&a.push(`cite-skill`),n(t)&&a.push(`cite-deleted`);let o=r(t).replace(/["&<>]/g,e=>`&#${e.charCodeAt(0)};`);return`<button type="button" class="${a.join(` `)}" data-cite="${t}" aria-haspopup="dialog" aria-label="${o}">${t}</button>`},o=``,s=0,c=0,l=(t,n)=>{let r=e.slice(t,n);o+=c>0?r:r.replace(Kw,a)};for(let t of e.matchAll(qw)){l(s,t.index),o+=t[0],s=t.index+t[0].length;let e=Jw.exec(t[0]);!e||!Yw.has(e[2].toLowerCase())||(e[1]?c=Math.max(0,c-1):c+=1)}return l(s,e.length),o}var Zw=/\[([SPK]\d+)\]/g;function Qw(e,t){let n=new Set(t),r=[],i=``,a=0;for(let t of e.matchAll(Zw)){let o=t[1];n.has(o)&&(i+=e.slice(a,t.index),i&&r.push({kind:`text`,text:i}),i=``,r.push({kind:`cite`,label:o}),a=t.index+t[0].length)}return i+=e.slice(a),i&&r.push({kind:`text`,text:i}),r}function $w(e,t){let n=[];for(let r of Qw(e,t))r.kind===`cite`&&!n.includes(r.label)&&n.push(r.label);return n}function eT({plan:e}){let{t}=G(),n=Ow(e,t);return(0,H.jsxs)(`details`,{className:`group text-xs text-muted-foreground`,children:[(0,H.jsxs)(`summary`,{className:`inline-flex cursor-pointer list-none items-center gap-1.5 rounded-md py-0.5 transition-colors duration-200 ease-in hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(Et,{className:`size-3`,"aria-hidden":`true`}),t(`chat-how-searched`)]}),(0,H.jsxs)(`div`,{className:`mt-2 grid gap-1.5 rounded-lg border border-border p-2.5`,children:[e.skipped?(0,H.jsx)(`p`,{children:t(`chat-plan-skipped`)}):null,e.skillFacts===`unavailable`?(0,H.jsx)(`p`,{children:t(`chat-skill-facts-unavailable`)}):null,(0,H.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1`,children:n.map(([e,n])=>(0,H.jsxs)(`div`,{className:`contents`,children:[(0,H.jsx)(`dt`,{children:e}),(0,H.jsx)(`dd`,{dir:`auto`,className:`min-w-0 break-words text-foreground`,children:n.length?n.join(` · `):t(`chat-none`)})]},e))})]})]})}var tT={no_sources:`chat-no-sources`,insufficient:`chat-insufficient`,uncited:`chat-uncited`};function nT({message:e,missingMemoryIds:t,missingSkillNames:n,readOnly:r,onOpenSource:i,onRetry:a}){let{t:o}=G(),s=e.sources.map(e=>e.label),c=new Map(e.sources.map(e=>[e.label,e])),l=e=>Tw(e,t,n),u=(0,v.useMemo)(()=>Xw(g_(e.content),s,e=>l(c.get(e)),e=>o(`chat-cite-label`,{label:e})),[e.content,e.sources,t,n,o]),d=e=>{let t=e.target.closest(`[data-cite]`),n=t?c.get(t.dataset.cite??``):void 0;n&&i(n)},f=$w(e.content,s).map(e=>c.get(e)).filter(e=>!!e);return(0,H.jsxs)(`article`,{className:`grid min-w-0 gap-2.5`,children:[e.errorCode?(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-lg border border-destructive/30 bg-destructive/10 p-2.5 text-sm text-destructive-label`,children:[(0,H.jsx)(Bt,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`min-w-0 flex-1`,children:o(`chat-error`,{code:e.errorCode})}),r?null:(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,onClick:()=>a(e),children:[(0,H.jsx)(Tt,{}),o(`chat-retry`)]})]}):null,e.content?(0,H.jsx)(`div`,{dir:`auto`,className:`markdown-content chat-answer break-words text-sm leading-7`,onClick:d,dangerouslySetInnerHTML:{__html:u}}):null,e.notice?(0,H.jsxs)(`p`,{className:`flex items-start gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(Be,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":`true`}),o(tT[e.notice])]}):null,f.length?(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:o(`chat-sources`)}),(0,H.jsx)(`ul`,{className:`grid gap-1`,children:f.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 text-xs`,children:[(0,H.jsx)(Aw,{label:e.label,deleted:l(e),onOpen:()=>i(e)}),(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 flex-1 truncate leading-5 text-muted-foreground`,children:e.kind===`skill`?e.id:`${e.projectName?`${e.projectName} · `:``}${e.text}`})]},e.label))})]}):null,e.plan?(0,H.jsx)(eT,{plan:e.plan}):null]})}function rT({text:e}){let{t}=G();return(0,H.jsx)(`div`,{className:`flex justify-end`,children:(0,H.jsxs)(`div`,{className:`max-w-[85%] rounded-2xl rounded-ee-md bg-secondary px-3.5 py-2.5`,children:[(0,H.jsxs)(`span`,{className:`sr-only`,children:[t(`chat-you`),`: `]}),(0,H.jsx)(`p`,{dir:`auto`,className:`whitespace-pre-wrap break-words text-sm leading-6`,children:e})]})})}function iT({messages:e,pending:t,missingMemoryIds:n,missingSkillNames:r,readOnly:i,onOpenSource:a,onRetry:o}){let{t:s}=G();return e.length===0&&!t?(0,H.jsx)(`p`,{className:`m-auto max-w-sm text-center text-sm text-muted-foreground`,children:s(`chat-empty-thread`)}):(0,H.jsxs)(`ol`,{className:`grid gap-6`,"aria-live":`polite`,children:[e.map(e=>(0,H.jsx)(`li`,{children:e.role===`user`?(0,H.jsx)(rT,{text:e.content}):(0,H.jsx)(nT,{message:e,missingMemoryIds:n,missingSkillNames:r,readOnly:i,onOpenSource:a,onRetry:o})},e.id)),t?(0,H.jsxs)(`li`,{className:`grid gap-4`,children:[e.at(-1)?.role===`user`&&e.at(-1)?.content===t?null:(0,H.jsx)(rT,{text:t}),(0,H.jsxs)(`p`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),s(`chat-thinking`)]})]}):null]})}var aT={person:`chat-skill-by-person`,agent:`chat-skill-by-agent`,automatic:`chat-skill-by-automatic`};function oT({skill:e}){let{t}=G(),n=[[t(`chat-skill-uses`),String(e.uses)],[t(`chat-skill-failed`),String(e.failedTurns)],[t(`chat-skill-attention`),e.attention.toFixed(2)],[t(`chat-skill-modified`),Ew(e,t,$p)]];return(0,H.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[(0,H.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-lg border border-border p-2.5 text-xs text-muted-foreground`,children:n.map(([e,t])=>(0,H.jsxs)(`div`,{className:`contents`,children:[(0,H.jsx)(`dt`,{children:e}),(0,H.jsx)(`dd`,{className:`min-w-0 break-words text-foreground`,children:t})]},e))}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[t(`chat-skill-window`),` `,t(`chat-skill-modified-note`)]}),(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:t(`chat-skill-history`)}),e.history.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`chat-skill-history-empty`)}):(0,H.jsx)(`ol`,{className:`grid gap-2`,children:e.history.map((e,n)=>(0,H.jsxs)(`li`,{className:`grid gap-0.5 rounded-lg border border-border p-2 text-xs`,children:[(0,H.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:t(Dw(e.kind))}),(0,H.jsx)(`span`,{children:Qp(e.at)}),e.appliedBy&&e.appliedBy in aT?(0,H.jsx)(`span`,{children:t(aT[e.appliedBy])}):null]}),(0,H.jsx)(`span`,{dir:`auto`,className:`break-words`,children:e.summary})]},n))})]})]})}var sT={preferences:`profile-preferences`,patterns:`profile-patterns`,workflows:`profile-workflows`};function cT({source:e,deleted:t}){let{t:n,language:r}=G(),i=e.kind===`memory`;return e.kind===`skill`?(0,H.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[t?(0,H.jsxs)(`p`,{className:`flex items-start gap-2 rounded-lg border border-border bg-muted/40 p-2.5 text-xs`,children:[(0,H.jsx)(Bt,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":`true`}),n(`chat-skill-missing`)]}):null,e.skill?(0,H.jsx)(oT,{skill:e.skill}):null,(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`chat-source-note`)})]}):(0,H.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[t?(0,H.jsxs)(`p`,{className:`flex items-start gap-2 rounded-lg border border-border bg-muted/40 p-2.5 text-xs`,children:[(0,H.jsx)(Bt,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":`true`}),n(`chat-source-deleted`)]}):null,(0,H.jsxs)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs text-muted-foreground`,children:[i&&e.projectName?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`chat-source-project`)}),(0,H.jsx)(`dd`,{className:`min-w-0 break-words text-foreground`,children:e.projectName})]}):null,i&&e.createdAt?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`chat-source-date`)}),(0,H.jsx)(`dd`,{className:`text-foreground`,children:Qp(new Date(e.createdAt).toISOString())})]}):null,!i&&e.section?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`chat-source-profile`)}),(0,H.jsxs)(`dd`,{className:`text-foreground`,children:[n(sT[e.section]),e.category?` · ${e.category}`:``]})]}):null]}),e.tags?.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,"aria-label":n(`chat-source-tags`),children:e.tags.map(e=>(0,H.jsx)(id,{variant:`outline`,children:e},e))}):null,(0,H.jsx)(Fv,{dir:r===`ar`?`rtl`:`ltr`,className:`max-h-[45vh] rounded-lg border`,children:(0,H.jsx)(`p`,{dir:`auto`,className:`whitespace-pre-wrap break-words p-3 text-sm leading-6`,children:e.text})}),!i&&e.evidence?.length?(0,H.jsxs)(`div`,{className:`grid gap-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:n(`chat-source-evidence`)}),(0,H.jsx)(`ul`,{className:`grid gap-1 text-xs`,children:e.evidence.map((e,t)=>(0,H.jsx)(`li`,{dir:`auto`,className:`break-words`,children:e},t))})]}):null,(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`chat-source-note`)}),i?(0,H.jsx)(`a`,{href:J.project,className:`text-xs text-primary-label underline-offset-4 hover:underline`,children:n(`chat-source-open-project`)}):null]})}function lT({source:e,deleted:t,onClose:n}){let{t:r}=G();return(0,H.jsx)(zl,{open:e!==null,onOpenChange:e=>!e&&n(),children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:e?`${e.label} · ${e.kind===`memory`?r(`chat-source-memory`):e.kind===`skill`?`${r(`chat-source-skill`)} ${e.id}`:r(`chat-source-profile`)}`:``}),(0,H.jsx)(Gl,{className:`sr-only`,children:e?.text.slice(0,120)})]}),e?(0,H.jsx)(cT,{source:e,deleted:t}):null]})})}function uT(){let{t:e}=G(),t=Cw(),[n,r]=(0,v.useState)(!1),i=(0,v.useRef)(null),a=(0,v.useRef)(null),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(new Set),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(!n)return;let e=i.current;return a.current?.focus(),()=>e?.focus()},[n]);let g=new Set(t.detail?.missingMemoryIds??[]),_=new Set(t.detail?.missingSkillNames??[]),y=!!t.detail?.messages.some(e=>e.sources.some(e=>e.kind===`skill`)),b=t.list.readOnly,x=t.status?.ready??!1;function S(e){s(e),l(new Set)}async function C(e){e.kind===`folder`?await t.deleteFolder(e.id):await t.deleteChats(e.ids),d(null),S(!1)}let w=(0,H.jsx)(Hw,{chat:t,selectMode:o,selected:c,onSelectMode:S,onSelected:l,onDelete:d,onName:p,onOpened:()=>r(!1)});return(0,H.jsxs)(`div`,{className:`grid min-h-[calc(100svh-9rem)] gap-4 md:grid-cols-[17rem_minmax(0,1fr)]`,children:[(0,H.jsx)(`aside`,{className:`hidden min-h-0 overflow-y-auto border-e border-border pe-4 md:sticky md:top-6 md:block md:max-h-[calc(100svh-3rem)] md:self-start`,children:w}),n?(0,H.jsxs)(`div`,{className:`fixed inset-0 z-40 md:hidden`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`chat-show-list`),onKeyDown:e=>{e.key===`Escape`&&r(!1)},children:[(0,H.jsx)(`button`,{type:`button`,className:`absolute inset-0 bg-black/50`,"aria-label":e(`chat-cancel`),onClick:()=>r(!1)}),(0,H.jsxs)(`div`,{className:`absolute inset-y-0 start-0 flex w-[min(20rem,85vw)] flex-col gap-3 overflow-y-auto bg-background p-4 shadow-xl`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium`,children:e(`chat-conversations`)}),(0,H.jsx)(K,{ref:a,type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":e(`chat-cancel`),onClick:()=>r(!1),children:(0,H.jsx)(qt,{})})]}),w]})]}):null,(0,H.jsxs)(`section`,{className:`flex min-h-0 min-w-0 flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 md:hidden`,children:[(0,H.jsxs)(K,{ref:i,type:`button`,variant:`outline`,size:`sm`,onClick:()=>r(!0),children:[(0,H.jsx)($e,{}),e(`chat-show-list`)]}),t.detail?(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 truncate text-sm text-muted-foreground`,children:t.detail.conversation.title}):null]}),(0,H.jsx)(Nw,{letters:ww(t.status?.skillFacts===!0,y)}),t.status&&!x?(0,H.jsx)(Lw,{status:t.status}):null,b?(0,H.jsx)(`p`,{role:`alert`,className:`rounded-xl border border-border bg-card p-3 text-sm`,children:e(`chat-read-only`)}):null,(0,H.jsx)(`div`,{className:V(`flex min-h-48 flex-1 flex-col overflow-y-auto`),children:(0,H.jsx)(iT,{messages:t.detail?.messages??[],pending:t.pending,missingMemoryIds:g,missingSkillNames:_,readOnly:b||!x,onOpenSource:h,onRetry:t.retry})}),(0,H.jsxs)(`div`,{className:`sticky bottom-0 grid gap-1.5 bg-background pb-1`,children:[(0,H.jsx)(Iw,{projects:t.projects,scope:t.scope,scopeMissing:t.scopeMissing,disabled:!x||b||t.pending!==null,onScope:t.setScope,onAsk:e=>void t.ask(e)}),x&&t.status?.apiHost?(0,H.jsxs)(`p`,{className:`flex items-center gap-1.5 px-1 text-[11px] text-muted-foreground`,children:[(0,H.jsx)(Be,{className:`size-3 shrink-0`,"aria-hidden":`true`}),e(`chat-provider-note`,{host:t.status.apiHost})]}):null,x&&t.status?.skillFacts?(0,H.jsxs)(`p`,{className:`flex items-center gap-1.5 px-1 text-[11px] text-muted-foreground`,children:[(0,H.jsx)(Be,{className:`size-3 shrink-0`,"aria-hidden":`true`}),e(`chat-skill-privacy`)]}):null]})]}),(0,H.jsx)(Uw,{request:u,onConfirm:C,onCancel:()=>d(null)}),(0,H.jsx)(Gw,{request:f,onClose:()=>p(null)}),(0,H.jsx)(lT,{source:m,deleted:Tw(m??void 0,g,_),onClose:()=>h(null)})]})}var dT=[{id:`skills-section-activity`,title:`Activity`},{id:`skills-section-ranked`,title:`Ranked skills`},{id:`skills-section-pending`,title:`Pending proposals`},{id:`skills-section-recent`,title:`Recent proposals`},{id:`skills-section-folders`,title:`Watched folders`}],fT=e=>dT.map(t=>({id:t.id,label:Qv(t.title,e)})),pT=[`all`,`not-modified`,`modified`,`suggested`],mT=`omms-skills-modified-filter`;function hT(e){let t=e.filter(e=>e.modified).length,n=e.filter(e=>e.suggested).length;return{all:e.length,"not-modified":e.length-t,modified:t,suggested:n}}function gT(e,t){return t===`all`?e:t===`suggested`?e.filter(e=>e.suggested):e.filter(e=>e.modified===(t===`modified`))}function _T(){try{let e=localStorage.getItem(mT);return pT.find(t=>t===e)??`all`}catch{return`all`}}function vT(e){try{localStorage.setItem(mT,e)}catch{}}var yT=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):0,bT=e=>Array.isArray(e)?e:[],xT=e=>e&&typeof e==`object`?e:{};function ST(e){return bT(e).map(xT).filter(e=>typeof e.day==`string`).map(e=>({day:e.day,uses:yT(e.uses),failed:yT(e.failed)}))}var CT=e=>e.map(({day:e,uses:t,failed:n})=>({key:e,uses:t,failed:n})),wT=[`day`,`month`,`year`],TT=/^\d{4}-(0[1-9]|1[0-2])$/;function ET(e){let t=xT(e);return{months:bT(t.months).filter(e=>typeof e==`string`&&TT.test(e)),years:bT(t.years).filter(e=>Number.isInteger(e))}}function DT(e){let t=xT(e),n=xT(t.totals),r=ST(t.days),i=Array.isArray(t.series)?t.series.map(xT).filter(e=>typeof e.key==`string`).map(e=>({key:e.key,uses:yT(e.uses),failed:yT(e.failed)})):CT(r),a=bT(t.topSkills).map(xT).filter(e=>typeof e.name==`string`).map(e=>({name:e.name,path:typeof e.path==`string`?e.path:null,uses:yT(e.uses),failed:yT(e.failed)}));return{bucket:wT.includes(t.bucket)?t.bucket:`day`,series:i,days:r,topSkills:a,topTotal:Math.max(yT(t.topTotal),a.length),totals:{uses:yT(n.uses),failed:yT(n.failed),activeSkills:yT(n.activeSkills)},available:ET(t.available)}}var OT=[`created`,`applied`,`rejected`,`undone`,`stale`];function kT(e){let t=xT(e),n=bT(t.entries).map(xT).filter(e=>OT.includes(e.kind)&&typeof e.id==`string`).map(e=>({id:e.id,proposalId:typeof e.proposalId==`string`?e.proposalId:``,kind:e.kind,at:yT(e.at),summary:typeof e.summary==`string`?e.summary:``,appliedBy:typeof e.appliedBy==`string`?e.appliedBy:null,versionId:typeof e.versionId==`string`?e.versionId:null,canUndo:e.canUndo===!0,laterAppliedCount:yT(e.laterAppliedCount),added:yT(e.added),removed:yT(e.removed)}));return{total:Math.max(yT(t.total),n.length),entries:n}}var AT=e=>e.every(e=>e.uses===0),jT=e=>({...e,succeeded:Math.max(0,e.uses-e.failed),failed:Math.min(e.failed,e.uses)}),MT=[`pending`,`applied`,`rejected`,`stale`,`undone`];function NT(e){return MT.map(t=>({state:t,count:e.filter(e=>e.state===t).length}))}var PT=e=>Date.parse(`${e}T12:00:00`),FT={bucket:`day`,month:null},IT=`omms-skills-activity-range`,LT=`last-30`,RT=30,zT=(e,t)=>Math.min(t,e+8),BT={day:`Uses per day`,month:`Uses per month`,year:`Uses per year`},VT={day:`Day`,month:`Month`,year:`Year`};function HT(e){return e.bucket===`year`?{bucket:`year`}:e.bucket===`month`?{bucket:`month`,year:e.year}:e.month?{bucket:`day`,month:e.month}:{bucket:`day`,days:RT}}function UT(e){return e.bucket===`year`?`year`:e.bucket===`month`?`month:${e.year}`:e.month?`day:${e.month}`:`day`}function WT(e){if(e===`year`)return{bucket:`year`};let t=/^day:(\d{4}-\d{2})$/.exec(e??``)?.[1];if(t&&TT.test(t))return{bucket:`day`,month:t};let n=/^month:(\d{4})$/.exec(e??``)?.[1];return n?{bucket:`month`,year:Number(n)}:FT}function GT(e,t){return e.bucket===`day`&&e.month&&!t.months.includes(e.month)||e.bucket===`month`&&!t.years.includes(e.year)?FT:e}function KT(e,t){return e===`year`?{bucket:e}:e===`month`?{bucket:e,year:t}:FT}var qT=e=>e.bucket===`month`?String(e.year):e.bucket===`day`?e.month??`last-30`:``;function JT(e,t){return e.bucket===`month`?{bucket:`month`,year:Number(t)}:t===`last-30`?FT:{bucket:`day`,month:t}}function YT(e,t,n,r){if(e===`year`)return t;if(e===`day`){let e=new Date(PT(t));return n?Ai(e,r.choice,r.locale):ki(e,r.choice,r.locale)}let[i,a]=t.split(`-`).map(Number);return new Intl.DateTimeFormat(r.locale,{month:n?`long`:`short`,...n?{year:`numeric`}:{},timeZone:`UTC`,calendar:`gregory`}).format(Date.UTC(i,a-1,1))}function XT(e,t,n,r){if(e.bucket===`month`)return String(e.year);if(e.bucket===`day`)return e.month?YT(`month`,e.month,!0,n):r(`Last 30 days`);let i=t[0]?.key??``,a=t.at(-1)?.key??``;return i===a?a:Gb(r(`{from} to {to}`),{from:i,to:a})}function ZT(e,t,n,r,i){if(e.bucket===`year`)return[];if(e.bucket===`month`)return[...new Set([n,e.year,...t.years])].sort((e,t)=>t-e).map(e=>({value:String(e),label:String(e)}));let a=[...new Set([...e.month?[e.month]:[],...t.months])];return[{value:LT,label:i},...a.sort((e,t)=>t.localeCompare(e)).map(e=>({value:e,label:YT(`month`,e,!0,r)}))]}var QT=[`day`,`month`,`year`],$T={day:`Days`,month:`Months`,year:`Years`},eE={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function tE({range:e,available:t,currentYear:n,loading:r,onChange:i}){let a=Y(),o=(0,v.useRef)([]),s=t=>{let r=QT[t];o.current[t]?.focus(),r!==e.bucket&&i(KT(r,n))};return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(`div`,{role:`radiogroup`,"aria-label":a(`Show uses by`),className:`inline-flex gap-1.5`,onKeyDown:t=>{let n=eE[t.key];if(!n)return;t.preventDefault();let r=getComputedStyle(t.currentTarget).direction===`rtl`,i=t.key===`ArrowLeft`||t.key===`ArrowRight`,a=r&&i?-n:n,o=QT.indexOf(e.bucket);s((o+a+QT.length)%QT.length)},children:QT.map((t,n)=>(0,H.jsx)(`button`,{ref:e=>{o.current[n]=e},type:`button`,role:`radio`,"aria-checked":e.bucket===t,tabIndex:e.bucket===t?0:-1,className:V(`min-h-9 rounded-[10px] border px-3 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring`,e.bucket===t?`border-primary/40 bg-selection text-foreground`:`border-input bg-card text-muted-foreground hover:bg-interactive-hover`),onClick:()=>s(n),children:a($T[t])},t))}),e.bucket===`year`?(0,H.jsx)(`span`,{className:`h-9 w-44`,"aria-hidden":`true`}):(0,H.jsx)(Dr,{className:`w-44`,"aria-label":a(e.bucket===`day`?`Days to show`:`Year to show`),value:qT(e),onChange:t=>i(JT(e,t.target.value)),children:ZT(e,t,n,nm(),a(`Last 30 days`)).map(e=>(0,H.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,H.jsx)(Ye,{"aria-hidden":`true`,className:V(`size-4 animate-spin text-muted-foreground`,!r&&`invisible`)}),(0,H.jsx)(`span`,{role:`status`,className:`sr-only`,children:r?a(`Loading…`):``})]})}var nE=`dangerouslySetInnerHTML.onCopy.onCopyCapture.onCut.onCutCapture.onPaste.onPasteCapture.onCompositionEnd.onCompositionEndCapture.onCompositionStart.onCompositionStartCapture.onCompositionUpdate.onCompositionUpdateCapture.onFocus.onFocusCapture.onBlur.onBlurCapture.onChange.onChangeCapture.onBeforeInput.onBeforeInputCapture.onInput.onInputCapture.onReset.onResetCapture.onSubmit.onSubmitCapture.onInvalid.onInvalidCapture.onLoad.onLoadCapture.onError.onErrorCapture.onKeyDown.onKeyDownCapture.onKeyPress.onKeyPressCapture.onKeyUp.onKeyUpCapture.onAbort.onAbortCapture.onCanPlay.onCanPlayCapture.onCanPlayThrough.onCanPlayThroughCapture.onDurationChange.onDurationChangeCapture.onEmptied.onEmptiedCapture.onEncrypted.onEncryptedCapture.onEnded.onEndedCapture.onLoadedData.onLoadedDataCapture.onLoadedMetadata.onLoadedMetadataCapture.onLoadStart.onLoadStartCapture.onPause.onPauseCapture.onPlay.onPlayCapture.onPlaying.onPlayingCapture.onProgress.onProgressCapture.onRateChange.onRateChangeCapture.onSeeked.onSeekedCapture.onSeeking.onSeekingCapture.onStalled.onStalledCapture.onSuspend.onSuspendCapture.onTimeUpdate.onTimeUpdateCapture.onVolumeChange.onVolumeChangeCapture.onWaiting.onWaitingCapture.onAuxClick.onAuxClickCapture.onClick.onClickCapture.onContextMenu.onContextMenuCapture.onDoubleClick.onDoubleClickCapture.onDrag.onDragCapture.onDragEnd.onDragEndCapture.onDragEnter.onDragEnterCapture.onDragExit.onDragExitCapture.onDragLeave.onDragLeaveCapture.onDragOver.onDragOverCapture.onDragStart.onDragStartCapture.onDrop.onDropCapture.onMouseDown.onMouseDownCapture.onMouseEnter.onMouseLeave.onMouseMove.onMouseMoveCapture.onMouseOut.onMouseOutCapture.onMouseOver.onMouseOverCapture.onMouseUp.onMouseUpCapture.onSelect.onSelectCapture.onTouchCancel.onTouchCancelCapture.onTouchEnd.onTouchEndCapture.onTouchMove.onTouchMoveCapture.onTouchStart.onTouchStartCapture.onPointerDown.onPointerDownCapture.onPointerMove.onPointerMoveCapture.onPointerUp.onPointerUpCapture.onPointerCancel.onPointerCancelCapture.onPointerEnter.onPointerEnterCapture.onPointerLeave.onPointerLeaveCapture.onPointerOver.onPointerOverCapture.onPointerOut.onPointerOutCapture.onGotPointerCapture.onGotPointerCaptureCapture.onLostPointerCapture.onLostPointerCaptureCapture.onScroll.onScrollCapture.onWheel.onWheelCapture.onAnimationStart.onAnimationStartCapture.onAnimationEnd.onAnimationEndCapture.onAnimationIteration.onAnimationIterationCapture.onTransitionEnd.onTransitionEndCapture`.split(`.`);function rE(e){return typeof e==`string`&&nE.includes(e)}var iE=new Set(`aria-activedescendant.aria-atomic.aria-autocomplete.aria-busy.aria-checked.aria-colcount.aria-colindex.aria-colspan.aria-controls.aria-current.aria-describedby.aria-details.aria-disabled.aria-errormessage.aria-expanded.aria-flowto.aria-haspopup.aria-hidden.aria-invalid.aria-keyshortcuts.aria-label.aria-labelledby.aria-level.aria-live.aria-modal.aria-multiline.aria-multiselectable.aria-orientation.aria-owns.aria-placeholder.aria-posinset.aria-pressed.aria-readonly.aria-relevant.aria-required.aria-roledescription.aria-rowcount.aria-rowindex.aria-rowspan.aria-selected.aria-setsize.aria-sort.aria-valuemax.aria-valuemin.aria-valuenow.aria-valuetext.className.color.height.id.lang.max.media.method.min.name.style.target.width.role.tabIndex.accentHeight.accumulate.additive.alignmentBaseline.allowReorder.alphabetic.amplitude.arabicForm.ascent.attributeName.attributeType.autoReverse.azimuth.baseFrequency.baselineShift.baseProfile.bbox.begin.bias.by.calcMode.capHeight.clip.clipPath.clipPathUnits.clipRule.colorInterpolation.colorInterpolationFilters.colorProfile.colorRendering.contentScriptType.contentStyleType.cursor.cx.cy.d.decelerate.descent.diffuseConstant.direction.display.divisor.dominantBaseline.dur.dx.dy.edgeMode.elevation.enableBackground.end.exponent.externalResourcesRequired.fill.fillOpacity.fillRule.filter.filterRes.filterUnits.floodColor.floodOpacity.focusable.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.format.from.fx.fy.g1.g2.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.glyphRef.gradientTransform.gradientUnits.hanging.horizAdvX.horizOriginX.href.ideographic.imageRendering.in2.in.intercept.k1.k2.k3.k4.k.kernelMatrix.kernelUnitLength.kerning.keyPoints.keySplines.keyTimes.lengthAdjust.letterSpacing.lightingColor.limitingConeAngle.local.markerEnd.markerHeight.markerMid.markerStart.markerUnits.markerWidth.mask.maskContentUnits.maskUnits.mathematical.mode.numOctaves.offset.opacity.operator.order.orient.orientation.origin.overflow.overlinePosition.overlineThickness.paintOrder.panose1.pathLength.patternContentUnits.patternTransform.patternUnits.pointerEvents.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.r.radius.refX.refY.renderingIntent.repeatCount.repeatDur.requiredExtensions.requiredFeatures.restart.result.rotate.rx.ry.seed.shapeRendering.slope.spacing.specularConstant.specularExponent.speed.spreadMethod.startOffset.stdDeviation.stemh.stemv.stitchTiles.stopColor.stopOpacity.strikethroughPosition.strikethroughThickness.string.stroke.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.strokeMiterlimit.strokeOpacity.strokeWidth.surfaceScale.systemLanguage.tableValues.targetX.targetY.textAnchor.textDecoration.textLength.textRendering.to.transform.u1.u2.underlinePosition.underlineThickness.unicode.unicodeBidi.unicodeRange.unitsPerEm.vAlphabetic.values.vectorEffect.version.vertAdvY.vertOriginX.vertOriginY.vHanging.vIdeographic.viewTarget.visibility.vMathematical.widths.wordSpacing.writingMode.x1.x2.x.xChannelSelector.xHeight.xlinkActuate.xlinkArcrole.xlinkHref.xlinkRole.xlinkShow.xlinkTitle.xlinkType.xmlBase.xmlLang.xmlns.xmlnsXlink.xmlSpace.y1.y2.y.yChannelSelector.z.zoomAndPan.ref.key.angle`.split(`.`));function aE(e){return typeof e==`string`&&iE.has(e)}function oE(e){return typeof e==`string`&&e.startsWith(`data-`)}function sE(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(aE(n)||oE(n))&&(t[n]=e[n]);return t}function cE(e){if(e==null)return null;if((0,v.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return sE(t)}return typeof e==`object`&&!Array.isArray(e)?sE(e):null}function lE(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(aE(n)||oE(n)||rE(n))&&(t[n]=e[n]);return t}var uE=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function dE(){return dE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dE.apply(null,arguments)}function fE(e,t){if(e==null)return{};var n,r,i=pE(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function pE(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var mE=(0,v.forwardRef)((e,t)=>{var{children:n,width:r,height:i,viewBox:a,className:o,style:s,title:c,desc:l}=e,u=fE(e,uE),d=a||{width:r,height:i,x:0,y:0},f=Xt(`recharts-surface`,o);return v.createElement(`svg`,dE({},lE(u),{className:f,width:r,height:i,style:s,viewBox:`${d.x} ${d.y} ${d.width} ${d.height}`,ref:t}),v.createElement(`title`,null,c),v.createElement(`desc`,null,l),n)}),hE=[`children`,`className`];function gE(){return gE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gE.apply(null,arguments)}function _E(e,t){if(e==null)return{};var n,r,i=vE(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function vE(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var yE=v.forwardRef((e,t)=>{var{children:n,className:r}=e,i=_E(e,hE),a=Xt(`recharts-layer`,r);return v.createElement(`g`,gE({className:a},lE(i),{ref:t}),n)}),bE=(0,v.createContext)(null);function xE(e){return function(){return e}}var SE=Math.cos,CE=Math.sin,wE=Math.sqrt,TE=Math.PI;TE/2;var EE=2*TE,DE=Math.PI,OE=2*DE,kE=1e-6,AE=OE-kE;function jE(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ME(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return jE;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var NE=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?jE:ME(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>kE){if(!(Math.abs(u*s-c*l)>kE)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((DE-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>kE&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>kE||Math.abs(this._y1-l)>kE)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%OE+OE),d>AE?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>kE&&this._append`A${n},${n},0,${+(d>=DE)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};NE.prototype;function PE(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new NE(t)}Array.prototype.slice;function FE(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function IE(e){this._context=e}IE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};function LE(e){return new IE(e)}function RE(e){return e[0]}function zE(e){return e[1]}function BE(e,t){var n=xE(!0),r=null,i=LE,a=null,o=PE(s);e=typeof e==`function`?e:e===void 0?RE:xE(e),t=typeof t==`function`?t:t===void 0?zE:xE(t);function s(s){var c,l=(s=FE(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return s.x=function(t){return arguments.length?(e=typeof t==`function`?t:xE(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:xE(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:xE(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),s):r},s}function VE(e,t,n){var r=null,i=xE(!0),a=null,o=LE,s=null,c=PE(l);e=typeof e==`function`?e:e===void 0?RE:xE(+e),t=typeof t==`function`?t:xE(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?zE:xE(+n);function l(l){var u,d,f,p=(l=FE(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return BE().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:xE(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:xE(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:xE(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:xE(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:xE(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:xE(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:xE(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var HE=class{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}};function UE(e){return new HE(e,!0)}function WE(e){return new HE(e,!1)}var GE={draw(e,t){let n=wE(t/TE);e.moveTo(n,0),e.arc(0,0,n,0,EE)}},KE={draw(e,t){let n=wE(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},qE=wE(1/3),JE=qE*2,YE={draw(e,t){let n=wE(t/JE),r=n*qE;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},XE={draw(e,t){let n=wE(t),r=-n/2;e.rect(r,r,n,n)}},ZE=.8908130915292852,QE=CE(TE/10)/CE(7*TE/10),$E=CE(EE/10)*QE,eD=-SE(EE/10)*QE,tD={draw(e,t){let n=wE(t*ZE),r=$E*n,i=eD*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=EE*t/5,o=SE(a),s=CE(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},nD=wE(3),rD={draw(e,t){let n=-wE(t/(nD*3));e.moveTo(0,n*2),e.lineTo(-nD*n,-n),e.lineTo(nD*n,-n),e.closePath()}},iD=-.5,aD=wE(3)/2,oD=1/wE(12),sD=(oD/2+1)*3,cD={draw(e,t){let n=wE(t/sD),r=n/2,i=n*oD,a=r,o=n*oD+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(iD*r-aD*i,aD*r+iD*i),e.lineTo(iD*a-aD*o,aD*a+iD*o),e.lineTo(iD*s-aD*c,aD*s+iD*c),e.lineTo(iD*r+aD*i,iD*i-aD*r),e.lineTo(iD*a+aD*o,iD*o-aD*a),e.lineTo(iD*s+aD*c,iD*c-aD*s),e.closePath()}};function lD(e,t){let n=null,r=PE(i);e=typeof e==`function`?e:xE(e||GE),t=typeof t==`function`?t:xE(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:xE(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:xE(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function uD(){}function dD(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function fD(e){this._context=e}fD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:dD(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:dD(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function pD(e){return new fD(e)}function mD(e){this._context=e}mD.prototype={areaStart:uD,areaEnd:uD,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:dD(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function hD(e){return new mD(e)}function gD(e){this._context=e}gD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:dD(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function _D(e){return new gD(e)}function vD(e){this._context=e}vD.prototype={areaStart:uD,areaEnd:uD,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function yD(e){return new vD(e)}function bD(e){return e<0?-1:1}function xD(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(bD(a)+bD(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function SD(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function CD(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function wD(e){this._context=e}wD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:CD(this,this._t0,SD(this,this._t0))}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,e!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,CD(this,SD(this,n=xD(this,e,t)),n);break;default:CD(this,this._t0,n=xD(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function TD(e){this._context=new ED(e)}(TD.prototype=Object.create(wD.prototype)).point=function(e,t){wD.prototype.point.call(this,t,e)};function ED(e){this._context=e}ED.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function DD(e){return new wD(e)}function OD(e){return new TD(e)}function kD(e){this._context=e}kD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n){if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=AD(e),i=AD(t),a=0,o=1;o<n;++a,++o)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],e[o],t[o])}(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function AD(e){var t,n=e.length-1,r,i=Array(n),a=Array(n),o=Array(n);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<n-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[n-1]=2,a[n-1]=7,o[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=i[t]/a[t-1],a[t]-=r,o[t]-=r*o[t-1];for(i[n-1]=o[n-1]/a[n-1],t=n-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-1])/2,t=0;t<n-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function jD(e){return new kD(e)}function MD(e,t){this._context=e,this._t=t}MD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};function ND(e){return new MD(e,.5)}function PD(e){return new MD(e,0)}function FD(e){return new MD(e,1)}function ID(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function LD(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function RD(e,t){return e[t]}function zD(e){let t=[];return t.key=e,t}function BD(){var e=xE([]),t=LD,n=ID,r=RD;function i(i){var a=Array.from(e.apply(this,arguments),zD),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=FE(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:xE(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:xE(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?LD:typeof e==`function`?e:xE(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??ID,i):n},i}function VD(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}ID(e,t)}}function HD(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}ID(e,t)}}function UD(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,ID(e,t)}}function WD(e){return e===`__proto__`}var GD=Object.prototype.hasOwnProperty;function KD(e,t){return GD.call(e,t)}var qD=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function JD(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:qD.test(e);default:return!1}}function YD(e){var t;return typeof e==`string`||typeof e==`symbol`?e:Object.is(e==null||(t=e.valueOf)==null?void 0:t.call(e),-0)?`-0`:String(e)}function XD(e){return typeof e==`symbol`||e instanceof Symbol}function ZD(e){if(typeof e==`string`)return e;if(Array.isArray(e)){let t=``;for(let n=0;n<e.length;n++)n>0&&(t+=`,`),t+=ZD(e[n]);return t}if(XD(e))return e.toString();let t=e+``;return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function QD(e){return e==null?``:ZD(e)}function $D(e){if(Array.isArray(e))return e.map(YD);if(typeof e==`symbol`)return[e];e=QD(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1,s=!1,c=/^-?\d+(?:\.\d+)?$/;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let l=e[r];if(a)l===`\\`&&r+1<n?(r++,i+=e[r]):l===a?a=``:i+=l;else if(o){if(l===`"`||l===`'`)a=l,s=!0;else if(l===`]`){if(o=!1,!s&&i.includes(`.`)&&!c.test(i)){let e=i.split(`.`);for(let n=0;n<e.length;n++)e[n]!==``&&t.push(e[n])}else t.push(i);i=``}else i+=l}else if(l===`[`)o=!0,s=!1,i&&=(t.push(i),``);else if(l===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=l;r++}return i&&t.push(i),t}function eO(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(WD(t))return n;let r=e[t];return r===void 0?JD(t)&&!KD(e,t)?eO(e,$D(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=YD(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return tO(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),WD(t))return n;let r=e[t];return r===void 0?n:r}}}function tO(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||WD(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}var nO=4;function rO(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:nO),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function iO(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+rO(i)+n},``)}var aO=e=>e===0?0:e>0?1:-1,oO=e=>typeof e==`number`&&e!=+e,sO=e=>typeof e==`string`&&e.indexOf(`%`)===e.length-1,Z=e=>(typeof e==`number`||e instanceof Number)&&!oO(e),cO=e=>Z(e)||typeof e==`string`,lO=0,uO=e=>{var t=++lO;return`${e||``}${t}`},dO=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!Z(e)&&typeof e!=`string`)return n;var i;if(sO(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return oO(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},fO=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function pO(e,t,n){return Z(e)&&Z(t)?rO(e+n*(t-e)):t}function mO(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):eO(e,t))===n)}var hO=e=>e==null,gO=e=>hO(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function _O(e){return e!=null}function vO(){}var yO=[`type`,`size`,`sizeType`];function bO(){return bO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bO.apply(null,arguments)}function xO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function SO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?xO(Object(n),!0).forEach(function(t){CO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function CO(e,t,n){return(t=wO(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wO(e){var t=TO(e,`string`);return typeof t==`symbol`?t:t+``}function TO(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function EO(e,t){if(e==null)return{};var n,r,i=DO(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function DO(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var OO={symbolCircle:GE,symbolCross:KE,symbolDiamond:YE,symbolSquare:XE,symbolStar:tD,symbolTriangle:rD,symbolWye:cD},kO=Math.PI/180,AO=e=>OO[`symbol${gO(e)}`]||GE,jO=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*kO;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},MO=(e,t)=>{OO[`symbol${gO(e)}`]=t},NO=e=>{var{type:t=`circle`,size:n=64,sizeType:r=`area`}=e,i=SO(SO({},EO(e,yO)),{},{type:t,size:n,sizeType:r}),a=`circle`;typeof t==`string`&&(a=t);var o=()=>{var e=AO(a),t=lD().type(e).size(jO(n,r,a))();if(t!==null)return t},{className:s,cx:c,cy:l}=i,u=lE(i);return Z(c)&&Z(l)&&Z(n)?v.createElement(`path`,bO({},u,{className:Xt(`recharts-symbols`,s),transform:`translate(${c}, ${l})`,d:o()})):null};NO.registerSymbol=MO;var PO=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,FO=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,v.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{rE(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},IO=(e,t,n)=>r=>(e(t,n,r),null),LO=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];rE(i)&&typeof a==`function`&&(r||={},r[i]=IO(a,t,n))}),r};function RO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?RO(Object(n),!0).forEach(function(t){BO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function BO(e,t,n){return(t=VO(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VO(e){var t=HO(e,`string`);return typeof t==`symbol`?t:t+``}function HO(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function UO(e,t){var n=zO({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function WO(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function GO(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function KO(e){return e}function qO(e){return Number.isSafeInteger(e)&&e>=0}function JO(e){return e!=null&&typeof e!=`function`&&qO(e.length)}function YO(e){return function(t){return eO(t,e)}}function XO(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function ZO(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var QO=`[object RegExp]`,$O=`[object String]`,ek=`[object Number]`,tk=`[object Boolean]`,nk=`[object Arguments]`,rk=`[object Symbol]`,ik=`[object Date]`,ak=`[object Map]`,ok=`[object Set]`,sk=`[object Array]`,ck=`[object ArrayBuffer]`,lk=`[object Object]`,uk=`[object DataView]`,dk=`[object Uint8Array]`,fk=`[object Uint8ClampedArray]`,pk=`[object Uint16Array]`,mk=`[object Uint32Array]`,hk=`[object Int8Array]`,gk=`[object Int16Array]`,_k=`[object Int32Array]`,vk=`[object Float32Array]`,yk=`[object Float64Array]`;function bk(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function xk(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function Sk(e,t,n){return typeof n==`function`?Ck(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Ck(t,r,e,s,!1):!!c},new Map,!0):Sk(e,t,()=>void 0)}function Ck(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return wk(e,t,n,r,i);case`function`:return Object.keys(t).length>0?Ck(e,Object.assign({},t),n,r,i):bk(e,t);default:return xk(e)&&i?typeof t!=`string`||t===``:bk(e,t)}}function wk(e,t,n,r,i=!1){if(t==null)return!0;if(Array.isArray(t))return Ek(e,t,n,r);if(t instanceof Map)return Tk(e,t,n,r);if(t instanceof Set)return Dk(e,t,n,r);let a=Object.keys(t);if(e==null)return i&&a.length===0;if(i)XO(e)&&(e=Object(e));else{if(ZO(t)===`[object Error]`)return ZO(e)===`[object Error]`&&e.name===t.name&&e.message===t.message;let n=ZO(e);if(n!==`[object Object]`&&n!==`[object Arguments]`)return!1}if(a.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let i=0;i<a.length;i++){let o=a[i];if(!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Tk(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function Ek(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Dk(e,t,n,r){return t.size===0||e instanceof Set&&Ek([...e],[...t],n,r)}function Ok(e,t){return Sk(e,t,()=>void 0)}function kk(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}var Ak=typeof globalThis==`object`&&globalThis||typeof window==`object`&&window||typeof self==`object`&&self||typeof global==`object`&&global||(function(){return this})();function jk(e){return Ak.Buffer!==void 0&&Ak.Buffer.isBuffer(e)}function Mk(e){return jk(e)}function Nk(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Pk(e){return Nk(e)}function Fk(e,t){return Ik(e,void 0,e,new Map,t)}function Ik(e,t,n,r,i){if(i!=null){let a=i(e,t,n,r);if(a!==void 0)return a}if(XO(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=Ik(e[a],a,n,r,i);return KD(e,`index`)&&(t.index=e.index),KD(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;return r.set(e,t),e.forEach((e,a)=>{t.set(a,Ik(e,a,n,r,i))}),t}if(e instanceof Set){let t=new Set;return r.set(e,t),e.forEach(e=>{t.add(Ik(e,void 0,n,r,i))}),t}if(Mk(e))return e.subarray();if(Pk(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=Ik(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),Lk(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),Lk(t,e,n,r,i),t}if(typeof Blob<`u`&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),Lk(t,e,n,r,i),t}let a=ZO(e);if(a===`[object Error]`)return e===n?{}:e;switch(a){case ek:case $O:case tk:{let t=new e.constructor(e.valueOf());return r.set(e,t),Lk(t,e,n,r,i),t}case nk:{let t={};return r.set(e,t),Lk(t,e,n,r,i),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}}if(typeof e==`object`&&Rk(a)){let t=a===`[object Object]`&&typeof e.constructor!=`function`?{}:Object.create(Object.getPrototypeOf(e));return r.set(e,t),Lk(t,e,n,r,i),t}return e}function Lk(e,t,n,r,i){let a=[...Object.keys(t),...kk(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=Ik(t[s],s,n,r,i))}}function Rk(e){switch(e){case nk:case sk:case ck:case uk:case tk:case ik:case vk:case yk:case hk:case gk:case _k:case ak:case ek:case lk:case QO:case ok:case $O:case rk:case dk:case fk:case pk:case mk:return!0;default:return!1}}function zk(e){return Fk(e)}function Bk(e){return e=zk(e),t=>Ok(t,e)}var Vk=/^(?:0|[1-9]\d*)$/;function Hk(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Vk.test(e)}}function Uk(e){return typeof e==`object`&&!!e&&ZO(e)===`[object Arguments]`}function Wk(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&JD(t)&&!(t in Object(e))?$D(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=YD(n[e]);if((r==null||!KD(r,t))&&!((Array.isArray(r)||Uk(r))&&Hk(t)&&Number(t)<r.length))return!1;r=r[t]}return!0}function Gk(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=YD(e)}return t=zk(t),function(n){let r=eO(n,e);return r===void 0?Wk(n,e):t===void 0?r===void 0:Ok(r,t)}}function Kk(e){if(e==null)return KO;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Gk(e[0],e[1]):Bk(e);default:return YO(e)}}function qk(e){return e===0?0:e}function Jk(e,t=KO){return JO(e)?WO(Array.from(e),GO(Kk(t),1)).map(qk):[]}function Yk(e,t,n){return t===!0?Jk(e,n):typeof t==`function`?Jk(e,t):e}var Xk=o((e=>{var t=d();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Zk=o(((e,t)=>{t.exports=Xk()})),Qk=o((e=>{var t=d(),n=Zk();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),$k=o(((e,t)=>{t.exports=Qk()})),eA=(0,v.createContext)(null),tA=$k(),nA=e=>e,rA=()=>{var e=(0,v.useContext)(eA);return e?e.store.dispatch:nA},iA=()=>{},aA=()=>iA,oA=(e,t)=>e===t;function Q(e){var t=(0,v.useContext)(eA),n=(0,v.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:iA,[t,e]);return(0,tA.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:aA,t?t.store.getState:iA,t?t.store.getState:iA,n,oA)}function sA(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function cA(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!=`object`)throw TypeError(t)}function lA(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var uA=e=>Array.isArray(e)?e:[e];function dA(e){let t=Array.isArray(e[0])?e[0]:e;return lA(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function fA(e,t){let n=[],{length:r}=e;for(let i=0;i<r;i++)n.push(e[i].apply(null,t));return n}var pA=class{constructor(e){this.value=e}deref(){return this.value}},mA=typeof WeakRef<`u`?WeakRef:pA,hA=0,gA=1;function _A(){return{s:hA,v:void 0,o:null,p:null}}function vA(e,t={}){let n=_A(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e<n;e++){let n=arguments[e];if(typeof n==`function`||typeof n==`object`&&n){let e=t.o;e===null&&(t.o=e=new WeakMap);let r=e.get(n);r===void 0?(t=_A(),e.set(n,t)):t=r}else{let e=t.p;e===null&&(t.p=e=new Map);let r=e.get(n);r===void 0?(t=_A(),e.set(n,t)):t=r}}let s=t,c;if(t.s===gA)c=t.v;else if(c=e.apply(null,arguments),a++,r){let e=i?.deref?.()??i;e!=null&&r(e,c)&&(c=e,a!==0&&a--),i=typeof c==`object`&&c||typeof c==`function`?new mA(c):c}return s.s=gA,s.v=c,c}return o.clearCache=()=>{n=_A(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function yA(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),sA(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=vA,argsMemoizeOptions:u=[],devModeChecks:d={}}={...n,...a},f=uA(c),p=uA(u),m=dA(e),h=s(function(){return t++,o.apply(null,arguments)},...f),g=l(function(){r++;let e=fA(m,arguments);return i=h.apply(null,e),i},...p);return Object.assign(g,{resultFunc:o,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var $=yA(vA),bA=Object.assign((e,t=$)=>{cA(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>bA});function xA(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function SA(e,t,n){return xk(n)&&(typeof t==`number`&&JO(n)&&Hk(t)&&t<n.length||typeof t==`string`&&t in n)?bk(n[t],e):!1}function CA(e){let t=Object.keys(e),n=Array(t.length);for(let r=0;r<t.length;r++)n[r]=e[t[r]];return n}function wA(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var TA=(e,t,n)=>{if(e!==t){let r=wA(e),i=wA(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},EA=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,DA=/^\w*$/;function OA(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||XD(e)?!0:typeof e==`string`&&(DA.test(e)||!EA.test(e))||t!=null&&KD(t,e)}function kA(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=JO(e)?Array.from(e):CA(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e,r=0;for(;r<t.length&&n!=null;++r)n=n[t[r]];return r>0&&r===t.length?n:void 0},a=(e,t)=>{if(e==null)return t;if(t!=null)return typeof e==`object`&&`key`in e?KD(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):t[e]},o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||OA(e)?e:{key:e,path:$D(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=TA(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function AA(e,...t){let n=t.length;return n>1&&SA(e,t[0],t[1])?t=[]:n>2&&SA(t[0],t[1],t[2])&&(t=[t[0]]),kA(e,xA(t),[`asc`])}var jA=e=>e.legend.settings,MA=e=>e.legend.size;$([e=>e.legend.payload,jA],(e,t)=>{var{itemSorter:n}=t,r=e.flat(1);return n?AA(r,n):r});var NA=1;function PA(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,n]=(0,v.useState)({height:0,left:0,top:0,width:0});return[t,(0,v.useCallback)(e=>{if(e!=null){var r=e.getBoundingClientRect(),i={height:r.height,left:r.left,top:r.top,width:r.width};(Math.abs(i.height-t.height)>NA||Math.abs(i.left-t.left)>NA||Math.abs(i.top-t.top)>NA||Math.abs(i.width-t.width)>NA)&&n({height:i.height,left:i.left,top:i.top,width:i.width})}},[t.width,t.height,t.top,t.left,...e])]}function FA(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var IA=typeof Symbol==`function`&&Symbol.observable||`@@observable`,LA=()=>Math.random().toString(36).substring(7).split(``).join(`.`),RA={INIT:`@@redux/INIT${LA()}`,REPLACE:`@@redux/REPLACE${LA()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${LA()}`};function zA(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function BA(e,t,n){if(typeof e!=`function`)throw Error(FA(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(FA(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(FA(1));return n(BA)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(FA(3));return i}function d(e){if(typeof e!=`function`)throw Error(FA(4));if(c)throw Error(FA(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(FA(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!zA(e))throw Error(FA(7));if(e.type===void 0)throw Error(FA(8));if(typeof e.type!=`string`)throw Error(FA(17));if(c)throw Error(FA(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(FA(10));r=e,f({type:RA.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(FA(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[IA](){return this}}}return f({type:RA.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[IA]:m}}function VA(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:RA.INIT})===void 0)throw Error(FA(12));if(n(void 0,{type:RA.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(FA(13))})}function HA(e){let t=Object.keys(e),n={};for(let r=0;r<t.length;r++){let i=t[r];typeof e[i]==`function`&&(n[i]=e[i])}let r=Object.keys(n),i;try{VA(n)}catch(e){i=e}return function(e={},t){if(i)throw i;let a=!1,o={};for(let i=0;i<r.length;i++){let s=r[i],c=n[s],l=e[s],u=c(l,t);if(u===void 0)throw t&&t.type,Error(FA(14));o[s]=u,a||=u!==l}return a||=r.length!==Object.keys(e).length,a?o:e}}function UA(...e){return e.length===0?e=>e:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function WA(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(FA(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=UA(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function GA(e){return zA(e)&&`type`in e&&typeof e.type==`string`}var KA=Symbol.for(`immer-nothing`),qA=Symbol.for(`immer-draftable`),JA=Symbol.for(`immer-state`);function YA(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var XA=Object,ZA=XA.getPrototypeOf,QA=`constructor`,$A=`prototype`,ej=`configurable`,tj=`enumerable`,nj=`writable`,rj=`value`,ij=e=>!!e&&!!e[JA];function aj(e){return e?cj(e)||hj(e)||!!e[qA]||!!e[QA]?.[qA]||gj(e)||_j(e):!1}var oj=XA[$A][QA].toString(),sj=new WeakMap;function cj(e){if(!e||!vj(e))return!1;let t=ZA(e);if(t===null||t===XA[$A])return!0;let n=XA.hasOwnProperty.call(t,QA)&&t[QA];if(n===Object)return!0;if(!yj(n))return!1;let r=sj.get(n);return r===void 0&&(r=Function.toString.call(n),sj.set(n,r)),r===oj}function lj(e,t,n=!0){uj(e)===0?(n?Reflect.ownKeys(e):XA.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function uj(e){let t=e[JA];return t?t.type_:hj(e)?1:gj(e)?2:_j(e)?3:0}var dj=(e,t,n=uj(e))=>n===2?e.has(t):XA[$A].hasOwnProperty.call(e,t),fj=(e,t,n=uj(e))=>n===2?e.get(t):e[t],pj=(e,t,n,r=uj(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function mj(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var hj=Array.isArray,gj=e=>e instanceof Map,_j=e=>e instanceof Set,vj=e=>typeof e==`object`,yj=e=>typeof e==`function`,bj=e=>typeof e==`boolean`;function xj(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Sj=e=>e.copy_||e.base_,Cj=e=>e.modified_?e.copy_:e.base_;function wj(e,t){if(gj(e))return new Map(e);if(_j(e))return new Set(e);if(hj(e))return Array[$A].slice.call(e);let n=cj(e);if(t===!0||t===`class_only`&&!n){let t=XA.getOwnPropertyDescriptors(e);delete t[JA];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[nj]===!1&&(a[nj]=!0,a[ej]=!0),(a.get||a.set)&&(t[i]={[ej]:!0,[nj]:!0,[tj]:a[tj],[rj]:e[i]})}return XA.create(ZA(e),t)}{let t=ZA(e);if(t!==null&&n)return{...e};let r=XA.create(t);return XA.assign(r,e)}}function Tj(e,t=!1){return Oj(e)||ij(e)||!aj(e)?e:(uj(e)>1&&XA.defineProperties(e,{set:Dj,add:Dj,clear:Dj,delete:Dj}),XA.freeze(e),t&&lj(e,(e,t)=>{Tj(t,!0)},!1),e)}function Ej(){YA(2)}var Dj={[rj]:Ej};function Oj(e){return e===null||!vj(e)||XA.isFrozen(e)}var kj=`MapSet`,Aj=`Patches`,jj=`ArrayMethods`,Mj={};function Nj(e){let t=Mj[e];return t||YA(0,e),t}var Pj=e=>!!Mj[e],Fj,Ij=()=>Fj,Lj=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Pj(kj)?Nj(kj):void 0,arrayMethodsPlugin_:Pj(jj)?Nj(jj):void 0});function Rj(e,t){t&&(e.patchPlugin_=Nj(Aj),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function zj(e){Bj(e),e.drafts_.forEach(Hj),e.drafts_=null}function Bj(e){e===Fj&&(Fj=e.parent_)}var Vj=e=>Fj=Lj(Fj,e);function Hj(e){let t=e[JA];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Uj(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[JA].modified_&&(zj(t),YA(4)),aj(e)&&(e=Wj(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[JA].base_,e,t)}else e=Wj(t,n);return Gj(t,e,!0),zj(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===KA?void 0:e}function Wj(e,t){if(Oj(t))return t;let n=t[JA];if(!n)return $j(t,e.handledSet_,e);if(!qj(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);Zj(n,e)}return n.copy_}function Gj(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Tj(t,n)}function Kj(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var qj=(e,t)=>e.scope_===t,Jj=[];function Yj(e,t,n,r){let i=Sj(e),a=e.type_;if(r!==void 0&&fj(i,r,a)===t){pj(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;lj(i,(e,n)=>{if(ij(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??Jj;for(let e of o)pj(i,e,n,a)}function Xj(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!qj(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Cj(i);Yj(e,i.draft_??i,a,n),Zj(i,r)})}function Zj(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Kj(e)}}function Qj(e,t,n){let{scope_:r}=e;if(ij(n)){let i=n[JA];qj(i,r)&&i.callbacks_.push(function(){cM(e),Yj(e,n,Cj(i),t)})}else aj(n)&&e.callbacks_.push(function(){let i=Sj(e);e.type_===3?i.has(n)&&$j(n,r.handledSet_,r):fj(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&$j(fj(e.copy_,t,e.type_),r.handledSet_,r)})}function $j(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||ij(e)||t.has(e)||!aj(e)||Oj(e)?e:(t.add(e),lj(e,(r,i)=>{if(ij(i)){let t=i[JA];qj(t,n)&&(pj(e,r,Cj(t),e.type_),Kj(t))}else aj(i)&&$j(i,t,n)}),e)}function eM(e,t){let n=hj(e),r={type_:+!!n,scope_:t?t.scope_:Ij(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=tM;n&&(i=[r],a=nM);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var tM={get(e,t){if(t===JA)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Sj(e);if(!dj(i,t,e.type_))return aM(e,i,t);let a=i[t];if(e.finalized_||!aj(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&xj(t))return a;if(a===rM(e.base_,t)||iM(e,t,a)){cM(e);let n=e.type_===1?+t:t,r=uM(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Sj(e)},ownKeys(e){return Reflect.ownKeys(Sj(e))},set(e,t,n){let r=oM(Sj(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=rM(Sj(e),t),i=r?.[JA];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.delete(t),!0;if(mj(n,r)&&(n!==void 0||dj(e.base_,t,e.type_)))return!0;cM(e),sM(e)}return e.copy_[t]===n&&(n!==void 0||dj(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Qj(e,t,n),!0)},deleteProperty(e,t){return cM(e),rM(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),sM(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Sj(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[nj]:!0,[ej]:e.type_!==1||t!==`length`,[tj]:r[tj],[rj]:n[t]}},defineProperty(){YA(11)},getPrototypeOf(e){return ZA(e.base_)},setPrototypeOf(){YA(12)}},nM={};for(let e in tM){let t=tM[e];nM[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}nM.deleteProperty=function(e,t){return nM.set.call(this,e,t,void 0)},nM.set=function(e,t,n){return tM.set.call(this,e[0],t,n,e[0])};function rM(e,t){let n=e[JA];return(n?Sj(n):e)[t]}function iM(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||!aj(n)||n[JA]?!1:e.baseRefs_.has(n)}function aM(e,t,n){let r=oM(t,n);return r?rj in r?r[rj]:r.get?.call(e.draft_):void 0}function oM(e,t){if(!(t in e))return;let n=ZA(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=ZA(n)}}function sM(e){e.modified_||(e.modified_=!0,e.parent_&&sM(e.parent_))}function cM(e){e.copy_||=(e.assigned_=new Map,wj(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var lM=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(yj(e)&&!yj(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}yj(t)||YA(6),n!==void 0&&!yj(n)&&YA(7);let r;if(aj(e)){let i=Vj(this),a=uM(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?zj(i):Bj(i)}return Rj(i,n),Uj(r,i)}if(!e||!vj(e)){if(r=t(e),r===void 0&&(r=e),r===KA&&(r=void 0),this.autoFreeze_&&Tj(r,!0),n){let t=[],i=[];Nj(Aj).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}YA(1,e)},this.produceWithPatches=(e,t)=>{if(yj(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},bj(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),bj(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),bj(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){aj(e)||YA(8),ij(e)&&(e=dM(e));let t=Vj(this),n=uM(t,e,void 0);return n[JA].isManual_=!0,Bj(t),n}finishDraft(e,t){let n=e&&e[JA];(!n||!n.isManual_)&&YA(9);let{scope_:r}=n;return Rj(r,t),Uj(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Nj(Aj).applyPatches_;return ij(e)?r(e,t):this.produce(e,e=>r(e,t))}};function uM(e,t,n,r){let[i,a]=gj(t)?Nj(kj).proxyMap_(t,n):_j(t)?Nj(kj).proxySet_(t,n):eM(t,n);return(n?.scope_??Ij()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Xj(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function dM(e){return ij(e)||YA(10,e),fM(e)}function fM(e){if(!aj(e)||Oj(e))return e;let t=e[JA],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=wj(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=wj(e,!0);let i=n;return _j(n)&&(n=new Set),lj(i,(e,t)=>{pj(n,e,fM(t))},r),t&&(t.finalized_=!1),n}globalThis.Iterator?.from;var pM=new lM().produce;function mM(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var hM=mM(),gM=mM,_M=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?UA:UA.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function vM(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(DN(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>GA(t)&&t.type===e,n}var yM=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function bM(e){return aj(e)?pM(e,()=>{}):e}function xM(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function SM(e){return typeof e==`boolean`}var CM=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new yM;return t&&(SM(t)?a.push(hM):a.push(gM(t.extraArgument))),a},wM=`RTK_autoBatch`,TM=()=>e=>({payload:e,meta:{[wM]:!0}}),EM=e=>t=>{setTimeout(t,e)},DM=(e,t)=>n=>{let r=!1,i,a,o=()=>{r||(r=!0,cancelAnimationFrame(i),clearTimeout(a),n())};i=e(o),a=setTimeout(o,t)},OM=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?DM(window.requestAnimationFrame,100):EM(10):e.type===`callback`?e.queueNotification:EM(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[wM],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},kM=e=>function(t){let{autoBatch:n=!0}=t??{},r=new yM(e);return n&&r.push(OM(typeof n==`object`?n:void 0)),r};function AM(e){let t=CM(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(zA(n))c=HA(n);else throw Error(DN(1));let l;l=typeof r==`function`?r(t):t();let u=UA;i&&(u=_M({trace:!1,...typeof i==`object`&&i}));let d=kM(WA(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return BA(c,o,p)}function jM(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(DN(28));if(r in t)throw Error(DN(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function MM(e){return typeof e==`function`}function NM(e,t){let[n,r,i]=jM(t),a;if(MM(e))a=()=>bM(e());else{let t=bM(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n){if(ij(e)){let r=n(e,t);return r===void 0?e:r}if(aj(e))return pM(e,e=>n(e,t));{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(DN(9))}return r}}return e},e)}return o.getInitialState=a,o}var PM=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,FM=(e=21)=>{let t=``,n=e;for(;n--;)t+=PM[Math.random()*64|0];return t},IM=Symbol.for(`rtk-slice-createasyncthunk`);function LM(e,t){return`${e}/${t}`}function RM({creators:e}={}){let t=e?.asyncThunk?.[IM];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(DN(11));let i=(typeof e.reducers==`function`?e.reducers(VM()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(DN(12));if(n in o.sliceCaseReducersByType)throw Error(DN(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:LM(n,r),createNotation:typeof e.reducers==`function`};UM(a)?GM(o,a,s,t):HM(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?jM(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return NM(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=xM(d,r,m)),i}function i(t=l){return xM(xM(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=zM(a,t,()=>xM(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function zM(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var BM=RM();function VM(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function HM({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!WM(r))throw Error(DN(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?vM(e,o):vM(e))}function UM(e){return e._reducerDefinitionType===`asyncThunk`}function WM(e){return e._reducerDefinitionType===`reducerWithPrepare`}function GM({type:e,reducerName:t},n,r,i){if(!i)throw Error(DN(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||KM,pending:s||KM,rejected:c||KM,settled:l||KM})}function KM(){}var qM=`task`,JM=`listener`,YM=`completed`,XM=`cancelled`,ZM=`task-${XM}`,QM=`task-${YM}`,$M=`${JM}-${XM}`,eN=`${JM}-${YM}`,tN=class{code;name=`TaskAbortError`;message;constructor(e){this.code=e,this.message=`${qM} ${XM} (reason: ${e})`}},nN=(e,t)=>{if(typeof e!=`function`)throw TypeError(DN(32))},rN=()=>{},iN=(e,t=rN)=>(e.catch(t),e),aN=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),oN=e=>{if(e.aborted)throw new tN(e.reason)};function sN(e,t){let n=rN;return new Promise((r,i)=>{let a=()=>i(new tN(e.reason));if(e.aborted){a();return}n=aN(e,a),t.finally(()=>n()).then(r,i)}).finally(()=>{n=rN})}var cN=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof tN?`cancelled`:`rejected`,error:e}}finally{t?.()}},lN=e=>t=>iN(sN(e,t).then(t=>(oN(e),t))),uN=e=>{let t=lN(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:dN}=Object,fN={},pN=`listenerMiddleware`,mN=(e,t)=>{let n=t=>aN(e,()=>t.abort(e.reason));return(r,i)=>{nN(r,`taskExecutor`);let a=new AbortController;n(a);let o=cN(async()=>{oN(e),oN(a.signal);let t=await r({pause:lN(a.signal),delay:uN(a.signal),signal:a.signal});return oN(a.signal),t},()=>a.abort(QM));return i?.autoJoin&&t.push(o.catch(rN)),{result:lN(e)(o),cancel(){a.abort(ZM)}}}},hN=(e,t)=>{let n=async(n,r)=>{oN(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await sN(t,Promise.race(a));return oN(t),e}finally{i()}};return((e,t)=>iN(n(e,t)))},gN=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=vM(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(DN(21));return nN(a,`options.listener`),{predicate:i,type:t,effect:a}},_N=dN(e=>{let{type:t,predicate:n,effect:r}=gN(e);return{id:FM(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(DN(22))}}},{withTypes:()=>_N}),vN=(e,t)=>{let{type:n,effect:r,predicate:i}=gN(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},yN=e=>{e.pending.forEach(e=>{e.abort($M)})},bN=(e,t)=>()=>{for(let e of t.keys())yN(e);e.clear()},xN=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},SN=dN(vM(`${pN}/add`),{withTypes:()=>SN}),CN=vM(`${pN}/removeAll`),wN=dN(vM(`${pN}/remove`),{withTypes:()=>wN}),TN=(...e)=>{console.error(`${pN}/error`,...e)},EN=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=TN}=e;nN(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&yN(e)}),c=(e=>{let n=vN(t,e)??_N(e);return s(n)});dN(c,{withTypes:()=>c});let l=e=>{let n=vN(t,e);return n&&(n.unsubscribe(),e.cancelActive&&yN(n)),!!n};dN(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=hN(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,dN({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:uN(u.signal),pause:lN(u.signal),extra:a,signal:u.signal,fork:mN(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort($M),n.delete(e))})},cancel:()=>{u.abort($M),e.pending.delete(u)},throwIfCancelled:()=>{oN(u.signal)}})))}catch(e){e instanceof tN||xN(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(eN),i(e),e.pending.delete(u)}},d=bN(t,n);return{middleware:e=>n=>r=>{if(!GA(r))return n(r);if(SN.match(r))return c(r.payload);if(CN.match(r)){d();return}if(wN.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===fN)throw Error(DN(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,xN(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=fN}return s},startListening:c,stopListening:l,clearListeners:d}};function DN(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var ON=BM({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),{setMargin:kN,setLayout:AN,setChartSize:jN,setScale:MN}=ON.actions,NN=ON.reducer;function PN(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function FN(e){return Number.isFinite(e)}function IN(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function LN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function RN(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?LN(Object(n),!0).forEach(function(t){zN(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zN(e,t,n){return(t=BN(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BN(e){var t=VN(e,`string`);return typeof t==`symbol`?t:t+``}function VN(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function HN(e,t,n){return hO(e)||hO(t)?n:cO(t)?eO(e,t,n):typeof t==`function`?t(e):n}var UN=(e,t,n)=>{if(t&&n){var{width:r,height:i}=n,{align:a,verticalAlign:o,layout:s}=t;if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&Z(e[a]))return RN(RN({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&Z(e[o]))return RN(RN({},e),{},{[o]:e[o]+(i||0)})}return e},WN=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,GN=(e,t,n,r)=>{if(r)return e.map(e=>e.coordinate);var i,a,o=e.map(e=>(e.coordinate===t&&(i=!0),e.coordinate===n&&(a=!0),e.coordinate));return i||o.push(t),a||o.push(n),o},KN=(e,t,n)=>{if(!e)return null;var{duplicateDomain:r,type:i,range:a,scale:o,realScaleType:s,isCategorical:c,categoricalDomain:l,tickCount:u,ticks:d,niceTicks:f,axisType:p}=e;if(!o)return null;var m=s===`scaleBand`&&o.bandwidth?o.bandwidth()/2:2,h=(t||n)&&i===`category`&&o.bandwidth?o.bandwidth()/m:0;return h=p===`angleAxis`&&a&&a.length>=2?aO(a[0]-a[1])*2*h:h,t&&(d||f)?(d||f||[]).map((e,t)=>{var n=r?r.indexOf(e):e,i=o.map(n);return FN(i)?{coordinate:i+h,value:e,offset:h,index:t}:null}).filter(_O):c&&l?l.map((e,t)=>{var n=o.map(e);return FN(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(_O):o.ticks&&!n&&u!=null?o.ticks(u).map((e,t)=>{var n=o.map(e);return FN(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(_O):o.domain().map((e,t)=>{var n=o.map(e);return FN(n)?{coordinate:n+h,value:r?r[e]:e,index:t,offset:h}:null}).filter(_O)},qN=(e,t)=>{if(!t||t.length!==2||!Z(t[0])||!Z(t[1]))return e;var n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]),i=[e[0],e[1]];return(!Z(e[0])||e[0]<n)&&(i[0]=n),(!Z(e[1])||e[1]>r)&&(i[1]=r),i[0]>r&&(i[0]=r),i[1]<n&&(i[1]=n),i},JN={sign:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r<n;++r)for(var i=0,a=0,o=0;o<t;++o){var s=e[o]?.[r];if(s!=null){var c=s[1],l=s[0],u=oO(c)?l:c;u>=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:VD,none:ID,silhouette:HD,wiggle:UD,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r<n;++r)for(var i=0,a=0;a<t;++a){var o=e[a]?.[r];if(o!=null){var s=oO(o[1])?o[0]:o[1];s>=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},YN=(e,t,n)=>{var r=JN[n]??ID,i=BD().keys(t).value((e,t)=>Number(HN(e,t,0))).order(LD).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=HN(e[i],t[r],0);Array.isArray(a)&&a.length===2&&Z(a[0])&&Z(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function XN(e){return e==null?void 0:String(e)}var ZN=e=>{var{axis:t,ticks:n,offset:r,bandSize:i,entry:a,index:o}=e;if(t.type===`category`)return n[o]?n[o].coordinate+r:null;var s=HN(a,t.dataKey,t.scale.domain()[o]);if(hO(s))return null;var c=t.scale.map(s);return Z(c)?c-i/2+r:null},QN=e=>{var{numericAxis:t}=e,n=t.scale.domain();if(t.type===`number`){var r=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]);return r<=0&&i>=0?0:i<0?i:r}return n[0]},$N=e=>{var t=e.flat(2).filter(Z);return[Math.min(...t),Math.max(...t)]},eP=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],tP=(e,t,n)=>{if(e!=null)return eP(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var{stackedData:o}=a,s=o.reduce((e,r)=>{var i=$N(PN(r,t,n));return!FN(i[0])||!FN(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(s[0],r[0]),Math.max(s[1],r[1])]},[1/0,-1/0]))},nP=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rP=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,iP=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=AA(t,e=>e.coordinate),a=1/0,o=1,s=i.length;o<s;o++){var c=i[o],l=i[o-1];a=Math.min((c?.coordinate||0)-(l?.coordinate||0),a)}return a===1/0?0:a}return n?void 0:0};function aP(e){var{tooltipEntrySettings:t,dataKey:n,payload:r,value:i,name:a}=e;return RN(RN({},t),{},{dataKey:n,payload:r,value:i,name:a})}function oP(e,t){if(e)return String(e);if(typeof t==`string`)return t}var sP=(e,t)=>{if(t===`horizontal`)return e.relativeX;if(t===`vertical`)return e.relativeY},cP=(e,t)=>t===`centric`?e.angle:e.radius,lP=e=>e.layout.width,uP=e=>e.layout.height,dP=e=>e.layout.scale,fP=e=>e.layout.margin,pP=$(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),mP=$(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),hP=`data-recharts-item-index`;function gP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _P(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?gP(Object(n),!0).forEach(function(t){vP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vP(e,t,n){return(t=yP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yP(e){var t=bP(e,`string`);return typeof t==`symbol`?t:t+``}function bP(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var xP=e=>e.brush.height;function SP(e){return mP(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function CP(e){return mP(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function wP(e){return pP(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+t.height:e,0)}function TP(e){return pP(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+t.height:e,0)}var EP=$([lP,uP,fP,xP,SP,CP,wP,TP,jA,MA],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=_P(_P({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=UN(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return _P(_P({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),DP=$(EP,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),OP=$(lP,uP,(e,t)=>({x:0,y:0,width:e,height:t})),kP=(0,v.createContext)(null),AP=()=>(0,v.useContext)(kP)!=null,jP=e=>e.brush,MP=$([jP,EP,fP],(e,t,n)=>({height:e.height,x:Z(e.x)?e.x:t.left,y:Z(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:Z(e.width)?e.width:t.width}));function NP(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function PP(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=NP(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?((r||i)&&(s=e.apply(this,t)),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function FP(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return PP(e,t,{leading:r,maxWait:t,trailing:i})}var IP=function(e,t){var n=[...arguments].slice(2);if(typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e)){if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}}},LP={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},RP=(e,t,n)=>{var{width:r=LP.width,height:i=LP.height,aspect:a,maxHeight:o}=n,s=sO(r)?e:Number(r),c=sO(i)?t:Number(i);return a&&a>0&&(s?c=s/a:c&&(s=c*a),o&&c!=null&&c>o&&(c=o)),{calculatedWidth:s,calculatedHeight:c}},zP={width:0,height:0,overflow:`visible`},BP={width:0,overflowX:`visible`},VP={height:0,overflowY:`visible`},HP={},UP=e=>{var{width:t,height:n}=e,r=sO(t),i=sO(n);return r&&i?zP:r?BP:i?VP:HP};function WP(e){var{width:t,height:n,aspect:r}=e,i=t,a=n;return i===void 0&&a===void 0?(i=LP.width,a=LP.height):i===void 0?i=r&&r>0?void 0:LP.width:a===void 0&&(a=r&&r>0?void 0:LP.height),{width:i,height:a}}function GP(){return GP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},GP.apply(null,arguments)}function KP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?KP(Object(n),!0).forEach(function(t){JP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function JP(e,t,n){return(t=YP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YP(e){var t=XP(e,`string`);return typeof t==`symbol`?t:t+``}function XP(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ZP=(0,v.createContext)(LP.initialDimension);function QP(e){return IN(e.width)&&IN(e.height)}function $P(e){var{children:t,width:n,height:r}=e,i=(0,v.useMemo)(()=>({width:n,height:r}),[n,r]);return QP(i)?v.createElement(ZP.Provider,{value:i},t):null}var eF=()=>(0,v.useContext)(ZP),tF=(0,v.forwardRef)((e,t)=>{var{aspect:n,initialDimension:r=LP.initialDimension,width:i,height:a,minWidth:o=LP.minWidth,minHeight:s,maxHeight:c,children:l,debounce:u=LP.debounce,id:d,className:f,onResize:p,style:m={}}=e,h=(0,v.useRef)(null),g=(0,v.useRef)();g.current=p,(0,v.useImperativeHandle)(t,()=>h.current);var[_,y]=(0,v.useState)({containerWidth:r.width,containerHeight:r.height}),b=(0,v.useCallback)((e,t)=>{y(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,v.useEffect)(()=>{if(h.current==null||typeof ResizeObserver>`u`)return vO;var e=e=>{var t,n=e[0];if(n!=null){var{width:r,height:i}=n.contentRect;b(r,i),(t=g.current)==null||t.call(g,r,i)}};u>0&&(e=FP(e,u,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),{width:n,height:r}=h.current.getBoundingClientRect();return b(n,r),t.observe(h.current),()=>{t.disconnect()}},[b,u]);var{containerWidth:x,containerHeight:S}=_;IP(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var{calculatedWidth:C,calculatedHeight:w}=RP(x,S,{width:i,height:a,aspect:n,maxHeight:c});return IP(C!=null&&C>0||w!=null&&w>0,`The width(%s) and height(%s) of chart should be greater than 0,
131
+ `)))return}w.current=!0,D.current.begin(),x(!0);let t=O;g(null);try{let n=await X(`/api/settings/imports`,{method:`POST`,body:JSON.stringify(OS(c,e))});if(!E.current)return;m(n),e&&t===k.current&&g({id:n.id,fingerprint:t}),C(``)}catch(e){E.current&&C(e.message),ee().catch(()=>{})}finally{w.current=!1,E.current&&x(!1)}}async function ce(){if(!w.current){w.current=!0,D.current.begin();try{let e=await X(`/api/settings/imports/current/cancel`,{method:`POST`,body:`{}`});E.current&&m(e.job)}catch(e){E.current&&C(e.message)}finally{w.current=!1}}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4 min-w-0`,"aria-label":n(t?`Sessions`:`Import chat history`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:n(t?`Sessions`:`Import chat history`)}),!t&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Conversations populate project facts. User prompts populate personal preferences, recurring patterns, and workflow steps.`)}),(0,H.jsxs)(`p`,{className:`flex flex-wrap gap-3 text-sm`,children:[(0,H.jsx)(`a`,{className:`underline`,href:J.project,onClick:e=>{e.preventDefault(),_f(J.project)},children:n(`Project memories`)}),(0,H.jsx)(`a`,{className:`underline`,href:J.profile,onClick:e=>{e.preventDefault(),_f(J.profile)},children:n(`User profile`)}),(0,H.jsx)(`a`,{className:`underline`,href:`${J.settings}#settings-section-profiles`,onClick:e=>{e.preventDefault(),_f(`${J.settings}#settings-section-profiles`)},children:n(`Profile identity in Settings`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Hosts keep their existing user identities. All hosts does not merge profiles with different identities.`)}),(0,H.jsx)(dS,{}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-sm`,children:[gS.map(e=>(0,H.jsxs)(`label`,{children:[(0,H.jsx)(`input`,{type:`checkbox`,"aria-label":Yd(e),checked:c.hosts[e].enabled,onChange:t=>te(e,{enabled:t.target.checked})}),` `,Yd(e)]},e)),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,onClick:()=>I({hosts:{pi:{...c.hosts.pi,enabled:!0},opencode:{...c.hosts.opencode,enabled:!0},"claude-code":{...c.hosts[`claude-code`],enabled:!0}}}),children:n(`All hosts`)}),(0,H.jsxs)(`span`,{role:`status`,children:[n(`Selected hosts`),`: `,j.length]})]})]}),(0,H.jsx)(NS,{draft:c,skillRecording:o,advanced:l,onChange:I,onAdvanced:()=>u(e=>!e)}),M.map(e=>(0,H.jsx)(PS,{host:e,draft:c,readiness:d,advanced:l,listing:!!_[e],onChange:t=>te(e,t),onList:(t,n)=>L(e,t,n),onUnresolved:()=>{I({scope:`all-projects`}),u(!0)}},e)),ne&&(0,H.jsx)(`p`,{role:`alert`,children:n(ne)}),!P&&(R||ie)&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:R??ie}),!ae&&!P&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Preview the current selection before starting an import.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(`button`,{type:`button`,className:MS,disabled:oe,onClick:()=>se(!0),children:n(`Preview (dry run)`)}),(0,H.jsx)(`button`,{type:`button`,className:MS,disabled:oe||!ae||!!ie,onClick:()=>se(!1),children:n(`Start import`)}),P&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm disabled:opacity-50`,disabled:p?.state===`cancelling`,onClick:()=>ce(),children:n(`Cancel after current unit`)})]}),S&&(0,H.jsx)(`p`,{role:`alert`,children:QS(S,n)}),(0,H.jsx)(rC,{job:A}),(0,H.jsx)(tC,{job:A,onReload:F}),(0,H.jsx)($S,{job:A})]})}var lC=3e5,uC=null,dC,fC=new Set,pC=new Set;async function mC(e){try{uC=await X(`/api/memory/write-health${e?`?fresh=1`:``}`)}catch{}for(let e of[...fC,...pC])e()}function hC(e){return fC.add(e),fC.size===1&&(mC(!1),dC=setInterval(()=>{document.hidden||mC(!1)},lC)),()=>{fC.delete(e),fC.size===0&&clearInterval(dC)}}function gC(){return{health:(0,v.useSyncExternalStore)(hC,()=>uC,()=>null),recheck:()=>mC(!0)}}function _C(e){return pC.add(e),()=>pC.delete(e)}function vC(){return(0,v.useSyncExternalStore)(_C,()=>uC,()=>null)}function yC(e){let t=(t,...n)=>n.every((n,r)=>e[t+r]===n);return t(0,137,80,78,71,13,10,26,10)?`png`:t(0,255,216,255)?`jpeg`:t(0,71,73,70,56)?`gif`:t(0,82,73,70,70)&&t(8,87,69,66,80)?`webp`:null}async function bC(e){return e.size>20971520?`size`:yC(new Uint8Array(await e.slice(0,16).arrayBuffer()))?null:`type`}function xC(e,t){let n=Math.min(e,t);return{x:Math.floor((e-n)/2),y:Math.floor((t-n)/2),side:n}}async function SC(e){let t=await createImageBitmap(e);try{let{x:e,y:n,side:r}=xC(t.width,t.height),i=document.createElement(`canvas`);i.width=128,i.height=128;let a=i.getContext(`2d`);if(!a)throw Error(`This browser cannot draw the image`);a.imageSmoothingQuality=`high`,a.drawImage(t,e,n,r,r,0,0,128,128);let o=await new Promise(e=>i.toBlob(e,`image/png`));if(!o)throw Error(`This browser cannot save the image`);let s=new Uint8Array(await o.arrayBuffer()),c=``;for(let e of s)c+=String.fromCharCode(e);return btoa(c)}finally{t.close()}}function CC({host:e,onClose:t}){let n=Y(),{looks:r,setIcon:i,setImage:a,reset:o}=qx(),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1),h=s===null?r[e]:`reset`in s?{kind:`default`}:s.look,g=Yx.filter(e=>e.includes(l.trim().toLowerCase()));async function _(e){if(!e)return;f(``);let t=await bC(e);if(t){f(n(t===`size`?`The image is larger than 20 MB.`:`Only PNG, JPEG, WebP and GIF images are accepted.`));return}try{let t=await SC(e);c({look:{kind:`image`,image:`data:image/png;base64,${t}`},png:t})}catch{f(n(`This browser could not read the image.`))}}async function y(){if(s===null)return t();m(!0);try{`reset`in s?await o(e):s.look.kind===`icon`?await i(e,s.look.icon):s.png&&await a(e,s.png),t()}catch(e){f(e.message),m(!1)}}return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>!e&&!p&&t(),children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:`${n(`Change icon`)}: ${Yd(e)}`}),(0,H.jsx)(Gl,{children:n(`Every avatar is shown at the same size. Images are cropped to a square.`)})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(Zx,{host:e,look:h}),(0,H.jsxs)(`label`,{className:`inline-flex`,children:[(0,H.jsx)(`input`,{type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif`,className:`sr-only peer`,onChange:e=>void _(e.target.files?.[0])}),(0,H.jsxs)(`span`,{className:`inline-flex h-8 cursor-pointer items-center gap-1.5 rounded-[9px] border border-border px-3 text-ui font-medium hover:bg-interactive-hover peer-focus-visible:outline-2 peer-focus-visible:outline-ring`,children:[(0,H.jsx)(Re,{className:`size-4`,"aria-hidden":`true`}),n(`Upload image`)]})]}),(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>c({reset:!0}),children:[(0,H.jsx)(wt,{"aria-hidden":`true`}),n(`Reset to default`)]})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`PNG, JPEG, WebP or GIF, up to 20 MB.`)}),(0,H.jsx)(ad,{type:`search`,value:l,onChange:e=>u(e.target.value),"aria-label":n(`Search icons`),placeholder:n(`Search icons`)}),(0,H.jsxs)(`div`,{role:`group`,"aria-label":n(`Choose icon`),className:`grid max-h-48 grid-cols-6 gap-1 overflow-y-auto sm:grid-cols-8`,children:[g.map(e=>{let t=Jx[e],n=h.kind===`icon`&&h.icon===e;return(0,H.jsx)(`button`,{type:`button`,title:e,"aria-label":e,"aria-pressed":n,onClick:()=>c({look:{kind:`icon`,icon:e}}),className:V(`grid size-10 place-items-center rounded-[9px] border border-transparent text-muted-foreground hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,n&&`border-primary bg-primary/10 text-primary-label`),children:(0,H.jsx)(t,{className:`size-5`,"aria-hidden":`true`})},e)}),g.length===0&&(0,H.jsx)(`p`,{className:`col-span-full text-sm text-muted-foreground`,children:n(`No icon matches.`)})]}),d&&(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:d}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,onClick:t,disabled:p,children:n(`Cancel`)}),(0,H.jsx)(K,{type:`button`,onClick:()=>void y(),disabled:p||s===null,children:n(`Save`)})]})]})})}function wC({view:e,line:t,warning:n,notSetUp:r,current:i,compact:a}){let o=Y(),{looks:s}=qx(),[c,l]=(0,v.useState)(!1),u=e===`shared`?null:e,d=u?Yd(u):o(`Shared`),f=ud(e),p=u?(0,H.jsx)(Zx,{host:u,look:s[u],className:a?`size-8`:void 0}):(0,H.jsx)(Qx,{className:a?`size-8`:void 0});return(0,H.jsxs)(`div`,{className:`relative h-full min-w-0`,children:[(0,H.jsxs)(`a`,{href:f,"aria-current":i?`page`:void 0,onClick:e=>{e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),_f(f))},className:V(`flex h-full min-w-0 flex-col gap-3 rounded-xl border bg-card p-4 text-start transition-colors duration-150 hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2`,a&&`flex-row items-center gap-2 p-2 pe-10`,n?`border-[var(--status-warning)]`:`border-border`,i&&`bg-sidebar-accent`,r&&`opacity-70`),children:[p,(0,H.jsxs)(`span`,{className:`min-w-0 space-y-1`,children:[(0,H.jsx)(`span`,{className:`block break-words text-subsection-title font-semibold`,children:d}),(0,H.jsx)(`span`,{className:`block break-words text-xs text-muted-foreground`,children:n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`font-medium text-status-warning`,children:o(`Memories not saved`)}),!a&&(0,H.jsx)(`span`,{className:`block`,children:n})]}):t})]})]}),u&&(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:a?`icon-xs`:`icon-sm`,className:`absolute end-2 top-2`,"aria-label":`${o(`Change icon`)}: ${d}`,title:o(`Change icon`),onClick:()=>l(!0),children:(0,H.jsx)(mt,{"aria-hidden":`true`})}),c&&u&&(0,H.jsx)(CC,{host:u,onClose:()=>l(!1)})]})}function TC({current:e,statuses:t}){let n=Y(),{health:r}=gC(),i=r&&!r.ok?r.reason??``:null;return(0,H.jsx)(`nav`,{"aria-label":n(`Memory views`),children:(0,H.jsx)(`ul`,{className:`grid grid-cols-2 gap-2 lg:grid-cols-4`,children:ld.map(r=>{let a=r===`shared`?null:r,o=a?t.line(a):{text:`Every host`};return(0,H.jsx)(`li`,{className:`min-w-0`,children:(0,H.jsx)(wC,{compact:!0,view:r,current:r===e,line:nS(n,o),warning:a&&t.input(a).setUp?i:null,notSetUp:a?!t.input(a).setUp:!1})},r)})})})}function EC({reason:e,checking:t,onCheck:n}){let r=Y();return(0,H.jsxs)(`div`,{role:`alert`,className:`flex flex-wrap items-center gap-x-3 gap-y-2 rounded-xl border border-[var(--status-warning)] bg-card p-3 text-sm`,children:[(0,H.jsx)(Bt,{className:`size-4 shrink-0 text-status-warning`,"aria-hidden":`true`}),(0,H.jsxs)(`p`,{className:`min-w-0 flex-1 break-words`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:r(`Memories are not being saved.`)}),` `,e?/[.!?]$/.test(e)?e:`${e}.`:``,` `,r(`Fix the service named here, then press Check again.`)]}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:t,onClick:n,children:r(`Check again`)})]})}function DC(){let{health:e,recheck:t}=gC(),[n,r]=(0,v.useState)(!1);return!e||e.ok?null:(0,H.jsx)(EC,{reason:e.reason,checking:n,onCheck:()=>{r(!0),t().finally(()=>r(!1))}})}function OC({host:e,statuses:t,profilePreset:n}){let r=Y(),i=!t.input(e).setUp;return(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(TC,{current:e,statuses:t}),(0,H.jsx)(DC,{}),(0,H.jsx)(aS,{host:e,statuses:t}),i?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`${Yd(e)}: ${r(`OMMS did not find this host's chat history on this computer. Install the host and use it once, then reload this page.`)}`}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(cC,{host:e,profilePreset:n}),(0,H.jsx)(Mx,{hosts:[e],saved:!1,title:`Sessions that need a folder`,anchorId:`host-unresolved`}),(0,H.jsx)(zx,{host:e,backfill:t.backfill})]})]})}var kC=`project architecture, setup, conventions and key decisions`,AC=10,jC={opening:!1,query:kC,subagent:!0,restore:!0,limit:String(AC)};function MC(e){let t=t=>e?.[t]?.globalValue,n=(e,n)=>typeof t(e)==`boolean`?t(e):n,r=t(`compaction.memoryLimit`),i=t(`openingContextQuery`);return{opening:n(`openingContext`,jC.opening),query:typeof i==`string`?i:jC.query,subagent:n(`subagentMemory`,jC.subagent),restore:n(`compaction.enabled`,jC.restore),limit:typeof r==`number`?String(r):jC.limit}}function NC(e){let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)&&n>0?n:void 0}function PC(e){return NC(e.limit)===void 0?`limit`:e.query.trim().length>500?`query`:null}function FC(e,t){if(PC(e))return{};let n={};e.opening!==t.opening&&(n.openingContext=e.opening===jC.opening?null:e.opening);let r=e.query.trim();r!==t.query.trim()&&(n.openingContextQuery=r===`project architecture, setup, conventions and key decisions`?null:r),e.subagent!==t.subagent&&(n.subagentMemory=e.subagent===jC.subagent?null:e.subagent),e.restore!==t.restore&&(n[`compaction.enabled`]=e.restore===jC.restore?null:e.restore);let i=NC(e.limit);return i!==NC(t.limit)&&(n[`compaction.memoryLimit`]=i===AC?null:i),n}function IC(e,t){return Object.keys(FC(e,t)).length>0}function LC(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(jC),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1),u=(0,v.useRef)(jC),d=(0,v.useRef)(r);d.current=r,(0,v.useEffect)(()=>{let e=!0,t=e=>{let t=MC(e.settings),r=JSON.stringify(d.current)===JSON.stringify(u.current);u.current=t,n(e),r&&i(t)},r=oy();X(`/api/settings`).then(n=>{e&&r.isCurrent()&&t(n)}).catch(()=>{e&&c({kind:`load-failed`})});let a=cy(n=>{e&&t(n)});return()=>{e=!1,a()}},[]);let f=PC(r),p=IC(r,u.current),m=e=>i(t=>({...t,...e}));async function h(){if(!t||!p||l.current)return;l.current=!0,o(!0);let e;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:FC(r,u.current),revision:t.revision})})}catch(t){e=t}let n=await sy()!==null;o(!1),l.current=!1,c(e?{kind:`save-failed`,message:e.message,reloaded:n}:{kind:`saved`,reloaded:n})}function g(t){if(t.kind===`load-failed`)return e(`The memory injection settings could not be loaded. Reload the page to try again.`);if(t.kind===`saved`)return t.reloaded?e(`Saved. The next session uses these options.`):ly(e(`Saved. The next session uses these options.`),e(`Reload the page before saving again.`));let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);return ly(e(t.message),n)}let _=`${r.query.length} / 500`;return(0,H.jsxs)(`section`,{id:`memory-injection`,className:`scroll-mt-20 space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Memory injection`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Memory injection`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Sets how OMMS adds memories to the context the model sees.`)}),(0,H.jsxs)(lx,{tone:`success`,children:[(0,H.jsx)(`p`,{children:e(`Memories are added at these moments:`)}),(0,H.jsxs)(`ul`,{className:`list-disc space-y-1 ps-5`,children:[(0,H.jsx)(`li`,{children:e(`With every message: the memories that match that message. On by default. chatMessage.enabled in the config file turns it off, and the first-message and subagent options with it.`)}),(0,H.jsx)(`li`,{children:e(`With the first message of a new session: the memories that match the query below. Needs the first switch.`)}),(0,H.jsx)(`li`,{children:e(`For a subagent: the memories that match its task. Claude Code adds them once, when the subagent starts. OpenCode V2 and Pi add them with each prompt the subagent gets. Needs the Subagent memory switch.`)}),(0,H.jsx)(`li`,{children:e(`After a compaction or resume: the memories that session captured. Needs the Restore switch.`)})]}),(0,H.jsx)(`p`,{children:e(`Nothing is added when a new session opens.`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`A project config can turn the first-message and subagent options off. It can turn restore on or off.`)}),(0,H.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),h()},children:[(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`checkbox`,id:`injection-opening`,role:`switch`,checked:r.opening,disabled:a,"aria-describedby":`injection-opening-help`,onChange:e=>m({opening:e.target.checked})}),(0,H.jsx)(Fp,{htmlFor:`injection-opening`,children:e(`Inject memories with the first message`)})]}),(0,H.jsx)(`p`,{id:`injection-opening-help`,className:`text-xs text-muted-foreground`,children:e(`Added once, with the first message of a new session. Nothing is added when a new session opens. OMMS searches the query below and adds only matching memories.`)}),(0,H.jsx)(lx,{tone:`info`,children:(0,H.jsx)(`p`,{children:e(`Claude Code can add memories when a session opens. Pi and OpenCode V2 cannot. To keep all three the same, OMMS adds them with the first message on every host.`)})})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`injection-query`,children:e(`First-message search query`)}),(0,H.jsx)(Ip,{id:`injection-query`,maxLength:500,rows:3,disabled:a,value:r.query,"aria-invalid":f===`query`||void 0,"aria-describedby":`injection-query-count`,onChange:e=>m({query:e.target.value})}),(0,H.jsx)(`span`,{id:`injection-query-count`,dir:`ltr`,className:`block text-xs tabular-nums text-muted-foreground`,children:_})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`checkbox`,id:`injection-subagent`,role:`switch`,checked:r.subagent,disabled:a,"aria-describedby":`injection-subagent-help`,onChange:e=>m({subagent:e.target.checked})}),(0,H.jsx)(Fp,{htmlFor:`injection-subagent`,children:e(`Subagent memory`)})]}),(0,H.jsx)(`p`,{id:`injection-subagent-help`,className:`text-xs text-muted-foreground`,children:e(`Subagents get memories that match their task. Claude Code adds them once, at start. OpenCode V2 and Pi add them with each subagent prompt. No rows are shown for them.`)}),(0,H.jsx)(lx,{tone:`warning`,children:(0,H.jsx)(`p`,{children:e(`Applies to OpenCode V2, Pi and Claude Code. OpenCode V1 is not covered. On Pi, a subagent gets memory only when its agent maps the OMMS extension in om-pi-subagents. Turn it on in /omps-settings, Agent capabilities, Memory.`)})})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`checkbox`,id:`injection-restore`,role:`switch`,checked:r.restore,disabled:a,onChange:e=>m({restore:e.target.checked})}),(0,H.jsx)(Fp,{htmlFor:`injection-restore`,children:e(`Restore memories after compaction or resume`)})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Added when a session resumes or compacts. Restores the memories that session captured.`)}),(0,H.jsx)(Fp,{htmlFor:`injection-limit`,children:e(`Most memories to restore`)}),(0,H.jsx)(ad,{type:`number`,id:`injection-limit`,className:`w-36 tabular-nums`,inputMode:`numeric`,step:1,min:1,disabled:a,value:r.limit,"aria-invalid":f===`limit`||void 0,"aria-describedby":`injection-limit-help`,onChange:e=>m({limit:e.target.value})}),(0,H.jsx)(`span`,{id:`injection-limit-help`,className:`block text-xs ${f===`limit`?`text-red-600`:`text-muted-foreground`}`,children:e(`Enter a positive whole number.`)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(K,{type:`submit`,disabled:a||!t||!p,children:e(`Save`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a,onClick:()=>i(jC),children:e(`Reset to default`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:g(s)})]})}function RC({statuses:e,profilePreset:t}){let n=Y(),{health:r}=gC(),[i,a]=(0,v.useState)(!1),o=r&&!r.ok?r.reason??``:null;return(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Choose a host to see its history import, sessions and settings.`)}),(0,H.jsx)(`ul`,{className:`grid grid-cols-2 items-stretch gap-3 lg:grid-cols-4`,children:ld.map(t=>{let r=t===`shared`?null:t,i=r?e.line(r):{text:`Settings for every host`};return(0,H.jsx)(`li`,{className:`min-w-0`,children:(0,H.jsx)(wC,{view:t,line:nS(n,i),warning:r&&e.input(r).setUp?o:null,notSetUp:r?!e.input(r).setUp:!1})},t)})}),(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-label":n(`Import all hosts`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,"aria-expanded":i,"aria-controls":`memory-import-all`,onClick:()=>a(e=>!e),children:n(`Import all hosts`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Runs one import for every host you tick. It makes model calls and can cost money.`)})]}),(0,H.jsx)(`div`,{id:`memory-import-all`,hidden:!i,children:i&&(0,H.jsx)(cC,{profilePreset:t})})]}),(0,H.jsx)(LC,{})]})}var zC=[{value:`boost`,label:`Boost (default)`},{value:`rrf`,label:`Rank fusion (experimental)`}];function BC(e){return e===`boost`||e===`rrf`}function VC(e){return BC(e)?e:`boost`}function HC(e){return{keywordMode:e}}function UC(e){let t=t=>{let n=e[t]?.value;return typeof n==`string`&&n.trim().length>0};return e.rerankerEnabled?.value===!0&&t(`rerankerApiUrl`)&&t(`rerankerModel`)}function WC(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(`boost`),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1),u=(0,v.useRef)(void 0);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&(u.current=r,n(r),i(VC(r.settings.keywordMode?.globalValue)))}).catch(()=>{e&&c({kind:`load-failed`})});let r=cy(t=>{if(!e)return;let r=u.current,a=t;u.current=a,n(a),i(e=>!r||e===VC(r.settings.keywordMode?.globalValue)?VC(a.settings.keywordMode?.globalValue):e)});return()=>{e=!1,r()}},[]);let d=VC(t?.settings.keywordMode?.globalValue),f=t?.settings.keywordMode?.source===`project`,p=t?UC(t.settings):!1;async function m(){if(!t||l.current)return;l.current=!0,o(!0);let e=!1,n=!1;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:HC(r),revision:t.revision})}),e=!0}catch(e){n=e?.message?.includes(`Config changed`)===!0}let i=await sy()!==null;o(!1),l.current=!1,c(n?{kind:`save`,ok:e,reloaded:i,stale:n}:{kind:`save`,ok:e,reloaded:i})}function h(t){if(t.kind===`load-failed`)return e(`The keyword matching setting could not be loaded. Reload the page to try again.`);let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);return t.stale?ly(e(`Config changed. Reload settings and save again.`),n):t.ok?e(`Saved. New searches use this mode.`):ly(e(`The keyword matching setting could not be saved. Reload the page to try again.`),n)}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Keyword matching`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Keyword matching`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Search finds memories by meaning and by exact words from your prompt.`)}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),m()},children:[(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`keyword-mode`,children:e(`Word matching mode`)}),(0,H.jsx)(`div`,{className:`w-72 max-w-full`,children:(0,H.jsx)(Dr,{id:`keyword-mode`,className:`w-full`,value:r,disabled:a,onChange:e=>{BC(e.target.value)&&i(e.target.value)},children:zC.map(t=>(0,H.jsx)(`option`,{value:t.value,children:e(t.label)},t.value))})}),(0,H.jsx)(`span`,{id:`keyword-mode-help`,className:`block text-xs text-muted-foreground`,children:`keywordMode`})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(r===`rrf`?`Rank fusion merges a list by meaning and a list by words. A memory that contains a word of your prompt can be returned even when its meaning score is below the similarity threshold. Experimental: it has not been shown to find more relevant memories.`:`Boost adds a small score bonus to memories that contain a word of your prompt.`)}),p&&r===`rrf`&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`Rank fusion is not used while the reranker is on. Search uses the boost.`)}),f&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`A project file can override this setting. This page edits the global value.`)}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{type:`submit`,disabled:a||!t||r===d,children:e(`Save`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a||r===d,onClick:()=>i(d),children:e(`Cancel`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:h(s)})]})}var GC=`Enter a positive whole number.`,KC=[{key:`maxMemories`,id:`memory-maxMemories`,default:10,unit:`Results`,affects:`Maximum memory search results. Manual searches can request fewer; prompt retrieval uses this ceiling.`,min:1,max:2**53-1,accepted:GC,kind:`integer`},{key:`chatMessage.maxMemories`,id:`memory-chatMessage-maxMemories`,default:3,unit:`Memories`,affects:`Recent memories added at session start in OpenCode V1 and Claude Code. Pi and OpenCode V2 use prompt-based search instead.`,min:1,max:2**53-1,accepted:GC,kind:`integer`},{key:`autoCaptureMaxContextBytes`,id:`memory-autoCaptureMaxContextBytes`,default:131072,unit:`Bytes`,affects:`Conversation input sent to the memory-summary model through the shared capture pipeline. Smaller values can omit conversation text.`,min:16384,max:16777216,accepted:`Enter a whole number from 16,384 to 16,777,216.`,kind:`integer`},{key:`userProfileMaxContextBytes`,id:`memory-userProfileMaxContextBytes`,default:32768,unit:`Bytes`,affects:`OpenCode profile-learning input. Smaller values can omit prompts from that input. This control does not limit the other hosts' profile input.`,min:1024,max:16777216,accepted:`Enter a whole number from 1,024 to 16,777,216.`,kind:`integer`},{key:`retrievalMaxTokens`,id:`memory-retrievalMaxTokens`,default:2e3,unit:`Approximate tokens`,affects:`Automatic memory context, including profile text and formatting, added to agent requests across all hosts. Smaller values can show fewer or shorter memories.`,min:256,max:65536,accepted:`Enter a whole number from 256 to 65,536.`,kind:`integer`},{key:`similarityThreshold`,id:`memory-similarityThreshold`,default:.6,unit:`Similarity score`,affects:`Lowest score a memory needs to be returned by search. Lower values return more memories, including less relevant ones. Higher values can return none. The default depends on the embedder.`,min:0,max:1,accepted:`Enter a number from 0 to 1.`,kind:`decimal`}];[...KC.flatMap(e=>[e.unit,e.affects,e.accepted])];function qC(e,t){let n=typeof t==`string`?t.trim():``;if(!n||!/^-?\d+(\.\d+)?$/.test(n))return;let r=Number(n);if(!(e.kind===`integer`&&!Number.isInteger(r)))return r>=e.min&&r<=e.max?r:void 0}function JC(e){return e.toLocaleString(`en-US`)}function YC(e,t,n){let r=t[e.key];return typeof r==`string`?r:String(n[e.key]??e.default)}function XC(e,t){let n=!1;for(let r of KC){let i=e[r.key];if(typeof i!=`string`)continue;let a=qC(r,i);if(a===void 0)return!1;a!==(t[r.key]??r.default)&&(n=!0)}return n}function ZC(e,t){let n={};if(!XC(e,t))return n;for(let r of KC){let i=e[r.key];if(typeof i!=`string`)continue;let a=qC(r,i);a!==(t[r.key]??r.default)&&(n[r.key]=a)}return n}var QC=`Config changed. Reload settings and save again.`;function $C(e){if(e===`Config changed. Reload settings and save again.`)return{kind:`stale`};let t=KC.map(e=>e.key.replace(/\./g,`\\.`)).join(`|`),n=RegExp(`^Invalid (${t}) setting\\b`).exec(e);return n?{kind:`invalid`,key:n[1]}:{kind:`unknown`}}function ew(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({}),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&n(r)}).catch(()=>{e&&c({kind:`load-failed`})});let r=cy(t=>{e&&n(t)});return()=>{e=!1,r()}},[]);let u={},d={};for(let e of KC){let n=t?.settings[e.key];u[e.key]=typeof n?.globalValue==`number`?n.globalValue:void 0,d[e.key]=typeof n?.default==`number`?n.default:e.default}let f=XC(r,u),p=`~/.config/omms/omms.jsonc`,m=e(`Edit ~/.config/omms/omms.jsonc directly to set these limits without the web UI.`).split(p);async function h(){if(!t||!f||l.current)return;let e=ZC(r,u);Object.keys(e).length&&await _(e)}async function g(e){!t||a||l.current||t.settings[e]?.hasGlobal&&await _({[e]:null})}async function _(e){if(!t||l.current)return;l.current=!0,o(!0);let n=!1,r;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:e,revision:t.revision})}),n=!0}catch(e){r=e}let a=await sy()!==null;o(!1),l.current=!1,n?(i(t=>{let n={...t};for(let t of Object.keys(e))delete n[t];return n}),c({kind:`saved`,reloaded:a})):c({kind:`save-failed`,failure:$C(r?.message??``),reloaded:a})}function y(t){if(t.kind===`load-failed`)return e(`The memory settings could not be loaded. Reload the page to try again.`);if(t.kind===`saved`)return t.reloaded?e(`Saved. New memory operations use these limits.`):`${e(`Saved. New memory operations use these limits.`)} ${e(`Reload the page before saving again.`)}`;let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);if(t.failure.kind===`stale`)return ly(e(QC),n);if(t.failure.kind===`invalid`){let r=t.failure,i=KC.find(e=>e.key===r.key);return ly(`${e(`Invalid setting`)} ${i.key}: ${e(i.accepted)}`,n)}return ly(e(`The memory settings could not be saved.`),n)}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Memory limits`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Memory limits`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Byte limits count UTF-8 bytes.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Approximate tokens are estimated as ceil(UTF-8 bytes / 4). A provider can count more or fewer tokens for the same text.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`These controls do not delete stored data, set a spending limit, limit model replies, or control Graphify output.`)}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[m[0],(0,H.jsx)(`code`,{dir:`ltr`,children:p}),m[1]]}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),h()},children:[(0,H.jsx)(`div`,{className:Wy,children:(0,H.jsxs)(`table`,{className:`w-full min-w-[56rem] text-sm`,children:[(0,H.jsx)(`caption`,{className:`sr-only`,children:e(`Memory limits`)}),(0,H.jsx)(`thead`,{className:Ky,children:(0,H.jsx)(`tr`,{children:[`Setting`,`Value`,`Default`,`Unit`,`Affects`].map(t=>(0,H.jsx)(`th`,{className:qy,children:e(t)},t))})}),(0,H.jsx)(`tbody`,{children:KC.map(n=>{let o=r[n.key],s=YC(n,r,u),c=typeof o==`string`&&qC(n,o)===void 0,l=t?.settings[n.key],f=l?.source===`project`,p=l?.hasGlobal===!0,m=p&&typeof l?.globalValue==`number`&&l.globalValue!==d[n.key];return(0,H.jsxs)(`tr`,{className:Jy,children:[(0,H.jsxs)(`td`,{className:Yy,children:[(0,H.jsx)(`code`,{dir:`ltr`,children:n.key}),f&&(0,H.jsxs)(`div`,{className:`mt-1 space-y-0.5 text-xs text-amber-600`,children:[(0,H.jsxs)(`p`,{children:[e(`Effective value`),`: `,String(l?.value??``),` (`,e(`project`),`)`]}),(0,H.jsx)(`p`,{children:e(`Project override is active. Changes to the global file may not take effect here.`)}),(0,H.jsx)(`p`,{children:e(`The project value stays in force. Saving edits the global file only.`)})]})]}),(0,H.jsxs)(`td`,{className:Yy,children:[(0,H.jsx)(`input`,{type:`number`,id:`${n.id}-input`,className:`w-36 tabular-nums`,inputMode:n.kind===`decimal`?`decimal`:`numeric`,step:n.kind===`decimal`?.01:1,min:n.min,max:n.max,"aria-label":`${n.key} ${e(`Value`)}`,"aria-describedby":`${n.id}-help`,"aria-invalid":c||void 0,disabled:a,value:s,onChange:e=>i(t=>({...t,[n.key]:e.target.value}))}),(0,H.jsx)(`span`,{id:`${n.id}-help`,className:`block text-xs ${c?`text-red-600`:`text-muted-foreground`}`,children:e(n.accepted)}),(0,H.jsx)(`button`,{type:`button`,"data-reset":n.key,className:`mt-1 block text-xs underline`,disabled:a||!p,"aria-label":`${n.key} ${e(`Reset to default`)}`,onClick:()=>void g(n.key),children:e(`Reset to default`)})]}),(0,H.jsxs)(`td`,{className:`${Yy} tabular-nums`,children:[JC(d[n.key]),m&&(0,H.jsx)(`span`,{className:`block text-xs text-amber-600`,children:e(`Differs from default`)})]}),(0,H.jsx)(`td`,{className:Yy,children:e(n.unit)}),(0,H.jsx)(`td`,{className:Yy,children:e(n.affects)})]},n.key)})})]})}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(`button`,{type:`submit`,disabled:a||!t||!f,onClick:()=>void h(),children:e(`Save memory limits`)}),(0,H.jsx)(`button`,{type:`button`,disabled:a,onClick:()=>i({}),children:e(`Cancel`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:y(s)})]})}var tw=`Enter a whole number from 50 to 100000.`;function nw(e){let t=e.trim();if(!/^\d+$/.test(t))return{ok:!1,message:tw};let n=Number(t);return n<50||n>1e5?{ok:!1,message:tw}:{ok:!0,value:n}}function rw(e,t){let n=nw(t);return n.ok?n.value===e?{kind:`none`}:{kind:`edit`,edits:{userProfileAutoCleanupInterval:n.value}}:{kind:`error`,message:n.message}}function iw(e,t){return e===t?null:{userProfileAutoCleanupEnabled:t}}var aw=500;function ow(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!1),d=t?.settings.userProfileAutoCleanupEnabled?.globalValue!==!1,f=Number(t?.settings.userProfileAutoCleanupInterval?.globalValue??aw);(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>{e&&n(t)}).catch(t=>{e&&c(t.message)});let t=cy(t=>{e&&n(t)});return()=>{e=!1,t()}},[]),(0,v.useEffect)(()=>{t&&i(String(f))},[t,f]);async function p(n){if(t){u(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:n,revision:t.revision})}),c(e(`Saved. Changes apply at the next learning pass.`))}catch(e){c(e.message)}await sy(),u(!1)}}function m(){let t=rw(f,r);if(t.kind===`error`){o(e(t.message));return}o(``),t.kind===`edit`&&p(t.edits)}return(0,H.jsxs)(`div`,{className:`space-y-2 border-t border-border pt-3`,children:[(0,H.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`Automatic profile cleanup`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e(`After a learning pass, OMMS merges duplicate profile items and removes vague ones by itself, in the background. Each run makes about one model call for every 100 items and takes several minutes on a large profile. Undo last automatic cleanup on the Profile page puts the changes back.`)}),(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,H.jsx)(`input`,{type:`checkbox`,checked:d,disabled:l||!t,onChange:e=>{let t=iw(d,e.target.checked);t&&p(t)}}),e(`Clean up the profile automatically`)]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,H.jsx)(`label`,{htmlFor:`auto-cleanup-interval`,children:e(`Run every this many analysed prompts`)}),(0,H.jsx)(`input`,{id:`auto-cleanup-interval`,className:`w-28 rounded border border-border bg-background px-2 py-1`,inputMode:`numeric`,value:r,disabled:l||!t,"aria-invalid":a?!0:void 0,"aria-describedby":a?`auto-cleanup-interval-error`:void 0,onChange:e=>{i(e.target.value),o(``)}}),(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:l||!t||r.trim()===String(f),onClick:m,children:e(`Save interval`)})]}),a&&(0,H.jsx)(`p`,{id:`auto-cleanup-interval-error`,role:`alert`,className:`text-sm text-destructive`,children:a}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:s})]})}function sw({preview:e,job:t,busy:n,onStart:r,onPause:i}){let a=Y(),o=t.state===`running`;return(0,H.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,H.jsxs)(`p`,{children:[a(`Prompts waiting for profile learning`),`: `,e.waiting,` ·`,` `,a(`Estimated profile analysis calls`),`: `,e.calls]}),t.state!==`idle`&&(0,H.jsxs)(`p`,{role:`status`,children:[a(`Batches done`),`: `,t.batchesBuilt,` · `,a(`Prompts waiting`),`: `,t.remaining,t.state===`paused`&&` · ${a(`Paused`)}`,t.state===`done`&&` · ${a(`Finished`)}`]}),t.state===`superseded`&&(0,H.jsx)(`p`,{children:a(`A newer catch-up run took over.`)}),t.state===`failed`&&(0,H.jsxs)(`p`,{className:`text-red-600`,children:[a(`Stopped`),`: `,t.reason??`error`]}),o?(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,onClick:i,children:a(`Pause`)}):(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5`,disabled:n||e.waiting===0,onClick:r,children:a(t.state===`idle`||t.state===`done`?`Analyse waiting prompts`:`Resume`)})]})}function cw({onReanalyse:e}={}){let t=Y(),[n,r]=(0,v.useState)(),[i,a]=(0,v.useState)({state:`idle`,batchesBuilt:0,remaining:0}),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(``);async function f(){let e=await X(`/api/settings/profile/catch-up`);r(e.preview),a(e.job)}(0,v.useEffect)(()=>{f().catch(e=>d(e.message)),X(`/api/web/status`).then(e=>s(!!e.isLocal)).catch(()=>{})},[]),(0,v.useEffect)(()=>{if(i.state!==`running`)return;let e=setInterval(()=>void f().catch(()=>{}),2e3);return()=>clearInterval(e)},[i.state]);async function p(){if(!n)return;let e=i.state!==`idle`&&i.state!==`done`;if(window.confirm(`${t(`Start profile learning for the waiting prompts? Model calls`)}: ${n.calls}`)){l(!0);try{a(await X(`/api/settings/profile/catch-up/${e?`resume`:`start`}`,{method:`POST`,body:`{}`})),d(``)}catch(e){d(e.message)}l(!1)}}async function m(){try{a(await X(`/api/settings/profile/catch-up/pause`,{method:`POST`,body:`{}`}))}catch(e){d(e.message)}}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":t(`Profile learning`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:t(`Profile learning`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Analyse waiting prompts reads prompts already inside OMMS with the saved external API, 50 eligible prompts per analysis call. Completed history is not re-analysed. Preferences, patterns, and workflows are the outputs.`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Analysis calls are an estimate. Matching, deduplication, retries, and newly waiting prompts can add calls.`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Re-analyse chat history opens a forced profile-only import. It preserves your profile and project memories. Preview and confirmation are required. Each profile prompt can be forcibly re-analysed once.`)}),e&&(0,H.jsx)(`button`,{type:`button`,className:`rounded border border-border px-3 py-1.5 text-sm`,onClick:e,children:t(`Re-analyse chat history`)}),n&&(o?(0,H.jsx)(sw,{preview:n,job:i,busy:c,onStart:()=>void p(),onPause:()=>void m()}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Open this page on the computer that runs OMMS to start a catch-up run.`)})),u&&(0,H.jsx)(`p`,{role:`alert`,children:u}),(0,H.jsx)(ow,{})]})}function lw(e){let t=typeof e==`string`?e.trim():``;if(!t||!/^\d+$/.test(t))return;let n=Number(t);return n>=500&&n<=3e4?n:void 0}function uw(e){return/^(env:\/\/[A-Za-z_][A-Za-z0-9_]*|file:\/\/.+)$/.test(e.trim())}function dw(e){try{let t=new URL(e.trim()).hostname.toLowerCase();return!(t===`localhost`||t===`::1`||t===`[::1]`||/^127\.\d+\.\d+\.\d+$/.test(t))}catch{return!1}}function fw(e){if(e.enabled&&(e.url.trim().length===0||e.model.trim().length===0))return{field:`url-model`};if(e.key.trim().length>0&&!uw(e.key))return{field:`key`};if(lw(e.timeout)===void 0)return{field:`timeout`}}function pw(e){return fw(e)===void 0}function mw(e){return{rerankerEnabled:e.enabled,rerankerApiUrl:e.url.trim()||null,rerankerModel:e.model.trim()||null,rerankerApiKey:e.key.trim()||null,rerankerTimeoutMs:lw(e.timeout)??4e3}}function hw(e){let t=e?.settings,n=e?.secrets.rerankerApiKey?.reference;return{enabled:t?.rerankerEnabled?.value===!0,url:typeof t?.rerankerApiUrl?.value==`string`?t.rerankerApiUrl.value:``,model:typeof t?.rerankerModel?.value==`string`?t.rerankerModel.value:``,key:e?.secrets.rerankerApiKey?.set?`${e.secrets.rerankerApiKey.source}://${n??``}`:``,timeout:typeof t?.rerankerTimeoutMs?.value==`number`?String(t.rerankerTimeoutMs.value):`4000`}}function gw(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({enabled:!1,url:``,model:``,key:``,timeout:`4000`}),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(),l=(0,v.useRef)(!1),u=(0,v.useRef)(void 0);(0,v.useEffect)(()=>{let e=!0,t=oy();X(`/api/settings`).then(r=>{e&&t.isCurrent()&&(u.current=r,n(r),i(hw(r)))}).catch(()=>{e&&c({kind:`load-failed`})});let r=cy(t=>{if(!e)return;let r=u.current,a=t;u.current=a,n(a),i(e=>!r||JSON.stringify(e)===JSON.stringify(hw(r))?hw(a):e)});return()=>{e=!1,r()}},[]);let d=fw(r),f=pw(r),p=r.url.trim().length>0&&dw(r.url);function m(e){i(t=>({...t,...e}))}async function h(){if(a||l.current||!f)return;l.current=!0,o(!0);let e=!1,t;try{let n=await X(`/api/settings/reranker/test`,{method:`POST`,body:JSON.stringify({rerankerApiUrl:r.url.trim()||void 0,rerankerModel:r.model.trim()||void 0,rerankerApiKey:r.key.trim()||void 0,rerankerTimeoutMs:lw(r.timeout)??4e3})});e=n.success===!0,t=n.code}catch{t=`reranker_unreachable`}o(!1),l.current=!1,c({kind:`test`,ok:e,code:t})}async function g(){if(!t||!f||l.current)return;l.current=!0,o(!0);let e=!1,n=!1;try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:mw(r),revision:t.revision})}),e=!0}catch(e){n=e?.message?.includes(`Config changed`)===!0}let i=await sy()!==null;o(!1),l.current=!1,c(n?{kind:`save`,ok:e,reloaded:i,stale:n}:{kind:`save`,ok:e,reloaded:i})}function _(t){if(t.kind===`load-failed`)return e(`The reranker settings could not be loaded. Reload the page to try again.`);if(t.kind===`test`)return t.ok?e(`Test passed.`):`${e(`Test failed:`)} ${t.code??`reranker_unreachable`}`;let n=t.reloaded?e(`Current settings were reloaded; check the values and save again.`):e(`The current settings could not be reloaded. Reload the page.`);return t.stale?ly(e(`Config changed. Reload settings and save again.`),n):t.ok?e(`Saved. New searches use these settings.`):ly(e(`The reranker settings could not be saved. Reload the page to try again.`),n)}return(0,H.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-border bg-card p-4`,"aria-label":e(`Reranker`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:e(`Reranker`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The reranker reorders the best memory search results with your reranker server and keeps the top results.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The reranker sends the prompt and the text of candidate memories to the server URL. A server on the same machine is recommended.`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`A project file cannot change these settings. The reranker settings are global only.`)}),!r.enabled&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`Search is unchanged while the switch is off.`)}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),g()},children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`input`,{type:`checkbox`,id:`reranker-enabled`,role:`switch`,checked:r.enabled,disabled:a,"aria-label":e(`Use a reranker`),onChange:e=>m({enabled:e.target.checked})}),(0,H.jsx)(Fp,{htmlFor:`reranker-enabled`,children:e(`Use a reranker`)})]}),(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-url`,children:e(`Server URL`)}),(0,H.jsx)(ad,{type:`url`,id:`reranker-url`,dir:`ltr`,placeholder:`http://127.0.0.1:3008/v1`,disabled:a,value:r.url,"aria-invalid":d?.field===`url-model`||void 0,"aria-describedby":`reranker-url-help`,onChange:e=>m({url:e.target.value})}),(0,H.jsx)(`span`,{id:`reranker-url-help`,className:`block text-xs text-muted-foreground`,children:d?.field===`url-model`?e(`Enter the server URL and model before turning the reranker on.`):`rerankerApiUrl`}),p&&(0,H.jsx)(`p`,{className:`text-xs text-amber-600`,children:e(`This URL is not on this machine: memory text leaves this machine.`)})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-model`,children:e(`Model`)}),(0,H.jsx)(ad,{type:`text`,id:`reranker-model`,dir:`ltr`,disabled:a,value:r.model,"aria-invalid":d?.field===`url-model`||void 0,onChange:e=>m({model:e.target.value})}),(0,H.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:`rerankerModel`})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-key`,children:e(`Key`)}),(0,H.jsx)(ad,{type:`text`,id:`reranker-key`,dir:`ltr`,disabled:a,value:r.key,"aria-invalid":d?.field===`key`||void 0,"aria-describedby":`reranker-key-help`,onChange:e=>m({key:e.target.value})}),(0,H.jsx)(`span`,{id:`reranker-key-help`,className:`block text-xs text-muted-foreground`,children:d?.field===`key`?e(`The key must be an env:// or file:// reference, or left empty.`):e(`Optional env:// or file:// key reference.`)})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Fp,{htmlFor:`reranker-timeout`,children:e(`Timeout`)}),(0,H.jsx)(ad,{type:`number`,id:`reranker-timeout`,className:`tabular-nums`,inputMode:`numeric`,step:1,min:500,max:3e4,disabled:a,value:r.timeout,"aria-invalid":d?.field===`timeout`||void 0,"aria-describedby":`reranker-timeout-help`,onChange:e=>m({timeout:e.target.value})}),(0,H.jsx)(`span`,{id:`reranker-timeout-help`,className:`block text-xs text-muted-foreground`,children:d?.field===`timeout`?e(`Enter a whole number from 500 to 30,000.`):e(`milliseconds`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`The default of 4000 keeps the search inside OpenCode V2's 5-second wait. A value over 5000 can make OpenCode V2 send the request with no memory.`)})]})]}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(K,{type:`submit`,disabled:a||!t||!f,onClick:()=>void g(),children:e(`Save`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a||!f,onClick:()=>void h(),children:e(`Test`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,disabled:a,onClick:()=>i(hw(t)),children:e(`Cancel`)})]})]}),s&&(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:_(s)})]})}var _w=e=>{let t=e?.value??e?.globalValue;return t==null||t===``?null:String(t)};function vw(e,t){let n=_w(e?.maxMemories),r=_w(e?.similarityThreshold),i=_w(e?.keywordMode),a=_w(e?.rerankerModel);return{profile:{text:`Prompts waiting for profile learning, and re-analysis of old chats`},limits:n&&r?{text:`Results {results} · Similarity {similarity}`,params:{results:n,similarity:r}}:{text:`How many memories a search returns`},keywords:i?{text:`Mode: {mode}`,params:{mode:i}}:{text:`Keyword matching`},reranker:_w(e?.rerankerApiUrl)?a?{text:`On · {model}`,params:{model:a}}:{text:`On`}:{text:`Off`},maps:t?{text:`{saved} saved · {ignored} ignored`,params:t}:{text:`Saved maps and ignored directories`}}}function yw({id:e,title:t,summary:n,children:r}){return(0,H.jsxs)(`details`,{id:e,"data-shared-row":!0,className:`scroll-mt-20 rounded-xl border border-border bg-card`,children:[(0,H.jsxs)(`summary`,{className:`flex min-h-11 cursor-pointer flex-wrap items-baseline gap-x-3 gap-y-1 rounded-xl p-4 focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h2`,{className:`text-subsection-title font-semibold`,children:t}),(0,H.jsx)(`span`,{className:`min-w-0 break-words text-xs text-muted-foreground`,children:n})]}),(0,H.jsx)(`div`,{className:`border-t border-border p-4`,children:r})]})}function bw({title:e,summary:t}){let n=`/memory#memory-injection`;return(0,H.jsxs)(`a`,{id:`shared-memory-injection`,href:n,onClick:e=>{e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||(e.preventDefault(),_f(n))},className:`flex min-h-11 flex-wrap items-baseline gap-x-3 gap-y-1 rounded-xl border border-border bg-card p-4 transition-colors duration-150 hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(`h2`,{className:`text-subsection-title font-semibold`,children:e}),(0,H.jsx)(`span`,{className:`min-w-0 break-words text-xs text-muted-foreground`,children:t})]})}function xw({statuses:e,onReanalyse:t}){let n=Y(),[r,i]=(0,v.useState)(),[a,o]=(0,v.useState)();(0,v.useEffect)(()=>{let e=!0,t=()=>{X(`/api/settings`).then(t=>e&&i(t.settings)).catch(()=>{}),X(`/api/settings/import-maps`).then(t=>e&&o({saved:t.saved.length,ignored:t.ignored?.length??0})).catch(()=>{})};t();let n=cy(t);return()=>{e=!1,n()}},[]);let s=vw(r,a),c=e=>nS(n,s[e]),l=MC(r),u=e=>n(e?`On`:`Off`),d=nS(n,{text:`First message {opening} · Subagents {subagent} · Restore {restore}`,params:{opening:u(l.opening),subagent:u(l.subagent),restore:u(l.restore)}});return(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(TC,{current:`shared`,statuses:e}),(0,H.jsxs)(`header`,{className:`space-y-1`,children:[(0,H.jsx)(`h2`,{className:`text-page-title font-semibold`,children:n(`Shared`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`These settings apply to every host. Open a row to change it.`)})]}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(yw,{id:`shared-profile`,title:n(`Profile learning`),summary:c(`profile`),children:(0,H.jsx)(cw,{onReanalyse:t})}),(0,H.jsx)(yw,{id:`shared-limits`,title:n(`Memory limits`),summary:c(`limits`),children:(0,H.jsx)(ew,{})}),(0,H.jsx)(bw,{title:n(`Memory injection`),summary:d}),(0,H.jsx)(yw,{id:`shared-keywords`,title:n(`Keyword matching`),summary:c(`keywords`),children:(0,H.jsx)(WC,{})}),(0,H.jsx)(yw,{id:`shared-reranker`,title:n(`Reranker`),summary:c(`reranker`),children:(0,H.jsx)(gw,{})}),(0,H.jsx)(yw,{id:`shared-directory-maps`,title:n(`Directory maps`),summary:c(`maps`),children:(0,H.jsx)(Mx,{hosts:[]})})]})]})}var Sw=3e3;function Cw(){let e=Y(),[t,n]=(0,v.useState)(),[r,i]=(0,v.useState)({pi:null,opencode:null,"claude-code":null}),[a,o]=(0,v.useState)(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(!1),p=(0,v.useRef)(sS(i,e=>u(e.message))),m=(0,v.useRef)(sS(o,e=>u(e.message))),h=()=>p.current(X(`/api/settings/backfill`)),g=()=>m.current(X(`/api/settings/backfill/runs`));(0,v.useEffect)(()=>{let e=!0;X(`/api/settings`).then(t=>e&&n(t)).catch(t=>e&&u(t.message)),h(),g();for(let t of[`pi`,`opencode`])X(`/api/settings/models?host=${t}`).then(n=>e&&c(e=>({...e,[t]:n}))).catch(()=>e&&c(e=>({...e,[t]:{available:!1}})));let t=cy(t=>{e&&(n(t),h())}),r=setInterval(()=>{e&&(h(),g())},Sw);return()=>{e=!1,clearInterval(r),t()}},[]);async function _(n){if(t){f(!0);try{await X(`/api/settings`,{method:`PATCH`,body:JSON.stringify({edits:n,revision:t.revision})}),u(e(`Saved. Changes apply at the next run.`))}catch(e){u(e.message)}await sy(),f(!1)}}async function y(t,n){f(!0);let r=a?.[t]?.run?.state===`running`;try{await X(`/api/settings/backfill/${t}/${n}`,{method:`POST`,body:`{}`}),u(e(n===`pause`?r?`Pausing after the current exchange.`:`Paused. No import starts until you resume.`:`Backfill started.`))}catch(e){u(e.message)}await Promise.all([g(),h()]),f(!1)}function b(t,n){try{_(Fx(t,n.trim()))}catch(t){u(e(t.message))}}return{snapshot:t,rows:r,runs:a,lists:s,message:l,busy:d,save:_,control:y,saveModel:b,setMessage:u}}var ww=6e4;function Tw(){let e=Cw(),[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(null),a=Y();(0,v.useEffect)(()=>{let e=!0,t=()=>void X(`/api/settings/imports/readiness`).then(t=>e&&n(t)).catch(()=>e&&n(null));t();let r=cy(t);return()=>{e=!1,r()}},[]),(0,v.useEffect)(()=>{let e=!0,t=()=>void X(`/api/settings/last-saved`).then(t=>e&&i(t.hosts)).catch(()=>void 0);t();let n=cy(t),r=setInterval(t,ww);return()=>{e=!1,n(),clearInterval(r)}},[]);let o=e=>{let t=Mi(new Date(e),new Date),n=tm(e);return t===`earlier`?`${em(e)} ${n}`:a(t===`today`?`today {time}`:`yesterday {time}`).replaceAll(`{time}`,n)},s=n=>({host:n,run:e.runs?.[n]?.run??null,pending:e.rows[n]?.counts.pending??0,cutoff:e.rows[n]?.cutoff??null,runNowUnavailable:e.runs?.[n]?.runNowUnavailable??null,setUp:t?.defaultSourceFound?.[n]!==!1,formatDate:em,lastSaved:r?.[n]??null,formatSaved:o});return{backfill:e,readiness:t,input:s,status:e=>eS(s(e)),line:e=>tS(s(e))}}function Ew(){let e=fd(yf().split(`#`)[0]),t=Tw(),[n,r]=(0,v.useState)(0);(0,v.useEffect)(()=>{cf(window.location.hash)},[e]);function i(){r(e=>e+1),_f(J.memory)}return(0,H.jsxs)(`div`,{className:`settings-view`,children:[e===null&&(0,H.jsx)(RC,{statuses:t,profilePreset:n}),e===`shared`&&(0,H.jsx)(xw,{statuses:t,onReanalyse:i}),e!==null&&e!==`shared`&&(0,H.jsx)(OC,{host:e,statuses:t,profilePreset:n})]})}var Dw=`/api/chat`,Ow={"Content-Type":`application/json`},kw=15e4,Aw=(e,t,n,r)=>oi(`${Dw}${e}`,{method:t,headers:Ow,body:n===void 0?void 0:JSON.stringify(n),timeout:r}),jw={status:()=>oi(`${Dw}/status`),list:()=>oi(`${Dw}/conversations`),get:e=>oi(`${Dw}/conversations/${encodeURIComponent(e)}`),create:(e,t)=>Aw(`/conversations`,`POST`,{folderId:e,scopeTag:t}),rename:(e,t)=>Aw(`/conversations/${encodeURIComponent(e)}`,`PATCH`,{title:t}),move:(e,t)=>Aw(`/conversations/${encodeURIComponent(e)}`,`PATCH`,{folderId:t}),remove:e=>Aw(`/conversations/${encodeURIComponent(e)}`,`DELETE`),removeMany:e=>Aw(`/conversations/bulk-delete`,`POST`,{ids:e}),ask:(e,t,n,r=!1)=>Aw(`/conversations/${encodeURIComponent(e)}/messages`,`POST`,{question:t,scopeTag:n,retry:r},kw),createFolder:e=>Aw(`/folders`,`POST`,{name:e}),renameFolder:(e,t)=>Aw(`/folders/${encodeURIComponent(e)}`,`PATCH`,{name:t}),removeFolder:e=>Aw(`/folders/${encodeURIComponent(e)}`,`DELETE`)},Mw={conversations:[],folders:[],readOnly:!1};function Nw(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(Mw),[i,a]=(0,v.useState)([]),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(null),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),m=(0,v.useCallback)(async()=>{let e=await jw.list();e.success&&e.data&&r(e.data)},[]);(0,v.useEffect)(()=>{jw.status().then(e=>e.success&&e.data&&t(e.data)),oi(`/api/tags`).then(e=>e.success&&e.data&&a(e.data.project)),m()},[m]);let h=(0,v.useCallback)(e=>e===null||i.some(t=>t.tag===e),[i]),g=(0,v.useCallback)(async e=>{let t=await jw.get(e);if(!t.success||!t.data)return void U.error(t.error??``);s(e),l(t.data);let n=t.data.conversation.scopeTag;d(h(n)?n:void 0)},[h]),_=(0,v.useCallback)(async(e=null)=>{let t=await jw.create(e,null);if(!t.success||!t.data)return void U.error(t.error??``);await m(),s(t.data.id),l({conversation:t.data,messages:[]}),d(null)},[m]),y=(0,v.useCallback)(async(e,t=!1)=>{if(u===void 0)return;let n=o;if(!n){let e=await jw.create(null,u);if(!e.success||!e.data)return void U.error(e.error??``);n=e.data.id,s(n),l({conversation:e.data,messages:[]})}p(e);let r=await jw.ask(n,e,u,t);if(p(null),!r.success||!r.data)return void U.error(r.error??``);await g(n),await m()},[o,u,g,m]),b=(0,v.useCallback)(e=>{let t=c?.messages??[],n=t[t.findIndex(t=>t.id===e.id)-1];n?.role===`user`&&y(n.content,!0)},[c,y]),x=(0,v.useCallback)(async e=>{o&&e.includes(o)&&(s(null),l(null),d(null)),await m()},[o,m]),S=(0,v.useCallback)(async e=>{let t=e.length===1?await jw.remove(e[0]):await jw.removeMany(e);if(!t.success)return void U.error(t.error??``);await x(e)},[x]),C=(0,v.useCallback)(async e=>{let t=n.conversations.filter(t=>t.folderId===e).map(e=>e.id),r=await jw.removeFolder(e);if(!r.success)return void U.error(r.error??``);await x(t)},[n,x]),w=(0,v.useCallback)(async e=>{let t=await e();return t.success?(await m(),o&&await g(o),null):t.code===`conflict`?`conflict`:t.error??`error`},[m,o,g]);return{status:e,list:n,projects:i,activeId:o,detail:c,scope:u,setScope:d,pending:f,scopeMissing:!!c&&u===void 0,open:g,newChat:_,ask:y,retry:b,deleteChats:S,deleteFolder:C,change:w}}function Pw(e,t){return e||t?[`S`,`P`,`K`]:[`S`,`P`]}function Fw(e,t,n){return e?e.kind===`memory`?t.has(e.id):e.kind===`skill`&&n.has(e.id):!1}function Iw(e,t,n){return e.modified&&e.lastAppliedAt!==null?t(`chat-skill-modified-yes`,{date:n(e.lastAppliedAt)}):t(`chat-skill-modified-no`)}var Lw=e=>`chat-skill-kind-${e}`;function Rw(e,t){let n=[[t(`chat-search-phrases`),e.queries],[t(`chat-search-tags`),e.tags],[t(`chat-search-categories`),e.profileCategories]];return e.skills&&n.push([t(`chat-search-skills`),e.skills]),e.skillIntent&&n.push([t(`chat-search-skill-intent`),[t(`chat-intent-${e.skillIntent}`)]]),n}function zw(e){return e.startsWith(`P`)?`border-blue-600/40 bg-blue-500/10 text-blue-700 hover:bg-blue-500/20 dark:text-blue-400`:e.startsWith(`K`)?`border-violet-600/40 bg-violet-500/10 text-violet-700 hover:bg-violet-500/20 dark:text-violet-400`:`border-primary/30 bg-primary/10 text-primary-label hover:bg-primary/20`}function Bw({label:e,deleted:t,onOpen:n}){let{t:r}=G();return(0,H.jsx)(`button`,{type:`button`,"aria-haspopup":`dialog`,"aria-label":r(`chat-cite-label`,{label:e}),onClick:n,className:V(`mx-0.5 inline-flex h-5 cursor-pointer items-center rounded-md border px-1.5 align-baseline text-[11px] font-medium tabular-nums transition-colors duration-200 ease-in focus-visible:outline-2 focus-visible:outline-ring`,zw(e),t&&`line-through opacity-70`),children:e})}var Vw={S:`chat-legend-memory`,P:`chat-legend-profile`,K:`chat-legend-skill`};function Hw({label:e,text:t}){return(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:V(`inline-flex h-5 items-center rounded-md border px-1.5 text-[11px] font-medium`,zw(e)),children:e}),(0,H.jsx)(`span`,{dir:`auto`,children:t})]})}function Uw({letters:e}){let{t}=G();return(0,H.jsx)(`p`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground`,children:e.map(e=>(0,H.jsx)(Hw,{label:e,text:t(Vw[e])},e))})}var Ww=`__all__`,Gw=`__choose__`;function Kw({projects:e,scope:t,scopeMissing:n,disabled:r,onScope:i,onAsk:a}){let{t:o}=G(),[s,c]=(0,v.useState)(``),l=r||t===void 0;function u(e){e?.preventDefault(),!(l||!s.trim())&&(a(s.trim()),c(``))}function d(e){e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),u())}return(0,H.jsxs)(`form`,{onSubmit:u,className:`grid gap-2 rounded-2xl border border-border bg-card p-2.5 shadow-sm`,children:[(0,H.jsx)(Ip,{value:s,disabled:r,rows:2,maxLength:4e3,placeholder:o(`chat-input-placeholder`),"aria-label":o(`chat-input-placeholder`),className:`min-h-14 resize-none bg-transparent`,onChange:e=>c(e.target.value),onKeyDown:d}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsxs)(`label`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`shrink-0`,children:o(`chat-scope-label`)}),(0,H.jsxs)(Dr,{className:`h-8 min-w-0 max-w-64 flex-1 text-xs`,"aria-label":o(`chat-scope-label`),disabled:r,value:t===void 0?Gw:t??Ww,onChange:e=>{let t=e.target.value;t!==Gw&&i(t===Ww?null:t)},children:[t===void 0?(0,H.jsx)(`option`,{value:Gw,children:o(`chat-scope-missing`)}):null,(0,H.jsx)(`option`,{value:Ww,children:o(`chat-scope-all`)}),e.map(e=>(0,H.jsx)(`option`,{value:e.tag,children:e.projectName||e.displayName||e.tag},e.tag))]})]}),(0,H.jsxs)(K,{type:`submit`,size:`sm`,disabled:l||!s.trim(),"aria-label":o(`chat-send`),children:[(0,H.jsx)(ee,{}),o(`chat-send`)]})]}),n?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`chat-scope-choose`)}):null]})}function qw({status:e}){let{t}=G();return(0,H.jsxs)(`div`,{role:`alert`,className:`grid gap-2 rounded-xl border border-border bg-card p-4`,children:[(0,H.jsxs)(`p`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,H.jsx)(Bt,{className:`size-4 shrink-0`,"aria-hidden":`true`}),t(`chat-setup-title`)]}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`chat-setup-body`,{names:e.missing.join(`, `)})}),(0,H.jsxs)(`a`,{href:`/settings#settings-section-external-api`,className:`inline-flex w-fit items-center gap-1.5 text-sm text-primary-label underline-offset-4 hover:underline`,children:[(0,H.jsx)(Ot,{className:`size-3.5`,"aria-hidden":`true`}),t(`chat-setup-link`)]})]})}var Jw=`__none__`;function Yw({folders:e,folderId:t,onMove:n}){let{t:r}=G();return(0,H.jsxs)(Dr,{className:`h-8 w-full text-xs`,"aria-label":r(`chat-move`),value:t??Jw,onChange:e=>n(e.target.value===Jw?null:e.target.value),children:[(0,H.jsx)(`option`,{value:Jw,children:r(`chat-no-folder`)}),e.map(e=>(0,H.jsx)(`option`,{value:e.id,children:e.name},e.id))]})}function Xw(e){let{t}=G(),{conversation:n,active:r,selectMode:i}=e,a=n.title||t(`chat-new`);return i?(0,H.jsx)(`li`,{children:(0,H.jsxs)(`label`,{className:`flex min-h-11 md:min-h-9 cursor-pointer items-center gap-2 rounded-lg px-2 text-sm hover:bg-interactive-hover`,children:[(0,H.jsx)(Qo,{checked:e.selected,onCheckedChange:e.onToggleSelect,"aria-label":t(`chat-select-chat`,{title:a})}),(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 flex-1 truncate`,title:a,children:a})]})}):(0,H.jsxs)(`li`,{children:[(0,H.jsxs)(`div`,{className:V(`group flex items-center gap-1 rounded-lg`,r?`bg-sidebar-accent text-sidebar-accent-foreground`:`hover:bg-interactive-hover`),children:[(0,H.jsx)(`button`,{type:`button`,className:`min-h-11 md:min-h-9 min-w-0 flex-1 cursor-pointer overflow-hidden rounded-lg px-2 text-start text-sm focus-visible:outline-2 focus-visible:outline-ring`,"aria-current":r?`true`:void 0,title:a,onClick:e.onOpen,children:(0,H.jsx)(`span`,{dir:`auto`,className:`block truncate`,children:a})}),e.readOnly?null:(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,className:`me-1 shrink-0 text-muted-foreground`,"aria-label":t(`chat-chat-actions`),"aria-expanded":e.actionsOpen,onClick:e.onToggleActions,children:(0,H.jsx)(xe,{})})]}),e.actionsOpen?(0,H.jsxs)(`div`,{className:`ms-2 mt-1 mb-2 grid gap-1.5 rounded-lg border border-border bg-card p-2`,children:[(0,H.jsx)(Yw,{folders:e.folders,folderId:n.folderId,onMove:e.onMove}),(0,H.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,onClick:e.onRename,children:[(0,H.jsx)(mt,{}),t(`chat-rename`)]}),(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`xs`,onClick:e.onDelete,children:[(0,H.jsx)(Rt,{}),t(`chat-delete`)]})]})]}):null]})}function Zw({name:e,count:t,actions:n,onSelectAll:r,children:i}){let{t:a}=G(),[o,s]=(0,v.useState)(!0),c=o?Oe:Ae;return(0,H.jsxs)(`section`,{className:`grid grid-cols-[minmax(0,1fr)] gap-0.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsxs)(`button`,{type:`button`,className:`flex min-h-11 md:min-h-8 min-w-0 flex-1 cursor-pointer items-center gap-1.5 rounded-lg px-1.5 text-xs font-medium text-muted-foreground transition-colors duration-200 ease-in hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,"aria-expanded":o,onClick:()=>s(!o),children:[(0,H.jsx)(ce,{className:V(`size-3.5 shrink-0 transition-transform rtl:-scale-x-100`,o&&`rotate-90`),"aria-hidden":`true`}),(0,H.jsx)(c,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`min-w-0 truncate uppercase tracking-wide`,children:e}),(0,H.jsx)(`span`,{className:`tabular-nums`,"aria-label":a(t===1?`chat-folder-count-one`:`chat-folder-count`,{count:t}),children:t})]}),r&&t>0?(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`xs`,onClick:r,children:a(`chat-select-all-folder`)}):null,n&&!r?(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center`,role:`group`,"aria-label":a(`chat-folder-actions`),children:[(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":a(`chat-new`),title:a(`chat-new`),onClick:n.onNewChat,children:(0,H.jsx)(vt,{})}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":a(`chat-rename`),title:a(`chat-rename`),onClick:n.onRename,children:(0,H.jsx)(mt,{})}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":a(`chat-delete`),title:a(`chat-delete`),onClick:n.onDelete,children:(0,H.jsx)(Rt,{})})]}):null]}),o?(0,H.jsx)(`ul`,{className:`grid grid-cols-[minmax(0,1fr)] gap-0.5 ps-3`,children:i}):null]})}function Qw(e){let{t}=G(),{chat:n,selectMode:r,selected:i}=e,[a,o]=(0,v.useState)(null),{conversations:s,folders:c,readOnly:l}=n.list,u=s.filter(e=>!e.folderId),d=e=>e===`conflict`?t(`chat-folder-exists`):e,f=t=>{let n=new Set(i);n.has(t)?n.delete(t):n.add(t),e.onSelected(n)},p=t=>e.onSelected(new Set([...i,...t])),m=r=>e.onName({title:t(`chat-chat-rename-title`),label:t(`chat-chat-title`),initial:r.title,submitLabel:t(`chat-save`),submit:e=>n.change(()=>jw.rename(r.id,e))}),h=t=>t.map(t=>(0,H.jsx)(Xw,{conversation:t,folders:c,active:t.id===n.activeId,selectMode:r,selected:i.has(t.id),actionsOpen:a===t.id,readOnly:l,onOpen:()=>{n.open(t.id),e.onOpened?.()},onToggleSelect:()=>f(t.id),onToggleActions:()=>o(a===t.id?null:t.id),onRename:()=>m(t),onMove:e=>void n.change(()=>jw.move(t.id,e)),onDelete:()=>e.onDelete({kind:`chats`,ids:[t.id]})},t.id));return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-3`,children:[(0,H.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:r?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,"aria-live":`polite`,children:t(`chat-selected-count`,{count:i.size})}),(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`xs`,disabled:i.size===0,onClick:()=>e.onDelete({kind:`chats`,ids:[...i]}),children:[(0,H.jsx)(Rt,{}),t(`chat-delete-selected`)]}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`xs`,onClick:()=>e.onSelectMode(!1),children:t(`chat-select-done`)})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{type:`button`,size:`xs`,disabled:l,onClick:()=>void n.newChat(),children:[(0,H.jsx)(vt,{}),t(`chat-new`)]}),(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,disabled:l,onClick:()=>e.onName({title:t(`chat-folder-create-title`),label:t(`chat-folder-name`),initial:``,submitLabel:t(`chat-create`),submit:async e=>d(await n.change(()=>jw.createFolder(e)))}),children:[(0,H.jsx)(ke,{}),t(`chat-new-folder`)]}),(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`xs`,disabled:l||s.length===0,onClick:()=>e.onSelectMode(!0),children:[(0,H.jsx)(jt,{}),t(`chat-select`)]})]})}),s.length===0&&c.length===0?(0,H.jsx)(`p`,{className:`px-1 text-xs text-muted-foreground`,children:t(`chat-empty-list`)}):null,c.map(i=>{let a=s.filter(e=>e.folderId===i.id);return(0,H.jsx)(Zw,{name:i.name,count:a.length,onSelectAll:r?()=>p(a.map(e=>e.id)):void 0,actions:l?void 0:{onNewChat:()=>void n.newChat(i.id),onRename:()=>e.onName({title:t(`chat-folder-rename-title`),label:t(`chat-folder-name`),initial:i.name,submitLabel:t(`chat-save`),submit:async e=>d(await n.change(()=>jw.renameFolder(i.id,e)))}),onDelete:()=>e.onDelete({kind:`folder`,id:i.id,name:i.name,count:a.length})},children:h(a)},i.id)}),u.length>0?(0,H.jsx)(Zw,{name:t(`chat-no-folder`),count:u.length,onSelectAll:r?()=>p(u.map(e=>e.id)):void 0,children:h(u)}):null]})}function $w({request:e,onConfirm:t,onCancel:n}){let{t:r}=G(),[i,a]=(0,v.useState)(!1);return(0,H.jsx)(zl,{open:e!==null,onOpenChange:e=>!e&&!i&&n(),children:(0,H.jsxs)(q,{className:`sm:max-w-md`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:e?.kind===`folder`?r(`chat-delete-folder-title`):r(`chat-delete-chats-title`)}),(0,H.jsx)(Gl,{children:e?eT(e,r):null})]}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:n,disabled:i,children:r(`chat-cancel`)}),(0,H.jsx)(K,{type:`button`,variant:`destructive`,disabled:i,onClick:async()=>{e&&(a(!0),await t(e),a(!1))},children:r(`chat-delete-confirm`)})]})]})})}function eT(e,t){if(e.kind===`folder`)return t(e.count===1?`chat-delete-folder-body-one`:`chat-delete-folder-body`,{name:e.name,count:e.count});let n=e.ids.length;return t(n===1?`chat-delete-chats-body-one`:`chat-delete-chats-body`,{count:n})}function tT({request:e,onClose:t}){let{t:n}=G(),[r,i]=(0,v.useState)(``),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(!1);(0,v.useEffect)(()=>{i(e?.initial??``),o(null)},[e]);async function l(n){if(n.preventDefault(),!e||!r.trim())return;c(!0);let i=await e.submit(r.trim());c(!1),i?o(i):t()}return(0,H.jsx)(zl,{open:e!==null,onOpenChange:e=>!e&&t(),children:(0,H.jsx)(q,{className:`sm:max-w-sm`,children:(0,H.jsxs)(`form`,{onSubmit:l,className:`grid gap-4`,children:[(0,H.jsx)(Hl,{children:(0,H.jsx)(Wl,{children:e?.title})}),(0,H.jsxs)(`div`,{className:`grid gap-2`,children:[(0,H.jsx)(Fp,{htmlFor:`chat-name-input`,children:e?.label}),(0,H.jsx)(ad,{id:`chat-name-input`,value:r,maxLength:80,autoFocus:!0,"aria-invalid":a?!0:void 0,onChange:e=>i(e.target.value)}),a?(0,H.jsx)(`p`,{className:`text-xs text-destructive-label`,children:a}):null]}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`secondary`,onClick:t,children:n(`chat-cancel`)}),(0,H.jsx)(K,{type:`submit`,disabled:s||!r.trim(),children:e?.submitLabel})]})]})})})}var nT=/\[([SPK]\d+)\]/g,rT=/<(?:[^>"']|"[^"]*"|'[^']*')*>/g,iT=/^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/,aT=new Set([`a`,`code`,`pre`,`button`]);function oT(e,t,n,r){let i=new Set(t),a=(e,t)=>{if(!i.has(t))return e;let a=[`cite-chip`];t.startsWith(`P`)&&a.push(`cite-profile`),t.startsWith(`K`)&&a.push(`cite-skill`),n(t)&&a.push(`cite-deleted`);let o=r(t).replace(/["&<>]/g,e=>`&#${e.charCodeAt(0)};`);return`<button type="button" class="${a.join(` `)}" data-cite="${t}" aria-haspopup="dialog" aria-label="${o}">${t}</button>`},o=``,s=0,c=0,l=(t,n)=>{let r=e.slice(t,n);o+=c>0?r:r.replace(nT,a)};for(let t of e.matchAll(rT)){l(s,t.index),o+=t[0],s=t.index+t[0].length;let e=iT.exec(t[0]);!e||!aT.has(e[2].toLowerCase())||(e[1]?c=Math.max(0,c-1):c+=1)}return l(s,e.length),o}var sT=/\[([SPK]\d+)\]/g;function cT(e,t){let n=new Set(t),r=[],i=``,a=0;for(let t of e.matchAll(sT)){let o=t[1];n.has(o)&&(i+=e.slice(a,t.index),i&&r.push({kind:`text`,text:i}),i=``,r.push({kind:`cite`,label:o}),a=t.index+t[0].length)}return i+=e.slice(a),i&&r.push({kind:`text`,text:i}),r}function lT(e,t){let n=[];for(let r of cT(e,t))r.kind===`cite`&&!n.includes(r.label)&&n.push(r.label);return n}function uT({plan:e}){let{t}=G(),n=Rw(e,t);return(0,H.jsxs)(`details`,{className:`group text-xs text-muted-foreground`,children:[(0,H.jsxs)(`summary`,{className:`inline-flex cursor-pointer list-none items-center gap-1.5 rounded-md py-0.5 transition-colors duration-200 ease-in hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(Et,{className:`size-3`,"aria-hidden":`true`}),t(`chat-how-searched`)]}),(0,H.jsxs)(`div`,{className:`mt-2 grid gap-1.5 rounded-lg border border-border p-2.5`,children:[e.skipped?(0,H.jsx)(`p`,{children:t(`chat-plan-skipped`)}):null,e.skillFacts===`unavailable`?(0,H.jsx)(`p`,{children:t(`chat-skill-facts-unavailable`)}):null,(0,H.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1`,children:n.map(([e,n])=>(0,H.jsxs)(`div`,{className:`contents`,children:[(0,H.jsx)(`dt`,{children:e}),(0,H.jsx)(`dd`,{dir:`auto`,className:`min-w-0 break-words text-foreground`,children:n.length?n.join(` · `):t(`chat-none`)})]},e))})]})]})}var dT={no_sources:`chat-no-sources`,insufficient:`chat-insufficient`,uncited:`chat-uncited`};function fT({message:e,missingMemoryIds:t,missingSkillNames:n,readOnly:r,onOpenSource:i,onRetry:a}){let{t:o}=G(),s=e.sources.map(e=>e.label),c=new Map(e.sources.map(e=>[e.label,e])),l=e=>Fw(e,t,n),u=(0,v.useMemo)(()=>oT(g_(e.content),s,e=>l(c.get(e)),e=>o(`chat-cite-label`,{label:e})),[e.content,e.sources,t,n,o]),d=e=>{let t=e.target.closest(`[data-cite]`),n=t?c.get(t.dataset.cite??``):void 0;n&&i(n)},f=lT(e.content,s).map(e=>c.get(e)).filter(e=>!!e);return(0,H.jsxs)(`article`,{className:`grid min-w-0 gap-2.5`,children:[e.errorCode?(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-lg border border-destructive/30 bg-destructive/10 p-2.5 text-sm text-destructive-label`,children:[(0,H.jsx)(Bt,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`min-w-0 flex-1`,children:o(`chat-error`,{code:e.errorCode})}),r?null:(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,onClick:()=>a(e),children:[(0,H.jsx)(Tt,{}),o(`chat-retry`)]})]}):null,e.content?(0,H.jsx)(`div`,{dir:`auto`,className:`markdown-content chat-answer break-words text-sm leading-7`,onClick:d,dangerouslySetInnerHTML:{__html:u}}):null,e.notice?(0,H.jsxs)(`p`,{className:`flex items-start gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(Be,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":`true`}),o(dT[e.notice])]}):null,f.length?(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:o(`chat-sources`)}),(0,H.jsx)(`ul`,{className:`grid gap-1`,children:f.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 text-xs`,children:[(0,H.jsx)(Bw,{label:e.label,deleted:l(e),onOpen:()=>i(e)}),(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 flex-1 truncate leading-5 text-muted-foreground`,children:e.kind===`skill`?e.id:`${e.projectName?`${e.projectName} · `:``}${e.text}`})]},e.label))})]}):null,e.plan?(0,H.jsx)(uT,{plan:e.plan}):null]})}function pT({text:e}){let{t}=G();return(0,H.jsx)(`div`,{className:`flex justify-end`,children:(0,H.jsxs)(`div`,{className:`max-w-[85%] rounded-2xl rounded-ee-md bg-secondary px-3.5 py-2.5`,children:[(0,H.jsxs)(`span`,{className:`sr-only`,children:[t(`chat-you`),`: `]}),(0,H.jsx)(`p`,{dir:`auto`,className:`whitespace-pre-wrap break-words text-sm leading-6`,children:e})]})})}function mT({messages:e,pending:t,missingMemoryIds:n,missingSkillNames:r,readOnly:i,onOpenSource:a,onRetry:o}){let{t:s}=G();return e.length===0&&!t?(0,H.jsx)(`p`,{className:`m-auto max-w-sm text-center text-sm text-muted-foreground`,children:s(`chat-empty-thread`)}):(0,H.jsxs)(`ol`,{className:`grid gap-6`,"aria-live":`polite`,children:[e.map(e=>(0,H.jsx)(`li`,{children:e.role===`user`?(0,H.jsx)(pT,{text:e.content}):(0,H.jsx)(fT,{message:e,missingMemoryIds:n,missingSkillNames:r,readOnly:i,onOpenSource:a,onRetry:o})},e.id)),t?(0,H.jsxs)(`li`,{className:`grid gap-4`,children:[e.at(-1)?.role===`user`&&e.at(-1)?.content===t?null:(0,H.jsx)(pT,{text:t}),(0,H.jsxs)(`p`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),s(`chat-thinking`)]})]}):null]})}var hT={person:`chat-skill-by-person`,agent:`chat-skill-by-agent`,automatic:`chat-skill-by-automatic`};function gT({skill:e}){let{t}=G(),n=[[t(`chat-skill-uses`),String(e.uses)],[t(`chat-skill-failed`),String(e.failedTurns)],[t(`chat-skill-attention`),e.attention.toFixed(2)],[t(`chat-skill-modified`),Iw(e,t,$p)]];return(0,H.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[(0,H.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-lg border border-border p-2.5 text-xs text-muted-foreground`,children:n.map(([e,t])=>(0,H.jsxs)(`div`,{className:`contents`,children:[(0,H.jsx)(`dt`,{children:e}),(0,H.jsx)(`dd`,{className:`min-w-0 break-words text-foreground`,children:t})]},e))}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[t(`chat-skill-window`),` `,t(`chat-skill-modified-note`)]}),(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:t(`chat-skill-history`)}),e.history.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`chat-skill-history-empty`)}):(0,H.jsx)(`ol`,{className:`grid gap-2`,children:e.history.map((e,n)=>(0,H.jsxs)(`li`,{className:`grid gap-0.5 rounded-lg border border-border p-2 text-xs`,children:[(0,H.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:t(Lw(e.kind))}),(0,H.jsx)(`span`,{children:Qp(e.at)}),e.appliedBy&&e.appliedBy in hT?(0,H.jsx)(`span`,{children:t(hT[e.appliedBy])}):null]}),(0,H.jsx)(`span`,{dir:`auto`,className:`break-words`,children:e.summary})]},n))})]})]})}var _T={preferences:`profile-preferences`,patterns:`profile-patterns`,workflows:`profile-workflows`};function vT({source:e,deleted:t}){let{t:n,language:r}=G(),i=e.kind===`memory`;return e.kind===`skill`?(0,H.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[t?(0,H.jsxs)(`p`,{className:`flex items-start gap-2 rounded-lg border border-border bg-muted/40 p-2.5 text-xs`,children:[(0,H.jsx)(Bt,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":`true`}),n(`chat-skill-missing`)]}):null,e.skill?(0,H.jsx)(gT,{skill:e.skill}):null,(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`chat-source-note`)})]}):(0,H.jsxs)(`div`,{className:`grid min-w-0 gap-3`,children:[t?(0,H.jsxs)(`p`,{className:`flex items-start gap-2 rounded-lg border border-border bg-muted/40 p-2.5 text-xs`,children:[(0,H.jsx)(Bt,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":`true`}),n(`chat-source-deleted`)]}):null,(0,H.jsxs)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs text-muted-foreground`,children:[i&&e.projectName?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`chat-source-project`)}),(0,H.jsx)(`dd`,{className:`min-w-0 break-words text-foreground`,children:e.projectName})]}):null,i&&e.createdAt?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`chat-source-date`)}),(0,H.jsx)(`dd`,{className:`text-foreground`,children:Qp(new Date(e.createdAt).toISOString())})]}):null,!i&&e.section?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`dt`,{children:n(`chat-source-profile`)}),(0,H.jsxs)(`dd`,{className:`text-foreground`,children:[n(_T[e.section]),e.category?` · ${e.category}`:``]})]}):null]}),e.tags?.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,"aria-label":n(`chat-source-tags`),children:e.tags.map(e=>(0,H.jsx)(id,{variant:`outline`,children:e},e))}):null,(0,H.jsx)(Fv,{dir:r===`ar`?`rtl`:`ltr`,className:`max-h-[45vh] rounded-lg border`,children:(0,H.jsx)(`p`,{dir:`auto`,className:`whitespace-pre-wrap break-words p-3 text-sm leading-6`,children:e.text})}),!i&&e.evidence?.length?(0,H.jsxs)(`div`,{className:`grid gap-1`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:n(`chat-source-evidence`)}),(0,H.jsx)(`ul`,{className:`grid gap-1 text-xs`,children:e.evidence.map((e,t)=>(0,H.jsx)(`li`,{dir:`auto`,className:`break-words`,children:e},t))})]}):null,(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`chat-source-note`)}),i?(0,H.jsx)(`a`,{href:J.project,className:`text-xs text-primary-label underline-offset-4 hover:underline`,children:n(`chat-source-open-project`)}):null]})}function yT({source:e,deleted:t,onClose:n}){let{t:r}=G();return(0,H.jsx)(zl,{open:e!==null,onOpenChange:e=>!e&&n(),children:(0,H.jsxs)(q,{className:`sm:max-w-lg`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:e?`${e.label} · ${e.kind===`memory`?r(`chat-source-memory`):e.kind===`skill`?`${r(`chat-source-skill`)} ${e.id}`:r(`chat-source-profile`)}`:``}),(0,H.jsx)(Gl,{className:`sr-only`,children:e?.text.slice(0,120)})]}),e?(0,H.jsx)(vT,{source:e,deleted:t}):null]})})}function bT(){let{t:e}=G(),t=Nw(),[n,r]=(0,v.useState)(!1),i=(0,v.useRef)(null),a=(0,v.useRef)(null),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(new Set),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(!n)return;let e=i.current;return a.current?.focus(),()=>e?.focus()},[n]);let g=new Set(t.detail?.missingMemoryIds??[]),_=new Set(t.detail?.missingSkillNames??[]),y=!!t.detail?.messages.some(e=>e.sources.some(e=>e.kind===`skill`)),b=t.list.readOnly,x=t.status?.ready??!1;function S(e){s(e),l(new Set)}async function C(e){e.kind===`folder`?await t.deleteFolder(e.id):await t.deleteChats(e.ids),d(null),S(!1)}let w=(0,H.jsx)(Qw,{chat:t,selectMode:o,selected:c,onSelectMode:S,onSelected:l,onDelete:d,onName:p,onOpened:()=>r(!1)});return(0,H.jsxs)(`div`,{className:`grid min-h-[calc(100svh-9rem)] gap-4 md:grid-cols-[17rem_minmax(0,1fr)]`,children:[(0,H.jsx)(`aside`,{className:`hidden min-h-0 overflow-y-auto border-e border-border pe-4 md:sticky md:top-6 md:block md:max-h-[calc(100svh-3rem)] md:self-start`,children:w}),n?(0,H.jsxs)(`div`,{className:`fixed inset-0 z-40 md:hidden`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`chat-show-list`),onKeyDown:e=>{e.key===`Escape`&&r(!1)},children:[(0,H.jsx)(`button`,{type:`button`,className:`absolute inset-0 bg-black/50`,"aria-label":e(`chat-cancel`),onClick:()=>r(!1)}),(0,H.jsxs)(`div`,{className:`absolute inset-y-0 start-0 flex w-[min(20rem,85vw)] flex-col gap-3 overflow-y-auto bg-background p-4 shadow-xl`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium`,children:e(`chat-conversations`)}),(0,H.jsx)(K,{ref:a,type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":e(`chat-cancel`),onClick:()=>r(!1),children:(0,H.jsx)(qt,{})})]}),w]})]}):null,(0,H.jsxs)(`section`,{className:`flex min-h-0 min-w-0 flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 md:hidden`,children:[(0,H.jsxs)(K,{ref:i,type:`button`,variant:`outline`,size:`sm`,onClick:()=>r(!0),children:[(0,H.jsx)($e,{}),e(`chat-show-list`)]}),t.detail?(0,H.jsx)(`span`,{dir:`auto`,className:`min-w-0 truncate text-sm text-muted-foreground`,children:t.detail.conversation.title}):null]}),(0,H.jsx)(Uw,{letters:Pw(t.status?.skillFacts===!0,y)}),t.status&&!x?(0,H.jsx)(qw,{status:t.status}):null,b?(0,H.jsx)(`p`,{role:`alert`,className:`rounded-xl border border-border bg-card p-3 text-sm`,children:e(`chat-read-only`)}):null,(0,H.jsx)(`div`,{className:V(`flex min-h-48 flex-1 flex-col overflow-y-auto`),children:(0,H.jsx)(mT,{messages:t.detail?.messages??[],pending:t.pending,missingMemoryIds:g,missingSkillNames:_,readOnly:b||!x,onOpenSource:h,onRetry:t.retry})}),(0,H.jsxs)(`div`,{className:`sticky bottom-0 grid gap-1.5 bg-background pb-1`,children:[(0,H.jsx)(Kw,{projects:t.projects,scope:t.scope,scopeMissing:t.scopeMissing,disabled:!x||b||t.pending!==null,onScope:t.setScope,onAsk:e=>void t.ask(e)}),x&&t.status?.apiHost?(0,H.jsxs)(`p`,{className:`flex items-center gap-1.5 px-1 text-[11px] text-muted-foreground`,children:[(0,H.jsx)(Be,{className:`size-3 shrink-0`,"aria-hidden":`true`}),e(`chat-provider-note`,{host:t.status.apiHost})]}):null,x&&t.status?.skillFacts?(0,H.jsxs)(`p`,{className:`flex items-center gap-1.5 px-1 text-[11px] text-muted-foreground`,children:[(0,H.jsx)(Be,{className:`size-3 shrink-0`,"aria-hidden":`true`}),e(`chat-skill-privacy`)]}):null]})]}),(0,H.jsx)($w,{request:u,onConfirm:C,onCancel:()=>d(null)}),(0,H.jsx)(tT,{request:f,onClose:()=>p(null)}),(0,H.jsx)(yT,{source:m,deleted:Fw(m??void 0,g,_),onClose:()=>h(null)})]})}var xT=[{id:`skills-section-activity`,title:`Activity`},{id:`skills-section-ranked`,title:`Ranked skills`},{id:`skills-section-pending`,title:`Pending proposals`},{id:`skills-section-recent`,title:`Recent proposals`},{id:`skills-section-folders`,title:`Watched folders`}],ST=e=>xT.map(t=>({id:t.id,label:Qv(t.title,e)})),CT=[`all`,`not-modified`,`modified`,`suggested`],wT=`omms-skills-modified-filter`;function TT(e){let t=e.filter(e=>e.modified).length,n=e.filter(e=>e.suggested).length;return{all:e.length,"not-modified":e.length-t,modified:t,suggested:n}}function ET(e,t){return t===`all`?e:t===`suggested`?e.filter(e=>e.suggested):e.filter(e=>e.modified===(t===`modified`))}function DT(){try{let e=localStorage.getItem(wT);return CT.find(t=>t===e)??`all`}catch{return`all`}}function OT(e){try{localStorage.setItem(wT,e)}catch{}}var kT=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):0,AT=e=>Array.isArray(e)?e:[],jT=e=>e&&typeof e==`object`?e:{};function MT(e){return AT(e).map(jT).filter(e=>typeof e.day==`string`).map(e=>({day:e.day,uses:kT(e.uses),failed:kT(e.failed)}))}var NT=e=>e.map(({day:e,uses:t,failed:n})=>({key:e,uses:t,failed:n})),PT=[`day`,`month`,`year`],FT=/^\d{4}-(0[1-9]|1[0-2])$/;function IT(e){let t=jT(e);return{months:AT(t.months).filter(e=>typeof e==`string`&&FT.test(e)),years:AT(t.years).filter(e=>Number.isInteger(e))}}function LT(e){let t=jT(e),n=jT(t.totals),r=MT(t.days),i=Array.isArray(t.series)?t.series.map(jT).filter(e=>typeof e.key==`string`).map(e=>({key:e.key,uses:kT(e.uses),failed:kT(e.failed)})):NT(r),a=AT(t.topSkills).map(jT).filter(e=>typeof e.name==`string`).map(e=>({name:e.name,path:typeof e.path==`string`?e.path:null,uses:kT(e.uses),failed:kT(e.failed)}));return{bucket:PT.includes(t.bucket)?t.bucket:`day`,series:i,days:r,topSkills:a,topTotal:Math.max(kT(t.topTotal),a.length),totals:{uses:kT(n.uses),failed:kT(n.failed),activeSkills:kT(n.activeSkills)},available:IT(t.available)}}var RT=[`created`,`applied`,`rejected`,`undone`,`stale`];function zT(e){let t=jT(e),n=AT(t.entries).map(jT).filter(e=>RT.includes(e.kind)&&typeof e.id==`string`).map(e=>({id:e.id,proposalId:typeof e.proposalId==`string`?e.proposalId:``,kind:e.kind,at:kT(e.at),summary:typeof e.summary==`string`?e.summary:``,appliedBy:typeof e.appliedBy==`string`?e.appliedBy:null,versionId:typeof e.versionId==`string`?e.versionId:null,canUndo:e.canUndo===!0,laterAppliedCount:kT(e.laterAppliedCount),added:kT(e.added),removed:kT(e.removed)}));return{total:Math.max(kT(t.total),n.length),entries:n}}var BT=e=>e.every(e=>e.uses===0),VT=e=>({...e,succeeded:Math.max(0,e.uses-e.failed),failed:Math.min(e.failed,e.uses)}),HT=[`pending`,`applied`,`rejected`,`stale`,`undone`];function UT(e){return HT.map(t=>({state:t,count:e.filter(e=>e.state===t).length}))}var WT=e=>Date.parse(`${e}T12:00:00`),GT={bucket:`day`,month:null},KT=`omms-skills-activity-range`,qT=`last-30`,JT=30,YT=(e,t)=>Math.min(t,e+8),XT={day:`Uses per day`,month:`Uses per month`,year:`Uses per year`},ZT={day:`Day`,month:`Month`,year:`Year`};function QT(e){return e.bucket===`year`?{bucket:`year`}:e.bucket===`month`?{bucket:`month`,year:e.year}:e.month?{bucket:`day`,month:e.month}:{bucket:`day`,days:JT}}function $T(e){return e.bucket===`year`?`year`:e.bucket===`month`?`month:${e.year}`:e.month?`day:${e.month}`:`day`}function eE(e){if(e===`year`)return{bucket:`year`};let t=/^day:(\d{4}-\d{2})$/.exec(e??``)?.[1];if(t&&FT.test(t))return{bucket:`day`,month:t};let n=/^month:(\d{4})$/.exec(e??``)?.[1];return n?{bucket:`month`,year:Number(n)}:GT}function tE(e,t){return e.bucket===`day`&&e.month&&!t.months.includes(e.month)||e.bucket===`month`&&!t.years.includes(e.year)?GT:e}function nE(e,t){return e===`year`?{bucket:e}:e===`month`?{bucket:e,year:t}:GT}var rE=e=>e.bucket===`month`?String(e.year):e.bucket===`day`?e.month??`last-30`:``;function iE(e,t){return e.bucket===`month`?{bucket:`month`,year:Number(t)}:t===`last-30`?GT:{bucket:`day`,month:t}}function aE(e,t,n,r){if(e===`year`)return t;if(e===`day`){let e=new Date(WT(t));return n?Ai(e,r.choice,r.locale):ki(e,r.choice,r.locale)}let[i,a]=t.split(`-`).map(Number);return new Intl.DateTimeFormat(r.locale,{month:n?`long`:`short`,...n?{year:`numeric`}:{},timeZone:`UTC`,calendar:`gregory`}).format(Date.UTC(i,a-1,1))}function oE(e,t,n,r){if(e.bucket===`month`)return String(e.year);if(e.bucket===`day`)return e.month?aE(`month`,e.month,!0,n):r(`Last 30 days`);let i=t[0]?.key??``,a=t.at(-1)?.key??``;return i===a?a:Gb(r(`{from} to {to}`),{from:i,to:a})}function sE(e,t,n,r,i){if(e.bucket===`year`)return[];if(e.bucket===`month`)return[...new Set([n,e.year,...t.years])].sort((e,t)=>t-e).map(e=>({value:String(e),label:String(e)}));let a=[...new Set([...e.month?[e.month]:[],...t.months])];return[{value:qT,label:i},...a.sort((e,t)=>t.localeCompare(e)).map(e=>({value:e,label:aE(`month`,e,!0,r)}))]}var cE=[`day`,`month`,`year`],lE={day:`Days`,month:`Months`,year:`Years`},uE={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function dE({range:e,available:t,currentYear:n,loading:r,onChange:i}){let a=Y(),o=(0,v.useRef)([]),s=t=>{let r=cE[t];o.current[t]?.focus(),r!==e.bucket&&i(nE(r,n))};return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(`div`,{role:`radiogroup`,"aria-label":a(`Show uses by`),className:`inline-flex gap-1.5`,onKeyDown:t=>{let n=uE[t.key];if(!n)return;t.preventDefault();let r=getComputedStyle(t.currentTarget).direction===`rtl`,i=t.key===`ArrowLeft`||t.key===`ArrowRight`,a=r&&i?-n:n,o=cE.indexOf(e.bucket);s((o+a+cE.length)%cE.length)},children:cE.map((t,n)=>(0,H.jsx)(`button`,{ref:e=>{o.current[n]=e},type:`button`,role:`radio`,"aria-checked":e.bucket===t,tabIndex:e.bucket===t?0:-1,className:V(`min-h-9 rounded-[10px] border px-3 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring`,e.bucket===t?`border-primary/40 bg-selection text-foreground`:`border-input bg-card text-muted-foreground hover:bg-interactive-hover`),onClick:()=>s(n),children:a(lE[t])},t))}),e.bucket===`year`?(0,H.jsx)(`span`,{className:`h-9 w-44`,"aria-hidden":`true`}):(0,H.jsx)(Dr,{className:`w-44`,"aria-label":a(e.bucket===`day`?`Days to show`:`Year to show`),value:rE(e),onChange:t=>i(iE(e,t.target.value)),children:sE(e,t,n,nm(),a(`Last 30 days`)).map(e=>(0,H.jsx)(`option`,{value:e.value,children:e.label},e.value))}),(0,H.jsx)(Ye,{"aria-hidden":`true`,className:V(`size-4 animate-spin text-muted-foreground`,!r&&`invisible`)}),(0,H.jsx)(`span`,{role:`status`,className:`sr-only`,children:r?a(`Loading…`):``})]})}var fE=`dangerouslySetInnerHTML.onCopy.onCopyCapture.onCut.onCutCapture.onPaste.onPasteCapture.onCompositionEnd.onCompositionEndCapture.onCompositionStart.onCompositionStartCapture.onCompositionUpdate.onCompositionUpdateCapture.onFocus.onFocusCapture.onBlur.onBlurCapture.onChange.onChangeCapture.onBeforeInput.onBeforeInputCapture.onInput.onInputCapture.onReset.onResetCapture.onSubmit.onSubmitCapture.onInvalid.onInvalidCapture.onLoad.onLoadCapture.onError.onErrorCapture.onKeyDown.onKeyDownCapture.onKeyPress.onKeyPressCapture.onKeyUp.onKeyUpCapture.onAbort.onAbortCapture.onCanPlay.onCanPlayCapture.onCanPlayThrough.onCanPlayThroughCapture.onDurationChange.onDurationChangeCapture.onEmptied.onEmptiedCapture.onEncrypted.onEncryptedCapture.onEnded.onEndedCapture.onLoadedData.onLoadedDataCapture.onLoadedMetadata.onLoadedMetadataCapture.onLoadStart.onLoadStartCapture.onPause.onPauseCapture.onPlay.onPlayCapture.onPlaying.onPlayingCapture.onProgress.onProgressCapture.onRateChange.onRateChangeCapture.onSeeked.onSeekedCapture.onSeeking.onSeekingCapture.onStalled.onStalledCapture.onSuspend.onSuspendCapture.onTimeUpdate.onTimeUpdateCapture.onVolumeChange.onVolumeChangeCapture.onWaiting.onWaitingCapture.onAuxClick.onAuxClickCapture.onClick.onClickCapture.onContextMenu.onContextMenuCapture.onDoubleClick.onDoubleClickCapture.onDrag.onDragCapture.onDragEnd.onDragEndCapture.onDragEnter.onDragEnterCapture.onDragExit.onDragExitCapture.onDragLeave.onDragLeaveCapture.onDragOver.onDragOverCapture.onDragStart.onDragStartCapture.onDrop.onDropCapture.onMouseDown.onMouseDownCapture.onMouseEnter.onMouseLeave.onMouseMove.onMouseMoveCapture.onMouseOut.onMouseOutCapture.onMouseOver.onMouseOverCapture.onMouseUp.onMouseUpCapture.onSelect.onSelectCapture.onTouchCancel.onTouchCancelCapture.onTouchEnd.onTouchEndCapture.onTouchMove.onTouchMoveCapture.onTouchStart.onTouchStartCapture.onPointerDown.onPointerDownCapture.onPointerMove.onPointerMoveCapture.onPointerUp.onPointerUpCapture.onPointerCancel.onPointerCancelCapture.onPointerEnter.onPointerEnterCapture.onPointerLeave.onPointerLeaveCapture.onPointerOver.onPointerOverCapture.onPointerOut.onPointerOutCapture.onGotPointerCapture.onGotPointerCaptureCapture.onLostPointerCapture.onLostPointerCaptureCapture.onScroll.onScrollCapture.onWheel.onWheelCapture.onAnimationStart.onAnimationStartCapture.onAnimationEnd.onAnimationEndCapture.onAnimationIteration.onAnimationIterationCapture.onTransitionEnd.onTransitionEndCapture`.split(`.`);function pE(e){return typeof e==`string`&&fE.includes(e)}var mE=new Set(`aria-activedescendant.aria-atomic.aria-autocomplete.aria-busy.aria-checked.aria-colcount.aria-colindex.aria-colspan.aria-controls.aria-current.aria-describedby.aria-details.aria-disabled.aria-errormessage.aria-expanded.aria-flowto.aria-haspopup.aria-hidden.aria-invalid.aria-keyshortcuts.aria-label.aria-labelledby.aria-level.aria-live.aria-modal.aria-multiline.aria-multiselectable.aria-orientation.aria-owns.aria-placeholder.aria-posinset.aria-pressed.aria-readonly.aria-relevant.aria-required.aria-roledescription.aria-rowcount.aria-rowindex.aria-rowspan.aria-selected.aria-setsize.aria-sort.aria-valuemax.aria-valuemin.aria-valuenow.aria-valuetext.className.color.height.id.lang.max.media.method.min.name.style.target.width.role.tabIndex.accentHeight.accumulate.additive.alignmentBaseline.allowReorder.alphabetic.amplitude.arabicForm.ascent.attributeName.attributeType.autoReverse.azimuth.baseFrequency.baselineShift.baseProfile.bbox.begin.bias.by.calcMode.capHeight.clip.clipPath.clipPathUnits.clipRule.colorInterpolation.colorInterpolationFilters.colorProfile.colorRendering.contentScriptType.contentStyleType.cursor.cx.cy.d.decelerate.descent.diffuseConstant.direction.display.divisor.dominantBaseline.dur.dx.dy.edgeMode.elevation.enableBackground.end.exponent.externalResourcesRequired.fill.fillOpacity.fillRule.filter.filterRes.filterUnits.floodColor.floodOpacity.focusable.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.format.from.fx.fy.g1.g2.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.glyphRef.gradientTransform.gradientUnits.hanging.horizAdvX.horizOriginX.href.ideographic.imageRendering.in2.in.intercept.k1.k2.k3.k4.k.kernelMatrix.kernelUnitLength.kerning.keyPoints.keySplines.keyTimes.lengthAdjust.letterSpacing.lightingColor.limitingConeAngle.local.markerEnd.markerHeight.markerMid.markerStart.markerUnits.markerWidth.mask.maskContentUnits.maskUnits.mathematical.mode.numOctaves.offset.opacity.operator.order.orient.orientation.origin.overflow.overlinePosition.overlineThickness.paintOrder.panose1.pathLength.patternContentUnits.patternTransform.patternUnits.pointerEvents.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.r.radius.refX.refY.renderingIntent.repeatCount.repeatDur.requiredExtensions.requiredFeatures.restart.result.rotate.rx.ry.seed.shapeRendering.slope.spacing.specularConstant.specularExponent.speed.spreadMethod.startOffset.stdDeviation.stemh.stemv.stitchTiles.stopColor.stopOpacity.strikethroughPosition.strikethroughThickness.string.stroke.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.strokeMiterlimit.strokeOpacity.strokeWidth.surfaceScale.systemLanguage.tableValues.targetX.targetY.textAnchor.textDecoration.textLength.textRendering.to.transform.u1.u2.underlinePosition.underlineThickness.unicode.unicodeBidi.unicodeRange.unitsPerEm.vAlphabetic.values.vectorEffect.version.vertAdvY.vertOriginX.vertOriginY.vHanging.vIdeographic.viewTarget.visibility.vMathematical.widths.wordSpacing.writingMode.x1.x2.x.xChannelSelector.xHeight.xlinkActuate.xlinkArcrole.xlinkHref.xlinkRole.xlinkShow.xlinkTitle.xlinkType.xmlBase.xmlLang.xmlns.xmlnsXlink.xmlSpace.y1.y2.y.yChannelSelector.z.zoomAndPan.ref.key.angle`.split(`.`));function hE(e){return typeof e==`string`&&mE.has(e)}function gE(e){return typeof e==`string`&&e.startsWith(`data-`)}function _E(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(hE(n)||gE(n))&&(t[n]=e[n]);return t}function vE(e){if(e==null)return null;if((0,v.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return _E(t)}return typeof e==`object`&&!Array.isArray(e)?_E(e):null}function yE(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(hE(n)||gE(n)||pE(n))&&(t[n]=e[n]);return t}var bE=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function xE(){return xE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xE.apply(null,arguments)}function SE(e,t){if(e==null)return{};var n,r,i=CE(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function CE(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var wE=(0,v.forwardRef)((e,t)=>{var{children:n,width:r,height:i,viewBox:a,className:o,style:s,title:c,desc:l}=e,u=SE(e,bE),d=a||{width:r,height:i,x:0,y:0},f=Xt(`recharts-surface`,o);return v.createElement(`svg`,xE({},yE(u),{className:f,width:r,height:i,style:s,viewBox:`${d.x} ${d.y} ${d.width} ${d.height}`,ref:t}),v.createElement(`title`,null,c),v.createElement(`desc`,null,l),n)}),TE=[`children`,`className`];function EE(){return EE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},EE.apply(null,arguments)}function DE(e,t){if(e==null)return{};var n,r,i=OE(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function OE(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var kE=v.forwardRef((e,t)=>{var{children:n,className:r}=e,i=DE(e,TE),a=Xt(`recharts-layer`,r);return v.createElement(`g`,EE({className:a},yE(i),{ref:t}),n)}),AE=(0,v.createContext)(null);function jE(e){return function(){return e}}var ME=Math.cos,NE=Math.sin,PE=Math.sqrt,FE=Math.PI;FE/2;var IE=2*FE,LE=Math.PI,RE=2*LE,zE=1e-6,BE=RE-zE;function VE(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function HE(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return VE;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var UE=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?VE:HE(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>zE){if(!(Math.abs(u*s-c*l)>zE)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((LE-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>zE&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>zE||Math.abs(this._y1-l)>zE)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%RE+RE),d>BE?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>zE&&this._append`A${n},${n},0,${+(d>=LE)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};UE.prototype;function WE(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new UE(t)}Array.prototype.slice;function GE(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function KE(e){this._context=e}KE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};function qE(e){return new KE(e)}function JE(e){return e[0]}function YE(e){return e[1]}function XE(e,t){var n=jE(!0),r=null,i=qE,a=null,o=WE(s);e=typeof e==`function`?e:e===void 0?JE:jE(e),t=typeof t==`function`?t:t===void 0?YE:jE(t);function s(s){var c,l=(s=GE(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return s.x=function(t){return arguments.length?(e=typeof t==`function`?t:jE(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:jE(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:jE(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),s):r},s}function ZE(e,t,n){var r=null,i=jE(!0),a=null,o=qE,s=null,c=WE(l);e=typeof e==`function`?e:e===void 0?JE:jE(+e),t=typeof t==`function`?t:jE(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?YE:jE(+n);function l(l){var u,d,f,p=(l=GE(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return XE().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:jE(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:jE(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:jE(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:jE(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:jE(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:jE(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:jE(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var QE=class{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}};function $E(e){return new QE(e,!0)}function eD(e){return new QE(e,!1)}var tD={draw(e,t){let n=PE(t/FE);e.moveTo(n,0),e.arc(0,0,n,0,IE)}},nD={draw(e,t){let n=PE(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},rD=PE(1/3),iD=rD*2,aD={draw(e,t){let n=PE(t/iD),r=n*rD;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},oD={draw(e,t){let n=PE(t),r=-n/2;e.rect(r,r,n,n)}},sD=.8908130915292852,cD=NE(FE/10)/NE(7*FE/10),lD=NE(IE/10)*cD,uD=-ME(IE/10)*cD,dD={draw(e,t){let n=PE(t*sD),r=lD*n,i=uD*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=IE*t/5,o=ME(a),s=NE(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},fD=PE(3),pD={draw(e,t){let n=-PE(t/(fD*3));e.moveTo(0,n*2),e.lineTo(-fD*n,-n),e.lineTo(fD*n,-n),e.closePath()}},mD=-.5,hD=PE(3)/2,gD=1/PE(12),_D=(gD/2+1)*3,vD={draw(e,t){let n=PE(t/_D),r=n/2,i=n*gD,a=r,o=n*gD+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(mD*r-hD*i,hD*r+mD*i),e.lineTo(mD*a-hD*o,hD*a+mD*o),e.lineTo(mD*s-hD*c,hD*s+mD*c),e.lineTo(mD*r+hD*i,mD*i-hD*r),e.lineTo(mD*a+hD*o,mD*o-hD*a),e.lineTo(mD*s+hD*c,mD*c-hD*s),e.closePath()}};function yD(e,t){let n=null,r=WE(i);e=typeof e==`function`?e:jE(e||tD),t=typeof t==`function`?t:jE(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:jE(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:jE(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function bD(){}function xD(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function SD(e){this._context=e}SD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:xD(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:xD(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function CD(e){return new SD(e)}function wD(e){this._context=e}wD.prototype={areaStart:bD,areaEnd:bD,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:xD(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function TD(e){return new wD(e)}function ED(e){this._context=e}ED.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:xD(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function DD(e){return new ED(e)}function OD(e){this._context=e}OD.prototype={areaStart:bD,areaEnd:bD,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function kD(e){return new OD(e)}function AD(e){return e<0?-1:1}function jD(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(AD(a)+AD(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function MD(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function ND(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function PD(e){this._context=e}PD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ND(this,this._t0,MD(this,this._t0))}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,e!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,ND(this,MD(this,n=jD(this,e,t)),n);break;default:ND(this,this._t0,n=jD(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function FD(e){this._context=new ID(e)}(FD.prototype=Object.create(PD.prototype)).point=function(e,t){PD.prototype.point.call(this,t,e)};function ID(e){this._context=e}ID.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function LD(e){return new PD(e)}function RD(e){return new FD(e)}function zD(e){this._context=e}zD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n){if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=BD(e),i=BD(t),a=0,o=1;o<n;++a,++o)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],e[o],t[o])}(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function BD(e){var t,n=e.length-1,r,i=Array(n),a=Array(n),o=Array(n);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<n-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[n-1]=2,a[n-1]=7,o[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=i[t]/a[t-1],a[t]-=r,o[t]-=r*o[t-1];for(i[n-1]=o[n-1]/a[n-1],t=n-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-1])/2,t=0;t<n-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function VD(e){return new zD(e)}function HD(e,t){this._context=e,this._t=t}HD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};function UD(e){return new HD(e,.5)}function WD(e){return new HD(e,0)}function GD(e){return new HD(e,1)}function KD(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function qD(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function JD(e,t){return e[t]}function YD(e){let t=[];return t.key=e,t}function XD(){var e=jE([]),t=qD,n=KD,r=JD;function i(i){var a=Array.from(e.apply(this,arguments),YD),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=GE(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:jE(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:jE(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?qD:typeof e==`function`?e:jE(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??KD,i):n},i}function ZD(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}KD(e,t)}}function QD(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}KD(e,t)}}function $D(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,KD(e,t)}}function eO(e){return e===`__proto__`}var tO=Object.prototype.hasOwnProperty;function nO(e,t){return tO.call(e,t)}var rO=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function iO(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:rO.test(e);default:return!1}}function aO(e){var t;return typeof e==`string`||typeof e==`symbol`?e:Object.is(e==null||(t=e.valueOf)==null?void 0:t.call(e),-0)?`-0`:String(e)}function oO(e){return typeof e==`symbol`||e instanceof Symbol}function sO(e){if(typeof e==`string`)return e;if(Array.isArray(e)){let t=``;for(let n=0;n<e.length;n++)n>0&&(t+=`,`),t+=sO(e[n]);return t}if(oO(e))return e.toString();let t=e+``;return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function cO(e){return e==null?``:sO(e)}function lO(e){if(Array.isArray(e))return e.map(aO);if(typeof e==`symbol`)return[e];e=cO(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1,s=!1,c=/^-?\d+(?:\.\d+)?$/;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let l=e[r];if(a)l===`\\`&&r+1<n?(r++,i+=e[r]):l===a?a=``:i+=l;else if(o){if(l===`"`||l===`'`)a=l,s=!0;else if(l===`]`){if(o=!1,!s&&i.includes(`.`)&&!c.test(i)){let e=i.split(`.`);for(let n=0;n<e.length;n++)e[n]!==``&&t.push(e[n])}else t.push(i);i=``}else i+=l}else if(l===`[`)o=!0,s=!1,i&&=(t.push(i),``);else if(l===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=l;r++}return i&&t.push(i),t}function uO(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if(eO(t))return n;let r=e[t];return r===void 0?iO(t)&&!nO(e,t)?uO(e,lO(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=aO(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return dO(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),eO(t))return n;let r=e[t];return r===void 0?n:r}}}function dO(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||eO(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}var fO=4;function pO(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:fO),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function mO(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+pO(i)+n},``)}var hO=e=>e===0?0:e>0?1:-1,gO=e=>typeof e==`number`&&e!=+e,_O=e=>typeof e==`string`&&e.indexOf(`%`)===e.length-1,Z=e=>(typeof e==`number`||e instanceof Number)&&!gO(e),vO=e=>Z(e)||typeof e==`string`,yO=0,bO=e=>{var t=++yO;return`${e||``}${t}`},xO=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!Z(e)&&typeof e!=`string`)return n;var i;if(_O(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return gO(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},SO=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function CO(e,t,n){return Z(e)&&Z(t)?pO(e+n*(t-e)):t}function wO(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):uO(e,t))===n)}var TO=e=>e==null,EO=e=>TO(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function DO(e){return e!=null}function OO(){}var kO=[`type`,`size`,`sizeType`];function AO(){return AO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},AO.apply(null,arguments)}function jO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function MO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?jO(Object(n),!0).forEach(function(t){NO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function NO(e,t,n){return(t=PO(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PO(e){var t=FO(e,`string`);return typeof t==`symbol`?t:t+``}function FO(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function IO(e,t){if(e==null)return{};var n,r,i=LO(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function LO(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var RO={symbolCircle:tD,symbolCross:nD,symbolDiamond:aD,symbolSquare:oD,symbolStar:dD,symbolTriangle:pD,symbolWye:vD},zO=Math.PI/180,BO=e=>RO[`symbol${EO(e)}`]||tD,VO=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*zO;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},HO=(e,t)=>{RO[`symbol${EO(e)}`]=t},UO=e=>{var{type:t=`circle`,size:n=64,sizeType:r=`area`}=e,i=MO(MO({},IO(e,kO)),{},{type:t,size:n,sizeType:r}),a=`circle`;typeof t==`string`&&(a=t);var o=()=>{var e=BO(a),t=yD().type(e).size(VO(n,r,a))();if(t!==null)return t},{className:s,cx:c,cy:l}=i,u=yE(i);return Z(c)&&Z(l)&&Z(n)?v.createElement(`path`,AO({},u,{className:Xt(`recharts-symbols`,s),transform:`translate(${c}, ${l})`,d:o()})):null};UO.registerSymbol=HO;var WO=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,GO=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,v.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{pE(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},KO=(e,t,n)=>r=>(e(t,n,r),null),qO=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];pE(i)&&typeof a==`function`&&(r||={},r[i]=KO(a,t,n))}),r};function JO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?JO(Object(n),!0).forEach(function(t){XO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):JO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function XO(e,t,n){return(t=ZO(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZO(e){var t=QO(e,`string`);return typeof t==`symbol`?t:t+``}function QO(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function $O(e,t){var n=YO({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function ek(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function tk(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function nk(e){return e}function rk(e){return Number.isSafeInteger(e)&&e>=0}function ik(e){return e!=null&&typeof e!=`function`&&rk(e.length)}function ak(e){return function(t){return uO(t,e)}}function ok(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function sk(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var ck=`[object RegExp]`,lk=`[object String]`,uk=`[object Number]`,dk=`[object Boolean]`,fk=`[object Arguments]`,pk=`[object Symbol]`,mk=`[object Date]`,hk=`[object Map]`,gk=`[object Set]`,_k=`[object Array]`,vk=`[object ArrayBuffer]`,yk=`[object Object]`,bk=`[object DataView]`,xk=`[object Uint8Array]`,Sk=`[object Uint8ClampedArray]`,Ck=`[object Uint16Array]`,wk=`[object Uint32Array]`,Tk=`[object Int8Array]`,Ek=`[object Int16Array]`,Dk=`[object Int32Array]`,Ok=`[object Float32Array]`,kk=`[object Float64Array]`;function Ak(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function jk(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function Mk(e,t,n){return typeof n==`function`?Nk(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?Nk(t,r,e,s,!1):!!c},new Map,!0):Mk(e,t,()=>void 0)}function Nk(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Pk(e,t,n,r,i);case`function`:return Object.keys(t).length>0?Nk(e,Object.assign({},t),n,r,i):Ak(e,t);default:return jk(e)&&i?typeof t!=`string`||t===``:Ak(e,t)}}function Pk(e,t,n,r,i=!1){if(t==null)return!0;if(Array.isArray(t))return Ik(e,t,n,r);if(t instanceof Map)return Fk(e,t,n,r);if(t instanceof Set)return Lk(e,t,n,r);let a=Object.keys(t);if(e==null)return i&&a.length===0;if(i)ok(e)&&(e=Object(e));else{if(sk(t)===`[object Error]`)return sk(e)===`[object Error]`&&e.name===t.name&&e.message===t.message;let n=sk(e);if(n!==`[object Object]`&&n!==`[object Arguments]`)return!1}if(a.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let i=0;i<a.length;i++){let o=a[i];if(!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Fk(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function Ik(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Lk(e,t,n,r){return t.size===0||e instanceof Set&&Ik([...e],[...t],n,r)}function Rk(e,t){return Mk(e,t,()=>void 0)}function zk(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}var Bk=typeof globalThis==`object`&&globalThis||typeof window==`object`&&window||typeof self==`object`&&self||typeof global==`object`&&global||(function(){return this})();function Vk(e){return Bk.Buffer!==void 0&&Bk.Buffer.isBuffer(e)}function Hk(e){return Vk(e)}function Uk(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Wk(e){return Uk(e)}function Gk(e,t){return Kk(e,void 0,e,new Map,t)}function Kk(e,t,n,r,i){if(i!=null){let a=i(e,t,n,r);if(a!==void 0)return a}if(ok(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=Kk(e[a],a,n,r,i);return nO(e,`index`)&&(t.index=e.index),nO(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;return r.set(e,t),e.forEach((e,a)=>{t.set(a,Kk(e,a,n,r,i))}),t}if(e instanceof Set){let t=new Set;return r.set(e,t),e.forEach(e=>{t.add(Kk(e,void 0,n,r,i))}),t}if(Hk(e))return e.subarray();if(Wk(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=Kk(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),qk(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),qk(t,e,n,r,i),t}if(typeof Blob<`u`&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),qk(t,e,n,r,i),t}let a=sk(e);if(a===`[object Error]`)return e===n?{}:e;switch(a){case uk:case lk:case dk:{let t=new e.constructor(e.valueOf());return r.set(e,t),qk(t,e,n,r,i),t}case fk:{let t={};return r.set(e,t),qk(t,e,n,r,i),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}}if(typeof e==`object`&&Jk(a)){let t=a===`[object Object]`&&typeof e.constructor!=`function`?{}:Object.create(Object.getPrototypeOf(e));return r.set(e,t),qk(t,e,n,r,i),t}return e}function qk(e,t,n,r,i){let a=[...Object.keys(t),...zk(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=Kk(t[s],s,n,r,i))}}function Jk(e){switch(e){case fk:case _k:case vk:case bk:case dk:case mk:case Ok:case kk:case Tk:case Ek:case Dk:case hk:case uk:case yk:case ck:case gk:case lk:case pk:case xk:case Sk:case Ck:case wk:return!0;default:return!1}}function Yk(e){return Gk(e)}function Xk(e){return e=Yk(e),t=>Rk(t,e)}var Zk=/^(?:0|[1-9]\d*)$/;function Qk(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Zk.test(e)}}function $k(e){return typeof e==`object`&&!!e&&sk(e)===`[object Arguments]`}function eA(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&iO(t)&&!(t in Object(e))?lO(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=aO(n[e]);if((r==null||!nO(r,t))&&!((Array.isArray(r)||$k(r))&&Qk(t)&&Number(t)<r.length))return!1;r=r[t]}return!0}function tA(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=aO(e)}return t=Yk(t),function(n){let r=uO(n,e);return r===void 0?eA(n,e):t===void 0?r===void 0:Rk(r,t)}}function nA(e){if(e==null)return nk;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?tA(e[0],e[1]):Xk(e);default:return ak(e)}}function rA(e){return e===0?0:e}function iA(e,t=nk){return ik(e)?ek(Array.from(e),tk(nA(t),1)).map(rA):[]}function aA(e,t,n){return t===!0?iA(e,n):typeof t==`function`?iA(e,t):e}var oA=o((e=>{var t=d();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),sA=o(((e,t)=>{t.exports=oA()})),cA=o((e=>{var t=d(),n=sA();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),lA=o(((e,t)=>{t.exports=cA()})),uA=(0,v.createContext)(null),dA=lA(),fA=e=>e,pA=()=>{var e=(0,v.useContext)(uA);return e?e.store.dispatch:fA},mA=()=>{},hA=()=>mA,gA=(e,t)=>e===t;function Q(e){var t=(0,v.useContext)(uA),n=(0,v.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:mA,[t,e]);return(0,dA.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:hA,t?t.store.getState:mA,t?t.store.getState:mA,n,gA)}function _A(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function vA(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!=`object`)throw TypeError(t)}function yA(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var bA=e=>Array.isArray(e)?e:[e];function xA(e){let t=Array.isArray(e[0])?e[0]:e;return yA(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function SA(e,t){let n=[],{length:r}=e;for(let i=0;i<r;i++)n.push(e[i].apply(null,t));return n}var CA=class{constructor(e){this.value=e}deref(){return this.value}},wA=typeof WeakRef<`u`?WeakRef:CA,TA=0,EA=1;function DA(){return{s:TA,v:void 0,o:null,p:null}}function OA(e,t={}){let n=DA(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e<n;e++){let n=arguments[e];if(typeof n==`function`||typeof n==`object`&&n){let e=t.o;e===null&&(t.o=e=new WeakMap);let r=e.get(n);r===void 0?(t=DA(),e.set(n,t)):t=r}else{let e=t.p;e===null&&(t.p=e=new Map);let r=e.get(n);r===void 0?(t=DA(),e.set(n,t)):t=r}}let s=t,c;if(t.s===EA)c=t.v;else if(c=e.apply(null,arguments),a++,r){let e=i?.deref?.()??i;e!=null&&r(e,c)&&(c=e,a!==0&&a--),i=typeof c==`object`&&c||typeof c==`function`?new wA(c):c}return s.s=EA,s.v=c,c}return o.clearCache=()=>{n=DA(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function kA(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),_A(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=OA,argsMemoizeOptions:u=[],devModeChecks:d={}}={...n,...a},f=bA(c),p=bA(u),m=xA(e),h=s(function(){return t++,o.apply(null,arguments)},...f),g=l(function(){r++;let e=SA(m,arguments);return i=h.apply(null,e),i},...p);return Object.assign(g,{resultFunc:o,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var $=kA(OA),AA=Object.assign((e,t=$)=>{vA(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>AA});function jA(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function MA(e,t,n){return jk(n)&&(typeof t==`number`&&ik(n)&&Qk(t)&&t<n.length||typeof t==`string`&&t in n)?Ak(n[t],e):!1}function NA(e){let t=Object.keys(e),n=Array(t.length);for(let r=0;r<t.length;r++)n[r]=e[t[r]];return n}function PA(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var FA=(e,t,n)=>{if(e!==t){let r=PA(e),i=PA(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},IA=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,LA=/^\w*$/;function RA(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||oO(e)?!0:typeof e==`string`&&(LA.test(e)||!IA.test(e))||t!=null&&nO(t,e)}function zA(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=ik(e)?Array.from(e):NA(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e,r=0;for(;r<t.length&&n!=null;++r)n=n[t[r]];return r>0&&r===t.length?n:void 0},a=(e,t)=>{if(e==null)return t;if(t!=null)return typeof e==`object`&&`key`in e?nO(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):t[e]},o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||RA(e)?e:{key:e,path:lO(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=FA(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function BA(e,...t){let n=t.length;return n>1&&MA(e,t[0],t[1])?t=[]:n>2&&MA(t[0],t[1],t[2])&&(t=[t[0]]),zA(e,jA(t),[`asc`])}var VA=e=>e.legend.settings,HA=e=>e.legend.size;$([e=>e.legend.payload,VA],(e,t)=>{var{itemSorter:n}=t,r=e.flat(1);return n?BA(r,n):r});var UA=1;function WA(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,n]=(0,v.useState)({height:0,left:0,top:0,width:0});return[t,(0,v.useCallback)(e=>{if(e!=null){var r=e.getBoundingClientRect(),i={height:r.height,left:r.left,top:r.top,width:r.width};(Math.abs(i.height-t.height)>UA||Math.abs(i.left-t.left)>UA||Math.abs(i.top-t.top)>UA||Math.abs(i.width-t.width)>UA)&&n({height:i.height,left:i.left,top:i.top,width:i.width})}},[t.width,t.height,t.top,t.left,...e])]}function GA(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var KA=typeof Symbol==`function`&&Symbol.observable||`@@observable`,qA=()=>Math.random().toString(36).substring(7).split(``).join(`.`),JA={INIT:`@@redux/INIT${qA()}`,REPLACE:`@@redux/REPLACE${qA()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${qA()}`};function YA(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function XA(e,t,n){if(typeof e!=`function`)throw Error(GA(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(GA(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(GA(1));return n(XA)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(GA(3));return i}function d(e){if(typeof e!=`function`)throw Error(GA(4));if(c)throw Error(GA(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(GA(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!YA(e))throw Error(GA(7));if(e.type===void 0)throw Error(GA(8));if(typeof e.type!=`string`)throw Error(GA(17));if(c)throw Error(GA(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(GA(10));r=e,f({type:JA.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(GA(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[KA](){return this}}}return f({type:JA.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[KA]:m}}function ZA(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:JA.INIT})===void 0)throw Error(GA(12));if(n(void 0,{type:JA.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(GA(13))})}function QA(e){let t=Object.keys(e),n={};for(let r=0;r<t.length;r++){let i=t[r];typeof e[i]==`function`&&(n[i]=e[i])}let r=Object.keys(n),i;try{ZA(n)}catch(e){i=e}return function(e={},t){if(i)throw i;let a=!1,o={};for(let i=0;i<r.length;i++){let s=r[i],c=n[s],l=e[s],u=c(l,t);if(u===void 0)throw t&&t.type,Error(GA(14));o[s]=u,a||=u!==l}return a||=r.length!==Object.keys(e).length,a?o:e}}function $A(...e){return e.length===0?e=>e:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function ej(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(GA(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=$A(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function tj(e){return YA(e)&&`type`in e&&typeof e.type==`string`}var nj=Symbol.for(`immer-nothing`),rj=Symbol.for(`immer-draftable`),ij=Symbol.for(`immer-state`);function aj(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var oj=Object,sj=oj.getPrototypeOf,cj=`constructor`,lj=`prototype`,uj=`configurable`,dj=`enumerable`,fj=`writable`,pj=`value`,mj=e=>!!e&&!!e[ij];function hj(e){return e?vj(e)||Tj(e)||!!e[rj]||!!e[cj]?.[rj]||Ej(e)||Dj(e):!1}var gj=oj[lj][cj].toString(),_j=new WeakMap;function vj(e){if(!e||!Oj(e))return!1;let t=sj(e);if(t===null||t===oj[lj])return!0;let n=oj.hasOwnProperty.call(t,cj)&&t[cj];if(n===Object)return!0;if(!kj(n))return!1;let r=_j.get(n);return r===void 0&&(r=Function.toString.call(n),_j.set(n,r)),r===gj}function yj(e,t,n=!0){bj(e)===0?(n?Reflect.ownKeys(e):oj.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function bj(e){let t=e[ij];return t?t.type_:Tj(e)?1:Ej(e)?2:Dj(e)?3:0}var xj=(e,t,n=bj(e))=>n===2?e.has(t):oj[lj].hasOwnProperty.call(e,t),Sj=(e,t,n=bj(e))=>n===2?e.get(t):e[t],Cj=(e,t,n,r=bj(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function wj(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Tj=Array.isArray,Ej=e=>e instanceof Map,Dj=e=>e instanceof Set,Oj=e=>typeof e==`object`,kj=e=>typeof e==`function`,Aj=e=>typeof e==`boolean`;function jj(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Mj=e=>e.copy_||e.base_,Nj=e=>e.modified_?e.copy_:e.base_;function Pj(e,t){if(Ej(e))return new Map(e);if(Dj(e))return new Set(e);if(Tj(e))return Array[lj].slice.call(e);let n=vj(e);if(t===!0||t===`class_only`&&!n){let t=oj.getOwnPropertyDescriptors(e);delete t[ij];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[fj]===!1&&(a[fj]=!0,a[uj]=!0),(a.get||a.set)&&(t[i]={[uj]:!0,[fj]:!0,[dj]:a[dj],[pj]:e[i]})}return oj.create(sj(e),t)}{let t=sj(e);if(t!==null&&n)return{...e};let r=oj.create(t);return oj.assign(r,e)}}function Fj(e,t=!1){return Rj(e)||mj(e)||!hj(e)?e:(bj(e)>1&&oj.defineProperties(e,{set:Lj,add:Lj,clear:Lj,delete:Lj}),oj.freeze(e),t&&yj(e,(e,t)=>{Fj(t,!0)},!1),e)}function Ij(){aj(2)}var Lj={[pj]:Ij};function Rj(e){return e===null||!Oj(e)||oj.isFrozen(e)}var zj=`MapSet`,Bj=`Patches`,Vj=`ArrayMethods`,Hj={};function Uj(e){let t=Hj[e];return t||aj(0,e),t}var Wj=e=>!!Hj[e],Gj,Kj=()=>Gj,qj=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Wj(zj)?Uj(zj):void 0,arrayMethodsPlugin_:Wj(Vj)?Uj(Vj):void 0});function Jj(e,t){t&&(e.patchPlugin_=Uj(Bj),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Yj(e){Xj(e),e.drafts_.forEach(Qj),e.drafts_=null}function Xj(e){e===Gj&&(Gj=e.parent_)}var Zj=e=>Gj=qj(Gj,e);function Qj(e){let t=e[ij];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function $j(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[ij].modified_&&(Yj(t),aj(4)),hj(e)&&(e=eM(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[ij].base_,e,t)}else e=eM(t,n);return tM(t,e,!0),Yj(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===nj?void 0:e}function eM(e,t){if(Rj(t))return t;let n=t[ij];if(!n)return lM(t,e.handledSet_,e);if(!rM(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);sM(n,e)}return n.copy_}function tM(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Fj(t,n)}function nM(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var rM=(e,t)=>e.scope_===t,iM=[];function aM(e,t,n,r){let i=Mj(e),a=e.type_;if(r!==void 0&&Sj(i,r,a)===t){Cj(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;yj(i,(e,n)=>{if(mj(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??iM;for(let e of o)Cj(i,e,n,a)}function oM(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!rM(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Nj(i);aM(e,i.draft_??i,a,n),sM(i,r)})}function sM(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}nM(e)}}function cM(e,t,n){let{scope_:r}=e;if(mj(n)){let i=n[ij];rM(i,r)&&i.callbacks_.push(function(){vM(e),aM(e,n,Nj(i),t)})}else hj(n)&&e.callbacks_.push(function(){let i=Mj(e);e.type_===3?i.has(n)&&lM(n,r.handledSet_,r):Sj(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&lM(Sj(e.copy_,t,e.type_),r.handledSet_,r)})}function lM(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||mj(e)||t.has(e)||!hj(e)||Rj(e)?e:(t.add(e),yj(e,(r,i)=>{if(mj(i)){let t=i[ij];rM(t,n)&&(Cj(e,r,Nj(t),e.type_),nM(t))}else hj(i)&&lM(i,t,n)}),e)}function uM(e,t){let n=Tj(e),r={type_:+!!n,scope_:t?t.scope_:Kj(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=dM;n&&(i=[r],a=fM);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var dM={get(e,t){if(t===ij)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Mj(e);if(!xj(i,t,e.type_))return hM(e,i,t);let a=i[t];if(e.finalized_||!hj(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&jj(t))return a;if(a===pM(e.base_,t)||mM(e,t,a)){vM(e);let n=e.type_===1?+t:t,r=bM(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Mj(e)},ownKeys(e){return Reflect.ownKeys(Mj(e))},set(e,t,n){let r=gM(Mj(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=pM(Mj(e),t),i=r?.[ij];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.delete(t),!0;if(wj(n,r)&&(n!==void 0||xj(e.base_,t,e.type_)))return!0;vM(e),_M(e)}return e.copy_[t]===n&&(n!==void 0||xj(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),cM(e,t,n),!0)},deleteProperty(e,t){return vM(e),pM(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),_M(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Mj(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[fj]:!0,[uj]:e.type_!==1||t!==`length`,[dj]:r[dj],[pj]:n[t]}},defineProperty(){aj(11)},getPrototypeOf(e){return sj(e.base_)},setPrototypeOf(){aj(12)}},fM={};for(let e in dM){let t=dM[e];fM[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}fM.deleteProperty=function(e,t){return fM.set.call(this,e,t,void 0)},fM.set=function(e,t,n){return dM.set.call(this,e[0],t,n,e[0])};function pM(e,t){let n=e[ij];return(n?Mj(n):e)[t]}function mM(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||!hj(n)||n[ij]?!1:e.baseRefs_.has(n)}function hM(e,t,n){let r=gM(t,n);return r?pj in r?r[pj]:r.get?.call(e.draft_):void 0}function gM(e,t){if(!(t in e))return;let n=sj(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=sj(n)}}function _M(e){e.modified_||(e.modified_=!0,e.parent_&&_M(e.parent_))}function vM(e){e.copy_||=(e.assigned_=new Map,Pj(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var yM=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(kj(e)&&!kj(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}kj(t)||aj(6),n!==void 0&&!kj(n)&&aj(7);let r;if(hj(e)){let i=Zj(this),a=bM(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Yj(i):Xj(i)}return Jj(i,n),$j(r,i)}if(!e||!Oj(e)){if(r=t(e),r===void 0&&(r=e),r===nj&&(r=void 0),this.autoFreeze_&&Fj(r,!0),n){let t=[],i=[];Uj(Bj).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}aj(1,e)},this.produceWithPatches=(e,t)=>{if(kj(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Aj(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Aj(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Aj(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){hj(e)||aj(8),mj(e)&&(e=xM(e));let t=Zj(this),n=bM(t,e,void 0);return n[ij].isManual_=!0,Xj(t),n}finishDraft(e,t){let n=e&&e[ij];(!n||!n.isManual_)&&aj(9);let{scope_:r}=n;return Jj(r,t),$j(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Uj(Bj).applyPatches_;return mj(e)?r(e,t):this.produce(e,e=>r(e,t))}};function bM(e,t,n,r){let[i,a]=Ej(t)?Uj(zj).proxyMap_(t,n):Dj(t)?Uj(zj).proxySet_(t,n):uM(t,n);return(n?.scope_??Kj()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?oM(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function xM(e){return mj(e)||aj(10,e),SM(e)}function SM(e){if(!hj(e)||Rj(e))return e;let t=e[ij],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Pj(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Pj(e,!0);let i=n;return Dj(n)&&(n=new Set),yj(i,(e,t)=>{Cj(n,e,SM(t))},r),t&&(t.finalized_=!1),n}globalThis.Iterator?.from;var CM=new yM().produce;function wM(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var TM=wM(),EM=wM,DM=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?$A:$A.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function OM(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(LN(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>tj(t)&&t.type===e,n}var kM=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function AM(e){return hj(e)?CM(e,()=>{}):e}function jM(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function MM(e){return typeof e==`boolean`}var NM=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new kM;return t&&(MM(t)?a.push(TM):a.push(EM(t.extraArgument))),a},PM=`RTK_autoBatch`,FM=()=>e=>({payload:e,meta:{[PM]:!0}}),IM=e=>t=>{setTimeout(t,e)},LM=(e,t)=>n=>{let r=!1,i,a,o=()=>{r||(r=!0,cancelAnimationFrame(i),clearTimeout(a),n())};i=e(o),a=setTimeout(o,t)},RM=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?LM(window.requestAnimationFrame,100):IM(10):e.type===`callback`?e.queueNotification:IM(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[PM],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},zM=e=>function(t){let{autoBatch:n=!0}=t??{},r=new kM(e);return n&&r.push(RM(typeof n==`object`?n:void 0)),r};function BM(e){let t=NM(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(YA(n))c=QA(n);else throw Error(LN(1));let l;l=typeof r==`function`?r(t):t();let u=$A;i&&(u=DM({trace:!1,...typeof i==`object`&&i}));let d=zM(ej(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return XA(c,o,p)}function VM(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(LN(28));if(r in t)throw Error(LN(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function HM(e){return typeof e==`function`}function UM(e,t){let[n,r,i]=VM(t),a;if(HM(e))a=()=>AM(e());else{let t=AM(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n){if(mj(e)){let r=n(e,t);return r===void 0?e:r}if(hj(e))return CM(e,e=>n(e,t));{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(LN(9))}return r}}return e},e)}return o.getInitialState=a,o}var WM=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,GM=(e=21)=>{let t=``,n=e;for(;n--;)t+=WM[Math.random()*64|0];return t},KM=Symbol.for(`rtk-slice-createasyncthunk`);function qM(e,t){return`${e}/${t}`}function JM({creators:e}={}){let t=e?.asyncThunk?.[KM];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(LN(11));let i=(typeof e.reducers==`function`?e.reducers(ZM()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(LN(12));if(n in o.sliceCaseReducersByType)throw Error(LN(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:qM(n,r),createNotation:typeof e.reducers==`function`};$M(a)?tN(o,a,s,t):QM(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?VM(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return UM(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=jM(d,r,m)),i}function i(t=l){return jM(jM(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=YM(a,t,()=>jM(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function YM(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var XM=JM();function ZM(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function QM({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!eN(r))throw Error(LN(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?OM(e,o):OM(e))}function $M(e){return e._reducerDefinitionType===`asyncThunk`}function eN(e){return e._reducerDefinitionType===`reducerWithPrepare`}function tN({type:e,reducerName:t},n,r,i){if(!i)throw Error(LN(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||nN,pending:s||nN,rejected:c||nN,settled:l||nN})}function nN(){}var rN=`task`,iN=`listener`,aN=`completed`,oN=`cancelled`,sN=`task-${oN}`,cN=`task-${aN}`,lN=`${iN}-${oN}`,uN=`${iN}-${aN}`,dN=class{code;name=`TaskAbortError`;message;constructor(e){this.code=e,this.message=`${rN} ${oN} (reason: ${e})`}},fN=(e,t)=>{if(typeof e!=`function`)throw TypeError(LN(32))},pN=()=>{},mN=(e,t=pN)=>(e.catch(t),e),hN=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),gN=e=>{if(e.aborted)throw new dN(e.reason)};function _N(e,t){let n=pN;return new Promise((r,i)=>{let a=()=>i(new dN(e.reason));if(e.aborted){a();return}n=hN(e,a),t.finally(()=>n()).then(r,i)}).finally(()=>{n=pN})}var vN=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof dN?`cancelled`:`rejected`,error:e}}finally{t?.()}},yN=e=>t=>mN(_N(e,t).then(t=>(gN(e),t))),bN=e=>{let t=yN(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:xN}=Object,SN={},CN=`listenerMiddleware`,wN=(e,t)=>{let n=t=>hN(e,()=>t.abort(e.reason));return(r,i)=>{fN(r,`taskExecutor`);let a=new AbortController;n(a);let o=vN(async()=>{gN(e),gN(a.signal);let t=await r({pause:yN(a.signal),delay:bN(a.signal),signal:a.signal});return gN(a.signal),t},()=>a.abort(cN));return i?.autoJoin&&t.push(o.catch(pN)),{result:yN(e)(o),cancel(){a.abort(sN)}}}},TN=(e,t)=>{let n=async(n,r)=>{gN(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await _N(t,Promise.race(a));return gN(t),e}finally{i()}};return((e,t)=>mN(n(e,t)))},EN=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=OM(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(LN(21));return fN(a,`options.listener`),{predicate:i,type:t,effect:a}},DN=xN(e=>{let{type:t,predicate:n,effect:r}=EN(e);return{id:GM(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(LN(22))}}},{withTypes:()=>DN}),ON=(e,t)=>{let{type:n,effect:r,predicate:i}=EN(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},kN=e=>{e.pending.forEach(e=>{e.abort(lN)})},AN=(e,t)=>()=>{for(let e of t.keys())kN(e);e.clear()},jN=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},MN=xN(OM(`${CN}/add`),{withTypes:()=>MN}),NN=OM(`${CN}/removeAll`),PN=xN(OM(`${CN}/remove`),{withTypes:()=>PN}),FN=(...e)=>{console.error(`${CN}/error`,...e)},IN=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=FN}=e;fN(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&kN(e)}),c=(e=>{let n=ON(t,e)??DN(e);return s(n)});xN(c,{withTypes:()=>c});let l=e=>{let n=ON(t,e);return n&&(n.unsubscribe(),e.cancelActive&&kN(n)),!!n};xN(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=TN(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,xN({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:bN(u.signal),pause:yN(u.signal),extra:a,signal:u.signal,fork:wN(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort(lN),n.delete(e))})},cancel:()=>{u.abort(lN),e.pending.delete(u)},throwIfCancelled:()=>{gN(u.signal)}})))}catch(e){e instanceof dN||jN(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(uN),i(e),e.pending.delete(u)}},d=AN(t,n);return{middleware:e=>n=>r=>{if(!tj(r))return n(r);if(MN.match(r))return c(r.payload);if(NN.match(r)){d();return}if(PN.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===SN)throw Error(LN(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,jN(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=SN}return s},startListening:c,stopListening:l,clearListeners:d}};function LN(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var RN=XM({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),{setMargin:zN,setLayout:BN,setChartSize:VN,setScale:HN}=RN.actions,UN=RN.reducer;function WN(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function GN(e){return Number.isFinite(e)}function KN(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function qN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JN(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?qN(Object(n),!0).forEach(function(t){YN(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function YN(e,t,n){return(t=XN(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function XN(e){var t=ZN(e,`string`);return typeof t==`symbol`?t:t+``}function ZN(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function QN(e,t,n){return TO(e)||TO(t)?n:vO(t)?uO(e,t,n):typeof t==`function`?t(e):n}var $N=(e,t,n)=>{if(t&&n){var{width:r,height:i}=n,{align:a,verticalAlign:o,layout:s}=t;if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&Z(e[a]))return JN(JN({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&Z(e[o]))return JN(JN({},e),{},{[o]:e[o]+(i||0)})}return e},eP=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,tP=(e,t,n,r)=>{if(r)return e.map(e=>e.coordinate);var i,a,o=e.map(e=>(e.coordinate===t&&(i=!0),e.coordinate===n&&(a=!0),e.coordinate));return i||o.push(t),a||o.push(n),o},nP=(e,t,n)=>{if(!e)return null;var{duplicateDomain:r,type:i,range:a,scale:o,realScaleType:s,isCategorical:c,categoricalDomain:l,tickCount:u,ticks:d,niceTicks:f,axisType:p}=e;if(!o)return null;var m=s===`scaleBand`&&o.bandwidth?o.bandwidth()/2:2,h=(t||n)&&i===`category`&&o.bandwidth?o.bandwidth()/m:0;return h=p===`angleAxis`&&a&&a.length>=2?hO(a[0]-a[1])*2*h:h,t&&(d||f)?(d||f||[]).map((e,t)=>{var n=r?r.indexOf(e):e,i=o.map(n);return GN(i)?{coordinate:i+h,value:e,offset:h,index:t}:null}).filter(DO):c&&l?l.map((e,t)=>{var n=o.map(e);return GN(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(DO):o.ticks&&!n&&u!=null?o.ticks(u).map((e,t)=>{var n=o.map(e);return GN(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(DO):o.domain().map((e,t)=>{var n=o.map(e);return GN(n)?{coordinate:n+h,value:r?r[e]:e,index:t,offset:h}:null}).filter(DO)},rP=(e,t)=>{if(!t||t.length!==2||!Z(t[0])||!Z(t[1]))return e;var n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]),i=[e[0],e[1]];return(!Z(e[0])||e[0]<n)&&(i[0]=n),(!Z(e[1])||e[1]>r)&&(i[1]=r),i[0]>r&&(i[0]=r),i[1]<n&&(i[1]=n),i},iP={sign:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r<n;++r)for(var i=0,a=0,o=0;o<t;++o){var s=e[o]?.[r];if(s!=null){var c=s[1],l=s[0],u=gO(c)?l:c;u>=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:ZD,none:KD,silhouette:QD,wiggle:$D,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r<n;++r)for(var i=0,a=0;a<t;++a){var o=e[a]?.[r];if(o!=null){var s=gO(o[1])?o[0]:o[1];s>=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},aP=(e,t,n)=>{var r=iP[n]??KD,i=XD().keys(t).value((e,t)=>Number(QN(e,t,0))).order(qD).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=QN(e[i],t[r],0);Array.isArray(a)&&a.length===2&&Z(a[0])&&Z(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function oP(e){return e==null?void 0:String(e)}var sP=e=>{var{axis:t,ticks:n,offset:r,bandSize:i,entry:a,index:o}=e;if(t.type===`category`)return n[o]?n[o].coordinate+r:null;var s=QN(a,t.dataKey,t.scale.domain()[o]);if(TO(s))return null;var c=t.scale.map(s);return Z(c)?c-i/2+r:null},cP=e=>{var{numericAxis:t}=e,n=t.scale.domain();if(t.type===`number`){var r=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]);return r<=0&&i>=0?0:i<0?i:r}return n[0]},lP=e=>{var t=e.flat(2).filter(Z);return[Math.min(...t),Math.max(...t)]},uP=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],dP=(e,t,n)=>{if(e!=null)return uP(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var{stackedData:o}=a,s=o.reduce((e,r)=>{var i=lP(WN(r,t,n));return!GN(i[0])||!GN(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(s[0],r[0]),Math.max(s[1],r[1])]},[1/0,-1/0]))},fP=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,pP=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,mP=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=BA(t,e=>e.coordinate),a=1/0,o=1,s=i.length;o<s;o++){var c=i[o],l=i[o-1];a=Math.min((c?.coordinate||0)-(l?.coordinate||0),a)}return a===1/0?0:a}return n?void 0:0};function hP(e){var{tooltipEntrySettings:t,dataKey:n,payload:r,value:i,name:a}=e;return JN(JN({},t),{},{dataKey:n,payload:r,value:i,name:a})}function gP(e,t){if(e)return String(e);if(typeof t==`string`)return t}var _P=(e,t)=>{if(t===`horizontal`)return e.relativeX;if(t===`vertical`)return e.relativeY},vP=(e,t)=>t===`centric`?e.angle:e.radius,yP=e=>e.layout.width,bP=e=>e.layout.height,xP=e=>e.layout.scale,SP=e=>e.layout.margin,CP=$(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),wP=$(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),TP=`data-recharts-item-index`;function EP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?EP(Object(n),!0).forEach(function(t){OP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):EP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function OP(e,t,n){return(t=kP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kP(e){var t=AP(e,`string`);return typeof t==`symbol`?t:t+``}function AP(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var jP=e=>e.brush.height;function MP(e){return wP(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function NP(e){return wP(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function PP(e){return CP(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+t.height:e,0)}function FP(e){return CP(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+t.height:e,0)}var IP=$([yP,bP,SP,jP,MP,NP,PP,FP,VA,HA],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=DP(DP({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=$N(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return DP(DP({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),LP=$(IP,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),RP=$(yP,bP,(e,t)=>({x:0,y:0,width:e,height:t})),zP=(0,v.createContext)(null),BP=()=>(0,v.useContext)(zP)!=null,VP=e=>e.brush,HP=$([VP,IP,SP],(e,t,n)=>({height:e.height,x:Z(e.x)?e.x:t.left,y:Z(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:Z(e.width)?e.width:t.width}));function UP(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function WP(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=UP(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?((r||i)&&(s=e.apply(this,t)),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function GP(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return WP(e,t,{leading:r,maxWait:t,trailing:i})}var KP=function(e,t){var n=[...arguments].slice(2);if(typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e)){if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}}},qP={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},JP=(e,t,n)=>{var{width:r=qP.width,height:i=qP.height,aspect:a,maxHeight:o}=n,s=_O(r)?e:Number(r),c=_O(i)?t:Number(i);return a&&a>0&&(s?c=s/a:c&&(s=c*a),o&&c!=null&&c>o&&(c=o)),{calculatedWidth:s,calculatedHeight:c}},YP={width:0,height:0,overflow:`visible`},XP={width:0,overflowX:`visible`},ZP={height:0,overflowY:`visible`},QP={},$P=e=>{var{width:t,height:n}=e,r=_O(t),i=_O(n);return r&&i?YP:r?XP:i?ZP:QP};function eF(e){var{width:t,height:n,aspect:r}=e,i=t,a=n;return i===void 0&&a===void 0?(i=qP.width,a=qP.height):i===void 0?i=r&&r>0?void 0:qP.width:a===void 0&&(a=r&&r>0?void 0:qP.height),{width:i,height:a}}function tF(){return tF=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tF.apply(null,arguments)}function nF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rF(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?nF(Object(n),!0).forEach(function(t){iF(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nF(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function iF(e,t,n){return(t=aF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function aF(e){var t=oF(e,`string`);return typeof t==`symbol`?t:t+``}function oF(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var sF=(0,v.createContext)(qP.initialDimension);function cF(e){return KN(e.width)&&KN(e.height)}function lF(e){var{children:t,width:n,height:r}=e,i=(0,v.useMemo)(()=>({width:n,height:r}),[n,r]);return cF(i)?v.createElement(sF.Provider,{value:i},t):null}var uF=()=>(0,v.useContext)(sF),dF=(0,v.forwardRef)((e,t)=>{var{aspect:n,initialDimension:r=qP.initialDimension,width:i,height:a,minWidth:o=qP.minWidth,minHeight:s,maxHeight:c,children:l,debounce:u=qP.debounce,id:d,className:f,onResize:p,style:m={}}=e,h=(0,v.useRef)(null),g=(0,v.useRef)();g.current=p,(0,v.useImperativeHandle)(t,()=>h.current);var[_,y]=(0,v.useState)({containerWidth:r.width,containerHeight:r.height}),b=(0,v.useCallback)((e,t)=>{y(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,v.useEffect)(()=>{if(h.current==null||typeof ResizeObserver>`u`)return OO;var e=e=>{var t,n=e[0];if(n!=null){var{width:r,height:i}=n.contentRect;b(r,i),(t=g.current)==null||t.call(g,r,i)}};u>0&&(e=GP(e,u,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),{width:n,height:r}=h.current.getBoundingClientRect();return b(n,r),t.observe(h.current),()=>{t.disconnect()}},[b,u]);var{containerWidth:x,containerHeight:S}=_;KP(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var{calculatedWidth:C,calculatedHeight:w}=JP(x,S,{width:i,height:a,aspect:n,maxHeight:c});return KP(C!=null&&C>0||w!=null&&w>0,`The width(%s) and height(%s) of chart should be greater than 0,
132
132
  please check the style of container, or the props width(%s) and height(%s),
133
133
  or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the
134
- height and width.`,C,w,i,a,o,s,n),v.createElement(`div`,{id:d?`${d}`:void 0,className:Xt(`recharts-responsive-container`,f),style:qP(qP({},m),{},{width:i,height:a,minWidth:o,minHeight:s,maxHeight:c}),ref:h},v.createElement(`div`,{style:UP({width:i,height:a})},v.createElement($P,{width:C,height:w},l)))}),nF=(0,v.forwardRef)((e,t)=>{var n=eF();if(IN(n.width)&&IN(n.height))return e.children;var{width:r,height:i}=WP({width:e.width,height:e.height,aspect:e.aspect}),{calculatedWidth:a,calculatedHeight:o}=RP(void 0,void 0,{width:r,height:i,aspect:e.aspect,maxHeight:e.maxHeight});return Z(a)&&Z(o)?v.createElement($P,{width:a,height:o},e.children):v.createElement(tF,GP({},e,{width:r,height:i,ref:t}))});function rF(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var iF=()=>{var e=AP(),t=Q(DP),n=Q(MP),r=Q(jP)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},aF={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},oF=()=>Q(EP)??aF,sF=()=>Q(lP),cF=()=>Q(uP),lF=e=>e.layout.layoutType,uF=()=>Q(lF),dF=()=>{var e=uF();if(e===`horizontal`||e===`vertical`)return e},fF=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},pF=()=>uF()!==void 0,mF=e=>{var t=rA(),n=AP(),{width:r,height:i}=e,a=eF(),o=r,s=i;return a&&(o=a.width>0?a.width:r,s=a.height>0?a.height:i),(0,v.useEffect)(()=>{!n&&IN(o)&&IN(s)&&t(jN({width:o,height:s}))},[t,n,o,s]),null},hF=Symbol.for(`immer-nothing`),gF=Symbol.for(`immer-draftable`),_F=Symbol.for(`immer-state`);function vF(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var yF=Object.getPrototypeOf;function bF(e){return!!e&&!!e[_F]}function xF(e){return e?wF(e)||Array.isArray(e)||!!e[gF]||!!e.constructor?.[gF]||AF(e)||jF(e):!1}var SF=Object.prototype.constructor.toString(),CF=new WeakMap;function wF(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;if(n===Object)return!0;if(typeof n!=`function`)return!1;let r=CF.get(n);return r===void 0&&(r=Function.toString.call(n),CF.set(n,r)),r===SF}function TF(e,t,n=!0){EF(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function EF(e){let t=e[_F];return t?t.type_:Array.isArray(e)?1:AF(e)?2:jF(e)?3:0}function DF(e,t){return EF(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function OF(e,t,n){let r=EF(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function kF(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function AF(e){return e instanceof Map}function jF(e){return e instanceof Set}function MF(e){return e.copy_||e.base_}function NF(e,t){if(AF(e))return new Map(e);if(jF(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let n=wF(e);if(t===!0||t===`class_only`&&!n){let t=Object.getOwnPropertyDescriptors(e);delete t[_F];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(yF(e),t)}{let t=yF(e);if(t!==null&&n)return{...e};let r=Object.create(t);return Object.assign(r,e)}}function PF(e,t=!1){return LF(e)||bF(e)||!xF(e)?e:(EF(e)>1&&Object.defineProperties(e,{set:IF,add:IF,clear:IF,delete:IF}),Object.freeze(e),t&&Object.values(e).forEach(e=>PF(e,!0)),e)}function FF(){vF(2)}var IF={value:FF};function LF(e){return typeof e!=`object`||!e||Object.isFrozen(e)}var RF={};function zF(e){let t=RF[e];return t||vF(0,e),t}var BF;function VF(){return BF}function HF(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function UF(e,t){t&&(zF(`Patches`),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function WF(e){GF(e),e.drafts_.forEach(qF),e.drafts_=null}function GF(e){e===BF&&(BF=e.parent_)}function KF(e){return BF=HF(BF,e)}function qF(e){let t=e[_F];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function JF(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];return e!==void 0&&e!==n?(n[_F].modified_&&(WF(t),vF(4)),xF(e)&&(e=YF(t,e),t.parent_||ZF(t,e)),t.patches_&&zF(`Patches`).generateReplacementPatches_(n[_F].base_,e,t.patches_,t.inversePatches_)):e=YF(t,n,[]),WF(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===hF?void 0:e}function YF(e,t,n){if(LF(t))return t;let r=e.immer_.shouldUseStrictIteration(),i=t[_F];if(!i)return TF(t,(r,a)=>XF(e,i,t,r,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return ZF(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;let t=i.copy_,a=t,o=!1;i.type_===3&&(a=new Set(t),t.clear(),o=!0),TF(a,(r,a)=>XF(e,i,t,r,a,n,o),r),ZF(e,t,!1),n&&e.patches_&&zF(`Patches`).generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function XF(e,t,n,r,i,a,o){if(i==null||typeof i!=`object`&&!o)return;let s=LF(i);if(!(s&&!o)){if(bF(i)){let o=YF(e,i,a&&t&&t.type_!==3&&!DF(t.assigned_,r)?a.concat(r):void 0);if(OF(n,r,o),bF(o))e.canAutoFreeze_=!1;else return}else o&&n.add(i);if(xF(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;YF(e,i),(!t||!t.scope_.parent_)&&typeof r!=`symbol`&&(AF(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&ZF(e,i)}}}function ZF(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&PF(t,n)}function QF(e,t){let n=Array.isArray(e),r={type_:+!!n,scope_:t?t.scope_:VF(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},i=r,a=$F;n&&(i=[r],a=eI);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,s}var $F={get(e,t){if(t===_F)return e;let n=MF(e);if(!DF(n,t))return nI(e,n,t);let r=n[t];return e.finalized_||!xF(r)?r:r===tI(e.base_,t)?(aI(e),e.copy_[t]=sI(r,e)):r},has(e,t){return t in MF(e)},ownKeys(e){return Reflect.ownKeys(MF(e))},set(e,t,n){let r=rI(MF(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=tI(MF(e),t),i=r?.[_F];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(kF(n,r)&&(n!==void 0||DF(e.base_,t)))return!0;aI(e),iI(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_[t]=!0,!0)},deleteProperty(e,t){return tI(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,aI(e),iI(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=MF(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!==`length`,enumerable:r.enumerable,value:n[t]}},defineProperty(){vF(11)},getPrototypeOf(e){return yF(e.base_)},setPrototypeOf(){vF(12)}},eI={};TF($F,(e,t)=>{eI[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),eI.deleteProperty=function(e,t){return eI.set.call(this,e,t,void 0)},eI.set=function(e,t,n){return $F.set.call(this,e[0],t,n,e[0])};function tI(e,t){let n=e[_F];return(n?MF(n):e)[t]}function nI(e,t,n){let r=rI(t,n);return r?`value`in r?r.value:r.get?.call(e.draft_):void 0}function rI(e,t){if(!(t in e))return;let n=yF(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=yF(n)}}function iI(e){e.modified_||(e.modified_=!0,e.parent_&&iI(e.parent_))}function aI(e){e.copy_||=NF(e.base_,e.scope_.immer_.useStrictShallowCopy_)}var oI=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,t,n)=>{if(typeof e==`function`&&typeof t!=`function`){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}typeof t!=`function`&&vF(6),n!==void 0&&typeof n!=`function`&&vF(7);let r;if(xF(e)){let i=KF(this),a=sI(e,void 0),o=!0;try{r=t(a),o=!1}finally{o?WF(i):GF(i)}return UF(i,n),JF(r,i)}if(!e||typeof e!=`object`){if(r=t(e),r===void 0&&(r=e),r===hF&&(r=void 0),this.autoFreeze_&&PF(r,!0),n){let t=[],i=[];zF(`Patches`).generateReplacementPatches_(e,r,t,i),n(t,i)}return r}vF(1,e)},this.produceWithPatches=(e,t)=>{if(typeof e==`function`)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},typeof e?.autoFreeze==`boolean`&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy==`boolean`&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration==`boolean`&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){xF(e)||vF(8),bF(e)&&(e=cI(e));let t=KF(this),n=sI(e,void 0);return n[_F].isManual_=!0,GF(t),n}finishDraft(e,t){let n=e&&e[_F];(!n||!n.isManual_)&&vF(9);let{scope_:r}=n;return UF(r,t),JF(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=zF(`Patches`).applyPatches_;return bF(e)?r(e,t):this.produce(e,e=>r(e,t))}};function sI(e,t){let n=AF(e)?zF(`MapSet`).proxyMap_(e,t):jF(e)?zF(`MapSet`).proxySet_(e,t):QF(e,t);return(t?t.scope_:VF()).drafts_.push(n),n}function cI(e){return bF(e)||vF(10,e),lI(e)}function lI(e){if(!xF(e)||LF(e))return e;let t=e[_F],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=NF(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=NF(e,!0);return TF(n,(e,t)=>{OF(n,e,lI(t))},r),t&&(t.finalized_=!1),n}new oI().produce;function uI(e){return e}var dI=BM({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`middle`,itemSorter:`value`},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(uI(t.payload))},prepare:TM()},replaceLegendPayload:{reducer(e,t){var{prev:n,next:r}=t.payload,i=dM(e).payload.indexOf(uI(n));i>-1&&(e.payload[i]=uI(r))},prepare:TM()},removeLegendPayload:{reducer(e,t){var n=dM(e).payload.indexOf(uI(t.payload));n>-1&&e.payload.splice(n,1)},prepare:TM()}}}),{setLegendSize:fI,setLegendSettings:pI,addLegendPayload:mI,replaceLegendPayload:hI,removeLegendPayload:gI}=dI.actions,_I=dI.reducer,vI=o((e=>{var t=d();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));o(((e,t)=>{t.exports=vI()}))();function yI(e){e()}function bI(){let e=null,t=null;return{clear(){e=null,t=null},notify(){yI(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var xI={notify(){},get:()=>[]};function SI(e,t){let n,r=xI,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=bI())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=xI)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var CI=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,wI=typeof navigator<`u`&&navigator.product===`ReactNative`,TI=CI||wI?v.useLayoutEffect:v.useEffect;function EI(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function DI(e,t){if(EI(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!EI(e[n[r]],t[n[r]]))return!1;return!0}var OI=Symbol.for(`react-redux-context`),kI=typeof globalThis<`u`?globalThis:{};function AI(){if(!v.createContext)return{};let e=kI[OI]??=new Map,t=e.get(v.createContext);return t||(t=v.createContext(null),e.set(v.createContext,t)),t}var jI=AI();function MI(e){let{children:t,context:n,serverState:r,store:i}=e,a=v.useMemo(()=>{let e=SI(i);return{store:i,subscription:e,getServerState:r==null?void 0:()=>r}},[i,r]),o=v.useMemo(()=>i.getState(),[i]);TI(()=>{let{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,o]);let s=n||jI;return v.createElement(s.Provider,{value:a},t)}var NI=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`,`throttledEvents`]);function PI(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function FI(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(NI.has(n)){if(e[n]==null&&t[n]==null)continue;if(!DI(e[n],t[n]))return!1}else if(!PI(e[n],t[n]))return!1;return!0}function II(){return II=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},II.apply(null,arguments)}function LI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function RI(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?LI(Object(n),!0).forEach(function(t){zI(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zI(e,t,n){return(t=BI(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BI(e){var t=VI(e,`string`);return typeof t==`symbol`?t:t+``}function VI(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function HI(e){return Array.isArray(e)&&cO(e[0])&&cO(e[1])?e.join(` ~ `):e}var UI={separator:` : `,contentStyle:{margin:0,padding:10,backgroundColor:`#fff`,border:`1px solid #ccc`,whiteSpace:`nowrap`},itemStyle:{display:`block`,paddingTop:4,paddingBottom:4,color:`#000`},labelStyle:{},accessibilityLayer:!1};function WI(e,t){return t==null?e:AA(e,t)}var GI=e=>{var{separator:t=UI.separator,contentStyle:n,itemStyle:r,labelStyle:i=UI.labelStyle,payload:a,formatter:o,itemSorter:s,wrapperClassName:c,labelClassName:l,label:u,labelFormatter:d,accessibilityLayer:f=UI.accessibilityLayer}=e,p=()=>{if(a&&a.length){var e={padding:0,margin:0},n=WI(a,s).map((e,n)=>{if(e.type===`none`)return null;var i=e.formatter||o||HI,{value:s,name:c}=e,l=s,u=c;if(i){var d=i(s,c,e,n,a);if(Array.isArray(d))[l,u]=d;else if(d!=null)l=d;else return null}var f=RI(RI({},UI.itemStyle),{},{color:e.color||UI.itemStyle.color},r);return v.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${n}`,style:f},cO(u)?v.createElement(`span`,{className:`recharts-tooltip-item-name`},u):null,cO(u)?v.createElement(`span`,{className:`recharts-tooltip-item-separator`},t):null,v.createElement(`span`,{className:`recharts-tooltip-item-value`},l),v.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return v.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},n)}return null},m=RI(RI({},UI.contentStyle),n),h=RI({margin:0},i),g=!hO(u),_=g?u:``,y=Xt(`recharts-default-tooltip`,c),b=Xt(`recharts-tooltip-label`,l);g&&d&&a!=null&&(_=d(u,a));var x=f?{role:`status`,"aria-live":`assertive`}:{};return v.createElement(`div`,II({className:y,style:m},x),v.createElement(`p`,{className:b,style:h},v.isValidElement(_)?_:`${_}`),p())},KI=`recharts-tooltip-wrapper`,qI={visibility:`hidden`};function JI(e){var{coordinate:t,translateX:n,translateY:r}=e;return Xt(KI,{[`${KI}-right`]:Z(n)&&t&&Z(t.x)&&n>=t.x,[`${KI}-left`]:Z(n)&&t&&Z(t.x)&&n<t.x,[`${KI}-bottom`]:Z(r)&&t&&Z(t.y)&&r>=t.y,[`${KI}-top`]:Z(r)&&t&&Z(t.y)&&r<t.y})}function YI(e){var{allowEscapeViewBox:t,coordinate:n,key:r,offset:i,position:a,reverseDirection:o,tooltipDimension:s,viewBox:c,viewBoxDimension:l}=e;if(a&&Z(a[r]))return a[r];var u=n[r]-s-(i>0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(u<f?d:u,f):l==null?0:d+s>f+l?Math.max(u,f):Math.max(d,f)}function XI(e){var{translateX:t,translateY:n,useTranslate3d:r}=e;return{transform:r?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function ZI(e){var{allowEscapeViewBox:t,coordinate:n,offsetTop:r,offsetLeft:i,position:a,reverseDirection:o,tooltipBox:s,useTranslate3d:c,viewBox:l}=e,u,d,f;return s.height>0&&s.width>0&&n?(d=YI({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=YI({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=XI({translateX:d,translateY:f,useTranslate3d:c})):u=qI,{cssProperties:u,cssClasses:JI({translateX:d,translateY:f,coordinate:n})}}var QI={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)};function $I(){var[e,t]=(0,v.useState)(()=>QI.isSsr||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches);return(0,v.useEffect)(()=>{if(window.matchMedia){var e=window.matchMedia(`(prefers-reduced-motion: reduce)`),n=()=>{t(e.matches)};return e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}}},[]),e}function eL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?eL(Object(n),!0).forEach(function(t){nL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function nL(e,t,n){return(t=rL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rL(e){var t=iL(e,`string`);return typeof t==`symbol`?t:t+``}function iL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function aL(e){if(!(e.prefersReducedMotion&&e.isAnimationActive===`auto`)&&e.isAnimationActive&&e.active)return`transform ${e.animationDuration}ms ${e.animationEasing}`}function oL(e){var t=$I(),[n,r]=v.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}));v.useEffect(()=>{var t=t=>{t.key===`Escape`&&r({dismissed:!0,dismissedAtCoordinate:{x:e.coordinate?.x??0,y:e.coordinate?.y??0}})};return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e.coordinate?.x,e.coordinate?.y]),n.dismissed&&((e.coordinate?.x??0)!==n.dismissedAtCoordinate.x||(e.coordinate?.y??0)!==n.dismissedAtCoordinate.y)&&r(tL(tL({},n),{},{dismissed:!1}));var{cssClasses:i,cssProperties:a}=ZI({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset==`number`?e.offset:e.offset.x,offsetTop:typeof e.offset==`number`?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),o=tL(tL({},e.hasPortalFromProps?{}:tL(tL({transition:aL({prefersReducedMotion:t,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},a),{},{pointerEvents:`none`,position:`absolute`,top:0,left:0})),{},{visibility:!n.dismissed&&e.active&&e.hasPayload?`visible`:`hidden`},e.wrapperStyle);return v.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:i,style:o,ref:e.innerRef},e.children)}var sL=v.memo(oL),cL=()=>Q(e=>e.rootProps.accessibilityLayer)??!0;function lL(){return lL=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},lL.apply(null,arguments)}function uL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uL(Object(n),!0).forEach(function(t){fL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fL(e,t,n){return(t=pL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pL(e){var t=mL(e,`string`);return typeof t==`symbol`?t:t+``}function mL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var hL={curveBasisClosed:hD,curveBasisOpen:_D,curveBasis:pD,curveBumpX:UE,curveBumpY:WE,curveLinearClosed:yD,curveLinear:LE,curveMonotoneX:DD,curveMonotoneY:OD,curveNatural:jD,curveStep:ND,curveStepAfter:FD,curveStepBefore:PD},gL=e=>FN(e.x)&&FN(e.y),_L=e=>e.base!=null&&gL(e.base)&&gL(e),vL=e=>e.x,yL=e=>e.y,bL=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${gO(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=hL[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return hL[n]||LE},xL={connectNulls:!1,type:`linear`},SL=e=>{var{type:t=xL.type,points:n=[],baseLine:r,layout:i,connectNulls:a=xL.connectNulls}=e,o=bL(t,i),s=a?n.filter(gL):n;if(Array.isArray(r)){var c,l=n.map((e,t)=>dL(dL({},e),{},{base:r[t]}));return c=i===`vertical`?VE().y(yL).x1(vL).x0(e=>e.base.x):VE().x(vL).y1(yL).y0(e=>e.base.y),c.defined(_L).curve(o)(a?l.filter(_L):l)}return(i===`vertical`&&Z(r)?VE().y(yL).x1(vL).x0(r):Z(r)?VE().x(vL).y1(yL).y0(r):BE().x(vL).y(yL)).defined(gL).curve(o)(s)},CL=e=>{var{className:t,points:n,path:r,pathRef:i}=e,a=uF();if((!n||!n.length)&&!r)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=n&&n.length?SL(o):r;return v.createElement(`path`,lL({},sE(e),FO(e),{className:Xt(`recharts-curve`,t),d:s===null?void 0:s,ref:i}))},wL=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function TL(){return TL=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},TL.apply(null,arguments)}function EL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?EL(Object(n),!0).forEach(function(t){OL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):EL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function OL(e,t,n){return(t=kL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kL(e){var t=AL(e,`string`);return typeof t==`symbol`?t:t+``}function AL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function jL(e,t){if(e==null)return{};var n,r,i=ML(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ML(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var NL=(e,t,n,r,i,a)=>`M${e},${i}v${r}M${a},${t}h${n}`,PL=e=>{var{x:t=0,y:n=0,top:r=0,left:i=0,width:a=0,height:o=0,className:s}=e,c=jL(e,wL),l=DL({x:t,y:n,top:r,left:i,width:a,height:o},c);return!Z(t)||!Z(n)||!Z(a)||!Z(o)||!Z(r)||!Z(i)?null:v.createElement(`path`,TL({},lE(l),{className:Xt(`recharts-cross`,s),d:NL(t,n,a,o,r,i)}))};function FL(e,t,n,r){var i=r/2;return{stroke:`none`,fill:`#ccc`,x:e===`horizontal`?t.x-i:n.left+.5,y:e===`horizontal`?n.top+.5:t.y-i,width:e===`horizontal`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}function IL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?IL(Object(n),!0).forEach(function(t){RL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function RL(e,t,n){return(t=zL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zL(e){var t=BL(e,`string`);return typeof t==`symbol`?t:t+``}function BL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var VL=e=>e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),HL=(e,t,n)=>e.map(e=>`${VL(e)} ${t}ms ${n}`).join(`,`),UL=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((e,t)=>e.filter(e=>t.includes(e))),WL=(e,t)=>Object.keys(t).reduce((n,r)=>LL(LL({},n),{},{[r]:e(r,t[r])}),{});function GL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?GL(Object(n),!0).forEach(function(t){qL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qL(e,t,n){return(t=JL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function JL(e){var t=YL(e,`string`);return typeof t==`symbol`?t:t+``}function YL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var XL=(e,t,n)=>e+(t-e)*n,ZL=e=>{var{from:t,to:n}=e;return t!==n},QL=(e,t,n)=>{var r=WL((t,n)=>{if(ZL(n)){var[r,i]=e(n.from,n.to,n.velocity);return KL(KL({},n),{},{from:r,velocity:i})}return n},t);return n<1?WL((e,t)=>ZL(t)&&r[e]!=null?KL(KL({},t),{},{velocity:XL(t.velocity,r[e].velocity,n),from:XL(t.from,r[e].from,n)}):t,t):QL(e,r,n-1)};function $L(e,t,n,r,i,a){var o,s=r.reduce((n,r)=>KL(KL({},n),{},{[r]:{from:e[r],velocity:0,to:t[r]}}),{}),c=()=>WL((e,t)=>t.from,s),l=()=>!Object.values(s).filter(ZL).length,u=null,d=r=>{o||=r;var f=(r-o)/n.dt;s=QL(n,s,f),i(KL(KL(KL({},e),t),c())),o=r,l()||(u=a.setTimeout(d))};return()=>(u=a.setTimeout(d),()=>{var e;(e=u)==null||e()})}function eR(e,t,n,r,i,a,o){var s=null,c=i.reduce((n,r)=>{var i=e[r],a=t[r];return i==null||a==null?n:KL(KL({},n),{},{[r]:[i,a]})},{}),l,u=i=>{l||=i;var d=(i-l)/r,f=WL((e,t)=>XL(...t,n(d)),c);if(a(KL(KL(KL({},e),t),f)),d<1)s=o.setTimeout(u);else{var p=WL((e,t)=>XL(...t,n(1)),c);a(KL(KL(KL({},e),t),p))}};return()=>(s=o.setTimeout(u),()=>{var e;(e=s)==null||e()})}var tR=(e,t,n,r,i,a)=>{var o=UL(e,t);return n==null?()=>(i(KL(KL({},e),t)),()=>{}):n.isStepper===!0?$L(e,t,n,o,i,a):eR(e,t,n,r,o,i,a)},nR=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],rR=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),iR=(e,t)=>n=>rR(nR(e,t),n),aR=(e,t)=>n=>rR([...nR(e,t).map((e,t)=>e*t).slice(1),0],n),oR=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},sR=function(){var e=[...arguments];if(e.length===1)switch(e[0]){case`linear`:return[0,0,1,1];case`ease`:return[.25,.1,.25,1];case`ease-in`:return[.42,0,1,1];case`ease-out`:return[.42,0,.58,1];case`ease-in-out`:return[0,0,.58,1];default:var t=oR(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},cR=(e,t,n,r)=>{var i=iR(e,n),a=iR(t,r),o=aR(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},lR=function(){return cR(...sR(...arguments))},uR=function(){var{stiff:e=100,damping:t=8,dt:n=17}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=(r,i,a)=>{var o=a+(-(r-i)*e-a*t)*n/1e3,s=a*n/1e3+r;return Math.abs(s-i)<1e-4&&Math.abs(o)<1e-4?[i,0]:[s,o]};return r.isStepper=!0,r.dt=n,r},dR=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return lR(e);case`spring`:return uR();default:if(e.split(`(`)[0]===`cubic-bezier`)return lR(e)}return typeof e==`function`?e:null};function fR(e){var t,n=()=>null,r=!1,i=null,a=o=>{if(!r){if(Array.isArray(o)){if(!o.length)return;var[s,...c]=o;if(typeof s==`number`){i=e.setTimeout(a.bind(null,c),s);return}a(s),i=e.setTimeout(a.bind(null,c));return}typeof o==`string`&&(t=o,n(t)),typeof o==`object`&&(t=o,n(t)),typeof o==`function`&&o()}};return{stop:()=>{r=!0},start:e=>{r=!1,i&&=(i(),null),a(e)},subscribe:e=>(n=e,()=>{n=()=>null}),getTimeoutController:()=>e}}var pR=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):typeof requestAnimationFrame==`function`&&(r=requestAnimationFrame(i))};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function mR(){return fR(new pR)}var hR=(0,v.createContext)(mR);function gR(e,t){var n=(0,v.useContext)(hR);return(0,v.useMemo)(()=>t??n(e),[e,t,n])}var _R={begin:0,duration:1e3,easing:`ease`,isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},vR={t:0},yR={t:1};function bR(e){var t=UO(e,_R),{isActive:n,canBegin:r,duration:i,easing:a,begin:o,onAnimationEnd:s,onAnimationStart:c,children:l}=t,u=$I(),d=n===`auto`?!QI.isSsr&&!u:n,f=gR(t.animationId,t.animationManager),[p,m]=(0,v.useState)(d?vR:yR),h=(0,v.useRef)(null);return(0,v.useEffect)(()=>{d||m(yR)},[d]),(0,v.useEffect)(()=>{if(!d||!r)return vO;var e=tR(vR,yR,dR(a),i,m,f.getTimeoutController());return f.start([c,o,()=>{h.current=e()},i,s]),()=>{f.stop(),h.current&&h.current(),s()}},[d,r,i,a,o,c,s,f]),l(p.t)}function xR(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,v.useRef)(uO(t)),r=(0,v.useRef)(e);return r.current!==e&&(n.current=uO(t),r.current=e),n.current}var SR=[`radius`],CR=[`radius`],wR,TR,ER,DR,OR,kR,AR,jR,MR,NR;function PR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?PR(Object(n),!0).forEach(function(t){IR(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):PR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function IR(e,t,n){return(t=LR(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function LR(e){var t=RR(e,`string`);return typeof t==`symbol`?t:t+``}function RR(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function zR(){return zR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},zR.apply(null,arguments)}function BR(e,t){if(e==null)return{};var n,r,i=VR(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function VR(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function HR(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var UR=(e,t,n,r,i)=>{var a=rO(n),o=rO(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;p<m;p++){var h=i[p]??0;f[p]=h>s?s:h}d=iO(wR||=HR([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=iO(TR||=HR([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=iO(ER||=HR([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=iO(DR||=HR([`A `,`,`,`,0,0,`,`,
135
- `,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=iO(OR||=HR([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=iO(kR||=HR([`A `,`,`,`,0,0,`,`,
136
- `,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=iO(AR||=HR([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=iO(jR||=HR([`A `,`,`,`,0,0,`,`,
137
- `,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=iO(MR||=HR(`M .,.
134
+ height and width.`,C,w,i,a,o,s,n),v.createElement(`div`,{id:d?`${d}`:void 0,className:Xt(`recharts-responsive-container`,f),style:rF(rF({},m),{},{width:i,height:a,minWidth:o,minHeight:s,maxHeight:c}),ref:h},v.createElement(`div`,{style:$P({width:i,height:a})},v.createElement(lF,{width:C,height:w},l)))}),fF=(0,v.forwardRef)((e,t)=>{var n=uF();if(KN(n.width)&&KN(n.height))return e.children;var{width:r,height:i}=eF({width:e.width,height:e.height,aspect:e.aspect}),{calculatedWidth:a,calculatedHeight:o}=JP(void 0,void 0,{width:r,height:i,aspect:e.aspect,maxHeight:e.maxHeight});return Z(a)&&Z(o)?v.createElement(lF,{width:a,height:o},e.children):v.createElement(dF,tF({},e,{width:r,height:i,ref:t}))});function pF(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var mF=()=>{var e=BP(),t=Q(LP),n=Q(HP),r=Q(VP)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},hF={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},gF=()=>Q(IP)??hF,_F=()=>Q(yP),vF=()=>Q(bP),yF=e=>e.layout.layoutType,bF=()=>Q(yF),xF=()=>{var e=bF();if(e===`horizontal`||e===`vertical`)return e},SF=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},CF=()=>bF()!==void 0,wF=e=>{var t=pA(),n=BP(),{width:r,height:i}=e,a=uF(),o=r,s=i;return a&&(o=a.width>0?a.width:r,s=a.height>0?a.height:i),(0,v.useEffect)(()=>{!n&&KN(o)&&KN(s)&&t(VN({width:o,height:s}))},[t,n,o,s]),null},TF=Symbol.for(`immer-nothing`),EF=Symbol.for(`immer-draftable`),DF=Symbol.for(`immer-state`);function OF(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var kF=Object.getPrototypeOf;function AF(e){return!!e&&!!e[DF]}function jF(e){return e?PF(e)||Array.isArray(e)||!!e[EF]||!!e.constructor?.[EF]||BF(e)||VF(e):!1}var MF=Object.prototype.constructor.toString(),NF=new WeakMap;function PF(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;if(n===Object)return!0;if(typeof n!=`function`)return!1;let r=NF.get(n);return r===void 0&&(r=Function.toString.call(n),NF.set(n,r)),r===MF}function FF(e,t,n=!0){IF(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function IF(e){let t=e[DF];return t?t.type_:Array.isArray(e)?1:BF(e)?2:VF(e)?3:0}function LF(e,t){return IF(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function RF(e,t,n){let r=IF(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function zF(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function BF(e){return e instanceof Map}function VF(e){return e instanceof Set}function HF(e){return e.copy_||e.base_}function UF(e,t){if(BF(e))return new Map(e);if(VF(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let n=PF(e);if(t===!0||t===`class_only`&&!n){let t=Object.getOwnPropertyDescriptors(e);delete t[DF];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(kF(e),t)}{let t=kF(e);if(t!==null&&n)return{...e};let r=Object.create(t);return Object.assign(r,e)}}function WF(e,t=!1){return qF(e)||AF(e)||!jF(e)?e:(IF(e)>1&&Object.defineProperties(e,{set:KF,add:KF,clear:KF,delete:KF}),Object.freeze(e),t&&Object.values(e).forEach(e=>WF(e,!0)),e)}function GF(){OF(2)}var KF={value:GF};function qF(e){return typeof e!=`object`||!e||Object.isFrozen(e)}var JF={};function YF(e){let t=JF[e];return t||OF(0,e),t}var XF;function ZF(){return XF}function QF(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function $F(e,t){t&&(YF(`Patches`),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function eI(e){tI(e),e.drafts_.forEach(rI),e.drafts_=null}function tI(e){e===XF&&(XF=e.parent_)}function nI(e){return XF=QF(XF,e)}function rI(e){let t=e[DF];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function iI(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];return e!==void 0&&e!==n?(n[DF].modified_&&(eI(t),OF(4)),jF(e)&&(e=aI(t,e),t.parent_||sI(t,e)),t.patches_&&YF(`Patches`).generateReplacementPatches_(n[DF].base_,e,t.patches_,t.inversePatches_)):e=aI(t,n,[]),eI(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===TF?void 0:e}function aI(e,t,n){if(qF(t))return t;let r=e.immer_.shouldUseStrictIteration(),i=t[DF];if(!i)return FF(t,(r,a)=>oI(e,i,t,r,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return sI(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;let t=i.copy_,a=t,o=!1;i.type_===3&&(a=new Set(t),t.clear(),o=!0),FF(a,(r,a)=>oI(e,i,t,r,a,n,o),r),sI(e,t,!1),n&&e.patches_&&YF(`Patches`).generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function oI(e,t,n,r,i,a,o){if(i==null||typeof i!=`object`&&!o)return;let s=qF(i);if(!(s&&!o)){if(AF(i)){let o=aI(e,i,a&&t&&t.type_!==3&&!LF(t.assigned_,r)?a.concat(r):void 0);if(RF(n,r,o),AF(o))e.canAutoFreeze_=!1;else return}else o&&n.add(i);if(jF(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;aI(e,i),(!t||!t.scope_.parent_)&&typeof r!=`symbol`&&(BF(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&sI(e,i)}}}function sI(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&WF(t,n)}function cI(e,t){let n=Array.isArray(e),r={type_:+!!n,scope_:t?t.scope_:ZF(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},i=r,a=lI;n&&(i=[r],a=uI);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,s}var lI={get(e,t){if(t===DF)return e;let n=HF(e);if(!LF(n,t))return fI(e,n,t);let r=n[t];return e.finalized_||!jF(r)?r:r===dI(e.base_,t)?(hI(e),e.copy_[t]=_I(r,e)):r},has(e,t){return t in HF(e)},ownKeys(e){return Reflect.ownKeys(HF(e))},set(e,t,n){let r=pI(HF(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=dI(HF(e),t),i=r?.[DF];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(zF(n,r)&&(n!==void 0||LF(e.base_,t)))return!0;hI(e),mI(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_[t]=!0,!0)},deleteProperty(e,t){return dI(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,hI(e),mI(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=HF(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!==`length`,enumerable:r.enumerable,value:n[t]}},defineProperty(){OF(11)},getPrototypeOf(e){return kF(e.base_)},setPrototypeOf(){OF(12)}},uI={};FF(lI,(e,t)=>{uI[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),uI.deleteProperty=function(e,t){return uI.set.call(this,e,t,void 0)},uI.set=function(e,t,n){return lI.set.call(this,e[0],t,n,e[0])};function dI(e,t){let n=e[DF];return(n?HF(n):e)[t]}function fI(e,t,n){let r=pI(t,n);return r?`value`in r?r.value:r.get?.call(e.draft_):void 0}function pI(e,t){if(!(t in e))return;let n=kF(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=kF(n)}}function mI(e){e.modified_||(e.modified_=!0,e.parent_&&mI(e.parent_))}function hI(e){e.copy_||=UF(e.base_,e.scope_.immer_.useStrictShallowCopy_)}var gI=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,t,n)=>{if(typeof e==`function`&&typeof t!=`function`){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}typeof t!=`function`&&OF(6),n!==void 0&&typeof n!=`function`&&OF(7);let r;if(jF(e)){let i=nI(this),a=_I(e,void 0),o=!0;try{r=t(a),o=!1}finally{o?eI(i):tI(i)}return $F(i,n),iI(r,i)}if(!e||typeof e!=`object`){if(r=t(e),r===void 0&&(r=e),r===TF&&(r=void 0),this.autoFreeze_&&WF(r,!0),n){let t=[],i=[];YF(`Patches`).generateReplacementPatches_(e,r,t,i),n(t,i)}return r}OF(1,e)},this.produceWithPatches=(e,t)=>{if(typeof e==`function`)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},typeof e?.autoFreeze==`boolean`&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy==`boolean`&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration==`boolean`&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){jF(e)||OF(8),AF(e)&&(e=vI(e));let t=nI(this),n=_I(e,void 0);return n[DF].isManual_=!0,tI(t),n}finishDraft(e,t){let n=e&&e[DF];(!n||!n.isManual_)&&OF(9);let{scope_:r}=n;return $F(r,t),iI(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=YF(`Patches`).applyPatches_;return AF(e)?r(e,t):this.produce(e,e=>r(e,t))}};function _I(e,t){let n=BF(e)?YF(`MapSet`).proxyMap_(e,t):VF(e)?YF(`MapSet`).proxySet_(e,t):cI(e,t);return(t?t.scope_:ZF()).drafts_.push(n),n}function vI(e){return AF(e)||OF(10,e),yI(e)}function yI(e){if(!jF(e)||qF(e))return e;let t=e[DF],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=UF(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=UF(e,!0);return FF(n,(e,t)=>{RF(n,e,yI(t))},r),t&&(t.finalized_=!1),n}new gI().produce;function bI(e){return e}var xI=XM({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`middle`,itemSorter:`value`},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(bI(t.payload))},prepare:FM()},replaceLegendPayload:{reducer(e,t){var{prev:n,next:r}=t.payload,i=xM(e).payload.indexOf(bI(n));i>-1&&(e.payload[i]=bI(r))},prepare:FM()},removeLegendPayload:{reducer(e,t){var n=xM(e).payload.indexOf(bI(t.payload));n>-1&&e.payload.splice(n,1)},prepare:FM()}}}),{setLegendSize:SI,setLegendSettings:CI,addLegendPayload:wI,replaceLegendPayload:TI,removeLegendPayload:EI}=xI.actions,DI=xI.reducer,OI=o((e=>{var t=d();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));o(((e,t)=>{t.exports=OI()}))();function kI(e){e()}function AI(){let e=null,t=null;return{clear(){e=null,t=null},notify(){kI(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var jI={notify(){},get:()=>[]};function MI(e,t){let n,r=jI,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=AI())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=jI)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var NI=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,PI=typeof navigator<`u`&&navigator.product===`ReactNative`,FI=NI||PI?v.useLayoutEffect:v.useEffect;function II(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function LI(e,t){if(II(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!II(e[n[r]],t[n[r]]))return!1;return!0}var RI=Symbol.for(`react-redux-context`),zI=typeof globalThis<`u`?globalThis:{};function BI(){if(!v.createContext)return{};let e=zI[RI]??=new Map,t=e.get(v.createContext);return t||(t=v.createContext(null),e.set(v.createContext,t)),t}var VI=BI();function HI(e){let{children:t,context:n,serverState:r,store:i}=e,a=v.useMemo(()=>{let e=MI(i);return{store:i,subscription:e,getServerState:r==null?void 0:()=>r}},[i,r]),o=v.useMemo(()=>i.getState(),[i]);FI(()=>{let{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,o]);let s=n||VI;return v.createElement(s.Provider,{value:a},t)}var UI=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`,`throttledEvents`]);function WI(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function GI(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(UI.has(n)){if(e[n]==null&&t[n]==null)continue;if(!LI(e[n],t[n]))return!1}else if(!WI(e[n],t[n]))return!1;return!0}function KI(){return KI=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},KI.apply(null,arguments)}function qI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JI(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?qI(Object(n),!0).forEach(function(t){YI(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function YI(e,t,n){return(t=XI(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function XI(e){var t=ZI(e,`string`);return typeof t==`symbol`?t:t+``}function ZI(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function QI(e){return Array.isArray(e)&&vO(e[0])&&vO(e[1])?e.join(` ~ `):e}var $I={separator:` : `,contentStyle:{margin:0,padding:10,backgroundColor:`#fff`,border:`1px solid #ccc`,whiteSpace:`nowrap`},itemStyle:{display:`block`,paddingTop:4,paddingBottom:4,color:`#000`},labelStyle:{},accessibilityLayer:!1};function eL(e,t){return t==null?e:BA(e,t)}var tL=e=>{var{separator:t=$I.separator,contentStyle:n,itemStyle:r,labelStyle:i=$I.labelStyle,payload:a,formatter:o,itemSorter:s,wrapperClassName:c,labelClassName:l,label:u,labelFormatter:d,accessibilityLayer:f=$I.accessibilityLayer}=e,p=()=>{if(a&&a.length){var e={padding:0,margin:0},n=eL(a,s).map((e,n)=>{if(e.type===`none`)return null;var i=e.formatter||o||QI,{value:s,name:c}=e,l=s,u=c;if(i){var d=i(s,c,e,n,a);if(Array.isArray(d))[l,u]=d;else if(d!=null)l=d;else return null}var f=JI(JI({},$I.itemStyle),{},{color:e.color||$I.itemStyle.color},r);return v.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${n}`,style:f},vO(u)?v.createElement(`span`,{className:`recharts-tooltip-item-name`},u):null,vO(u)?v.createElement(`span`,{className:`recharts-tooltip-item-separator`},t):null,v.createElement(`span`,{className:`recharts-tooltip-item-value`},l),v.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return v.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},n)}return null},m=JI(JI({},$I.contentStyle),n),h=JI({margin:0},i),g=!TO(u),_=g?u:``,y=Xt(`recharts-default-tooltip`,c),b=Xt(`recharts-tooltip-label`,l);g&&d&&a!=null&&(_=d(u,a));var x=f?{role:`status`,"aria-live":`assertive`}:{};return v.createElement(`div`,KI({className:y,style:m},x),v.createElement(`p`,{className:b,style:h},v.isValidElement(_)?_:`${_}`),p())},nL=`recharts-tooltip-wrapper`,rL={visibility:`hidden`};function iL(e){var{coordinate:t,translateX:n,translateY:r}=e;return Xt(nL,{[`${nL}-right`]:Z(n)&&t&&Z(t.x)&&n>=t.x,[`${nL}-left`]:Z(n)&&t&&Z(t.x)&&n<t.x,[`${nL}-bottom`]:Z(r)&&t&&Z(t.y)&&r>=t.y,[`${nL}-top`]:Z(r)&&t&&Z(t.y)&&r<t.y})}function aL(e){var{allowEscapeViewBox:t,coordinate:n,key:r,offset:i,position:a,reverseDirection:o,tooltipDimension:s,viewBox:c,viewBoxDimension:l}=e;if(a&&Z(a[r]))return a[r];var u=n[r]-s-(i>0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(u<f?d:u,f):l==null?0:d+s>f+l?Math.max(u,f):Math.max(d,f)}function oL(e){var{translateX:t,translateY:n,useTranslate3d:r}=e;return{transform:r?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function sL(e){var{allowEscapeViewBox:t,coordinate:n,offsetTop:r,offsetLeft:i,position:a,reverseDirection:o,tooltipBox:s,useTranslate3d:c,viewBox:l}=e,u,d,f;return s.height>0&&s.width>0&&n?(d=aL({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=aL({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=oL({translateX:d,translateY:f,useTranslate3d:c})):u=rL,{cssProperties:u,cssClasses:iL({translateX:d,translateY:f,coordinate:n})}}var cL={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)};function lL(){var[e,t]=(0,v.useState)(()=>cL.isSsr||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches);return(0,v.useEffect)(()=>{if(window.matchMedia){var e=window.matchMedia(`(prefers-reduced-motion: reduce)`),n=()=>{t(e.matches)};return e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}}},[]),e}function uL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uL(Object(n),!0).forEach(function(t){fL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fL(e,t,n){return(t=pL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pL(e){var t=mL(e,`string`);return typeof t==`symbol`?t:t+``}function mL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function hL(e){if(!(e.prefersReducedMotion&&e.isAnimationActive===`auto`)&&e.isAnimationActive&&e.active)return`transform ${e.animationDuration}ms ${e.animationEasing}`}function gL(e){var t=lL(),[n,r]=v.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}));v.useEffect(()=>{var t=t=>{t.key===`Escape`&&r({dismissed:!0,dismissedAtCoordinate:{x:e.coordinate?.x??0,y:e.coordinate?.y??0}})};return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e.coordinate?.x,e.coordinate?.y]),n.dismissed&&((e.coordinate?.x??0)!==n.dismissedAtCoordinate.x||(e.coordinate?.y??0)!==n.dismissedAtCoordinate.y)&&r(dL(dL({},n),{},{dismissed:!1}));var{cssClasses:i,cssProperties:a}=sL({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset==`number`?e.offset:e.offset.x,offsetTop:typeof e.offset==`number`?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),o=dL(dL({},e.hasPortalFromProps?{}:dL(dL({transition:hL({prefersReducedMotion:t,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},a),{},{pointerEvents:`none`,position:`absolute`,top:0,left:0})),{},{visibility:!n.dismissed&&e.active&&e.hasPayload?`visible`:`hidden`},e.wrapperStyle);return v.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:i,style:o,ref:e.innerRef},e.children)}var _L=v.memo(gL),vL=()=>Q(e=>e.rootProps.accessibilityLayer)??!0;function yL(){return yL=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yL.apply(null,arguments)}function bL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?bL(Object(n),!0).forEach(function(t){SL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function SL(e,t,n){return(t=CL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function CL(e){var t=wL(e,`string`);return typeof t==`symbol`?t:t+``}function wL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var TL={curveBasisClosed:TD,curveBasisOpen:DD,curveBasis:CD,curveBumpX:$E,curveBumpY:eD,curveLinearClosed:kD,curveLinear:qE,curveMonotoneX:LD,curveMonotoneY:RD,curveNatural:VD,curveStep:UD,curveStepAfter:GD,curveStepBefore:WD},EL=e=>GN(e.x)&&GN(e.y),DL=e=>e.base!=null&&EL(e.base)&&EL(e),OL=e=>e.x,kL=e=>e.y,AL=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${EO(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=TL[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return TL[n]||qE},jL={connectNulls:!1,type:`linear`},ML=e=>{var{type:t=jL.type,points:n=[],baseLine:r,layout:i,connectNulls:a=jL.connectNulls}=e,o=AL(t,i),s=a?n.filter(EL):n;if(Array.isArray(r)){var c,l=n.map((e,t)=>xL(xL({},e),{},{base:r[t]}));return c=i===`vertical`?ZE().y(kL).x1(OL).x0(e=>e.base.x):ZE().x(OL).y1(kL).y0(e=>e.base.y),c.defined(DL).curve(o)(a?l.filter(DL):l)}return(i===`vertical`&&Z(r)?ZE().y(kL).x1(OL).x0(r):Z(r)?ZE().x(OL).y1(kL).y0(r):XE().x(OL).y(kL)).defined(EL).curve(o)(s)},NL=e=>{var{className:t,points:n,path:r,pathRef:i}=e,a=bF();if((!n||!n.length)&&!r)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=n&&n.length?ML(o):r;return v.createElement(`path`,yL({},_E(e),GO(e),{className:Xt(`recharts-curve`,t),d:s===null?void 0:s,ref:i}))},PL=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function FL(){return FL=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},FL.apply(null,arguments)}function IL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?IL(Object(n),!0).forEach(function(t){RL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function RL(e,t,n){return(t=zL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zL(e){var t=BL(e,`string`);return typeof t==`symbol`?t:t+``}function BL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function VL(e,t){if(e==null)return{};var n,r,i=HL(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function HL(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var UL=(e,t,n,r,i,a)=>`M${e},${i}v${r}M${a},${t}h${n}`,WL=e=>{var{x:t=0,y:n=0,top:r=0,left:i=0,width:a=0,height:o=0,className:s}=e,c=VL(e,PL),l=LL({x:t,y:n,top:r,left:i,width:a,height:o},c);return!Z(t)||!Z(n)||!Z(a)||!Z(o)||!Z(r)||!Z(i)?null:v.createElement(`path`,FL({},yE(l),{className:Xt(`recharts-cross`,s),d:UL(t,n,a,o,r,i)}))};function GL(e,t,n,r){var i=r/2;return{stroke:`none`,fill:`#ccc`,x:e===`horizontal`?t.x-i:n.left+.5,y:e===`horizontal`?n.top+.5:t.y-i,width:e===`horizontal`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}function KL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?KL(Object(n),!0).forEach(function(t){JL(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KL(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function JL(e,t,n){return(t=YL(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YL(e){var t=XL(e,`string`);return typeof t==`symbol`?t:t+``}function XL(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ZL=e=>e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),QL=(e,t,n)=>e.map(e=>`${ZL(e)} ${t}ms ${n}`).join(`,`),$L=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((e,t)=>e.filter(e=>t.includes(e))),eR=(e,t)=>Object.keys(t).reduce((n,r)=>qL(qL({},n),{},{[r]:e(r,t[r])}),{});function tR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?tR(Object(n),!0).forEach(function(t){rR(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function rR(e,t,n){return(t=iR(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iR(e){var t=aR(e,`string`);return typeof t==`symbol`?t:t+``}function aR(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var oR=(e,t,n)=>e+(t-e)*n,sR=e=>{var{from:t,to:n}=e;return t!==n},cR=(e,t,n)=>{var r=eR((t,n)=>{if(sR(n)){var[r,i]=e(n.from,n.to,n.velocity);return nR(nR({},n),{},{from:r,velocity:i})}return n},t);return n<1?eR((e,t)=>sR(t)&&r[e]!=null?nR(nR({},t),{},{velocity:oR(t.velocity,r[e].velocity,n),from:oR(t.from,r[e].from,n)}):t,t):cR(e,r,n-1)};function lR(e,t,n,r,i,a){var o,s=r.reduce((n,r)=>nR(nR({},n),{},{[r]:{from:e[r],velocity:0,to:t[r]}}),{}),c=()=>eR((e,t)=>t.from,s),l=()=>!Object.values(s).filter(sR).length,u=null,d=r=>{o||=r;var f=(r-o)/n.dt;s=cR(n,s,f),i(nR(nR(nR({},e),t),c())),o=r,l()||(u=a.setTimeout(d))};return()=>(u=a.setTimeout(d),()=>{var e;(e=u)==null||e()})}function uR(e,t,n,r,i,a,o){var s=null,c=i.reduce((n,r)=>{var i=e[r],a=t[r];return i==null||a==null?n:nR(nR({},n),{},{[r]:[i,a]})},{}),l,u=i=>{l||=i;var d=(i-l)/r,f=eR((e,t)=>oR(...t,n(d)),c);if(a(nR(nR(nR({},e),t),f)),d<1)s=o.setTimeout(u);else{var p=eR((e,t)=>oR(...t,n(1)),c);a(nR(nR(nR({},e),t),p))}};return()=>(s=o.setTimeout(u),()=>{var e;(e=s)==null||e()})}var dR=(e,t,n,r,i,a)=>{var o=$L(e,t);return n==null?()=>(i(nR(nR({},e),t)),()=>{}):n.isStepper===!0?lR(e,t,n,o,i,a):uR(e,t,n,r,o,i,a)},fR=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],pR=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),mR=(e,t)=>n=>pR(fR(e,t),n),hR=(e,t)=>n=>pR([...fR(e,t).map((e,t)=>e*t).slice(1),0],n),gR=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},_R=function(){var e=[...arguments];if(e.length===1)switch(e[0]){case`linear`:return[0,0,1,1];case`ease`:return[.25,.1,.25,1];case`ease-in`:return[.42,0,1,1];case`ease-out`:return[.42,0,.58,1];case`ease-in-out`:return[0,0,.58,1];default:var t=gR(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},vR=(e,t,n,r)=>{var i=mR(e,n),a=mR(t,r),o=hR(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},yR=function(){return vR(..._R(...arguments))},bR=function(){var{stiff:e=100,damping:t=8,dt:n=17}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=(r,i,a)=>{var o=a+(-(r-i)*e-a*t)*n/1e3,s=a*n/1e3+r;return Math.abs(s-i)<1e-4&&Math.abs(o)<1e-4?[i,0]:[s,o]};return r.isStepper=!0,r.dt=n,r},xR=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return yR(e);case`spring`:return bR();default:if(e.split(`(`)[0]===`cubic-bezier`)return yR(e)}return typeof e==`function`?e:null};function SR(e){var t,n=()=>null,r=!1,i=null,a=o=>{if(!r){if(Array.isArray(o)){if(!o.length)return;var[s,...c]=o;if(typeof s==`number`){i=e.setTimeout(a.bind(null,c),s);return}a(s),i=e.setTimeout(a.bind(null,c));return}typeof o==`string`&&(t=o,n(t)),typeof o==`object`&&(t=o,n(t)),typeof o==`function`&&o()}};return{stop:()=>{r=!0},start:e=>{r=!1,i&&=(i(),null),a(e)},subscribe:e=>(n=e,()=>{n=()=>null}),getTimeoutController:()=>e}}var CR=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):typeof requestAnimationFrame==`function`&&(r=requestAnimationFrame(i))};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function wR(){return SR(new CR)}var TR=(0,v.createContext)(wR);function ER(e,t){var n=(0,v.useContext)(TR);return(0,v.useMemo)(()=>t??n(e),[e,t,n])}var DR={begin:0,duration:1e3,easing:`ease`,isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},OR={t:0},kR={t:1};function AR(e){var t=$O(e,DR),{isActive:n,canBegin:r,duration:i,easing:a,begin:o,onAnimationEnd:s,onAnimationStart:c,children:l}=t,u=lL(),d=n===`auto`?!cL.isSsr&&!u:n,f=ER(t.animationId,t.animationManager),[p,m]=(0,v.useState)(d?OR:kR),h=(0,v.useRef)(null);return(0,v.useEffect)(()=>{d||m(kR)},[d]),(0,v.useEffect)(()=>{if(!d||!r)return OO;var e=dR(OR,kR,xR(a),i,m,f.getTimeoutController());return f.start([c,o,()=>{h.current=e()},i,s]),()=>{f.stop(),h.current&&h.current(),s()}},[d,r,i,a,o,c,s,f]),l(p.t)}function jR(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,v.useRef)(bO(t)),r=(0,v.useRef)(e);return r.current!==e&&(n.current=bO(t),r.current=e),n.current}var MR=[`radius`],NR=[`radius`],PR,FR,IR,LR,RR,zR,BR,VR,HR,UR;function WR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?WR(Object(n),!0).forEach(function(t){KR(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):WR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function KR(e,t,n){return(t=qR(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qR(e){var t=JR(e,`string`);return typeof t==`symbol`?t:t+``}function JR(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function YR(){return YR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},YR.apply(null,arguments)}function XR(e,t){if(e==null)return{};var n,r,i=ZR(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ZR(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function QR(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var $R=(e,t,n,r,i)=>{var a=pO(n),o=pO(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;p<m;p++){var h=i[p]??0;f[p]=h>s?s:h}d=mO(PR||=QR([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=mO(FR||=QR([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=mO(IR||=QR([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=mO(LR||=QR([`A `,`,`,`,0,0,`,`,
135
+ `,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=mO(RR||=QR([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=mO(zR||=QR([`A `,`,`,`,0,0,`,`,
136
+ `,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=mO(BR||=QR([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=mO(VR||=QR([`A `,`,`,`,0,0,`,`,
137
+ `,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=mO(HR||=QR(`M .,.
138
138
  A .,.,0,0,.,.,.
139
139
  L .,.
140
140
  A .,.,0,0,.,.,.
141
141
  L .,.
142
142
  A .,.,0,0,.,.,.
143
143
  L .,.
144
- A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=iO(NR||=HR([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},WR={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},GR=e=>{var t=UO(e,WR),n=(0,v.useRef)(null),[r,i]=(0,v.useState)(-1);(0,v.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&i(e)}catch{}},[]);var{x:a,y:o,width:s,height:c,radius:l,className:u}=t,{animationEasing:d,animationDuration:f,animationBegin:p,isAnimationActive:m,isUpdateAnimationActive:h}=t,g=(0,v.useRef)(s),_=(0,v.useRef)(c),y=(0,v.useRef)(a),b=(0,v.useRef)(o),x=xR((0,v.useMemo)(()=>({x:a,y:o,width:s,height:c,radius:l}),[a,o,s,c,l]),`rectangle-`);if(a!==+a||o!==+o||s!==+s||c!==+c||s===0||c===0)return null;var S=Xt(`recharts-rectangle`,u);if(!h){var C=lE(t),{radius:w}=C,T=BR(C,SR);return v.createElement(`path`,zR({},T,{x:rO(a),y:rO(o),width:rO(s),height:rO(c),radius:typeof l==`number`?l:void 0,className:S,d:UR(a,o,s,c,l)}))}var E=g.current,D=_.current,O=y.current,k=b.current,A=`0px ${r===-1?1:r}px`,j=`${r}px ${r}px`,M=HL([`strokeDasharray`],f,typeof d==`string`?d:WR.animationEasing);return v.createElement(bR,{animationId:x,key:x,canBegin:r>0,duration:f,easing:d,isActive:h,begin:p},e=>{var r=pO(E,s,e),i=pO(D,c,e),u=pO(O,a,e),d=pO(k,o,e);n.current&&(g.current=r,_.current=i,y.current=u,b.current=d);var f=m?e>0?{transition:M,strokeDasharray:j}:{strokeDasharray:A}:{strokeDasharray:j},p=lE(t),{radius:h}=p,x=BR(p,CR);return v.createElement(`path`,zR({},x,{radius:typeof l==`number`?l:void 0,className:S,d:UR(u,d,r,i,l),ref:n,style:FR(FR({},f),t.style)}))})};function KR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?KR(Object(n),!0).forEach(function(t){JR(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function JR(e,t,n){return(t=YR(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YR(e){var t=XR(e,`string`);return typeof t==`symbol`?t:t+``}function XR(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ZR=Math.PI/180,QR=e=>e*180/Math.PI,$R=(e,t,n,r)=>({x:e+Math.cos(-ZR*r)*n,y:t+Math.sin(-ZR*r)*n}),ez=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},tz=(e,t)=>{var{x:n,y:r}=e,{x:i,y:a}=t;return Math.sqrt((n-i)**2+(r-a)**2)},nz=(e,t)=>{var{x:n,y:r}=e,{cx:i,cy:a}=t,o=tz({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:QR(c),angleInRadian:c}},rz=e=>{var{startAngle:t,endAngle:n}=e,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},iz=(e,t)=>{var{startAngle:n,endAngle:r}=t,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},az=(e,t)=>{var{relativeX:n,relativeY:r}=e,{radius:i,angle:a}=nz({x:n,y:r},t),{innerRadius:o,outerRadius:s}=t;if(i<o||i>s||i===0)return null;var{startAngle:c,endAngle:l}=rz(t),u=a,d;if(c<=l){for(;u>l;)u-=360;for(;u<c;)u+=360;d=u>=c&&u<=l}else{for(;u>c;)u-=360;for(;u<l;)u+=360;d=u>=l&&u<=c}return d?qR(qR({},t),{},{radius:i,angle:iz(u,t)}):null};function oz(e){var{cx:t,cy:n,radius:r,startAngle:i,endAngle:a}=e;return{points:[$R(t,n,r,i),$R(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var sz,cz,lz,uz,dz,fz,pz;function mz(){return mz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mz.apply(null,arguments)}function hz(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var gz=(e,t)=>aO(t-e)*Math.min(Math.abs(t-e),359.999),_z=e=>{var{cx:t,cy:n,radius:r,angle:i,sign:a,isExternal:o,cornerRadius:s,cornerIsExternal:c}=e,l=s*(o?1:-1)+r,u=Math.asin(s/l)/ZR,d=c?i:i+a*u,f=$R(t,n,l,d),p=$R(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:$R(t,n,l*Math.cos(u*ZR),m),theta:u}},vz=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:a,endAngle:o}=e,s=gz(a,o),c=a+s,l=$R(t,n,i,a),u=$R(t,n,i,c),d=iO(sz||=hz([`M `,`,`,`
144
+ A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=mO(UR||=QR([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},ez={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},tz=e=>{var t=$O(e,ez),n=(0,v.useRef)(null),[r,i]=(0,v.useState)(-1);(0,v.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&i(e)}catch{}},[]);var{x:a,y:o,width:s,height:c,radius:l,className:u}=t,{animationEasing:d,animationDuration:f,animationBegin:p,isAnimationActive:m,isUpdateAnimationActive:h}=t,g=(0,v.useRef)(s),_=(0,v.useRef)(c),y=(0,v.useRef)(a),b=(0,v.useRef)(o),x=jR((0,v.useMemo)(()=>({x:a,y:o,width:s,height:c,radius:l}),[a,o,s,c,l]),`rectangle-`);if(a!==+a||o!==+o||s!==+s||c!==+c||s===0||c===0)return null;var S=Xt(`recharts-rectangle`,u);if(!h){var C=yE(t),{radius:w}=C,T=XR(C,MR);return v.createElement(`path`,YR({},T,{x:pO(a),y:pO(o),width:pO(s),height:pO(c),radius:typeof l==`number`?l:void 0,className:S,d:$R(a,o,s,c,l)}))}var E=g.current,D=_.current,O=y.current,k=b.current,A=`0px ${r===-1?1:r}px`,j=`${r}px ${r}px`,M=QL([`strokeDasharray`],f,typeof d==`string`?d:ez.animationEasing);return v.createElement(AR,{animationId:x,key:x,canBegin:r>0,duration:f,easing:d,isActive:h,begin:p},e=>{var r=CO(E,s,e),i=CO(D,c,e),u=CO(O,a,e),d=CO(k,o,e);n.current&&(g.current=r,_.current=i,y.current=u,b.current=d);var f=m?e>0?{transition:M,strokeDasharray:j}:{strokeDasharray:A}:{strokeDasharray:j},p=yE(t),{radius:h}=p,x=XR(p,NR);return v.createElement(`path`,YR({},x,{radius:typeof l==`number`?l:void 0,className:S,d:$R(u,d,r,i,l),ref:n,style:GR(GR({},f),t.style)}))})};function nz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?nz(Object(n),!0).forEach(function(t){iz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function iz(e,t,n){return(t=az(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function az(e){var t=oz(e,`string`);return typeof t==`symbol`?t:t+``}function oz(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var sz=Math.PI/180,cz=e=>e*180/Math.PI,lz=(e,t,n,r)=>({x:e+Math.cos(-sz*r)*n,y:t+Math.sin(-sz*r)*n}),uz=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},dz=(e,t)=>{var{x:n,y:r}=e,{x:i,y:a}=t;return Math.sqrt((n-i)**2+(r-a)**2)},fz=(e,t)=>{var{x:n,y:r}=e,{cx:i,cy:a}=t,o=dz({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:cz(c),angleInRadian:c}},pz=e=>{var{startAngle:t,endAngle:n}=e,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},mz=(e,t)=>{var{startAngle:n,endAngle:r}=t,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},hz=(e,t)=>{var{relativeX:n,relativeY:r}=e,{radius:i,angle:a}=fz({x:n,y:r},t),{innerRadius:o,outerRadius:s}=t;if(i<o||i>s||i===0)return null;var{startAngle:c,endAngle:l}=pz(t),u=a,d;if(c<=l){for(;u>l;)u-=360;for(;u<c;)u+=360;d=u>=c&&u<=l}else{for(;u>c;)u-=360;for(;u<l;)u+=360;d=u>=l&&u<=c}return d?rz(rz({},t),{},{radius:i,angle:mz(u,t)}):null};function gz(e){var{cx:t,cy:n,radius:r,startAngle:i,endAngle:a}=e;return{points:[lz(t,n,r,i),lz(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var _z,vz,yz,bz,xz,Sz,Cz;function wz(){return wz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wz.apply(null,arguments)}function Tz(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Ez=(e,t)=>hO(t-e)*Math.min(Math.abs(t-e),359.999),Dz=e=>{var{cx:t,cy:n,radius:r,angle:i,sign:a,isExternal:o,cornerRadius:s,cornerIsExternal:c}=e,l=s*(o?1:-1)+r,u=Math.asin(s/l)/sz,d=c?i:i+a*u,f=lz(t,n,l,d),p=lz(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:lz(t,n,l*Math.cos(u*sz),m),theta:u}},Oz=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:a,endAngle:o}=e,s=Ez(a,o),c=a+s,l=lz(t,n,i,a),u=lz(t,n,i,c),d=mO(_z||=Tz([`M `,`,`,`
145
145
  A `,`,`,`,0,
146
146
  `,`,`,`,
147
147
  `,`,`,`
148
- `]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=$R(t,n,r,a),p=$R(t,n,r,c);d+=iO(cz||=hz([`L `,`,`,`
148
+ `]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=lz(t,n,r,a),p=lz(t,n,r,c);d+=mO(vz||=Tz([`L `,`,`,`
149
149
  A `,`,`,`,0,
150
150
  `,`,`,`,
151
- `,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=iO(lz||=hz([`L `,`,`,` Z`]),t,n);return d},yz=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,cornerRadius:a,forceCornerRadius:o,cornerIsExternal:s,startAngle:c,endAngle:l}=e,u=aO(l-c),{circleTangency:d,lineTangency:f,theta:p}=_z({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),{circleTangency:m,lineTangency:h,theta:g}=_z({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),_=s?Math.abs(c-l):Math.abs(c-l)-p-g;if(_<0)return o?iO(uz||=hz([`M `,`,`,`
151
+ `,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=mO(yz||=Tz([`L `,`,`,` Z`]),t,n);return d},kz=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,cornerRadius:a,forceCornerRadius:o,cornerIsExternal:s,startAngle:c,endAngle:l}=e,u=hO(l-c),{circleTangency:d,lineTangency:f,theta:p}=Dz({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),{circleTangency:m,lineTangency:h,theta:g}=Dz({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),_=s?Math.abs(c-l):Math.abs(c-l)-p-g;if(_<0)return o?mO(bz||=Tz([`M `,`,`,`
152
152
  a`,`,`,`,0,0,1,`,`,0
153
153
  a`,`,`,`,0,0,1,`,`,0
154
- `]),f.x,f.y,a,a,a*2,a,a,-a*2):vz({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var v=iO(dz||=hz([`M `,`,`,`
154
+ `]),f.x,f.y,a,a,a*2,a,a,-a*2):Oz({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var v=mO(xz||=Tz([`M `,`,`,`
155
155
  A`,`,`,`,0,0,`,`,`,`,`,`
156
156
  A`,`,`,`,0,`,`,`,`,`,`,`,`
157
157
  A`,`,`,`,0,0,`,`,`,`,`,`
158
- `]),f.x,f.y,a,a,+(u<0),d.x,d.y,i,i,+(_>180),+(u<0),m.x,m.y,a,a,+(u<0),h.x,h.y);if(r>0){var{circleTangency:y,lineTangency:b,theta:x}=_z({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),{circleTangency:S,lineTangency:C,theta:w}=_z({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),T=s?Math.abs(c-l):Math.abs(c-l)-x-w;if(T<0&&a===0)return`${v}L${t},${n}Z`;v+=iO(fz||=hz([`L`,`,`,`
158
+ `]),f.x,f.y,a,a,+(u<0),d.x,d.y,i,i,+(_>180),+(u<0),m.x,m.y,a,a,+(u<0),h.x,h.y);if(r>0){var{circleTangency:y,lineTangency:b,theta:x}=Dz({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),{circleTangency:S,lineTangency:C,theta:w}=Dz({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),T=s?Math.abs(c-l):Math.abs(c-l)-x-w;if(T<0&&a===0)return`${v}L${t},${n}Z`;v+=mO(Sz||=Tz([`L`,`,`,`
159
159
  A`,`,`,`,0,0,`,`,`,`,`,`
160
160
  A`,`,`,`,0,`,`,`,`,`,`,`,`
161
- A`,`,`,`,0,0,`,`,`,`,`,`Z`]),C.x,C.y,a,a,+(u<0),S.x,S.y,r,r,+(T>180),+(u>0),y.x,y.y,a,a,+(u<0),b.x,b.y)}else v+=iO(pz||=hz([`L`,`,`,`Z`]),t,n);return v},bz={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},xz=e=>{var t=UO(e,bz),{cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:o,forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u,className:d}=t;if(a<i||l===u)return null;var f=Xt(`recharts-sector`,d),p=a-i,m=dO(o,p,0,!0),h=m>0&&Math.abs(l-u)<360?yz({cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:Math.min(m,p/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u}):vz({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:l,endAngle:u});return v.createElement(`path`,mz({},lE(t),{className:f,d:h}))};function Sz(e,t,n){if(e===`horizontal`)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e===`vertical`)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(PO(t)){if(e===`centric`){var{cx:r,cy:i,innerRadius:a,outerRadius:o,angle:s}=t,c=$R(r,i,a,s),l=$R(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return oz(t)}}function Cz(e){return XD(e)?NaN:Number(e)}function wz(e){return e?(e=Cz(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Tz(e,t,n){n&&typeof n!=`number`&&SA(e,t,n)&&(t=n=void 0),e=wz(e),t===void 0?(t=e,e=0):t=wz(t),n=n===void 0?e<t?1:-1:wz(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var Ez=e=>e.chartData,Dz=$([Ez],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),Oz=(e,t,n,r)=>r?Dz(e):Ez(e),kz=(e,t,n)=>n?Dz(e):Ez(e);function Az(e){if(Array.isArray(e)&&e.length===2){var[t,n]=e;if(FN(t)&&FN(n))return!0}return!1}function jz(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function Mz(e,t){if(t&&typeof e!=`function`&&Array.isArray(e)&&e.length===2){var[n,r]=e,i,a;if(FN(n))i=n;else if(typeof n==`function`)return;if(FN(r))a=r;else if(typeof r==`function`)return;var o=[i,a];if(Az(o))return o}}function Nz(e,t,n){if(!(!n&&t==null)){if(typeof e==`function`&&t!=null)try{var r=e(t,n);if(Az(r))return jz(r,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var[i,a]=e,o,s;if(i===`auto`)t!=null&&(o=Math.min(...t));else if(Z(i))o=i;else if(typeof i==`function`)try{t!=null&&(o=i(t?.[0]))}catch{}else if(typeof i==`string`&&nP.test(i)){var c=nP.exec(i);if(c==null||c[1]==null||t==null)o=void 0;else{var l=+c[1];o=t[0]-l}}else o=t?.[0];if(a===`auto`)t!=null&&(s=Math.max(...t));else if(Z(a))s=a;else if(typeof a==`function`)try{t!=null&&(s=a(t?.[1]))}catch{}else if(typeof a==`string`&&rP.test(a)){var u=rP.exec(a);if(u==null||u[1]==null||t==null)s=void 0;else{var d=+u[1];s=t[1]+d}}else s=t?.[1];var f=[o,s];if(Az(f))return t==null?f:jz(f,t,n)}}}var Pz=l(o(((e,t)=>{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=r<i?r:i;t<n;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l<u&&(o=m,m=h,h=o,s=l,l=u,u=s),o=[],s=l+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=k(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=k(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?k(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=k(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),A(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),A(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=k(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=k(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||e<t||e>n)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)r=e[t]+``,n=p-r.length,n&&(a+=w(n)),a+=r;o=e[t],r=o+``,n=p-r.length,n&&(a+=w(n))}else if(o===0)return`0`;for(;o%10==0;)o/=10;return a+o}var b=(function(){function e(e,t){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%f|0,r=n/f|0;return r&&e.unshift(r),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;i<n;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]<t[n]),e[n]=r*f+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,k,A=r.constructor,j=r.s==i.s?1:-1,M=r.d,N=i.d;if(!r.s)return new A(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=N.length,T=M.length,g=new A(j),_=g.d=[],u=0;N[u]==(M[u]||0);)++u;if(N[u]>(M[u]||0)&&--l,x=o==null?o=A.precision:s?o+(S(r)-S(i))+1:o,x<0)return new A(0);if(x=x/p+2|0,u=0,O==1)for(d=0,N=N[0],x++;(u<T||d)&&x--;u++)C=d*f+(M[u]||0),_[u]=C/N|0,d=C%N|0;else{for(d=f/(N[0]+1)|0,d>1&&(N=e(N,d),M=e(M,d),O=N.length,T=M.length),w=O,v=M.slice(0,O),y=v.length;y<O;)v[y++]=0;k=N.slice(),k.unshift(0),E=N[0],N[1]>=f/2&&++E;do d=0,c=t(N,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(N,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O<h?k:N,h))):(d==0&&(c=d=1),m=N.slice()),h=m.length,h<y&&m.unshift(0),n(v,m,y),c==-1&&(y=v.length,c=t(N,v,O,y),c<1&&(d++,n(v,O<y?k:N,y))),y=v.length):c===0&&(d++,v=[0]),_[u++]=d,c&&v[0]?v[y++]=M[w]||0:(v=[M[w]],y=1);while((w++<T||v[0]!==void 0)&&x--)}return _[0]||_.shift(),g.e=l,D(g,s?o+S(g)+1:o)}})();function x(e,t){var n,r,a,o,c,u,f=0,p=0,m=e.constructor,h=m.precision;if(S(e)>16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),r<a){for(r&&e.d.push(+t.slice(0,r)),a-=p;r<a;)e.d.push(+t.slice(r,r+=p));t=t.slice(r),r=p-t.length}else r-=a;for(;r--;)t+=`0`;if(e.d.push(+t),i&&(e.e>h||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a<c,d&&(c=a),a=0;a<c;a++)if(l[a]!=m[a]){d=l[a]<m[a];break}s=0}for(d&&(n=l,l=m,m=n,t.s=-t.s),c=l.length,a=m.length-c;a>0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]<m[a]){for(o=a;o&&l[--o]===0;)l[o]=f-1;--l[o],l[a]+=f}l[a]-=m[a]}for(;l[--c]===0;)l.pop();for(;l[0]===0;l.shift())--r;return l[0]?(t.d=l,t.e=r,i?D(t,g):t):new h(0)}function k(e,t,n){var r,i=S(e),a=y(e.d),o=a.length;return t?(n&&(r=n-o)>0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)<o&&(a=a.slice(0,r)+`.`+a.slice(r)),n&&(r=n-o)>0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function A(e,t){if(e.length>t)return e.length=t,!0}function j(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i){t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;return}if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j,i.config=i.set=M,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function M(e){if(!e||typeof e!=`object`)throw Error(a+`Object expected`);var t,r,i,s=[`precision`,1,n,`rounding`,0,8,`toExpNeg`,-1/0,0,`toExpPos`,0,1/0];for(t=0;t<s.length;t+=3)if((i=e[r=s[t]])!==void 0){if(c(i)===i&&i>=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i)}if((i=e[r=`LN10`])!==void 0){if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i)}return this}r=j(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(e)}))());function Fz(e){return e===0?1:Math.floor(new Pz.default(e).abs().log(10).toNumber())+1}function Iz(e,t,n){for(var r=new Pz.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}var Lz=e=>{var[t,n]=e,[r,i]=[t,n];return t>n&&([r,i]=[n,t]),[r,i]},Rz=(e,t,n)=>{if(e.lte(0))return new Pz.default(0);var r=Fz(e.toNumber()),i=new Pz.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new Pz.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new Pz.default(s.toNumber()):new Pz.default(Math.ceil(s.toNumber()))},zz=(e,t,n)=>{if(e.lte(0))return new Pz.default(0);var r=[1,2,2.5,5],i=e.toNumber(),a=Math.floor(new Pz.default(i).abs().log(10).toNumber()),o=new Pz.default(10).pow(a),s=e.div(o).toNumber(),c=r.findIndex(e=>e>=s-1e-10);if(c===-1&&(o=o.mul(10),c=0),c+=n,c>=r.length){var l=Math.floor(c/r.length);c%=r.length,o=o.mul(new Pz.default(10).pow(l))}var u=r[c]??1,d=new Pz.default(u).mul(o);return t?d:new Pz.default(Math.ceil(d.toNumber()))},Bz=(e,t,n)=>{var r=new Pz.default(1),i=new Pz.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new Pz.default(10).pow(Fz(e)-1),i=new Pz.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new Pz.default(Math.floor(e)))}else e===0?i=new Pz.default(Math.floor((t-1)/2)):n||(i=new Pz.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c<t;c++)s.push(i.add(new Pz.default(c-o).mul(r)).toNumber());return s},Vz=function(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Rz;if(!Number.isFinite((t-e)/(n-1)))return{step:new Pz.default(0),tickMin:new Pz.default(0),tickMax:new Pz.default(0)};var o=a(new Pz.default(t).sub(e).div(n-1),r,i),s;e<=0&&t>=0?s=new Pz.default(0):(s=new Pz.default(e).add(t).div(2),s=s.sub(new Pz.default(s).mod(o)));var c=Math.ceil(s.sub(e).div(o).toNumber()),l=Math.ceil(new Pz.default(t).sub(s).div(o).toNumber()),u=c+l+1;return u>n?Vz(e,t,n,r,i+1,a):(u<n&&(l=t>0?l+(n-u):l,c=t>0?c:c+(n-u)),{step:o,tickMin:s.sub(new Pz.default(c).mul(o)),tickMax:s.add(new Pz.default(l).mul(o))})},Hz=function(e){var[t,n]=e,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,o=Math.max(r,2),[s,c]=Lz([t,n]);if(s===-1/0||c===1/0){var l=c===1/0?[s,...Array(r-1).fill(1/0)]:[...Array(r-1).fill(-1/0),c];return t>n?l.reverse():l}if(s===c)return Bz(s,r,i);var{step:u,tickMin:d,tickMax:f}=Vz(s,c,o,i,0,a===`snap125`?zz:Rz),p=Iz(d,f.add(new Pz.default(.1).mul(u)),u);return t>n?p.reverse():p},Uz=function(e,t){var[n,r]=e,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,[o,s]=Lz([n,r]);if(o===-1/0||s===1/0)return[n,r];if(o===s)return[o];var c=a===`snap125`?zz:Rz,l=Math.max(t,2),u=c(new Pz.default(s).sub(o).div(l-1),i,0),d=[...Iz(new Pz.default(o),new Pz.default(s),u),s];return i===!1&&(d=d.map(e=>Math.round(e))),n>r?d.reverse():d},Wz=e=>e.rootProps.maxBarSize,Gz=e=>e.rootProps.barGap,Kz=e=>e.rootProps.barCategoryGap,qz=e=>e.rootProps.barSize,Jz=e=>e.rootProps.stackOffset,Yz=e=>e.rootProps.reverseStackOrder,Xz=e=>e.options.chartName,Zz=e=>e.rootProps.syncId,Qz=e=>e.rootProps.syncMethod,$z=e=>e.options.eventEmitter,eB={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},tB={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:`auto`,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:eB.axis},nB={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:`auto`,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:eB.axis},rB=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function iB(e,t,n){if(n!==`auto`)return n;if(e!=null)return WN(e,t)?`category`:`number`}function aB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?aB(Object(n),!0).forEach(function(t){sB(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):aB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function sB(e,t,n){return(t=cB(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cB(e){var t=lB(e,`string`);return typeof t==`symbol`?t:t+``}function lB(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var uB={allowDataOverflow:tB.allowDataOverflow,allowDecimals:tB.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:tB.angleAxisId,includeHidden:!1,name:void 0,reversed:tB.reversed,scale:tB.scale,tick:tB.tick,tickCount:void 0,ticks:void 0,type:tB.type,unit:void 0,niceTicks:`auto`},dB={allowDataOverflow:nB.allowDataOverflow,allowDecimals:nB.allowDecimals,allowDuplicatedCategory:nB.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:nB.radiusAxisId,includeHidden:nB.includeHidden,name:void 0,reversed:nB.reversed,scale:nB.scale,tick:nB.tick,tickCount:nB.tickCount,ticks:void 0,type:nB.type,unit:void 0,niceTicks:`auto`},fB=$([(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},fF],(e,t)=>{if(e!=null)return e;var n=iB(t,`angleAxis`,uB.type)??`category`;return oB(oB({},uB),{},{type:n})}),pB=$([(e,t)=>e.polarAxis.radiusAxis[t],fF],(e,t)=>{if(e!=null)return e;var n=iB(t,`radiusAxis`,dB.type)??`category`;return oB(oB({},dB),{},{type:n})}),mB=e=>e.polarOptions,hB=$([lP,uP,EP],ez),gB=$([mB,hB],(e,t)=>{if(e!=null)return dO(e.innerRadius,t,0)}),_B=$([mB,hB],(e,t)=>{if(e!=null)return dO(e.outerRadius,t,t*.8)}),vB=$([mB],e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:n}=e;return[t,n]});$([fB,vB],rB);var yB=$([hB,gB,_B],(e,t,n)=>{if(e!=null&&t!=null&&n!=null)return[t,n]});$([pB,yB],rB);var bB=$([lF,mB,gB,_B,lP,uP],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var{cx:o,cy:s,startAngle:c,endAngle:l}=t;return{cx:dO(o,i,i/2),cy:dO(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),xB=(e,t)=>t,SB=(e,t,n)=>n;function CB(e){return e?.id}function wB(e,t,n){var{chartData:r=[]}=t,{allowDuplicatedCategory:i,dataKey:a}=n,o=new Map;return e.forEach(e=>{var t=e.data??r;if(t!=null&&t.length!==0){var n=CB(e);t.forEach((t,r)=>{var s=a==null||i?r:String(HN(t,a,null)),c=HN(t,e.dataKey,0),l=o.has(s)?o.get(s):{};Object.assign(l,{[n]:c}),o.set(s,l)})}}),Array.from(o.values())}function TB(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var EB=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function DB(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function OB(e,t){if(e.length===t.length){for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}var kB=e=>{var t=lF(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},AB=e=>e.tooltip.settings.axisId;function jB(e){if(e!=null){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i}}return r}}}}}var MB=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!Az(t)){for(var n,r,i=0;i<t.length;i++){var a=t[i];FN(a)&&((n===void 0||a<n)&&(n=a),(r===void 0||a>r)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}};function NB(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function PB(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function FB(e){let t,n,r;e.length===2?(t=e===NB||e===PB?e:IB,n=e,r=e):(t=NB,n=(t,n)=>NB(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function IB(){return 0}function LB(e){return e===null?NaN:+e}function*RB(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var zB=FB(NB),BB=zB.right;zB.left,FB(LB).center;var VB=class extends Map{constructor(e,t=GB){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(HB(this,e))}has(e){return super.has(HB(this,e))}set(e,t){return super.set(UB(this,e),t)}delete(e){return super.delete(WB(this,e))}};function HB({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function UB({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function WB({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function GB(e){return typeof e==`object`&&e?e.valueOf():e}function KB(e=NB){if(e===NB)return qB;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function qB(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}var JB=Math.sqrt(50),YB=Math.sqrt(10),XB=Math.sqrt(2);function ZB(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=JB?10:a>=YB?5:a>=XB?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?ZB(e,t,n*2):[s,c,l]}function QB(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?ZB(t,e,n):ZB(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r){if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o}else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function $B(e,t,n){return t=+t,e=+e,n=+n,ZB(e,t,n)[2]}function eV(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?$B(t,e,n):$B(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function tV(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function nV(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function rV(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?qB:KB(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));rV(e,t,u,d,i)}let a=e[t],o=n,s=r;for(iV(e,n,t),i(e[r],a)>0&&iV(e,n,r);o<s;){for(iV(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?iV(e,n,s):(++s,iV(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function iV(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function aV(e,t,n){if(e=Float64Array.from(RB(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return nV(e);if(t>=1)return tV(e);var r,i=(r-1)*t,a=Math.floor(i),o=tV(rV(e,a).subarray(0,a+1));return o+(nV(e.subarray(a+1))-o)*(i-a)}}function oV(e,t,n=LB){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function sV(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function cV(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function lV(e,t){switch(arguments.length){case 0:break;case 1:typeof e==`function`?this.interpolator(e):this.range(e);break;default:this.domain(e),typeof t==`function`?this.interpolator(t):this.range(t)}return this}var uV=Symbol(`implicit`);function dV(){var e=new VB,t=[],n=[],r=uV;function i(i){let a=e.get(i);if(a===void 0){if(r!==uV)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new VB;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return dV(t,n).unknown(r)},cV.apply(i,arguments),i}function fV(){var e=dV().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=sV(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return fV(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},cV.apply(d(),arguments)}function pV(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return pV(t())},e}function mV(){return pV(fV.apply(null,arguments).paddingInner(1))}function hV(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function gV(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function _V(){}var vV=.7,yV=1/vV,bV=`\\s*([+-]?\\d+)\\s*`,xV=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,SV=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,CV=/^#([0-9a-f]{3,8})$/,wV=RegExp(`^rgb\\(${bV},${bV},${bV}\\)$`),TV=RegExp(`^rgb\\(${SV},${SV},${SV}\\)$`),EV=RegExp(`^rgba\\(${bV},${bV},${bV},${xV}\\)$`),DV=RegExp(`^rgba\\(${SV},${SV},${SV},${xV}\\)$`),OV=RegExp(`^hsl\\(${xV},${SV},${SV}\\)$`),kV=RegExp(`^hsla\\(${xV},${SV},${SV},${xV}\\)$`),AV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};hV(_V,FV,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:jV,formatHex:jV,formatHex8:MV,formatHsl:NV,formatRgb:PV,toString:PV});function jV(){return this.rgb().formatHex()}function MV(){return this.rgb().formatHex8()}function NV(){return JV(this).formatHsl()}function PV(){return this.rgb().formatRgb()}function FV(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=CV.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?IV(t):n===3?new BV(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?LV(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?LV(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=wV.exec(e))?new BV(t[1],t[2],t[3],1):(t=TV.exec(e))?new BV(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=EV.exec(e))?LV(t[1],t[2],t[3],t[4]):(t=DV.exec(e))?LV(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=OV.exec(e))?qV(t[1],t[2]/100,t[3]/100,1):(t=kV.exec(e))?qV(t[1],t[2]/100,t[3]/100,t[4]):AV.hasOwnProperty(e)?IV(AV[e]):e===`transparent`?new BV(NaN,NaN,NaN,0):null}function IV(e){return new BV(e>>16&255,e>>8&255,e&255,1)}function LV(e,t,n,r){return r<=0&&(e=t=n=NaN),new BV(e,t,n,r)}function RV(e){return e instanceof _V||(e=FV(e)),e?(e=e.rgb(),new BV(e.r,e.g,e.b,e.opacity)):new BV}function zV(e,t,n,r){return arguments.length===1?RV(e):new BV(e,t,n,r??1)}function BV(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}hV(BV,zV,gV(_V,{brighter(e){return e=e==null?yV:yV**+e,new BV(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?vV:vV**+e,new BV(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new BV(GV(this.r),GV(this.g),GV(this.b),WV(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:VV,formatHex:VV,formatHex8:HV,formatRgb:UV,toString:UV}));function VV(){return`#${KV(this.r)}${KV(this.g)}${KV(this.b)}`}function HV(){return`#${KV(this.r)}${KV(this.g)}${KV(this.b)}${KV((isNaN(this.opacity)?1:this.opacity)*255)}`}function UV(){let e=WV(this.opacity);return`${e===1?`rgb(`:`rgba(`}${GV(this.r)}, ${GV(this.g)}, ${GV(this.b)}${e===1?`)`:`, ${e})`}`}function WV(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function GV(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function KV(e){return e=GV(e),(e<16?`0`:``)+e.toString(16)}function qV(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new XV(e,t,n,r)}function JV(e){if(e instanceof XV)return new XV(e.h,e.s,e.l,e.opacity);if(e instanceof _V||(e=FV(e)),!e)return new XV;if(e instanceof XV)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new XV(o,s,c,e.opacity)}function YV(e,t,n,r){return arguments.length===1?JV(e):new XV(e,t,n,r??1)}function XV(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}hV(XV,YV,gV(_V,{brighter(e){return e=e==null?yV:yV**+e,new XV(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?vV:vV**+e,new XV(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new BV($V(e>=240?e-240:e+120,i,r),$V(e,i,r),$V(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new XV(ZV(this.h),QV(this.s),QV(this.l),WV(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=WV(this.opacity);return`${e===1?`hsl(`:`hsla(`}${ZV(this.h)}, ${QV(this.s)*100}%, ${QV(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function ZV(e){return e=(e||0)%360,e<0?e+360:e}function QV(e){return Math.max(0,Math.min(1,e||0))}function $V(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var eH=e=>()=>e;function tH(e,t){return function(n){return e+n*t}}function nH(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function rH(e){return(e=+e)==1?iH:function(t,n){return n-t?nH(t,n,e):eH(isNaN(t)?n:t)}}function iH(e,t){var n=t-e;return n?tH(e,n):eH(isNaN(e)?t:e)}var aH=(function e(t){var n=rH(t);function r(e,t){var r=n((e=zV(e)).r,(t=zV(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=iH(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function oH(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function sH(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function cH(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=_H(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function lH(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function uH(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function dH(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=_H(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var fH=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pH=new RegExp(fH.source,`g`);function mH(e){return function(){return e}}function hH(e){return function(t){return e(t)+``}}function gH(e,t){var n=fH.lastIndex=pH.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=fH.exec(e))&&(i=pH.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:uH(r,i)})),n=pH.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?hH(c[0].x):mH(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function _H(e,t){var n=typeof t,r;return t==null||n===`boolean`?eH(t):(n===`number`?uH:n===`string`?(r=FV(t))?(t=r,aH):gH:t instanceof FV?aH:t instanceof Date?lH:sH(t)?oH:Array.isArray(t)?cH:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?dH:uH)(e,t)}function vH(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function yH(e,t){t===void 0&&(t=e,e=_H);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function bH(e){return function(){return e}}function xH(e){return+e}var SH=[0,1];function CH(e){return e}function wH(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:bH(isNaN(t)?NaN:.5)}function TH(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function EH(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=wH(i,r),a=n(o,a)):(r=wH(r,i),a=n(a,o)),function(e){return a(r(e))}}function DH(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=wH(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=BB(e,t,1,r)-1;return a[n](i[n](t))}}function OH(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function kH(){var e=SH,t=SH,n=_H,r,i,a,o=CH,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==CH&&(o=TH(e[0],e[n-1])),s=n>2?DH:EH,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),uH))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,xH),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=vH,u()},d.clamp=function(e){return arguments.length?(o=e?!0:CH,u()):o!==CH},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function AH(){return kH()(CH,CH)}function jH(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function MH(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function NH(e){return e=MH(Math.abs(e)),e?e[1]:NaN}function PH(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function FH(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var IH=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function LH(e){if(!(t=IH.exec(e)))throw Error(`invalid format: `+e);var t;return new RH({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}LH.prototype=RH.prototype;function RH(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}RH.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function zH(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var BH;function VH(e,t){var n=MH(e,t);if(!n)return BH=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(BH=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+MH(e,Math.max(0,t+a-1))[0]}function HH(e,t){var n=MH(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var UH={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:jH,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>HH(e*100,t),r:HH,s:VH,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function WH(e){return e}var GH=Array.prototype.map,KH=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function qH(e){var t=e.grouping===void 0||e.thousands===void 0?WH:PH(GH.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?WH:FH(GH.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=LH(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):UH[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=UH[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=zH(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&BH!==void 0?KH[8+BH/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(NH(t)/3)))*3,r=10**-n,i=l((e=LH(e),e.type=`f`,e),{suffix:KH[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var JH,YH,XH;ZH({thousands:`,`,grouping:[3],currency:[`$`,``]});function ZH(e){return JH=qH(e),YH=JH.format,XH=JH.formatPrefix,JH}function QH(e){return Math.max(0,-NH(Math.abs(e)))}function $H(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(NH(t)/3)))*3-NH(Math.abs(e)))}function eU(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,NH(t)-NH(e))+1}function tU(e,t,n,r){var i=eV(e,t,n),a;switch(r=LH(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=$H(i,o))&&(r.precision=a),XH(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=eU(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=QH(i))&&(r.precision=a-(r.type===`%`)*2)}return YH(r)}function nU(e){var t=e.domain;return e.ticks=function(e){var n=t();return QB(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return tU(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=$B(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function rU(){var e=AH();return e.copy=function(){return OH(e,rU())},cV.apply(e,arguments),nU(e)}function iU(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,xH),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return iU(e).unknown(t)},e=arguments.length?Array.from(e,xH):[0,1],nU(n)}function aU(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function oU(e){return Math.log(e)}function sU(e){return Math.exp(e)}function cU(e){return-Math.log(-e)}function lU(e){return-Math.exp(-e)}function uU(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function dU(e){return e===10?uU:e===Math.E?Math.exp:t=>e**+t}function fU(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function pU(e){return(t,n)=>-e(-t,n)}function mU(e){let t=e(oU,sU),n=t.domain,r=10,i,a;function o(){return i=fU(r),a=dU(r),n()[0]<0?(i=pU(i),a=pU(a),e(cU,lU)):e(oU,sU),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=QB(o,s,p))}else m=QB(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=LH(n)).precision==null&&(n.trim=!0),n=YH(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(aU(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function hU(){let e=mU(kH()).domain([1,10]);return e.copy=()=>OH(e,hU()).base(e.base()),cV.apply(e,arguments),e}function gU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function _U(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function vU(e){var t=1,n=e(gU(t),_U(t));return n.constant=function(n){return arguments.length?e(gU(t=+n),_U(t)):t},nU(n)}function yU(){var e=vU(kH());return e.copy=function(){return OH(e,yU()).constant(e.constant())},cV.apply(e,arguments)}function bU(e){return function(t){return t<0?-((-t)**+e):t**+e}}function xU(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function SU(e){return e<0?-e*e:e*e}function CU(e){var t=e(CH,CH),n=1;function r(){return n===1?e(CH,CH):n===.5?e(xU,SU):e(bU(n),bU(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},nU(t)}function wU(){var e=CU(kH());return e.copy=function(){return OH(e,wU()).exponent(e.exponent())},cV.apply(e,arguments),e}function TU(){return wU.apply(null,arguments).exponent(.5)}function EU(e){return Math.sign(e)*e*e}function DU(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function OU(){var e=AH(),t=[0,1],n=!1,r;function i(t){var i=DU(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(EU(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,xH)).map(EU)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return OU(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},cV.apply(i,arguments),nU(i)}function kU(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=oV(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[BB(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(NB),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return kU().domain(e).range(t).unknown(r)},cV.apply(a,arguments)}function AU(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[BB(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return AU().domain([e,t]).range(i).unknown(a)},cV.apply(nU(o),arguments)}function jU(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[BB(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return jU().domain(e).range(t).unknown(n)},cV.apply(i,arguments)}var MU=new Date,NU=new Date;function PU(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n<r)||!(a>0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(s<n&&n<r);return o},i.filter=n=>PU(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e){if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}}),n&&(i.count=(t,r)=>(MU.setTime(+t),NU.setTime(+r),e(MU),e(NU),Math.floor(n(MU,NU))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var FU=PU(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);FU.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?PU(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):FU),FU.range;var IU=1e3,LU=IU*60,RU=LU*60,zU=RU*24,BU=zU*7,VU=zU*30,HU=zU*365,UU=PU(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*IU)},(e,t)=>(t-e)/IU,e=>e.getUTCSeconds());UU.range;var WU=PU(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*IU)},(e,t)=>{e.setTime(+e+t*LU)},(e,t)=>(t-e)/LU,e=>e.getMinutes());WU.range;var GU=PU(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*LU)},(e,t)=>(t-e)/LU,e=>e.getUTCMinutes());GU.range;var KU=PU(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*IU-e.getMinutes()*LU)},(e,t)=>{e.setTime(+e+t*RU)},(e,t)=>(t-e)/RU,e=>e.getHours());KU.range;var qU=PU(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*RU)},(e,t)=>(t-e)/RU,e=>e.getUTCHours());qU.range;var JU=PU(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*LU)/zU,e=>e.getDate()-1);JU.range;var YU=PU(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zU,e=>e.getUTCDate()-1);YU.range;var XU=PU(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zU,e=>Math.floor(e/zU));XU.range;function ZU(e){return PU(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*LU)/BU)}var QU=ZU(0),$U=ZU(1),eW=ZU(2),tW=ZU(3),nW=ZU(4),rW=ZU(5),iW=ZU(6);QU.range,$U.range,eW.range,tW.range,nW.range,rW.range,iW.range;function aW(e){return PU(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/BU)}var oW=aW(0),sW=aW(1),cW=aW(2),lW=aW(3),uW=aW(4),dW=aW(5),fW=aW(6);oW.range,sW.range,cW.range,lW.range,uW.range,dW.range,fW.range;var pW=PU(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());pW.range;var mW=PU(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());mW.range;var hW=PU(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());hW.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:PU(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),hW.range;var gW=PU(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());gW.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:PU(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),gW.range;function _W(e,t,n,r,i,a){let o=[[UU,1,IU],[UU,5,5*IU],[UU,15,15*IU],[UU,30,30*IU],[a,1,LU],[a,5,5*LU],[a,15,15*LU],[a,30,30*LU],[i,1,RU],[i,3,3*RU],[i,6,6*RU],[i,12,12*RU],[r,1,zU],[r,2,2*zU],[n,1,BU],[t,1,VU],[t,3,3*VU],[e,1,HU]];function s(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:c(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function c(t,n,r){let i=Math.abs(n-t)/r,a=FB(([,,e])=>e).right(o,i);if(a===o.length)return e.every(eV(t/HU,n/HU,r));if(a===0)return FU.every(Math.max(eV(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[s,c]}var[vW,yW]=_W(gW,mW,oW,XU,qU,GU),[bW,xW]=_W(hW,pW,QU,JU,KU,WU);function SW(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function CW(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function wW(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function TW(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=MW(i),u=NW(i),d=MW(a),f=NW(a),p=MW(o),m=NW(o),h=MW(s),g=NW(s),_=MW(c),v=NW(c),y={a:N,A:P,b:ee,B:F,c:null,d:eG,e:eG,f:aG,g:gG,G:vG,H:tG,I:nG,j:rG,L:iG,m:oG,M:sG,p:I,q:te,Q:VG,s:HG,S:cG,u:lG,U:uG,V:fG,w:pG,W:mG,x:null,X:null,y:hG,Y:_G,Z:yG,"%":BG},b={a:L,A:ne,b:re,B:R,c:null,d:bG,e:bG,f:TG,g:IG,G:RG,H:xG,I:SG,j:CG,L:wG,m:EG,M:DG,p:ie,q:ae,Q:VG,s:HG,S:OG,u:kG,U:AG,V:MG,w:NG,W:PG,x:null,X:null,y:FG,Y:LG,Z:zG,"%":BG},x={a:E,A:D,b:O,B:k,c:A,d:WW,e:WW,f:XW,g:BW,G:zW,H:KW,I:KW,j:GW,L:YW,m:UW,M:qW,p:T,q:HW,Q:QW,s:$W,S:JW,u:FW,U:IW,V:LW,w:PW,W:RW,x:j,X:M,y:BW,Y:zW,Z:VW,"%":ZW};y.x=S(n,y),y.X=S(r,y),y.c=S(t,y),b.x=S(n,b),b.X=S(r,b),b.c=S(t,b);function S(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=EW[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function C(e,t){return function(n){var r=wW(1900,void 0,1),i=w(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=CW(wW(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?sW.ceil(a):sW(a),a=YU.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=SW(wW(r.y,0,1)),o=a.getDay(),a=o>4||o===0?$U.ceil(a):$U(a),a=JU.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?CW(wW(r.y,0,1)).getUTCDay():SW(wW(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,CW(r)):SW(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in EW?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function P(e){return a[e.getDay()]}function ee(e){return c[e.getMonth()]}function F(e){return s[e.getMonth()]}function I(e){return i[+(e.getHours()>=12)]}function te(e){return 1+~~(e.getMonth()/3)}function L(e){return o[e.getUTCDay()]}function ne(e){return a[e.getUTCDay()]}function re(e){return c[e.getUTCMonth()]}function R(e){return s[e.getUTCMonth()]}function ie(e){return i[+(e.getUTCHours()>=12)]}function ae(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var EW={"-":``,_:` `,0:`0`},DW=/^\s*\d+/,OW=/^%/,kW=/[\\^$*+?|[\]().{}]/g;function AW(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function jW(e){return e.replace(kW,`\\$&`)}function MW(e){return RegExp(`^(?:`+e.map(jW).join(`|`)+`)`,`i`)}function NW(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function PW(e,t,n){var r=DW.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function FW(e,t,n){var r=DW.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function IW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function LW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function RW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function zW(e,t,n){var r=DW.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function BW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function VW(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function HW(e,t,n){var r=DW.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function UW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function WW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function GW(e,t,n){var r=DW.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function KW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function qW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function JW(e,t,n){var r=DW.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function YW(e,t,n){var r=DW.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function XW(e,t,n){var r=DW.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ZW(e,t,n){var r=OW.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function QW(e,t,n){var r=DW.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function $W(e,t,n){var r=DW.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function eG(e,t){return AW(e.getDate(),t,2)}function tG(e,t){return AW(e.getHours(),t,2)}function nG(e,t){return AW(e.getHours()%12||12,t,2)}function rG(e,t){return AW(1+JU.count(hW(e),e),t,3)}function iG(e,t){return AW(e.getMilliseconds(),t,3)}function aG(e,t){return iG(e,t)+`000`}function oG(e,t){return AW(e.getMonth()+1,t,2)}function sG(e,t){return AW(e.getMinutes(),t,2)}function cG(e,t){return AW(e.getSeconds(),t,2)}function lG(e){var t=e.getDay();return t===0?7:t}function uG(e,t){return AW(QU.count(hW(e)-1,e),t,2)}function dG(e){var t=e.getDay();return t>=4||t===0?nW(e):nW.ceil(e)}function fG(e,t){return e=dG(e),AW(nW.count(hW(e),e)+(hW(e).getDay()===4),t,2)}function pG(e){return e.getDay()}function mG(e,t){return AW($U.count(hW(e)-1,e),t,2)}function hG(e,t){return AW(e.getFullYear()%100,t,2)}function gG(e,t){return e=dG(e),AW(e.getFullYear()%100,t,2)}function _G(e,t){return AW(e.getFullYear()%1e4,t,4)}function vG(e,t){var n=e.getDay();return e=n>=4||n===0?nW(e):nW.ceil(e),AW(e.getFullYear()%1e4,t,4)}function yG(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+AW(t/60|0,`0`,2)+AW(t%60,`0`,2)}function bG(e,t){return AW(e.getUTCDate(),t,2)}function xG(e,t){return AW(e.getUTCHours(),t,2)}function SG(e,t){return AW(e.getUTCHours()%12||12,t,2)}function CG(e,t){return AW(1+YU.count(gW(e),e),t,3)}function wG(e,t){return AW(e.getUTCMilliseconds(),t,3)}function TG(e,t){return wG(e,t)+`000`}function EG(e,t){return AW(e.getUTCMonth()+1,t,2)}function DG(e,t){return AW(e.getUTCMinutes(),t,2)}function OG(e,t){return AW(e.getUTCSeconds(),t,2)}function kG(e){var t=e.getUTCDay();return t===0?7:t}function AG(e,t){return AW(oW.count(gW(e)-1,e),t,2)}function jG(e){var t=e.getUTCDay();return t>=4||t===0?uW(e):uW.ceil(e)}function MG(e,t){return e=jG(e),AW(uW.count(gW(e),e)+(gW(e).getUTCDay()===4),t,2)}function NG(e){return e.getUTCDay()}function PG(e,t){return AW(sW.count(gW(e)-1,e),t,2)}function FG(e,t){return AW(e.getUTCFullYear()%100,t,2)}function IG(e,t){return e=jG(e),AW(e.getUTCFullYear()%100,t,2)}function LG(e,t){return AW(e.getUTCFullYear()%1e4,t,4)}function RG(e,t){var n=e.getUTCDay();return e=n>=4||n===0?uW(e):uW.ceil(e),AW(e.getUTCFullYear()%1e4,t,4)}function zG(){return`+0000`}function BG(){return`%`}function VG(e){return+e}function HG(e){return Math.floor(e/1e3)}var UG,WG,GG;KG({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function KG(e){return UG=TW(e),WG=UG.format,UG.parse,GG=UG.utcFormat,UG.utcParse,UG}function qG(e){return new Date(e)}function JG(e){return e instanceof Date?+e:+new Date(+e)}function YG(e,t,n,r,i,a,o,s,c,l){var u=AH(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?y:b)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,JG)):f().map(qG)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?x:l(t)},u.nice=function(e){var n=f();return(!e||typeof e.range!=`function`)&&(e=t(n[0],n[n.length-1],e??10)),e?f(aU(n,e)):u},u.copy=function(){return OH(u,YG(e,t,n,r,i,a,o,s,c,l))},u}function XG(){return cV.apply(YG(bW,xW,hW,pW,QU,JU,KU,WU,UU,WG).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ZG(){return cV.apply(YG(vW,yW,gW,mW,oW,YU,qU,GU,UU,GG).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function QG(){var e=0,t=1,n,r,i,a,o=CH,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(_H),l.rangeRound=u(vH),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function $G(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function eK(){var e=nU(QG()(CH));return e.copy=function(){return $G(e,eK())},lV.apply(e,arguments)}function tK(){var e=mU(QG()).domain([1,10]);return e.copy=function(){return $G(e,tK()).base(e.base())},lV.apply(e,arguments)}function nK(){var e=vU(QG());return e.copy=function(){return $G(e,nK()).constant(e.constant())},lV.apply(e,arguments)}function rK(){var e=CU(QG());return e.copy=function(){return $G(e,rK()).exponent(e.exponent())},lV.apply(e,arguments)}function iK(){return rK.apply(null,arguments).exponent(.5)}function aK(){var e=[],t=CH;function n(n){if(n!=null&&!isNaN(n=+n))return t((BB(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(NB),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>aV(e,r/t))},n.copy=function(){return aK(t).domain(e)},lV.apply(n,arguments)}function oK(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=CH,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=yH(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(_H),p.rangeRound=m(vH),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function sK(){var e=nU(oK()(CH));return e.copy=function(){return $G(e,sK())},lV.apply(e,arguments)}function cK(){var e=mU(oK()).domain([.1,1,10]);return e.copy=function(){return $G(e,cK()).base(e.base())},lV.apply(e,arguments)}function lK(){var e=vU(oK());return e.copy=function(){return $G(e,lK()).constant(e.constant())},lV.apply(e,arguments)}function uK(){var e=CU(oK());return e.copy=function(){return $G(e,uK()).exponent(e.exponent())},lV.apply(e,arguments)}function dK(){return uK.apply(null,arguments).exponent(.5)}var fK=s({scaleBand:()=>fV,scaleDiverging:()=>sK,scaleDivergingLog:()=>cK,scaleDivergingPow:()=>uK,scaleDivergingSqrt:()=>dK,scaleDivergingSymlog:()=>lK,scaleIdentity:()=>iU,scaleImplicit:()=>uV,scaleLinear:()=>rU,scaleLog:()=>hU,scaleOrdinal:()=>dV,scalePoint:()=>mV,scalePow:()=>wU,scaleQuantile:()=>kU,scaleQuantize:()=>AU,scaleRadial:()=>OU,scaleSequential:()=>eK,scaleSequentialLog:()=>tK,scaleSequentialPow:()=>rK,scaleSequentialQuantile:()=>aK,scaleSequentialSqrt:()=>iK,scaleSequentialSymlog:()=>nK,scaleSqrt:()=>TU,scaleSymlog:()=>yU,scaleThreshold:()=>jU,scaleTime:()=>XG,scaleUtc:()=>ZG,tickFormat:()=>tU});function pK(e){if(e in fK)return fK[e]();var t=`scale${gO(e)}`;if(t in fK)return fK[t]()}function mK(e,t,n){if(typeof e==`function`)return e.copy().domain(t).range(n);if(e!=null){var r=pK(e);if(r!=null)return r.domain(t).range(n),r}}function hK(e,t,n,r){if(n!=null&&r!=null)return typeof e.scale==`function`?mK(e.scale,n,r):mK(t,n,r)}function gK(e){return`scale${gO(e)}`}function _K(e){return gK(e)in fK}var vK=(e,t,n)=>{if(e!=null){var{scale:r,type:i}=e;if(r===`auto`)return i===`category`&&n&&(n.indexOf(`LineChart`)>=0||n.indexOf(`AreaChart`)>=0||n.indexOf(`ComposedChart`)>=0&&!t)?`point`:i===`category`?`band`:`linear`;if(typeof r==`string`)return _K(r)?r:`point`}};function yK(e,t){for(var n=0,r=e.length,i=e[0]<e[e.length-1];n<r;){var a=Math.floor((n+r)/2);(i?e[a]<t:e[a]>t)?n=a+1:r=a}return n}function bK(e,t){if(e){var n=t??e.domain(),r=n.map(t=>e(t)??0),i=e.range();if(!(n.length===0||i.length<2))return e=>{var t=yK(r,e);if(t<=0)return n[0];if(t>=n.length)return n[n.length-1];var i=r[t-1]??0,a=r[t]??0;return Math.abs(e-i)<=Math.abs(e-a)?n[t-1]:n[t]}}}function xK(e){if(e!=null)return`invert`in e&&typeof e.invert==`function`?e.invert.bind(e):bK(e,void 0)}function SK(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CK(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?SK(Object(n),!0).forEach(function(t){wK(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SK(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wK(e,t,n){return(t=TK(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function TK(e){var t=EK(e,`string`);return typeof t==`symbol`?t:t+``}function EK(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var DK=[0,`auto`],OK={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`bottom`,padding:{left:0,right:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`category`,unit:void 0,niceTicks:`auto`},kK=(e,t)=>e.cartesianAxis.xAxis[t],AK=(e,t)=>kK(e,t)??OK,jK={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:DK,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`left`,padding:{top:0,bottom:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`number`,unit:void 0,niceTicks:`auto`,width:60},MK=(e,t)=>e.cartesianAxis.yAxis[t],NK=(e,t)=>MK(e,t)??jK,PK={domain:[0,`auto`],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:``,range:[64,64],scale:`auto`,type:`number`,unit:``},FK=(e,t)=>e.cartesianAxis.zAxis[t]??PK,IK=(e,t,n)=>{switch(t){case`xAxis`:return AK(e,n);case`yAxis`:return NK(e,n);case`zAxis`:return FK(e,n);case`angleAxis`:return fB(e,n);case`radiusAxis`:return pB(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},LK=(e,t,n)=>{switch(t){case`xAxis`:return AK(e,n);case`yAxis`:return NK(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},RK=(e,t,n)=>{switch(t){case`xAxis`:return AK(e,n);case`yAxis`:return NK(e,n);case`angleAxis`:return fB(e,n);case`radiusAxis`:return pB(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},zK=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function BK(e,t){return n=>{switch(e){case`xAxis`:return`xAxisId`in n&&n.xAxisId===t;case`yAxis`:return`yAxisId`in n&&n.yAxisId===t;case`zAxis`:return`zAxisId`in n&&n.zAxisId===t;case`angleAxis`:return`angleAxisId`in n&&n.angleAxisId===t;case`radiusAxis`:return`radiusAxisId`in n&&n.radiusAxisId===t;default:return!1}}}var VK=e=>e.graphicalItems.cartesianItems,HK=$([xB,SB],BK),UK=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0||!e.hide),WK=$([VK,IK,HK],UK,{memoizeOptions:{resultEqualityCheck:DB}}),GK=$([WK],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(TB)),KK=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),qK=$([WK],KK),JK=e=>e.map(e=>e.data).filter(Boolean).flat(1),YK=$([WK],JK,{memoizeOptions:{resultEqualityCheck:DB}}),XK=(e,t)=>{var{chartData:n=[],dataStartIndex:r,dataEndIndex:i}=t;return e.length>0?e:n.slice(r,i+1)},ZK=$([YK,Oz],XK),QK=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:HN(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:HN(e,t.dataKey)})),$K=$([ZK,IK,WK],QK);function eq(e){if(cO(e)||e instanceof Date){var t=Number(e);if(FN(t))return t}}function tq(e){if(Array.isArray(e)){var t=[eq(e[0]),eq(e[1])];return Az(t)?t:void 0}var n=eq(e);if(n!=null)return[n,n]}function nq(e){return e.map(eq).filter(_O)}function rq(e,t){var n=eq(e),r=eq(t);return n==null&&r==null?0:n==null?-1:r==null?1:n-r}var iq=$([$K],e=>e?.map(e=>e.value).sort(rq));function aq(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function oq(e,t,n){return!n||typeof t!=`number`||oO(t)||!n.length?[]:nq(n.flatMap(n=>{var r=HN(e,n.dataKey),i,a;if(Array.isArray(r)?[i,a]=r:i=a=r,!(!FN(i)||!FN(a)))return[t-i,t+a]}))}var sq=e=>RK(e,kB(e),AB(e)),cq=$([sq],e=>e?.dataKey),lq=$([GK,Oz,sq],wB),uq=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var[i,a]=t,o=r?[...a].reverse():a;return[i,{stackedData:YN(e,o.map(CB),n),graphicalItems:o}]}))},dq=$([lq,GK,Jz,Yz],uq),fq=(e,t,n,r)=>{var{dataStartIndex:i,dataEndIndex:a}=t;if(r==null&&n!==`zAxis`){var o=tP(e,i,a);if(o==null||o[0]!==0||o[1]!==0)return o}},pq=$([IK],e=>e.allowDataOverflow),mq=e=>{if(e==null||!(`domain`in e))return DK;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=nq(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??DK},hq=$([IK],mq),gq=$([hq,pq],Mz),_q=$([dq,Ez,xB,gq],fq,{memoizeOptions:{resultEqualityCheck:EB}}),vq=e=>e.errorBars,yq=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>aq(n,e)),bq=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},xq=(e,t,n,r,i)=>{var a,o;if(n.length>0&&e.forEach(e=>{n.forEach(n=>{var s=r[n.id]?.filter(e=>aq(i,e)),c=HN(e,t.dataKey??n.dataKey),l=oq(e,c,s);if(l.length>=2){var u=Math.min(...l),d=Math.max(...l);(a==null||u<a)&&(a=u),(o==null||d>o)&&(o=d)}var f=tq(c);f!=null&&(a=a==null?f[0]:Math.min(a,f[0]),o=o==null?f[1]:Math.max(o,f[1]))})}),t?.dataKey!=null&&e.forEach(e=>{var n=tq(HN(e,t.dataKey));n!=null&&(a=a==null?n[0]:Math.min(a,n[0]),o=o==null?n[1]:Math.max(o,n[1]))}),FN(a)&&FN(o))return[a,o]},Sq=$([ZK,IK,qK,vq,xB],xq,{memoizeOptions:{resultEqualityCheck:EB}});function Cq(e){var{value:t}=e;if(cO(t)||t instanceof Date)return t}var wq=(e,t,n)=>{var r=e.map(Cq).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&fO(r))?Tz(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},Tq=e=>e.referenceElements.dots,Eq=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),Dq=$([Tq,xB,SB],Eq),Oq=e=>e.referenceElements.areas,kq=$([Oq,xB,SB],Eq),Aq=e=>e.referenceElements.lines,jq=$([Aq,xB,SB],Eq),Mq=(e,t)=>{if(e!=null){var n=nq(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Nq=$(Dq,xB,Mq),Pq=(e,t)=>{if(e!=null){var n=nq(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Fq=$([kq,xB],Pq);function Iq(e){if(e.x!=null)return nq([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:nq(t)}function Lq(e){if(e.y!=null)return nq([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:nq(t)}var Rq=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?Iq(e):Lq(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},zq=$(Nq,$([jq,xB],Rq),Fq,(e,t,n)=>bq(e,n,t)),Bq=(e,t,n,r,i,a,o,s)=>n??Nz(t,o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?bq(r,a,i):bq(a,i),e.allowDataOverflow),Vq=$([IK,hq,gq,_q,Sq,zq,lF,xB],Bq,{memoizeOptions:{resultEqualityCheck:EB}}),Hq=[0,1],Uq=(e,t,n,r,i,a,o)=>{if(e!=null&&n!=null&&n.length!==0||o!==void 0){var{dataKey:s,type:c}=e,l=WN(t,a);return l&&s==null?Tz(0,n?.length??0):c===`category`?wq(r,e,l):i===`expand`?Hq:o}},Wq=$([IK,lF,ZK,$K,Jz,xB,Vq],Uq),Gq=$([IK,zK,Xz],vK),Kq=(e,t,n)=>{var{niceTicks:r}=t;if(r!==`none`){var i=mq(t),a=Array.isArray(i)&&(i[0]===`auto`||i[1]===`auto`);if((r===`snap125`||r===`adaptive`)&&t!=null&&t.tickCount&&Az(e)){if(a)return Hz(e,t.tickCount,t.allowDecimals,r);if(t.type===`number`)return Uz(e,t.tickCount,t.allowDecimals,r)}if(r===`auto`&&n===`linear`&&t!=null&&t.tickCount){if(a&&Az(e))return Hz(e,t.tickCount,t.allowDecimals,`adaptive`);if(t.type===`number`&&Az(e))return Uz(e,t.tickCount,t.allowDecimals,`adaptive`)}}},qq=$([Wq,RK,Gq],Kq),Jq=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&Az(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},Yq=$([IK,Wq,qq,xB],Jq),Xq=$($($K,IK,(e,t)=>{if(!(!t||t.type!==`number`)){var n=1/0,r=Array.from(nq(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;s<r.length-1;s++){var c=r[s],l=r[s+1];if(c!=null&&l!=null){var u=l-c;n=Math.min(n,u)}}return n/o}}),lF,Kz,EP,(e,t,n,r,i)=>i,(e,t,n,r,i)=>{if(!FN(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=dO(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),Zq=(e,t,n)=>{var r=AK(e,t);return r==null||typeof r.padding!=`string`?0:Xq(e,`xAxis`,t,n,r.padding)},Qq=(e,t,n)=>{var r=NK(e,t);return r==null||typeof r.padding!=`string`?0:Xq(e,`yAxis`,t,n,r.padding)},$q=$(AK,Zq,(e,t)=>{if(e==null)return{left:0,right:0};var{padding:n}=e;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),eJ=$(NK,Qq,(e,t)=>{if(e==null)return{top:0,bottom:0};var{padding:n}=e;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),tJ=$([EP,$q,MP,jP,(e,t,n)=>n],(e,t,n,r,i)=>{var{padding:a}=r;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),nJ=$([EP,lF,eJ,MP,jP,(e,t,n)=>n],(e,t,n,r,i,a)=>{var{padding:o}=i;return a?[r.height-o.bottom,o.top]:t===`horizontal`?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),rJ=(e,t,n,r)=>{switch(t){case`xAxis`:return tJ(e,n,r);case`yAxis`:return nJ(e,n,r);case`zAxis`:return FK(e,n)?.range;case`angleAxis`:return vB(e);case`radiusAxis`:return yB(e,n);default:return}},iJ=$([IK,rJ],rB),aJ=$([IK,Gq,$([Gq,Yq],MB),iJ],hK),oJ=(e,t,n,r)=>{if(n!=null&&n.dataKey!=null){var{type:i,scale:a}=n;if(WN(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},sJ=$([lF,$K,RK,xB],oJ),cJ=$([aJ],jB);$([aJ],xK),$([aJ,iq],bK),$([WK,vq,xB],yq);function lJ(e,t){return e.id<t.id?-1:+(e.id>t.id)}var uJ=(e,t)=>t,dJ=(e,t,n)=>n,fJ=$(pP,uJ,dJ,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(lJ)),pJ=$(mP,uJ,dJ,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(lJ)),mJ=(e,t)=>({width:e.width,height:t.height}),hJ=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),gJ=$(EP,AK,mJ),_J=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},vJ=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},yJ=$(uP,EP,fJ,uJ,dJ,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=mJ(t,n);o??=_J(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),bJ=$(lP,EP,pJ,uJ,dJ,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=hJ(t,n);o??=vJ(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),xJ=$([EP,AK,(e,t)=>{var n=AK(e,t);if(n!=null)return yJ(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),SJ=$([EP,NK,(e,t)=>{var n=NK(e,t);if(n!=null)return bJ(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),CJ=$(EP,NK,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),wJ=(e,t,n)=>{switch(t){case`xAxis`:return gJ(e,n).width;case`yAxis`:return CJ(e,n).height;default:return}},TJ=(e,t,n,r)=>{if(n!=null){var{allowDuplicatedCategory:i,type:a,dataKey:o}=n,s=WN(e,r),c=t.map(e=>e.value);if(o&&s&&a===`category`&&i&&fO(c))return c}},EJ=$([lF,$K,IK,xB],TJ),DJ=$([lF,LK,Gq,cJ,EJ,sJ,rJ,qq,xB],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=WN(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}}),OJ=$([lF,RK,Gq,cJ,qq,rJ,EJ,sJ,xB],(e,t,n,r,i,a,o,s,c)=>{if(t!=null&&r!=null){var l=WN(e,c),{type:u,ticks:d,tickCount:f}=t,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?aO(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return FN(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(_O):l&&s?s.map((e,t)=>{var n=r.map(e);return FN(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(_O):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return FN(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(_O):r.domain().map((e,t)=>{var n=r.map(e);return FN(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(_O)}}),kJ=$([lF,RK,cJ,rJ,EJ,sJ,xB],(e,t,n,r,i,a,o)=>{if(t!=null&&n!=null&&r!=null&&r[0]!==r[1]){var s=WN(e,o),{tickCount:c}=t,l=0;return l=o===`angleAxis`&&r?.length>=2?aO(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return FN(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(_O):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return FN(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(_O):n.domain().map((e,t)=>{var r=n.map(e);return FN(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(_O)}}),AJ=$(IK,cJ,(e,t)=>{if(e!=null&&t!=null)return CK(CK({},e),{},{scale:t})});$((e,t,n)=>FK(e,n),$([$([IK,Gq,Wq,iJ],hK)],jB),(e,t)=>{if(e!=null&&t!=null)return CK(CK({},e),{},{scale:t})});var jJ=$([lF,pP,mP],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}});$([(e,t,n)=>e.renderedTicks[t]?.[n]],e=>{if(!(!e||e.length===0))return t=>{var n=1/0,r=e[0];for(var i of e){var a=Math.abs(i.coordinate-t);a<n&&(n=a,r=i)}return r?.value}});var MJ=e=>e.options.defaultTooltipEventType,NJ=e=>e.options.validateTooltipEventTypes;function PJ(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function FJ(e,t){return PJ(t,MJ(e),NJ(e))}function IJ(e){return Q(t=>FJ(t,e))}var LJ=(e,t)=>{var n,r=Number(t);if(!(oO(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},RJ=e=>e.tooltip.settings,zJ={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},BJ=BM({name:`tooltip`,initialState:{itemInteraction:{click:zJ,hover:zJ},axisInteraction:{click:zJ,hover:zJ},keyboardInteraction:zJ,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:`hover`,axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(uI(t.payload))},prepare:TM()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:n,next:r}=t.payload,i=dM(e).tooltipItemPayloads.indexOf(uI(n));i>-1&&(e.tooltipItemPayloads[i]=uI(r))},prepare:TM()},removeTooltipEntrySettings:{reducer(e,t){var n=dM(e).tooltipItemPayloads.indexOf(uI(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:TM()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:VJ,replaceTooltipEntrySettings:HJ,removeTooltipEntrySettings:UJ,setTooltipSettingsState:WJ,setActiveMouseOverItemIndex:GJ,mouseLeaveItem:KJ,mouseLeaveChart:qJ,setActiveClickItemIndex:JJ,setMouseOverAxisIndex:YJ,setMouseClickAxisIndex:XJ,setSyncInteraction:ZJ,setKeyboardInteraction:QJ}=BJ.actions,$J=BJ.reducer;function eY(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tY(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?eY(Object(n),!0).forEach(function(t){nY(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eY(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function nY(e,t,n){return(t=rY(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rY(e){var t=iY(e,`string`);return typeof t==`symbol`?t:t+``}function iY(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function aY(e,t,n){return t===`axis`?n===`click`?e.axisInteraction.click:e.axisInteraction.hover:n===`click`?e.itemInteraction.click:e.itemInteraction.hover}function oY(e){return e.index!=null}var sY=(e,t,n,r)=>{if(t==null)return zJ;var i=aY(e,t,n);if(i==null)return zJ;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(oY(i)){if(a)return tY(tY({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return tY(tY({},zJ),{},{coordinate:i.coordinate})};function cY(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function lY(e,t){var n=cY(e),r=t[0],i=t[1];return n!==void 0&&n>=Math.min(r,i)&&n<=Math.max(r,i)}function uY(e,t,n){if(n==null||t==null)return!0;var r=HN(e,t);return r==null||!Az(n)||lY(r,n)}var dY=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!FN(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||uY(l,n,r)?String(c):null},fY=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},pY=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&r!=null){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},mY=e=>e.options.tooltipPayloadSearcher,hY=e=>e.tooltip;function gY(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _Y(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?gY(Object(n),!0).forEach(function(t){vY(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gY(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vY(e,t,n){return(t=yY(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yY(e){var t=bY(e,`string`);return typeof t==`symbol`?t:t+``}function bY(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function xY(e){if(typeof e==`string`||typeof e==`number`)return e}function SY(e){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e}function CY(e){if(typeof e==`string`||typeof e==`number`)return e;if(typeof e==`function`)return t=>e(t)}function wY(e){if(typeof e==`string`)return e}function TY(e){if(!(typeof e!=`object`||!e))return{name:`name`in e?xY(e.name):void 0,unit:`unit`in e?SY(e.unit):void 0,dataKey:`dataKey`in e?CY(e.dataKey):void 0,payload:`payload`in e?e.payload:void 0,color:`color`in e?wY(e.color):void 0,fill:`fill`in e?wY(e.fill):void 0}}function EY(e,t){return e??t}var DY=(e,t,n,r,i,a,o)=>{if(t!=null&&a!=null){var{chartData:s,computedData:c,dataStartIndex:l,dataEndIndex:u}=n;return e.reduce((e,n)=>{var{dataDefinedOnItem:d,settings:f}=n,p=EY(d,s),m=Array.isArray(p)?PN(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_=r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?mO(m,r,i):a(m,t,c,g);return Array.isArray(_)?_.forEach(t=>{var n=TY(t),r=n?.name,i=n?.dataKey,a=n?.payload,o=_Y(_Y({},f),{},{name:r,unit:n?.unit,color:n?.color??f?.color,fill:n?.fill??f?.fill});e.push(aP({tooltipEntrySettings:o,dataKey:i,payload:a,value:HN(a,i),name:r==null?void 0:String(r)}))}):e.push(aP({tooltipEntrySettings:f,dataKey:h,payload:_,value:HN(_,h),name:HN(_,g)??f?.name})),e},[])}},OY=$([sq,zK,Xz],vK),kY=$([$([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),sq,$([kB,AB],BK)],UK,{memoizeOptions:{resultEqualityCheck:DB}}),AY=$([kY],e=>e.filter(TB)),jY=$([$([kY],JK,{memoizeOptions:{resultEqualityCheck:DB}}),Ez],XK),MY=$([AY,Ez,sq],wB),NY=$([jY,sq,kY],QK),PY=$([sq],mq),FY=$([PY,$([sq],e=>e.allowDataOverflow)],Mz),IY=$([$([MY,$([kY],e=>e.filter(TB)),Jz,Yz],uq),Ez,kB,FY],fq),LY=$([jY,sq,$([kY],KK),vq,kB],xq,{memoizeOptions:{resultEqualityCheck:EB}}),RY=$([$([Tq,kB,AB],Eq),kB],Mq),zY=$([$([Oq,kB,AB],Eq),kB],Pq),BY=$([sq,lF,jY,NY,Jz,kB,$([sq,PY,FY,IY,LY,$([RY,$([$([Aq,kB,AB],Eq),kB],Rq),zY],bq),lF,kB],Bq)],Uq),VY=$([sq,BY,$([BY,sq,OY],Kq),kB],Jq),HY=e=>rJ(e,kB(e),AB(e),!1),UY=$([sq,HY],rB),WY=$([$([sq,OY,VY,UY],hK)],jB),GY=$([lF,sq,OY,WY,HY,$([lF,NY,sq,kB],TJ),$([lF,NY,sq,kB],oJ),kB],(e,t,n,r,i,a,o,s)=>{if(t){var{type:c}=t,l=WN(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?aO(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return FN(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(_O):r.domain().map((e,t)=>{var n=r.map(e);return FN(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(_O)}}}),KY=$([MJ,NJ,RJ],(e,t,n)=>PJ(n.shared,e,t)),qY=e=>e.tooltip.settings.trigger,JY=e=>e.tooltip.settings.defaultIndex,YY=$([hY,KY,qY,JY],sY),XY=$([YY,jY,cq,BY],dY),ZY=$([GY,XY],LJ),QY=$([YY],e=>{if(e)return e.dataKey}),$Y=$([YY],e=>{if(e)return e.graphicalItemId}),eX=$([hY,KY,qY,JY],pY),tX=$([YY,$([lP,uP,lF,EP,GY,JY,eX],fY)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),nX=$([YY],e=>e?.active??!1);$([$([eX,XY,Ez,cq,ZY,mY,KY],DY)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function rX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?rX(Object(n),!0).forEach(function(t){aX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function aX(e,t,n){return(t=oX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oX(e){var t=sX(e,`string`);return typeof t==`symbol`?t:t+``}function sX(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var cX=()=>Q(sq),lX=()=>{var e=cX(),t=Q(GY),n=Q(WY);return iP(!e||!n?void 0:iX(iX({},e),{},{scale:n}),t)};function uX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uX(Object(n),!0).forEach(function(t){fX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fX(e,t,n){return(t=pX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pX(e){var t=mX(e,`string`);return typeof t==`symbol`?t:t+``}function mX(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var hX=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.relativeY};if(e===`vertical`)return{x:r.relativeX,y:i.coordinate}}return{x:0,y:0}},gX=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,{radius:o}=r;return dX(dX(dX({},r),$R(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,{angle:c}=r;return dX(dX(dX({},r),$R(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function _X(e,t){var{relativeX:n,relativeY:r}=e;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var vX=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=0;o<a;o++){var s=o>0?n[o-1]?.coordinate:n[a-1]?.coordinate,c=n[o]?.coordinate,l=o>=a-1?n[0]?.coordinate:n[o+1]?.coordinate,u=void 0;if(s!=null&&c!=null&&l!=null){if(aO(c-s)!==aO(l-c)){var d=[];if(aO(l-c)===aO(i[1]-i[0])){u=l;var f=c+i[1]-i[0];d[0]=Math.min(f,(f+s)/2),d[1]=Math.max(f,(f+s)/2)}else{u=s;var p=l+i[1]-i[0];d[0]=Math.min(c,(p+c)/2),d[1]=Math.max(c,(p+c)/2)}var m=[Math.min(c,(u+c)/2),Math.max(c,(u+c)/2)];if(e>m[0]&&e<=m[1]||e>=d[0]&&e<=d[1])return n[o]?.index}else{var h=Math.min(s,l),g=Math.max(s,l);if(e>(h+c)/2&&e<=(g+c)/2)return n[o]?.index}}}else if(t)for(var _=0;_<a;_++){var v=t[_];if(v!=null){var y=t[_+1],b=t[_-1];if(_===0&&y!=null&&e<=(v.coordinate+y.coordinate)/2||_===a-1&&b!=null&&e>(v.coordinate+b.coordinate)/2||_>0&&_<a-1&&b!=null&&y!=null&&e>(v.coordinate+b.coordinate)/2&&e<=(v.coordinate+y.coordinate)/2)return v.index}}return-1},yX=()=>Q(Xz),bX=(e,t)=>t,xX=(e,t,n)=>n,SX=(e,t,n,r)=>r,CX=$(GY,e=>AA(e,e=>e.coordinate)),wX=$([hY,bX,xX,SX],sY),TX=$([wX,jY,cq,BY],dY),EX=(e,t,n)=>{if(t!=null){var r=hY(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},DX=$([hY,bX,xX,SX],pY),OX=$([lP,uP,lF,EP,GY,SX,DX],fY),kX=$([wX,OX],(e,t)=>e.coordinate??t),AX=$([GY,TX],LJ),jX=$([DX,TX,Ez,cq,AX,mY,bX],DY),MX=$([wX,TX],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),NX=(e,t,n,r,i,a,o)=>{if(!(!e||!n||!r||!i)&&_X(e,o)){var s=vX(sP(e,t),a,i,n,r),c=hX(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},PX=(e,t,n,r,i,a,o)=>{if(!(!e||!r||!i||!a||!n)){var s=az(e,n);if(s){var c=vX(cP(s,t),o,a,r,i),l=gX(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},FX=(e,t,n,r,i,a,o,s)=>{if(!(!e||!t||!r||!i||!a))return t===`horizontal`||t===`vertical`?NX(e,t,r,i,a,o,s):PX(e,t,n,r,i,a,o)},IX=$(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),LX=$(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(eB));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:OB}});function RX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?RX(Object(n),!0).forEach(function(t){BX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function BX(e,t,n){return(t=VX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VX(e){var t=HX(e,`string`);return typeof t==`symbol`?t:t+``}function HX(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var UX={zIndexMap:Object.values(eB).reduce((e,t)=>zX(zX({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},WX=new Set(Object.values(eB));function GX(e){return WX.has(e)}var KX=BM({name:`zIndex`,initialState:UX,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:TM()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!GX(n)&&delete e.zIndexMap[n])},prepare:TM()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n,element:r,isPanorama:i}=t.payload;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=uI(r):e.zIndexMap[n].element=uI(r):e.zIndexMap[n]={consumers:0,element:i?void 0:uI(r),panoramaElement:i?uI(r):void 0}},prepare:TM()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:TM()}}}),{registerZIndexPortal:qX,unregisterZIndexPortal:JX,registerZIndexPortalElement:YX,unregisterZIndexPortalElement:XX}=KX.actions,ZX=KX.reducer;function QX(e){var{zIndex:t,children:n}=e,r=pF()&&t!==void 0&&t!==0,i=AP(),a=rA();(0,v.useLayoutEffect)(()=>r?(a(qX({zIndex:t})),()=>{a(JX({zIndex:t}))}):vO,[a,t,r]);var o=Q(e=>IX(e,t,i));return r?o?(0,Or.createPortal)(n,o):null:n}function $X(){return $X=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$X.apply(null,arguments)}function eZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?eZ(Object(n),!0).forEach(function(t){nZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function nZ(e,t,n){return(t=rZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rZ(e){var t=iZ(e,`string`);return typeof t==`symbol`?t:t+``}function iZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function aZ(e){var{cursor:t,cursorComp:n,cursorProps:r}=e;return(0,v.isValidElement)(t)?(0,v.cloneElement)(t,r):(0,v.createElement)(n,r)}function oZ(e){var{coordinate:t,payload:n,index:r,offset:i,tooltipAxisBandSize:a,layout:o,cursor:s,tooltipEventType:c,chartName:l}=e,u=t,d=n,f=r;if(!s||!u||l!==`ScatterChart`&&c!==`axis`)return null;var p,m,h;if(l===`ScatterChart`)p=u,m=PL,h=eB.cursorLine;else if(l===`BarChart`)p=FL(o,u,i,a),m=GR,h=eB.cursorRectangle;else if(o===`radial`&&PO(u)){var{cx:g,cy:_,radius:y,startAngle:b,endAngle:x}=oz(u);p={cx:g,cy:_,startAngle:b,endAngle:x,innerRadius:y,outerRadius:y},m=xz,h=eB.cursorLine}else p={points:Sz(o,u,i)},m=CL,h=eB.cursorLine;var S=typeof s==`object`&&`className`in s?s.className:void 0,C=tZ(tZ(tZ(tZ({stroke:`#ccc`,pointerEvents:`none`},i),p),cE(s)),{},{payload:d,payloadIndex:f,className:Xt(`recharts-tooltip-cursor`,S)});return v.createElement(QX,{zIndex:e.zIndex??h},v.createElement(aZ,{cursor:s,cursorComp:m,cursorProps:C}))}function sZ(e){var t=lX(),n=oF(),r=uF(),i=yX();return t==null||n==null||r==null||i==null?null:v.createElement(oZ,$X({},e,{offset:n,layout:r,tooltipAxisBandSize:t,chartName:i}))}var cZ=(0,v.createContext)(null),lZ=()=>(0,v.useContext)(cZ),uZ=l(o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1).default,dZ=new uZ,fZ=`recharts.syncEvent.tooltip`,pZ=`recharts.syncEvent.brush`,mZ=(e,t)=>{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!oO(n))return e[n]}},hZ=BM({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),gZ=hZ.reducer,{createEventEmitter:_Z}=hZ.actions;function vZ(e){return e.tooltip.syncInteraction}var yZ=BM({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=uI(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:n,endIndex:r}=t.payload;n!=null&&(e.dataStartIndex=n),r!=null&&(e.dataEndIndex=r)}}}),{setChartData:bZ,setDataStartEndIndexes:xZ,setComputedData:SZ}=yZ.actions,CZ=yZ.reducer,wZ=[`x`,`y`];function TZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function EZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?TZ(Object(n),!0).forEach(function(t){DZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):TZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function DZ(e,t,n){return(t=OZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function OZ(e){var t=kZ(e,`string`);return typeof t==`symbol`?t:t+``}function kZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function AZ(e,t){if(e==null)return{};var n,r,i=jZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function jZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function MZ(){var e=Q(Zz),t=Q($z),n=rA(),r=Q(Qz),i=Q(GY),a=uF(),o=iF(),s=Q(e=>e.rootProps.className);(0,v.useEffect)(()=>{if(e==null)return vO;var s=(s,c,l)=>{if(t!==l&&e===s){if(r===`index`){var u;if(o&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,{x:f,y:p}=d,m=AZ(d,wZ),{x:h,y:g,width:_,height:v}=c.payload.sourceViewBox,y=EZ(EZ({},m),{},{x:o.x+(_?(f-h)/_:0)*o.width,y:o.y+(v?(p-g)/v:0)*o.height});n(EZ(EZ({},c),{},{payload:EZ(EZ({},c.payload),{},{coordinate:y})}))}else n(c);return}if(i!=null){var b;typeof r==`function`?b=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(b=i.find(e=>String(e.value)===c.payload.label));var{coordinate:x}=c.payload;if(b==null||c.payload.active===!1||x==null||o==null){n(ZJ({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}var{x:S,y:C}=x,w=Math.min(S,o.x+o.width),T=Math.min(C,o.y+o.height),E={x:a===`horizontal`?b.coordinate:w,y:a===`horizontal`?T:b.coordinate};n(ZJ({active:c.payload.active,coordinate:E,dataKey:c.payload.dataKey,index:String(b.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}};return dZ.on(fZ,s),()=>{dZ.off(fZ,s)}},[s,n,t,e,r,i,a,o])}function NZ(){var e=Q(Zz),t=Q($z),n=rA();(0,v.useEffect)(()=>{if(e==null)return vO;var r=(r,i,a)=>{t!==a&&e===r&&n(xZ(i))};return dZ.on(pZ,r),()=>{dZ.off(pZ,r)}},[n,t,e])}function PZ(){var e=rA();(0,v.useEffect)(()=>{e(_Z())},[e]),MZ(),NZ()}function FZ(e,t,n,r,i,a){var o=Q(n=>EX(n,e,t)),s=Q($Y),c=Q($z),l=Q(Zz),u=Q(Qz),d=Q(vZ)?.active,f=iF();(0,v.useEffect)(()=>{if(!d&&l!=null&&c!=null){var e=ZJ({active:a,coordinate:n,dataKey:o,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:f,graphicalItemId:s});dZ.emit(fZ,l,e,c)}},[d,n,o,s,i,r,c,l,u,a,f])}function IZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?IZ(Object(n),!0).forEach(function(t){RZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function RZ(e,t,n){return(t=zZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zZ(e){var t=BZ(e,`string`);return typeof t==`symbol`?t:t+``}function BZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function VZ(e){return e.dataKey}function HZ(e,t){return v.isValidElement(e)?v.cloneElement(e,t):typeof e==`function`?v.createElement(e,t):v.createElement(GI,t)}var UZ=[],WZ={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:`ease`,axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:`auto`,itemSorter:`name`,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:` : `,trigger:`hover`,useTranslate3d:!1,wrapperStyle:{}};function GZ(e){var t=UO(e,WZ),{active:n,allowEscapeViewBox:r,animationDuration:i,animationEasing:a,content:o,filterNull:s,isAnimationActive:c,offset:l,payloadUniqBy:u,position:d,reverseDirection:f,useTranslate3d:p,wrapperStyle:m,cursor:h,shared:g,trigger:_,defaultIndex:y,portal:b,axisId:x}=t,S=rA(),C=typeof y==`number`?String(y):y;(0,v.useEffect)(()=>{S(WJ({shared:g,trigger:_,axisId:x,active:n,defaultIndex:C}))},[S,g,_,x,n,C]);var w=iF(),T=cL(),E=IJ(g),{activeIndex:D,isActive:O}=Q(e=>MX(e,E,_,C))??{},k=Q(e=>jX(e,E,_,C)),A=Q(e=>AX(e,E,_,C)),j=Q(e=>kX(e,E,_,C)),M=k,N=lZ(),P=n??O??!1,[ee,F]=PA([M,P]),I=E===`axis`?A:void 0;FZ(E,_,j,I,D,P);var te=b??N;if(te==null||w==null||E==null)return null;var L=M??UZ;P||(L=UZ),s&&L.length&&(L=Yk(L.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),u,VZ));var ne=L.length>0,re=LZ(LZ({},t),{},{payload:L,label:I,active:P,activeIndex:D,coordinate:j,accessibilityLayer:T}),R=v.createElement(sL,{allowEscapeViewBox:r,animationDuration:i,animationEasing:a,isAnimationActive:c,active:P,coordinate:j,hasPayload:ne,offset:l,position:d,reverseDirection:f,useTranslate3d:p,viewBox:w,wrapperStyle:m,lastBoundingBox:ee,innerRef:F,hasPortalFromProps:!!b},HZ(o,re));return v.createElement(v.Fragment,null,(0,Or.createPortal)(R,te),P&&v.createElement(sZ,{cursor:h,tooltipEventType:E,coordinate:j,payload:L,index:D}))}var KZ=e=>null;KZ.displayName=`Cell`;function qZ(e,t,n){return(t=JZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function JZ(e){var t=YZ(e,`string`);return typeof t==`symbol`?t:t+``}function YZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var XZ=class{constructor(e){qZ(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function ZZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function QZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ZZ(Object(n),!0).forEach(function(t){$Z(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $Z(e,t,n){return(t=eQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eQ(e){var t=tQ(e,`string`);return typeof t==`symbol`?t:t+``}function tQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var nQ=QZ({},{cacheSize:2e3,enableCache:!0}),rQ=new XZ(nQ.cacheSize),iQ={position:`absolute`,top:`-20000px`,left:0,padding:0,margin:0,border:`none`,whiteSpace:`pre`},aQ=`recharts_measurement_span`;function oQ(e,t){return`${e}|${t.fontSize||``}|${t.fontFamily||``}|${t.fontWeight||``}|${t.fontStyle||``}|${t.letterSpacing||``}|${t.textTransform||``}`}var sQ=(e,t)=>{try{var n=document.getElementById(aQ);n||(n=document.createElement(`span`),n.setAttribute(`id`,aQ),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,iQ,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},cQ=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||QI.isSsr)return{width:0,height:0};if(!nQ.enableCache)return sQ(e,t);var n=oQ(e,t),r=rQ.get(n);if(r)return r;var i=sQ(e,t);return rQ.set(n,i),i},lQ;function uQ(e,t,n){return(t=dQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dQ(e){var t=fQ(e,`string`);return typeof t==`symbol`?t:t+``}function fQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var pQ=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,mQ=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,hQ=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,gQ=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,_Q={cm:96/2.54,mm:96/25.4,pt:96/72,pc:16,in:96,Q:96/101.6,px:1},vQ=[`cm`,`mm`,`pt`,`pc`,`in`,`Q`,`px`];function yQ(e){return vQ.includes(e)}var bQ=`NaN`;function xQ(e,t){return e*_Q[t]}var SQ=class e{static parse(t){var[,n,r]=gQ.exec(t)??[];return n==null?e.NaN:new e(parseFloat(n),r??``)}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,oO(e)&&(this.unit=``),t!==``&&!hQ.test(t)&&(this.num=NaN,this.unit=``),yQ(t)&&(this.num=xQ(e,t),this.unit=`px`)}add(t){return this.unit===t.unit?new e(this.num+t.num,this.unit):new e(NaN,``)}subtract(t){return this.unit===t.unit?new e(this.num-t.num,this.unit):new e(NaN,``)}multiply(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num/t.num,this.unit||t.unit)}toString(){return`${this.num}${this.unit}`}isNaN(){return oO(this.num)}};lQ=SQ,uQ(SQ,`NaN`,new lQ(NaN,``));function CQ(e){if(e==null||e.includes(bQ))return bQ;for(var t=e;t.includes(`*`)||t.includes(`/`);){var[,n,r,i]=pQ.exec(t)??[],a=SQ.parse(n??``),o=SQ.parse(i??``),s=r===`*`?a.multiply(o):a.divide(o);if(s.isNaN())return bQ;t=t.replace(pQ,s.toString())}for(;t.includes(`+`)||/.-\d+(?:\.\d+)?/.test(t);){var[,c,l,u]=mQ.exec(t)??[],d=SQ.parse(c??``),f=SQ.parse(u??``),p=l===`+`?d.add(f):d.subtract(f);if(p.isNaN())return bQ;t=t.replace(mQ,p.toString())}return t}var wQ=/\(([^()]*)\)/;function TQ(e){for(var t=e,n;(n=wQ.exec(t))!=null;){var[,r]=n;t=t.replace(wQ,CQ(r))}return t}function EQ(e){var t=e.replace(/\s+/g,``);return t=TQ(t),t=CQ(t),t}function DQ(e){try{return EQ(e)}catch{return bQ}}function OQ(e){var t=DQ(e.slice(5,-1));return t===bQ?``:t}var kQ=[`x`,`y`,`lineHeight`,`capHeight`,`fill`,`scaleToFit`,`textAnchor`,`verticalAnchor`],AQ=[`dx`,`dy`,`angle`,`className`,`breakAll`];function jQ(){return jQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jQ.apply(null,arguments)}function MQ(e,t){if(e==null)return{};var n,r,i=NQ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function NQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var PQ=/[ \f\n\r\t\v\u2028\u2029]+/,FQ=e=>{var{children:t,breakAll:n,style:r}=e;try{var i=[];return hO(t)||(i=n?t.toString().split(``):t.toString().split(PQ)),{wordsWithComputedWidth:i.map(e=>({word:e,width:cQ(e,r).width})),spaceWidth:n?0:cQ(`\xA0`,r).width}}catch{return null}};function IQ(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}function LQ(e){return hO(e)||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var RQ=(e,t,n,r)=>e.reduce((e,i)=>{var{word:a,width:o}=i,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+n<Number(t)))s.words.push(a),s.width+=o+n;else{var c={words:[a],width:o};e.push(c)}return e},[]),zQ=e=>e.reduce((e,t)=>e.width>t.width?e:t),BQ=`…`,VQ=(e,t,n,r,i,a,o,s)=>{var c=FQ({breakAll:n,style:r,children:e.slice(0,t)+BQ});if(!c)return[!1,[]];var l=RQ(c.wordsWithComputedWidth,a,o,s);return[l.length>i||zQ(l).width>Number(a),l]},HQ=(e,t,n,r,i)=>{var{maxLines:a,children:o,style:s,breakAll:c}=e,l=Z(a),u=String(o),d=RQ(t,r,n,i);if(!l||i||!(d.length>a||zQ(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),[_,v]=VQ(u,g-1,c,s,a,r,n,i),[y]=VQ(u,g,c,s,a,r,n,i);if(!_&&!y&&(f=g+1),_&&y&&(p=g-1),!_&&y){h=v;break}m++}return h||d},UQ=e=>[{words:hO(e)?[]:e.toString().split(PQ),width:void 0}],WQ=e=>{var{width:t,scaleToFit:n,children:r,style:i,breakAll:a,maxLines:o}=e;if((t||n)&&!QI.isSsr){var s,c,l=FQ({breakAll:a,children:r,style:i});if(l){var{wordsWithComputedWidth:u,spaceWidth:d}=l;s=u,c=d}else return UQ(r);return HQ({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return UQ(r)},GQ=`#808080`,KQ={angle:0,breakAll:!1,capHeight:`0.71em`,fill:GQ,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},qQ=(0,v.forwardRef)((e,t)=>{var n=UO(e,KQ),{x:r,y:i,lineHeight:a,capHeight:o,fill:s,scaleToFit:c,textAnchor:l,verticalAnchor:u}=n,d=MQ(n,kQ),f=(0,v.useMemo)(()=>WQ({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:c,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,c,d.style,d.width]),{dx:p,dy:m,angle:h,className:g,breakAll:_}=d,y=MQ(d,AQ);if(!cO(r)||!cO(i)||f.length===0)return null;var b=Number(r)+(Z(p)?p:0),x=Number(i)+(Z(m)?m:0);if(!FN(b)||!FN(x))return null;var S;switch(u){case`start`:S=OQ(`calc(${o})`);break;case`middle`:S=OQ(`calc(${(f.length-1)/2} * -${a} + (${o} / 2))`);break;default:S=OQ(`calc(${f.length-1} * -${a})`)}var C=[],w=f[0];if(c&&w!=null){var T=w.width,{width:E}=d;C.push(`scale(${Z(E)&&Z(T)?E/T:1})`)}return h&&C.push(`rotate(${h}, ${b}, ${x})`),C.length&&(y.transform=C.join(` `)),v.createElement(`text`,jQ({},lE(y),{ref:t,x:b,y:x,className:Xt(`recharts-text`,g),textAnchor:l,fill:s.includes(`url`)?GQ:s}),f.map((e,t)=>{var n=e.words.join(_?``:` `);return v.createElement(`tspan`,{x:b,dy:t===0?S:a,key:`${n}-${t}`},n)}))});qQ.displayName=`Text`;function JQ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?JQ(Object(n),!0).forEach(function(t){XQ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):JQ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function XQ(e,t,n){return(t=ZQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZQ(e){var t=QQ(e,`string`);return typeof t==`symbol`?t:t+``}function QQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var $Q=e=>{var{viewBox:t,position:n,offset:r=0,parentViewBox:i,clamp:a}=e,{x:o,y:s,height:c,upperWidth:l,lowerWidth:u}=rF(t),d=o,f=o+(l-u)/2,p=(d+f)/2,m=(l+u)/2,h=d+l/2,g=c>=0?1:-1,_=g*r,v=g>0?`end`:`start`,y=g>0?`start`:`end`,b=l>=0?1:-1,x=b*r,S=b>0?`end`:`start`,C=b>0?`start`:`end`,w=i;if(n===`top`){var T={x:d+l/2,y:s-_,horizontalAnchor:`middle`,verticalAnchor:v};return a&&w&&(T.height=Math.max(s-w.y,0),T.width=l),T}if(n===`bottom`){var E={x:f+u/2,y:s+c+_,horizontalAnchor:`middle`,verticalAnchor:y};return a&&w&&(E.height=Math.max(w.y+w.height-(s+c),0),E.width=u),E}if(n===`left`){var D={x:p-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`};return a&&w&&(D.width=Math.max(D.x-w.x,0),D.height=c),D}if(n===`right`){var O={x:p+m+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`};return a&&w&&(O.width=Math.max(w.x+w.width-O.x,0),O.height=c),O}var k=a&&w?{width:m,height:c}:{};return n===`insideLeft`?YQ({x:p+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`},k):n===`insideRight`?YQ({x:p+m-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`},k):n===`insideTop`?YQ({x:d+l/2,y:s+_,horizontalAnchor:`middle`,verticalAnchor:y},k):n===`insideBottom`?YQ({x:f+u/2,y:s+c-_,horizontalAnchor:`middle`,verticalAnchor:v},k):n===`insideTopLeft`?YQ({x:d+x,y:s+_,horizontalAnchor:C,verticalAnchor:y},k):n===`insideTopRight`?YQ({x:d+l-x,y:s+_,horizontalAnchor:S,verticalAnchor:y},k):n===`insideBottomLeft`?YQ({x:f+x,y:s+c-_,horizontalAnchor:C,verticalAnchor:v},k):n===`insideBottomRight`?YQ({x:f+u-x,y:s+c-_,horizontalAnchor:S,verticalAnchor:v},k):n&&typeof n==`object`&&(Z(n.x)||sO(n.x))&&(Z(n.y)||sO(n.y))?YQ({x:o+dO(n.x,m),y:s+dO(n.y,c),horizontalAnchor:`end`,verticalAnchor:`end`},k):YQ({x:h,y:s+c/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},k)},e$=[`labelRef`],t$=[`content`];function n$(e,t){if(e==null)return{};var n,r,i=r$(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function r$(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function i$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i$(Object(n),!0).forEach(function(t){o$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o$(e,t,n){return(t=s$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s$(e){var t=c$(e,`string`);return typeof t==`symbol`?t:t+``}function c$(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l$(){return l$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l$.apply(null,arguments)}var u$=(0,v.createContext)(null),d$=e=>{var{x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o,children:s}=e,c=(0,v.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o}),[t,n,r,i,a,o]);return v.createElement(u$.Provider,{value:c},s)},f$=()=>{var e=(0,v.useContext)(u$),t=iF();return e||(t?rF(t):void 0)},p$=(0,v.createContext)(null),m$=()=>{var e=(0,v.useContext)(p$),t=Q(bB);return e||t},h$=e=>{var{value:t,formatter:n}=e,r=hO(e.children)?t:e.children;return typeof n==`function`?n(r):r},g$=e=>e!=null&&typeof e==`function`,_$=(e,t)=>aO(t-e)*Math.min(Math.abs(t-e),360),v$=(e,t,n,r,i)=>{var{offset:a,className:o}=e,{cx:s,cy:c,innerRadius:l,outerRadius:u,startAngle:d,endAngle:f,clockWise:p}=i,m=(l+u)/2,h=_$(d,f),g=h>=0?1:-1,_,y;switch(t){case`insideStart`:_=d+g*a,y=p;break;case`insideEnd`:_=f-g*a,y=!p;break;case`end`:_=f+g*a,y=p;break;default:throw Error(`Unsupported position ${t}`)}y=h<=0?y:!y;var b=$R(s,c,m,_),x=$R(s,c,m,_+(y?1:-1)*359),S=`M${b.x},${b.y}
161
+ A`,`,`,`,0,0,`,`,`,`,`,`Z`]),C.x,C.y,a,a,+(u<0),S.x,S.y,r,r,+(T>180),+(u>0),y.x,y.y,a,a,+(u<0),b.x,b.y)}else v+=mO(Cz||=Tz([`L`,`,`,`Z`]),t,n);return v},Az={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},jz=e=>{var t=$O(e,Az),{cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:o,forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u,className:d}=t;if(a<i||l===u)return null;var f=Xt(`recharts-sector`,d),p=a-i,m=xO(o,p,0,!0),h=m>0&&Math.abs(l-u)<360?kz({cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:Math.min(m,p/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u}):Oz({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:l,endAngle:u});return v.createElement(`path`,wz({},yE(t),{className:f,d:h}))};function Mz(e,t,n){if(e===`horizontal`)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e===`vertical`)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(WO(t)){if(e===`centric`){var{cx:r,cy:i,innerRadius:a,outerRadius:o,angle:s}=t,c=lz(r,i,a,s),l=lz(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return gz(t)}}function Nz(e){return oO(e)?NaN:Number(e)}function Pz(e){return e?(e=Nz(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Fz(e,t,n){n&&typeof n!=`number`&&MA(e,t,n)&&(t=n=void 0),e=Pz(e),t===void 0?(t=e,e=0):t=Pz(t),n=n===void 0?e<t?1:-1:Pz(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var Iz=e=>e.chartData,Lz=$([Iz],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),Rz=(e,t,n,r)=>r?Lz(e):Iz(e),zz=(e,t,n)=>n?Lz(e):Iz(e);function Bz(e){if(Array.isArray(e)&&e.length===2){var[t,n]=e;if(GN(t)&&GN(n))return!0}return!1}function Vz(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function Hz(e,t){if(t&&typeof e!=`function`&&Array.isArray(e)&&e.length===2){var[n,r]=e,i,a;if(GN(n))i=n;else if(typeof n==`function`)return;if(GN(r))a=r;else if(typeof r==`function`)return;var o=[i,a];if(Bz(o))return o}}function Uz(e,t,n){if(!(!n&&t==null)){if(typeof e==`function`&&t!=null)try{var r=e(t,n);if(Bz(r))return Vz(r,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var[i,a]=e,o,s;if(i===`auto`)t!=null&&(o=Math.min(...t));else if(Z(i))o=i;else if(typeof i==`function`)try{t!=null&&(o=i(t?.[0]))}catch{}else if(typeof i==`string`&&fP.test(i)){var c=fP.exec(i);if(c==null||c[1]==null||t==null)o=void 0;else{var l=+c[1];o=t[0]-l}}else o=t?.[0];if(a===`auto`)t!=null&&(s=Math.max(...t));else if(Z(a))s=a;else if(typeof a==`function`)try{t!=null&&(s=a(t?.[1]))}catch{}else if(typeof a==`string`&&pP.test(a)){var u=pP.exec(a);if(u==null||u[1]==null||t==null)s=void 0;else{var d=+u[1];s=t[1]+d}}else s=t?.[1];var f=[o,s];if(Bz(f))return t==null?f:Vz(f,t,n)}}}var Wz=l(o(((e,t)=>{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=r<i?r:i;t<n;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l<u&&(o=m,m=h,h=o,s=l,l=u,u=s),o=[],s=l+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=k(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=k(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?k(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=k(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),A(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),A(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=k(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=k(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||e<t||e>n)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)r=e[t]+``,n=p-r.length,n&&(a+=w(n)),a+=r;o=e[t],r=o+``,n=p-r.length,n&&(a+=w(n))}else if(o===0)return`0`;for(;o%10==0;)o/=10;return a+o}var b=(function(){function e(e,t){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%f|0,r=n/f|0;return r&&e.unshift(r),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;i<n;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]<t[n]),e[n]=r*f+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,k,A=r.constructor,j=r.s==i.s?1:-1,M=r.d,N=i.d;if(!r.s)return new A(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=N.length,T=M.length,g=new A(j),_=g.d=[],u=0;N[u]==(M[u]||0);)++u;if(N[u]>(M[u]||0)&&--l,x=o==null?o=A.precision:s?o+(S(r)-S(i))+1:o,x<0)return new A(0);if(x=x/p+2|0,u=0,O==1)for(d=0,N=N[0],x++;(u<T||d)&&x--;u++)C=d*f+(M[u]||0),_[u]=C/N|0,d=C%N|0;else{for(d=f/(N[0]+1)|0,d>1&&(N=e(N,d),M=e(M,d),O=N.length,T=M.length),w=O,v=M.slice(0,O),y=v.length;y<O;)v[y++]=0;k=N.slice(),k.unshift(0),E=N[0],N[1]>=f/2&&++E;do d=0,c=t(N,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(N,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O<h?k:N,h))):(d==0&&(c=d=1),m=N.slice()),h=m.length,h<y&&m.unshift(0),n(v,m,y),c==-1&&(y=v.length,c=t(N,v,O,y),c<1&&(d++,n(v,O<y?k:N,y))),y=v.length):c===0&&(d++,v=[0]),_[u++]=d,c&&v[0]?v[y++]=M[w]||0:(v=[M[w]],y=1);while((w++<T||v[0]!==void 0)&&x--)}return _[0]||_.shift(),g.e=l,D(g,s?o+S(g)+1:o)}})();function x(e,t){var n,r,a,o,c,u,f=0,p=0,m=e.constructor,h=m.precision;if(S(e)>16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),r<a){for(r&&e.d.push(+t.slice(0,r)),a-=p;r<a;)e.d.push(+t.slice(r,r+=p));t=t.slice(r),r=p-t.length}else r-=a;for(;r--;)t+=`0`;if(e.d.push(+t),i&&(e.e>h||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a<c,d&&(c=a),a=0;a<c;a++)if(l[a]!=m[a]){d=l[a]<m[a];break}s=0}for(d&&(n=l,l=m,m=n,t.s=-t.s),c=l.length,a=m.length-c;a>0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]<m[a]){for(o=a;o&&l[--o]===0;)l[o]=f-1;--l[o],l[a]+=f}l[a]-=m[a]}for(;l[--c]===0;)l.pop();for(;l[0]===0;l.shift())--r;return l[0]?(t.d=l,t.e=r,i?D(t,g):t):new h(0)}function k(e,t,n){var r,i=S(e),a=y(e.d),o=a.length;return t?(n&&(r=n-o)>0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)<o&&(a=a.slice(0,r)+`.`+a.slice(r)),n&&(r=n-o)>0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function A(e,t){if(e.length>t)return e.length=t,!0}function j(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i){t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;return}if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j,i.config=i.set=M,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function M(e){if(!e||typeof e!=`object`)throw Error(a+`Object expected`);var t,r,i,s=[`precision`,1,n,`rounding`,0,8,`toExpNeg`,-1/0,0,`toExpPos`,0,1/0];for(t=0;t<s.length;t+=3)if((i=e[r=s[t]])!==void 0){if(c(i)===i&&i>=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i)}if((i=e[r=`LN10`])!==void 0){if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i)}return this}r=j(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(e)}))());function Gz(e){return e===0?1:Math.floor(new Wz.default(e).abs().log(10).toNumber())+1}function Kz(e,t,n){for(var r=new Wz.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}var qz=e=>{var[t,n]=e,[r,i]=[t,n];return t>n&&([r,i]=[n,t]),[r,i]},Jz=(e,t,n)=>{if(e.lte(0))return new Wz.default(0);var r=Gz(e.toNumber()),i=new Wz.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new Wz.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new Wz.default(s.toNumber()):new Wz.default(Math.ceil(s.toNumber()))},Yz=(e,t,n)=>{if(e.lte(0))return new Wz.default(0);var r=[1,2,2.5,5],i=e.toNumber(),a=Math.floor(new Wz.default(i).abs().log(10).toNumber()),o=new Wz.default(10).pow(a),s=e.div(o).toNumber(),c=r.findIndex(e=>e>=s-1e-10);if(c===-1&&(o=o.mul(10),c=0),c+=n,c>=r.length){var l=Math.floor(c/r.length);c%=r.length,o=o.mul(new Wz.default(10).pow(l))}var u=r[c]??1,d=new Wz.default(u).mul(o);return t?d:new Wz.default(Math.ceil(d.toNumber()))},Xz=(e,t,n)=>{var r=new Wz.default(1),i=new Wz.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new Wz.default(10).pow(Gz(e)-1),i=new Wz.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new Wz.default(Math.floor(e)))}else e===0?i=new Wz.default(Math.floor((t-1)/2)):n||(i=new Wz.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c<t;c++)s.push(i.add(new Wz.default(c-o).mul(r)).toNumber());return s},Zz=function(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Jz;if(!Number.isFinite((t-e)/(n-1)))return{step:new Wz.default(0),tickMin:new Wz.default(0),tickMax:new Wz.default(0)};var o=a(new Wz.default(t).sub(e).div(n-1),r,i),s;e<=0&&t>=0?s=new Wz.default(0):(s=new Wz.default(e).add(t).div(2),s=s.sub(new Wz.default(s).mod(o)));var c=Math.ceil(s.sub(e).div(o).toNumber()),l=Math.ceil(new Wz.default(t).sub(s).div(o).toNumber()),u=c+l+1;return u>n?Zz(e,t,n,r,i+1,a):(u<n&&(l=t>0?l+(n-u):l,c=t>0?c:c+(n-u)),{step:o,tickMin:s.sub(new Wz.default(c).mul(o)),tickMax:s.add(new Wz.default(l).mul(o))})},Qz=function(e){var[t,n]=e,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,o=Math.max(r,2),[s,c]=qz([t,n]);if(s===-1/0||c===1/0){var l=c===1/0?[s,...Array(r-1).fill(1/0)]:[...Array(r-1).fill(-1/0),c];return t>n?l.reverse():l}if(s===c)return Xz(s,r,i);var{step:u,tickMin:d,tickMax:f}=Zz(s,c,o,i,0,a===`snap125`?Yz:Jz),p=Kz(d,f.add(new Wz.default(.1).mul(u)),u);return t>n?p.reverse():p},$z=function(e,t){var[n,r]=e,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,[o,s]=qz([n,r]);if(o===-1/0||s===1/0)return[n,r];if(o===s)return[o];var c=a===`snap125`?Yz:Jz,l=Math.max(t,2),u=c(new Wz.default(s).sub(o).div(l-1),i,0),d=[...Kz(new Wz.default(o),new Wz.default(s),u),s];return i===!1&&(d=d.map(e=>Math.round(e))),n>r?d.reverse():d},eB=e=>e.rootProps.maxBarSize,tB=e=>e.rootProps.barGap,nB=e=>e.rootProps.barCategoryGap,rB=e=>e.rootProps.barSize,iB=e=>e.rootProps.stackOffset,aB=e=>e.rootProps.reverseStackOrder,oB=e=>e.options.chartName,sB=e=>e.rootProps.syncId,cB=e=>e.rootProps.syncMethod,lB=e=>e.options.eventEmitter,uB={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},dB={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:`auto`,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:uB.axis},fB={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:`auto`,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:uB.axis},pB=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function mB(e,t,n){if(n!==`auto`)return n;if(e!=null)return eP(e,t)?`category`:`number`}function hB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?hB(Object(n),!0).forEach(function(t){_B(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _B(e,t,n){return(t=vB(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vB(e){var t=yB(e,`string`);return typeof t==`symbol`?t:t+``}function yB(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var bB={allowDataOverflow:dB.allowDataOverflow,allowDecimals:dB.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:dB.angleAxisId,includeHidden:!1,name:void 0,reversed:dB.reversed,scale:dB.scale,tick:dB.tick,tickCount:void 0,ticks:void 0,type:dB.type,unit:void 0,niceTicks:`auto`},xB={allowDataOverflow:fB.allowDataOverflow,allowDecimals:fB.allowDecimals,allowDuplicatedCategory:fB.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:fB.radiusAxisId,includeHidden:fB.includeHidden,name:void 0,reversed:fB.reversed,scale:fB.scale,tick:fB.tick,tickCount:fB.tickCount,ticks:void 0,type:fB.type,unit:void 0,niceTicks:`auto`},SB=$([(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},SF],(e,t)=>{if(e!=null)return e;var n=mB(t,`angleAxis`,bB.type)??`category`;return gB(gB({},bB),{},{type:n})}),CB=$([(e,t)=>e.polarAxis.radiusAxis[t],SF],(e,t)=>{if(e!=null)return e;var n=mB(t,`radiusAxis`,xB.type)??`category`;return gB(gB({},xB),{},{type:n})}),wB=e=>e.polarOptions,TB=$([yP,bP,IP],uz),EB=$([wB,TB],(e,t)=>{if(e!=null)return xO(e.innerRadius,t,0)}),DB=$([wB,TB],(e,t)=>{if(e!=null)return xO(e.outerRadius,t,t*.8)}),OB=$([wB],e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:n}=e;return[t,n]});$([SB,OB],pB);var kB=$([TB,EB,DB],(e,t,n)=>{if(e!=null&&t!=null&&n!=null)return[t,n]});$([CB,kB],pB);var AB=$([yF,wB,EB,DB,yP,bP],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var{cx:o,cy:s,startAngle:c,endAngle:l}=t;return{cx:xO(o,i,i/2),cy:xO(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),jB=(e,t)=>t,MB=(e,t,n)=>n;function NB(e){return e?.id}function PB(e,t,n){var{chartData:r=[]}=t,{allowDuplicatedCategory:i,dataKey:a}=n,o=new Map;return e.forEach(e=>{var t=e.data??r;if(t!=null&&t.length!==0){var n=NB(e);t.forEach((t,r)=>{var s=a==null||i?r:String(QN(t,a,null)),c=QN(t,e.dataKey,0),l=o.has(s)?o.get(s):{};Object.assign(l,{[n]:c}),o.set(s,l)})}}),Array.from(o.values())}function FB(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var IB=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function LB(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function RB(e,t){if(e.length===t.length){for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}var zB=e=>{var t=yF(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},BB=e=>e.tooltip.settings.axisId;function VB(e){if(e!=null){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i}}return r}}}}}var HB=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!Bz(t)){for(var n,r,i=0;i<t.length;i++){var a=t[i];GN(a)&&((n===void 0||a<n)&&(n=a),(r===void 0||a>r)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}};function UB(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function WB(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function GB(e){let t,n,r;e.length===2?(t=e===UB||e===WB?e:KB,n=e,r=e):(t=UB,n=(t,n)=>UB(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function KB(){return 0}function qB(e){return e===null?NaN:+e}function*JB(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var YB=GB(UB),XB=YB.right;YB.left,GB(qB).center;var ZB=class extends Map{constructor(e,t=tV){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(QB(this,e))}has(e){return super.has(QB(this,e))}set(e,t){return super.set($B(this,e),t)}delete(e){return super.delete(eV(this,e))}};function QB({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function $B({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function eV({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function tV(e){return typeof e==`object`&&e?e.valueOf():e}function nV(e=UB){if(e===UB)return rV;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function rV(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}var iV=Math.sqrt(50),aV=Math.sqrt(10),oV=Math.sqrt(2);function sV(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=iV?10:a>=aV?5:a>=oV?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?sV(e,t,n*2):[s,c,l]}function cV(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?sV(t,e,n):sV(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r){if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o}else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function lV(e,t,n){return t=+t,e=+e,n=+n,sV(e,t,n)[2]}function uV(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?lV(t,e,n):lV(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function dV(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function fV(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function pV(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?rV:nV(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));pV(e,t,u,d,i)}let a=e[t],o=n,s=r;for(mV(e,n,t),i(e[r],a)>0&&mV(e,n,r);o<s;){for(mV(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?mV(e,n,s):(++s,mV(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function mV(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function hV(e,t,n){if(e=Float64Array.from(JB(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return fV(e);if(t>=1)return dV(e);var r,i=(r-1)*t,a=Math.floor(i),o=dV(pV(e,a).subarray(0,a+1));return o+(fV(e.subarray(a+1))-o)*(i-a)}}function gV(e,t,n=qB){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function _V(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function vV(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function yV(e,t){switch(arguments.length){case 0:break;case 1:typeof e==`function`?this.interpolator(e):this.range(e);break;default:this.domain(e),typeof t==`function`?this.interpolator(t):this.range(t)}return this}var bV=Symbol(`implicit`);function xV(){var e=new ZB,t=[],n=[],r=bV;function i(i){let a=e.get(i);if(a===void 0){if(r!==bV)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new ZB;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return xV(t,n).unknown(r)},vV.apply(i,arguments),i}function SV(){var e=xV().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=_V(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return SV(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},vV.apply(d(),arguments)}function CV(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return CV(t())},e}function wV(){return CV(SV.apply(null,arguments).paddingInner(1))}function TV(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function EV(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function DV(){}var OV=.7,kV=1/OV,AV=`\\s*([+-]?\\d+)\\s*`,jV=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,MV=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,NV=/^#([0-9a-f]{3,8})$/,PV=RegExp(`^rgb\\(${AV},${AV},${AV}\\)$`),FV=RegExp(`^rgb\\(${MV},${MV},${MV}\\)$`),IV=RegExp(`^rgba\\(${AV},${AV},${AV},${jV}\\)$`),LV=RegExp(`^rgba\\(${MV},${MV},${MV},${jV}\\)$`),RV=RegExp(`^hsl\\(${jV},${MV},${MV}\\)$`),zV=RegExp(`^hsla\\(${jV},${MV},${MV},${jV}\\)$`),BV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};TV(DV,GV,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:VV,formatHex:VV,formatHex8:HV,formatHsl:UV,formatRgb:WV,toString:WV});function VV(){return this.rgb().formatHex()}function HV(){return this.rgb().formatHex8()}function UV(){return iH(this).formatHsl()}function WV(){return this.rgb().formatRgb()}function GV(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=NV.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?KV(t):n===3?new XV(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?qV(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?qV(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=PV.exec(e))?new XV(t[1],t[2],t[3],1):(t=FV.exec(e))?new XV(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=IV.exec(e))?qV(t[1],t[2],t[3],t[4]):(t=LV.exec(e))?qV(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=RV.exec(e))?rH(t[1],t[2]/100,t[3]/100,1):(t=zV.exec(e))?rH(t[1],t[2]/100,t[3]/100,t[4]):BV.hasOwnProperty(e)?KV(BV[e]):e===`transparent`?new XV(NaN,NaN,NaN,0):null}function KV(e){return new XV(e>>16&255,e>>8&255,e&255,1)}function qV(e,t,n,r){return r<=0&&(e=t=n=NaN),new XV(e,t,n,r)}function JV(e){return e instanceof DV||(e=GV(e)),e?(e=e.rgb(),new XV(e.r,e.g,e.b,e.opacity)):new XV}function YV(e,t,n,r){return arguments.length===1?JV(e):new XV(e,t,n,r??1)}function XV(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}TV(XV,YV,EV(DV,{brighter(e){return e=e==null?kV:kV**+e,new XV(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?OV:OV**+e,new XV(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new XV(tH(this.r),tH(this.g),tH(this.b),eH(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ZV,formatHex:ZV,formatHex8:QV,formatRgb:$V,toString:$V}));function ZV(){return`#${nH(this.r)}${nH(this.g)}${nH(this.b)}`}function QV(){return`#${nH(this.r)}${nH(this.g)}${nH(this.b)}${nH((isNaN(this.opacity)?1:this.opacity)*255)}`}function $V(){let e=eH(this.opacity);return`${e===1?`rgb(`:`rgba(`}${tH(this.r)}, ${tH(this.g)}, ${tH(this.b)}${e===1?`)`:`, ${e})`}`}function eH(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function tH(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function nH(e){return e=tH(e),(e<16?`0`:``)+e.toString(16)}function rH(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oH(e,t,n,r)}function iH(e){if(e instanceof oH)return new oH(e.h,e.s,e.l,e.opacity);if(e instanceof DV||(e=GV(e)),!e)return new oH;if(e instanceof oH)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new oH(o,s,c,e.opacity)}function aH(e,t,n,r){return arguments.length===1?iH(e):new oH(e,t,n,r??1)}function oH(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}TV(oH,aH,EV(DV,{brighter(e){return e=e==null?kV:kV**+e,new oH(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?OV:OV**+e,new oH(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new XV(lH(e>=240?e-240:e+120,i,r),lH(e,i,r),lH(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new oH(sH(this.h),cH(this.s),cH(this.l),eH(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=eH(this.opacity);return`${e===1?`hsl(`:`hsla(`}${sH(this.h)}, ${cH(this.s)*100}%, ${cH(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function sH(e){return e=(e||0)%360,e<0?e+360:e}function cH(e){return Math.max(0,Math.min(1,e||0))}function lH(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var uH=e=>()=>e;function dH(e,t){return function(n){return e+n*t}}function fH(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function pH(e){return(e=+e)==1?mH:function(t,n){return n-t?fH(t,n,e):uH(isNaN(t)?n:t)}}function mH(e,t){var n=t-e;return n?dH(e,n):uH(isNaN(e)?t:e)}var hH=(function e(t){var n=pH(t);function r(e,t){var r=n((e=YV(e)).r,(t=YV(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=mH(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function gH(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function _H(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function vH(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=DH(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function yH(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function bH(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function xH(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=DH(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var SH=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,CH=new RegExp(SH.source,`g`);function wH(e){return function(){return e}}function TH(e){return function(t){return e(t)+``}}function EH(e,t){var n=SH.lastIndex=CH.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=SH.exec(e))&&(i=CH.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:bH(r,i)})),n=CH.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?TH(c[0].x):wH(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function DH(e,t){var n=typeof t,r;return t==null||n===`boolean`?uH(t):(n===`number`?bH:n===`string`?(r=GV(t))?(t=r,hH):EH:t instanceof GV?hH:t instanceof Date?yH:_H(t)?gH:Array.isArray(t)?vH:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?xH:bH)(e,t)}function OH(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function kH(e,t){t===void 0&&(t=e,e=DH);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function AH(e){return function(){return e}}function jH(e){return+e}var MH=[0,1];function NH(e){return e}function PH(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:AH(isNaN(t)?NaN:.5)}function FH(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function IH(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=PH(i,r),a=n(o,a)):(r=PH(r,i),a=n(a,o)),function(e){return a(r(e))}}function LH(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=PH(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=XB(e,t,1,r)-1;return a[n](i[n](t))}}function RH(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function zH(){var e=MH,t=MH,n=DH,r,i,a,o=NH,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==NH&&(o=FH(e[0],e[n-1])),s=n>2?LH:IH,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),bH))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,jH),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=OH,u()},d.clamp=function(e){return arguments.length?(o=e?!0:NH,u()):o!==NH},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function BH(){return zH()(NH,NH)}function VH(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function HH(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function UH(e){return e=HH(Math.abs(e)),e?e[1]:NaN}function WH(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function GH(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var KH=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function qH(e){if(!(t=KH.exec(e)))throw Error(`invalid format: `+e);var t;return new JH({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}qH.prototype=JH.prototype;function JH(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}JH.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function YH(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var XH;function ZH(e,t){var n=HH(e,t);if(!n)return XH=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(XH=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+HH(e,Math.max(0,t+a-1))[0]}function QH(e,t){var n=HH(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var $H={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:VH,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>QH(e*100,t),r:QH,s:ZH,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function eU(e){return e}var tU=Array.prototype.map,nU=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function rU(e){var t=e.grouping===void 0||e.thousands===void 0?eU:WH(tU.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?eU:GH(tU.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=qH(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):$H[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=$H[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=YH(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&XH!==void 0?nU[8+XH/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(UH(t)/3)))*3,r=10**-n,i=l((e=qH(e),e.type=`f`,e),{suffix:nU[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var iU,aU,oU;sU({thousands:`,`,grouping:[3],currency:[`$`,``]});function sU(e){return iU=rU(e),aU=iU.format,oU=iU.formatPrefix,iU}function cU(e){return Math.max(0,-UH(Math.abs(e)))}function lU(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(UH(t)/3)))*3-UH(Math.abs(e)))}function uU(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,UH(t)-UH(e))+1}function dU(e,t,n,r){var i=uV(e,t,n),a;switch(r=qH(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=lU(i,o))&&(r.precision=a),oU(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=uU(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=cU(i))&&(r.precision=a-(r.type===`%`)*2)}return aU(r)}function fU(e){var t=e.domain;return e.ticks=function(e){var n=t();return cV(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return dU(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=lV(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function pU(){var e=BH();return e.copy=function(){return RH(e,pU())},vV.apply(e,arguments),fU(e)}function mU(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,jH),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return mU(e).unknown(t)},e=arguments.length?Array.from(e,jH):[0,1],fU(n)}function hU(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function gU(e){return Math.log(e)}function _U(e){return Math.exp(e)}function vU(e){return-Math.log(-e)}function yU(e){return-Math.exp(-e)}function bU(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function xU(e){return e===10?bU:e===Math.E?Math.exp:t=>e**+t}function SU(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function CU(e){return(t,n)=>-e(-t,n)}function wU(e){let t=e(gU,_U),n=t.domain,r=10,i,a;function o(){return i=SU(r),a=xU(r),n()[0]<0?(i=CU(i),a=CU(a),e(vU,yU)):e(gU,_U),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=cV(o,s,p))}else m=cV(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=qH(n)).precision==null&&(n.trim=!0),n=aU(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(hU(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function TU(){let e=wU(zH()).domain([1,10]);return e.copy=()=>RH(e,TU()).base(e.base()),vV.apply(e,arguments),e}function EU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function DU(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function OU(e){var t=1,n=e(EU(t),DU(t));return n.constant=function(n){return arguments.length?e(EU(t=+n),DU(t)):t},fU(n)}function kU(){var e=OU(zH());return e.copy=function(){return RH(e,kU()).constant(e.constant())},vV.apply(e,arguments)}function AU(e){return function(t){return t<0?-((-t)**+e):t**+e}}function jU(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function MU(e){return e<0?-e*e:e*e}function NU(e){var t=e(NH,NH),n=1;function r(){return n===1?e(NH,NH):n===.5?e(jU,MU):e(AU(n),AU(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},fU(t)}function PU(){var e=NU(zH());return e.copy=function(){return RH(e,PU()).exponent(e.exponent())},vV.apply(e,arguments),e}function FU(){return PU.apply(null,arguments).exponent(.5)}function IU(e){return Math.sign(e)*e*e}function LU(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function RU(){var e=BH(),t=[0,1],n=!1,r;function i(t){var i=LU(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(IU(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,jH)).map(IU)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return RU(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},vV.apply(i,arguments),fU(i)}function zU(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=gV(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[XB(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(UB),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return zU().domain(e).range(t).unknown(r)},vV.apply(a,arguments)}function BU(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[XB(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return BU().domain([e,t]).range(i).unknown(a)},vV.apply(fU(o),arguments)}function VU(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[XB(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return VU().domain(e).range(t).unknown(n)},vV.apply(i,arguments)}var HU=new Date,UU=new Date;function WU(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n<r)||!(a>0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(s<n&&n<r);return o},i.filter=n=>WU(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e){if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}}),n&&(i.count=(t,r)=>(HU.setTime(+t),UU.setTime(+r),e(HU),e(UU),Math.floor(n(HU,UU))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var GU=WU(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);GU.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?WU(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):GU),GU.range;var KU=1e3,qU=KU*60,JU=qU*60,YU=JU*24,XU=YU*7,ZU=YU*30,QU=YU*365,$U=WU(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*KU)},(e,t)=>(t-e)/KU,e=>e.getUTCSeconds());$U.range;var eW=WU(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*KU)},(e,t)=>{e.setTime(+e+t*qU)},(e,t)=>(t-e)/qU,e=>e.getMinutes());eW.range;var tW=WU(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*qU)},(e,t)=>(t-e)/qU,e=>e.getUTCMinutes());tW.range;var nW=WU(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*KU-e.getMinutes()*qU)},(e,t)=>{e.setTime(+e+t*JU)},(e,t)=>(t-e)/JU,e=>e.getHours());nW.range;var rW=WU(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*JU)},(e,t)=>(t-e)/JU,e=>e.getUTCHours());rW.range;var iW=WU(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*qU)/YU,e=>e.getDate()-1);iW.range;var aW=WU(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/YU,e=>e.getUTCDate()-1);aW.range;var oW=WU(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/YU,e=>Math.floor(e/YU));oW.range;function sW(e){return WU(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*qU)/XU)}var cW=sW(0),lW=sW(1),uW=sW(2),dW=sW(3),fW=sW(4),pW=sW(5),mW=sW(6);cW.range,lW.range,uW.range,dW.range,fW.range,pW.range,mW.range;function hW(e){return WU(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/XU)}var gW=hW(0),_W=hW(1),vW=hW(2),yW=hW(3),bW=hW(4),xW=hW(5),SW=hW(6);gW.range,_W.range,vW.range,yW.range,bW.range,xW.range,SW.range;var CW=WU(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());CW.range;var wW=WU(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());wW.range;var TW=WU(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());TW.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:WU(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),TW.range;var EW=WU(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());EW.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:WU(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),EW.range;function DW(e,t,n,r,i,a){let o=[[$U,1,KU],[$U,5,5*KU],[$U,15,15*KU],[$U,30,30*KU],[a,1,qU],[a,5,5*qU],[a,15,15*qU],[a,30,30*qU],[i,1,JU],[i,3,3*JU],[i,6,6*JU],[i,12,12*JU],[r,1,YU],[r,2,2*YU],[n,1,XU],[t,1,ZU],[t,3,3*ZU],[e,1,QU]];function s(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:c(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function c(t,n,r){let i=Math.abs(n-t)/r,a=GB(([,,e])=>e).right(o,i);if(a===o.length)return e.every(uV(t/QU,n/QU,r));if(a===0)return GU.every(Math.max(uV(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[s,c]}var[OW,kW]=DW(EW,wW,gW,oW,rW,tW),[AW,jW]=DW(TW,CW,cW,iW,nW,eW);function MW(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function NW(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function PW(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function FW(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=HW(i),u=UW(i),d=HW(a),f=UW(a),p=HW(o),m=UW(o),h=HW(s),g=UW(s),_=HW(c),v=UW(c),y={a:N,A:P,b:ee,B:F,c:null,d:uG,e:uG,f:hG,g:EG,G:OG,H:dG,I:fG,j:pG,L:mG,m:gG,M:_G,p:I,q:te,Q:ZG,s:QG,S:vG,u:yG,U:bG,V:SG,w:CG,W:wG,x:null,X:null,y:TG,Y:DG,Z:kG,"%":XG},b={a:L,A:ne,b:re,B:R,c:null,d:AG,e:AG,f:FG,g:KG,G:JG,H:jG,I:MG,j:NG,L:PG,m:IG,M:LG,p:ie,q:ae,Q:ZG,s:QG,S:RG,u:zG,U:BG,V:HG,w:UG,W:WG,x:null,X:null,y:GG,Y:qG,Z:YG,"%":XG},x={a:E,A:D,b:O,B:k,c:A,d:eG,e:eG,f:oG,g:XW,G:YW,H:nG,I:nG,j:tG,L:aG,m:$W,M:rG,p:T,q:QW,Q:cG,s:lG,S:iG,u:GW,U:KW,V:qW,w:WW,W:JW,x:j,X:M,y:XW,Y:YW,Z:ZW,"%":sG};y.x=S(n,y),y.X=S(r,y),y.c=S(t,y),b.x=S(n,b),b.X=S(r,b),b.c=S(t,b);function S(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=IW[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function C(e,t){return function(n){var r=PW(1900,void 0,1),i=w(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=NW(PW(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?_W.ceil(a):_W(a),a=aW.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=MW(PW(r.y,0,1)),o=a.getDay(),a=o>4||o===0?lW.ceil(a):lW(a),a=iW.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?NW(PW(r.y,0,1)).getUTCDay():MW(PW(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,NW(r)):MW(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in IW?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function P(e){return a[e.getDay()]}function ee(e){return c[e.getMonth()]}function F(e){return s[e.getMonth()]}function I(e){return i[+(e.getHours()>=12)]}function te(e){return 1+~~(e.getMonth()/3)}function L(e){return o[e.getUTCDay()]}function ne(e){return a[e.getUTCDay()]}function re(e){return c[e.getUTCMonth()]}function R(e){return s[e.getUTCMonth()]}function ie(e){return i[+(e.getUTCHours()>=12)]}function ae(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var IW={"-":``,_:` `,0:`0`},LW=/^\s*\d+/,RW=/^%/,zW=/[\\^$*+?|[\]().{}]/g;function BW(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function VW(e){return e.replace(zW,`\\$&`)}function HW(e){return RegExp(`^(?:`+e.map(VW).join(`|`)+`)`,`i`)}function UW(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function WW(e,t,n){var r=LW.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function GW(e,t,n){var r=LW.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function KW(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function qW(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function JW(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function YW(e,t,n){var r=LW.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function XW(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function ZW(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function QW(e,t,n){var r=LW.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function $W(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function eG(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function tG(e,t,n){var r=LW.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function nG(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function rG(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function iG(e,t,n){var r=LW.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function aG(e,t,n){var r=LW.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function oG(e,t,n){var r=LW.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function sG(e,t,n){var r=RW.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function cG(e,t,n){var r=LW.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function lG(e,t,n){var r=LW.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function uG(e,t){return BW(e.getDate(),t,2)}function dG(e,t){return BW(e.getHours(),t,2)}function fG(e,t){return BW(e.getHours()%12||12,t,2)}function pG(e,t){return BW(1+iW.count(TW(e),e),t,3)}function mG(e,t){return BW(e.getMilliseconds(),t,3)}function hG(e,t){return mG(e,t)+`000`}function gG(e,t){return BW(e.getMonth()+1,t,2)}function _G(e,t){return BW(e.getMinutes(),t,2)}function vG(e,t){return BW(e.getSeconds(),t,2)}function yG(e){var t=e.getDay();return t===0?7:t}function bG(e,t){return BW(cW.count(TW(e)-1,e),t,2)}function xG(e){var t=e.getDay();return t>=4||t===0?fW(e):fW.ceil(e)}function SG(e,t){return e=xG(e),BW(fW.count(TW(e),e)+(TW(e).getDay()===4),t,2)}function CG(e){return e.getDay()}function wG(e,t){return BW(lW.count(TW(e)-1,e),t,2)}function TG(e,t){return BW(e.getFullYear()%100,t,2)}function EG(e,t){return e=xG(e),BW(e.getFullYear()%100,t,2)}function DG(e,t){return BW(e.getFullYear()%1e4,t,4)}function OG(e,t){var n=e.getDay();return e=n>=4||n===0?fW(e):fW.ceil(e),BW(e.getFullYear()%1e4,t,4)}function kG(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+BW(t/60|0,`0`,2)+BW(t%60,`0`,2)}function AG(e,t){return BW(e.getUTCDate(),t,2)}function jG(e,t){return BW(e.getUTCHours(),t,2)}function MG(e,t){return BW(e.getUTCHours()%12||12,t,2)}function NG(e,t){return BW(1+aW.count(EW(e),e),t,3)}function PG(e,t){return BW(e.getUTCMilliseconds(),t,3)}function FG(e,t){return PG(e,t)+`000`}function IG(e,t){return BW(e.getUTCMonth()+1,t,2)}function LG(e,t){return BW(e.getUTCMinutes(),t,2)}function RG(e,t){return BW(e.getUTCSeconds(),t,2)}function zG(e){var t=e.getUTCDay();return t===0?7:t}function BG(e,t){return BW(gW.count(EW(e)-1,e),t,2)}function VG(e){var t=e.getUTCDay();return t>=4||t===0?bW(e):bW.ceil(e)}function HG(e,t){return e=VG(e),BW(bW.count(EW(e),e)+(EW(e).getUTCDay()===4),t,2)}function UG(e){return e.getUTCDay()}function WG(e,t){return BW(_W.count(EW(e)-1,e),t,2)}function GG(e,t){return BW(e.getUTCFullYear()%100,t,2)}function KG(e,t){return e=VG(e),BW(e.getUTCFullYear()%100,t,2)}function qG(e,t){return BW(e.getUTCFullYear()%1e4,t,4)}function JG(e,t){var n=e.getUTCDay();return e=n>=4||n===0?bW(e):bW.ceil(e),BW(e.getUTCFullYear()%1e4,t,4)}function YG(){return`+0000`}function XG(){return`%`}function ZG(e){return+e}function QG(e){return Math.floor(e/1e3)}var $G,eK,tK;nK({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function nK(e){return $G=FW(e),eK=$G.format,$G.parse,tK=$G.utcFormat,$G.utcParse,$G}function rK(e){return new Date(e)}function iK(e){return e instanceof Date?+e:+new Date(+e)}function aK(e,t,n,r,i,a,o,s,c,l){var u=BH(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?y:b)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,iK)):f().map(rK)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?x:l(t)},u.nice=function(e){var n=f();return(!e||typeof e.range!=`function`)&&(e=t(n[0],n[n.length-1],e??10)),e?f(hU(n,e)):u},u.copy=function(){return RH(u,aK(e,t,n,r,i,a,o,s,c,l))},u}function oK(){return vV.apply(aK(AW,jW,TW,CW,cW,iW,nW,eW,$U,eK).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function sK(){return vV.apply(aK(OW,kW,EW,wW,gW,aW,rW,tW,$U,tK).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function cK(){var e=0,t=1,n,r,i,a,o=NH,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(DH),l.rangeRound=u(OH),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function lK(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function uK(){var e=fU(cK()(NH));return e.copy=function(){return lK(e,uK())},yV.apply(e,arguments)}function dK(){var e=wU(cK()).domain([1,10]);return e.copy=function(){return lK(e,dK()).base(e.base())},yV.apply(e,arguments)}function fK(){var e=OU(cK());return e.copy=function(){return lK(e,fK()).constant(e.constant())},yV.apply(e,arguments)}function pK(){var e=NU(cK());return e.copy=function(){return lK(e,pK()).exponent(e.exponent())},yV.apply(e,arguments)}function mK(){return pK.apply(null,arguments).exponent(.5)}function hK(){var e=[],t=NH;function n(n){if(n!=null&&!isNaN(n=+n))return t((XB(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(UB),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>hV(e,r/t))},n.copy=function(){return hK(t).domain(e)},yV.apply(n,arguments)}function gK(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=NH,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=kH(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(DH),p.rangeRound=m(OH),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function _K(){var e=fU(gK()(NH));return e.copy=function(){return lK(e,_K())},yV.apply(e,arguments)}function vK(){var e=wU(gK()).domain([.1,1,10]);return e.copy=function(){return lK(e,vK()).base(e.base())},yV.apply(e,arguments)}function yK(){var e=OU(gK());return e.copy=function(){return lK(e,yK()).constant(e.constant())},yV.apply(e,arguments)}function bK(){var e=NU(gK());return e.copy=function(){return lK(e,bK()).exponent(e.exponent())},yV.apply(e,arguments)}function xK(){return bK.apply(null,arguments).exponent(.5)}var SK=s({scaleBand:()=>SV,scaleDiverging:()=>_K,scaleDivergingLog:()=>vK,scaleDivergingPow:()=>bK,scaleDivergingSqrt:()=>xK,scaleDivergingSymlog:()=>yK,scaleIdentity:()=>mU,scaleImplicit:()=>bV,scaleLinear:()=>pU,scaleLog:()=>TU,scaleOrdinal:()=>xV,scalePoint:()=>wV,scalePow:()=>PU,scaleQuantile:()=>zU,scaleQuantize:()=>BU,scaleRadial:()=>RU,scaleSequential:()=>uK,scaleSequentialLog:()=>dK,scaleSequentialPow:()=>pK,scaleSequentialQuantile:()=>hK,scaleSequentialSqrt:()=>mK,scaleSequentialSymlog:()=>fK,scaleSqrt:()=>FU,scaleSymlog:()=>kU,scaleThreshold:()=>VU,scaleTime:()=>oK,scaleUtc:()=>sK,tickFormat:()=>dU});function CK(e){if(e in SK)return SK[e]();var t=`scale${EO(e)}`;if(t in SK)return SK[t]()}function wK(e,t,n){if(typeof e==`function`)return e.copy().domain(t).range(n);if(e!=null){var r=CK(e);if(r!=null)return r.domain(t).range(n),r}}function TK(e,t,n,r){if(n!=null&&r!=null)return typeof e.scale==`function`?wK(e.scale,n,r):wK(t,n,r)}function EK(e){return`scale${EO(e)}`}function DK(e){return EK(e)in SK}var OK=(e,t,n)=>{if(e!=null){var{scale:r,type:i}=e;if(r===`auto`)return i===`category`&&n&&(n.indexOf(`LineChart`)>=0||n.indexOf(`AreaChart`)>=0||n.indexOf(`ComposedChart`)>=0&&!t)?`point`:i===`category`?`band`:`linear`;if(typeof r==`string`)return DK(r)?r:`point`}};function kK(e,t){for(var n=0,r=e.length,i=e[0]<e[e.length-1];n<r;){var a=Math.floor((n+r)/2);(i?e[a]<t:e[a]>t)?n=a+1:r=a}return n}function AK(e,t){if(e){var n=t??e.domain(),r=n.map(t=>e(t)??0),i=e.range();if(!(n.length===0||i.length<2))return e=>{var t=kK(r,e);if(t<=0)return n[0];if(t>=n.length)return n[n.length-1];var i=r[t-1]??0,a=r[t]??0;return Math.abs(e-i)<=Math.abs(e-a)?n[t-1]:n[t]}}}function jK(e){if(e!=null)return`invert`in e&&typeof e.invert==`function`?e.invert.bind(e):AK(e,void 0)}function MK(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function NK(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?MK(Object(n),!0).forEach(function(t){PK(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):MK(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function PK(e,t,n){return(t=FK(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function FK(e){var t=IK(e,`string`);return typeof t==`symbol`?t:t+``}function IK(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var LK=[0,`auto`],RK={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`bottom`,padding:{left:0,right:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`category`,unit:void 0,niceTicks:`auto`},zK=(e,t)=>e.cartesianAxis.xAxis[t],BK=(e,t)=>zK(e,t)??RK,VK={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:LK,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`left`,padding:{top:0,bottom:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`number`,unit:void 0,niceTicks:`auto`,width:60},HK=(e,t)=>e.cartesianAxis.yAxis[t],UK=(e,t)=>HK(e,t)??VK,WK={domain:[0,`auto`],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:``,range:[64,64],scale:`auto`,type:`number`,unit:``},GK=(e,t)=>e.cartesianAxis.zAxis[t]??WK,KK=(e,t,n)=>{switch(t){case`xAxis`:return BK(e,n);case`yAxis`:return UK(e,n);case`zAxis`:return GK(e,n);case`angleAxis`:return SB(e,n);case`radiusAxis`:return CB(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},qK=(e,t,n)=>{switch(t){case`xAxis`:return BK(e,n);case`yAxis`:return UK(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},JK=(e,t,n)=>{switch(t){case`xAxis`:return BK(e,n);case`yAxis`:return UK(e,n);case`angleAxis`:return SB(e,n);case`radiusAxis`:return CB(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},YK=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function XK(e,t){return n=>{switch(e){case`xAxis`:return`xAxisId`in n&&n.xAxisId===t;case`yAxis`:return`yAxisId`in n&&n.yAxisId===t;case`zAxis`:return`zAxisId`in n&&n.zAxisId===t;case`angleAxis`:return`angleAxisId`in n&&n.angleAxisId===t;case`radiusAxis`:return`radiusAxisId`in n&&n.radiusAxisId===t;default:return!1}}}var ZK=e=>e.graphicalItems.cartesianItems,QK=$([jB,MB],XK),$K=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0||!e.hide),eq=$([ZK,KK,QK],$K,{memoizeOptions:{resultEqualityCheck:LB}}),tq=$([eq],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(FB)),nq=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),rq=$([eq],nq),iq=e=>e.map(e=>e.data).filter(Boolean).flat(1),aq=$([eq],iq,{memoizeOptions:{resultEqualityCheck:LB}}),oq=(e,t)=>{var{chartData:n=[],dataStartIndex:r,dataEndIndex:i}=t;return e.length>0?e:n.slice(r,i+1)},sq=$([aq,Rz],oq),cq=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:QN(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:QN(e,t.dataKey)})),lq=$([sq,KK,eq],cq);function uq(e){if(vO(e)||e instanceof Date){var t=Number(e);if(GN(t))return t}}function dq(e){if(Array.isArray(e)){var t=[uq(e[0]),uq(e[1])];return Bz(t)?t:void 0}var n=uq(e);if(n!=null)return[n,n]}function fq(e){return e.map(uq).filter(DO)}function pq(e,t){var n=uq(e),r=uq(t);return n==null&&r==null?0:n==null?-1:r==null?1:n-r}var mq=$([lq],e=>e?.map(e=>e.value).sort(pq));function hq(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function gq(e,t,n){return!n||typeof t!=`number`||gO(t)||!n.length?[]:fq(n.flatMap(n=>{var r=QN(e,n.dataKey),i,a;if(Array.isArray(r)?[i,a]=r:i=a=r,!(!GN(i)||!GN(a)))return[t-i,t+a]}))}var _q=e=>JK(e,zB(e),BB(e)),vq=$([_q],e=>e?.dataKey),yq=$([tq,Rz,_q],PB),bq=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var[i,a]=t,o=r?[...a].reverse():a;return[i,{stackedData:aP(e,o.map(NB),n),graphicalItems:o}]}))},xq=$([yq,tq,iB,aB],bq),Sq=(e,t,n,r)=>{var{dataStartIndex:i,dataEndIndex:a}=t;if(r==null&&n!==`zAxis`){var o=dP(e,i,a);if(o==null||o[0]!==0||o[1]!==0)return o}},Cq=$([KK],e=>e.allowDataOverflow),wq=e=>{if(e==null||!(`domain`in e))return LK;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=fq(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??LK},Tq=$([KK],wq),Eq=$([Tq,Cq],Hz),Dq=$([xq,Iz,jB,Eq],Sq,{memoizeOptions:{resultEqualityCheck:IB}}),Oq=e=>e.errorBars,kq=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>hq(n,e)),Aq=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},jq=(e,t,n,r,i)=>{var a,o;if(n.length>0&&e.forEach(e=>{n.forEach(n=>{var s=r[n.id]?.filter(e=>hq(i,e)),c=QN(e,t.dataKey??n.dataKey),l=gq(e,c,s);if(l.length>=2){var u=Math.min(...l),d=Math.max(...l);(a==null||u<a)&&(a=u),(o==null||d>o)&&(o=d)}var f=dq(c);f!=null&&(a=a==null?f[0]:Math.min(a,f[0]),o=o==null?f[1]:Math.max(o,f[1]))})}),t?.dataKey!=null&&e.forEach(e=>{var n=dq(QN(e,t.dataKey));n!=null&&(a=a==null?n[0]:Math.min(a,n[0]),o=o==null?n[1]:Math.max(o,n[1]))}),GN(a)&&GN(o))return[a,o]},Mq=$([sq,KK,rq,Oq,jB],jq,{memoizeOptions:{resultEqualityCheck:IB}});function Nq(e){var{value:t}=e;if(vO(t)||t instanceof Date)return t}var Pq=(e,t,n)=>{var r=e.map(Nq).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&SO(r))?Fz(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},Fq=e=>e.referenceElements.dots,Iq=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),Lq=$([Fq,jB,MB],Iq),Rq=e=>e.referenceElements.areas,zq=$([Rq,jB,MB],Iq),Bq=e=>e.referenceElements.lines,Vq=$([Bq,jB,MB],Iq),Hq=(e,t)=>{if(e!=null){var n=fq(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Uq=$(Lq,jB,Hq),Wq=(e,t)=>{if(e!=null){var n=fq(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Gq=$([zq,jB],Wq);function Kq(e){if(e.x!=null)return fq([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:fq(t)}function qq(e){if(e.y!=null)return fq([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:fq(t)}var Jq=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?Kq(e):qq(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Yq=$(Uq,$([Vq,jB],Jq),Gq,(e,t,n)=>Aq(e,n,t)),Xq=(e,t,n,r,i,a,o,s)=>n??Uz(t,o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?Aq(r,a,i):Aq(a,i),e.allowDataOverflow),Zq=$([KK,Tq,Eq,Dq,Mq,Yq,yF,jB],Xq,{memoizeOptions:{resultEqualityCheck:IB}}),Qq=[0,1],$q=(e,t,n,r,i,a,o)=>{if(e!=null&&n!=null&&n.length!==0||o!==void 0){var{dataKey:s,type:c}=e,l=eP(t,a);return l&&s==null?Fz(0,n?.length??0):c===`category`?Pq(r,e,l):i===`expand`?Qq:o}},eJ=$([KK,yF,sq,lq,iB,jB,Zq],$q),tJ=$([KK,YK,oB],OK),nJ=(e,t,n)=>{var{niceTicks:r}=t;if(r!==`none`){var i=wq(t),a=Array.isArray(i)&&(i[0]===`auto`||i[1]===`auto`);if((r===`snap125`||r===`adaptive`)&&t!=null&&t.tickCount&&Bz(e)){if(a)return Qz(e,t.tickCount,t.allowDecimals,r);if(t.type===`number`)return $z(e,t.tickCount,t.allowDecimals,r)}if(r===`auto`&&n===`linear`&&t!=null&&t.tickCount){if(a&&Bz(e))return Qz(e,t.tickCount,t.allowDecimals,`adaptive`);if(t.type===`number`&&Bz(e))return $z(e,t.tickCount,t.allowDecimals,`adaptive`)}}},rJ=$([eJ,JK,tJ],nJ),iJ=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&Bz(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},aJ=$([KK,eJ,rJ,jB],iJ),oJ=$($(lq,KK,(e,t)=>{if(!(!t||t.type!==`number`)){var n=1/0,r=Array.from(fq(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;s<r.length-1;s++){var c=r[s],l=r[s+1];if(c!=null&&l!=null){var u=l-c;n=Math.min(n,u)}}return n/o}}),yF,nB,IP,(e,t,n,r,i)=>i,(e,t,n,r,i)=>{if(!GN(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=xO(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),sJ=(e,t,n)=>{var r=BK(e,t);return r==null||typeof r.padding!=`string`?0:oJ(e,`xAxis`,t,n,r.padding)},cJ=(e,t,n)=>{var r=UK(e,t);return r==null||typeof r.padding!=`string`?0:oJ(e,`yAxis`,t,n,r.padding)},lJ=$(BK,sJ,(e,t)=>{if(e==null)return{left:0,right:0};var{padding:n}=e;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),uJ=$(UK,cJ,(e,t)=>{if(e==null)return{top:0,bottom:0};var{padding:n}=e;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),dJ=$([IP,lJ,HP,VP,(e,t,n)=>n],(e,t,n,r,i)=>{var{padding:a}=r;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),fJ=$([IP,yF,uJ,HP,VP,(e,t,n)=>n],(e,t,n,r,i,a)=>{var{padding:o}=i;return a?[r.height-o.bottom,o.top]:t===`horizontal`?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),pJ=(e,t,n,r)=>{switch(t){case`xAxis`:return dJ(e,n,r);case`yAxis`:return fJ(e,n,r);case`zAxis`:return GK(e,n)?.range;case`angleAxis`:return OB(e);case`radiusAxis`:return kB(e,n);default:return}},mJ=$([KK,pJ],pB),hJ=$([KK,tJ,$([tJ,aJ],HB),mJ],TK),gJ=(e,t,n,r)=>{if(n!=null&&n.dataKey!=null){var{type:i,scale:a}=n;if(eP(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},_J=$([yF,lq,JK,jB],gJ),vJ=$([hJ],VB);$([hJ],jK),$([hJ,mq],AK),$([eq,Oq,jB],kq);function yJ(e,t){return e.id<t.id?-1:+(e.id>t.id)}var bJ=(e,t)=>t,xJ=(e,t,n)=>n,SJ=$(CP,bJ,xJ,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(yJ)),CJ=$(wP,bJ,xJ,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(yJ)),wJ=(e,t)=>({width:e.width,height:t.height}),TJ=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),EJ=$(IP,BK,wJ),DJ=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},OJ=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},kJ=$(bP,IP,SJ,bJ,xJ,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=wJ(t,n);o??=DJ(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),AJ=$(yP,IP,CJ,bJ,xJ,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=TJ(t,n);o??=OJ(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),jJ=$([IP,BK,(e,t)=>{var n=BK(e,t);if(n!=null)return kJ(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),MJ=$([IP,UK,(e,t)=>{var n=UK(e,t);if(n!=null)return AJ(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),NJ=$(IP,UK,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),PJ=(e,t,n)=>{switch(t){case`xAxis`:return EJ(e,n).width;case`yAxis`:return NJ(e,n).height;default:return}},FJ=(e,t,n,r)=>{if(n!=null){var{allowDuplicatedCategory:i,type:a,dataKey:o}=n,s=eP(e,r),c=t.map(e=>e.value);if(o&&s&&a===`category`&&i&&SO(c))return c}},IJ=$([yF,lq,KK,jB],FJ),LJ=$([yF,qK,tJ,vJ,IJ,_J,pJ,rJ,jB],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=eP(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}}),RJ=$([yF,JK,tJ,vJ,rJ,pJ,IJ,_J,jB],(e,t,n,r,i,a,o,s,c)=>{if(t!=null&&r!=null){var l=eP(e,c),{type:u,ticks:d,tickCount:f}=t,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?hO(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return GN(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(DO):l&&s?s.map((e,t)=>{var n=r.map(e);return GN(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(DO):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return GN(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(DO):r.domain().map((e,t)=>{var n=r.map(e);return GN(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(DO)}}),zJ=$([yF,JK,vJ,pJ,IJ,_J,jB],(e,t,n,r,i,a,o)=>{if(t!=null&&n!=null&&r!=null&&r[0]!==r[1]){var s=eP(e,o),{tickCount:c}=t,l=0;return l=o===`angleAxis`&&r?.length>=2?hO(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return GN(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(DO):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return GN(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(DO):n.domain().map((e,t)=>{var r=n.map(e);return GN(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(DO)}}),BJ=$(KK,vJ,(e,t)=>{if(e!=null&&t!=null)return NK(NK({},e),{},{scale:t})});$((e,t,n)=>GK(e,n),$([$([KK,tJ,eJ,mJ],TK)],VB),(e,t)=>{if(e!=null&&t!=null)return NK(NK({},e),{},{scale:t})});var VJ=$([yF,CP,wP],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}});$([(e,t,n)=>e.renderedTicks[t]?.[n]],e=>{if(!(!e||e.length===0))return t=>{var n=1/0,r=e[0];for(var i of e){var a=Math.abs(i.coordinate-t);a<n&&(n=a,r=i)}return r?.value}});var HJ=e=>e.options.defaultTooltipEventType,UJ=e=>e.options.validateTooltipEventTypes;function WJ(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function GJ(e,t){return WJ(t,HJ(e),UJ(e))}function KJ(e){return Q(t=>GJ(t,e))}var qJ=(e,t)=>{var n,r=Number(t);if(!(gO(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},JJ=e=>e.tooltip.settings,YJ={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},XJ=XM({name:`tooltip`,initialState:{itemInteraction:{click:YJ,hover:YJ},axisInteraction:{click:YJ,hover:YJ},keyboardInteraction:YJ,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:`hover`,axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(bI(t.payload))},prepare:FM()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:n,next:r}=t.payload,i=xM(e).tooltipItemPayloads.indexOf(bI(n));i>-1&&(e.tooltipItemPayloads[i]=bI(r))},prepare:FM()},removeTooltipEntrySettings:{reducer(e,t){var n=xM(e).tooltipItemPayloads.indexOf(bI(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:FM()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:ZJ,replaceTooltipEntrySettings:QJ,removeTooltipEntrySettings:$J,setTooltipSettingsState:eY,setActiveMouseOverItemIndex:tY,mouseLeaveItem:nY,mouseLeaveChart:rY,setActiveClickItemIndex:iY,setMouseOverAxisIndex:aY,setMouseClickAxisIndex:oY,setSyncInteraction:sY,setKeyboardInteraction:cY}=XJ.actions,lY=XJ.reducer;function uY(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dY(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uY(Object(n),!0).forEach(function(t){fY(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uY(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fY(e,t,n){return(t=pY(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pY(e){var t=mY(e,`string`);return typeof t==`symbol`?t:t+``}function mY(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function hY(e,t,n){return t===`axis`?n===`click`?e.axisInteraction.click:e.axisInteraction.hover:n===`click`?e.itemInteraction.click:e.itemInteraction.hover}function gY(e){return e.index!=null}var _Y=(e,t,n,r)=>{if(t==null)return YJ;var i=hY(e,t,n);if(i==null)return YJ;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(gY(i)){if(a)return dY(dY({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return dY(dY({},YJ),{},{coordinate:i.coordinate})};function vY(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function yY(e,t){var n=vY(e),r=t[0],i=t[1];return n!==void 0&&n>=Math.min(r,i)&&n<=Math.max(r,i)}function bY(e,t,n){if(n==null||t==null)return!0;var r=QN(e,t);return r==null||!Bz(n)||yY(r,n)}var xY=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!GN(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||bY(l,n,r)?String(c):null},SY=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},CY=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&r!=null){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},wY=e=>e.options.tooltipPayloadSearcher,TY=e=>e.tooltip;function EY(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DY(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?EY(Object(n),!0).forEach(function(t){OY(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):EY(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function OY(e,t,n){return(t=kY(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kY(e){var t=AY(e,`string`);return typeof t==`symbol`?t:t+``}function AY(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function jY(e){if(typeof e==`string`||typeof e==`number`)return e}function MY(e){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e}function NY(e){if(typeof e==`string`||typeof e==`number`)return e;if(typeof e==`function`)return t=>e(t)}function PY(e){if(typeof e==`string`)return e}function FY(e){if(!(typeof e!=`object`||!e))return{name:`name`in e?jY(e.name):void 0,unit:`unit`in e?MY(e.unit):void 0,dataKey:`dataKey`in e?NY(e.dataKey):void 0,payload:`payload`in e?e.payload:void 0,color:`color`in e?PY(e.color):void 0,fill:`fill`in e?PY(e.fill):void 0}}function IY(e,t){return e??t}var LY=(e,t,n,r,i,a,o)=>{if(t!=null&&a!=null){var{chartData:s,computedData:c,dataStartIndex:l,dataEndIndex:u}=n;return e.reduce((e,n)=>{var{dataDefinedOnItem:d,settings:f}=n,p=IY(d,s),m=Array.isArray(p)?WN(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_=r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?wO(m,r,i):a(m,t,c,g);return Array.isArray(_)?_.forEach(t=>{var n=FY(t),r=n?.name,i=n?.dataKey,a=n?.payload,o=DY(DY({},f),{},{name:r,unit:n?.unit,color:n?.color??f?.color,fill:n?.fill??f?.fill});e.push(hP({tooltipEntrySettings:o,dataKey:i,payload:a,value:QN(a,i),name:r==null?void 0:String(r)}))}):e.push(hP({tooltipEntrySettings:f,dataKey:h,payload:_,value:QN(_,h),name:QN(_,g)??f?.name})),e},[])}},RY=$([_q,YK,oB],OK),zY=$([$([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),_q,$([zB,BB],XK)],$K,{memoizeOptions:{resultEqualityCheck:LB}}),BY=$([zY],e=>e.filter(FB)),VY=$([$([zY],iq,{memoizeOptions:{resultEqualityCheck:LB}}),Iz],oq),HY=$([BY,Iz,_q],PB),UY=$([VY,_q,zY],cq),WY=$([_q],wq),GY=$([WY,$([_q],e=>e.allowDataOverflow)],Hz),KY=$([$([HY,$([zY],e=>e.filter(FB)),iB,aB],bq),Iz,zB,GY],Sq),qY=$([VY,_q,$([zY],nq),Oq,zB],jq,{memoizeOptions:{resultEqualityCheck:IB}}),JY=$([$([Fq,zB,BB],Iq),zB],Hq),YY=$([$([Rq,zB,BB],Iq),zB],Wq),XY=$([_q,yF,VY,UY,iB,zB,$([_q,WY,GY,KY,qY,$([JY,$([$([Bq,zB,BB],Iq),zB],Jq),YY],Aq),yF,zB],Xq)],$q),ZY=$([_q,XY,$([XY,_q,RY],nJ),zB],iJ),QY=e=>pJ(e,zB(e),BB(e),!1),$Y=$([_q,QY],pB),eX=$([$([_q,RY,ZY,$Y],TK)],VB),tX=$([yF,_q,RY,eX,QY,$([yF,UY,_q,zB],FJ),$([yF,UY,_q,zB],gJ),zB],(e,t,n,r,i,a,o,s)=>{if(t){var{type:c}=t,l=eP(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?hO(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return GN(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(DO):r.domain().map((e,t)=>{var n=r.map(e);return GN(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(DO)}}}),nX=$([HJ,UJ,JJ],(e,t,n)=>WJ(n.shared,e,t)),rX=e=>e.tooltip.settings.trigger,iX=e=>e.tooltip.settings.defaultIndex,aX=$([TY,nX,rX,iX],_Y),oX=$([aX,VY,vq,XY],xY),sX=$([tX,oX],qJ),cX=$([aX],e=>{if(e)return e.dataKey}),lX=$([aX],e=>{if(e)return e.graphicalItemId}),uX=$([TY,nX,rX,iX],CY),dX=$([aX,$([yP,bP,yF,IP,tX,iX,uX],SY)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),fX=$([aX],e=>e?.active??!1);$([$([uX,oX,Iz,vq,sX,wY,nX],LY)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function pX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?pX(Object(n),!0).forEach(function(t){hX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function hX(e,t,n){return(t=gX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gX(e){var t=_X(e,`string`);return typeof t==`symbol`?t:t+``}function _X(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var vX=()=>Q(_q),yX=()=>{var e=vX(),t=Q(tX),n=Q(eX);return mP(!e||!n?void 0:mX(mX({},e),{},{scale:n}),t)};function bX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?bX(Object(n),!0).forEach(function(t){SX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function SX(e,t,n){return(t=CX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function CX(e){var t=wX(e,`string`);return typeof t==`symbol`?t:t+``}function wX(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var TX=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.relativeY};if(e===`vertical`)return{x:r.relativeX,y:i.coordinate}}return{x:0,y:0}},EX=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,{radius:o}=r;return xX(xX(xX({},r),lz(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,{angle:c}=r;return xX(xX(xX({},r),lz(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function DX(e,t){var{relativeX:n,relativeY:r}=e;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var OX=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=0;o<a;o++){var s=o>0?n[o-1]?.coordinate:n[a-1]?.coordinate,c=n[o]?.coordinate,l=o>=a-1?n[0]?.coordinate:n[o+1]?.coordinate,u=void 0;if(s!=null&&c!=null&&l!=null){if(hO(c-s)!==hO(l-c)){var d=[];if(hO(l-c)===hO(i[1]-i[0])){u=l;var f=c+i[1]-i[0];d[0]=Math.min(f,(f+s)/2),d[1]=Math.max(f,(f+s)/2)}else{u=s;var p=l+i[1]-i[0];d[0]=Math.min(c,(p+c)/2),d[1]=Math.max(c,(p+c)/2)}var m=[Math.min(c,(u+c)/2),Math.max(c,(u+c)/2)];if(e>m[0]&&e<=m[1]||e>=d[0]&&e<=d[1])return n[o]?.index}else{var h=Math.min(s,l),g=Math.max(s,l);if(e>(h+c)/2&&e<=(g+c)/2)return n[o]?.index}}}else if(t)for(var _=0;_<a;_++){var v=t[_];if(v!=null){var y=t[_+1],b=t[_-1];if(_===0&&y!=null&&e<=(v.coordinate+y.coordinate)/2||_===a-1&&b!=null&&e>(v.coordinate+b.coordinate)/2||_>0&&_<a-1&&b!=null&&y!=null&&e>(v.coordinate+b.coordinate)/2&&e<=(v.coordinate+y.coordinate)/2)return v.index}}return-1},kX=()=>Q(oB),AX=(e,t)=>t,jX=(e,t,n)=>n,MX=(e,t,n,r)=>r,NX=$(tX,e=>BA(e,e=>e.coordinate)),PX=$([TY,AX,jX,MX],_Y),FX=$([PX,VY,vq,XY],xY),IX=(e,t,n)=>{if(t!=null){var r=TY(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},LX=$([TY,AX,jX,MX],CY),RX=$([yP,bP,yF,IP,tX,MX,LX],SY),zX=$([PX,RX],(e,t)=>e.coordinate??t),BX=$([tX,FX],qJ),VX=$([LX,FX,Iz,vq,BX,wY,AX],LY),HX=$([PX,FX],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),UX=(e,t,n,r,i,a,o)=>{if(!(!e||!n||!r||!i)&&DX(e,o)){var s=OX(_P(e,t),a,i,n,r),c=TX(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},WX=(e,t,n,r,i,a,o)=>{if(!(!e||!r||!i||!a||!n)){var s=hz(e,n);if(s){var c=OX(vP(s,t),o,a,r,i),l=EX(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},GX=(e,t,n,r,i,a,o,s)=>{if(!(!e||!t||!r||!i||!a))return t===`horizontal`||t===`vertical`?UX(e,t,r,i,a,o,s):WX(e,t,n,r,i,a,o)},KX=$(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),qX=$(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(uB));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:RB}});function JX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YX(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?JX(Object(n),!0).forEach(function(t){XX(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):JX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function XX(e,t,n){return(t=ZX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZX(e){var t=QX(e,`string`);return typeof t==`symbol`?t:t+``}function QX(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var $X={zIndexMap:Object.values(uB).reduce((e,t)=>YX(YX({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},eZ=new Set(Object.values(uB));function tZ(e){return eZ.has(e)}var nZ=XM({name:`zIndex`,initialState:$X,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:FM()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!tZ(n)&&delete e.zIndexMap[n])},prepare:FM()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n,element:r,isPanorama:i}=t.payload;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=bI(r):e.zIndexMap[n].element=bI(r):e.zIndexMap[n]={consumers:0,element:i?void 0:bI(r),panoramaElement:i?bI(r):void 0}},prepare:FM()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:FM()}}}),{registerZIndexPortal:rZ,unregisterZIndexPortal:iZ,registerZIndexPortalElement:aZ,unregisterZIndexPortalElement:oZ}=nZ.actions,sZ=nZ.reducer;function cZ(e){var{zIndex:t,children:n}=e,r=CF()&&t!==void 0&&t!==0,i=BP(),a=pA();(0,v.useLayoutEffect)(()=>r?(a(rZ({zIndex:t})),()=>{a(iZ({zIndex:t}))}):OO,[a,t,r]);var o=Q(e=>KX(e,t,i));return r?o?(0,Or.createPortal)(n,o):null:n}function lZ(){return lZ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},lZ.apply(null,arguments)}function uZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uZ(Object(n),!0).forEach(function(t){fZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fZ(e,t,n){return(t=pZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pZ(e){var t=mZ(e,`string`);return typeof t==`symbol`?t:t+``}function mZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function hZ(e){var{cursor:t,cursorComp:n,cursorProps:r}=e;return(0,v.isValidElement)(t)?(0,v.cloneElement)(t,r):(0,v.createElement)(n,r)}function gZ(e){var{coordinate:t,payload:n,index:r,offset:i,tooltipAxisBandSize:a,layout:o,cursor:s,tooltipEventType:c,chartName:l}=e,u=t,d=n,f=r;if(!s||!u||l!==`ScatterChart`&&c!==`axis`)return null;var p,m,h;if(l===`ScatterChart`)p=u,m=WL,h=uB.cursorLine;else if(l===`BarChart`)p=GL(o,u,i,a),m=tz,h=uB.cursorRectangle;else if(o===`radial`&&WO(u)){var{cx:g,cy:_,radius:y,startAngle:b,endAngle:x}=gz(u);p={cx:g,cy:_,startAngle:b,endAngle:x,innerRadius:y,outerRadius:y},m=jz,h=uB.cursorLine}else p={points:Mz(o,u,i)},m=NL,h=uB.cursorLine;var S=typeof s==`object`&&`className`in s?s.className:void 0,C=dZ(dZ(dZ(dZ({stroke:`#ccc`,pointerEvents:`none`},i),p),vE(s)),{},{payload:d,payloadIndex:f,className:Xt(`recharts-tooltip-cursor`,S)});return v.createElement(cZ,{zIndex:e.zIndex??h},v.createElement(hZ,{cursor:s,cursorComp:m,cursorProps:C}))}function _Z(e){var t=yX(),n=gF(),r=bF(),i=kX();return t==null||n==null||r==null||i==null?null:v.createElement(gZ,lZ({},e,{offset:n,layout:r,tooltipAxisBandSize:t,chartName:i}))}var vZ=(0,v.createContext)(null),yZ=()=>(0,v.useContext)(vZ),bZ=l(o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1).default,xZ=new bZ,SZ=`recharts.syncEvent.tooltip`,CZ=`recharts.syncEvent.brush`,wZ=(e,t)=>{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!gO(n))return e[n]}},TZ=XM({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),EZ=TZ.reducer,{createEventEmitter:DZ}=TZ.actions;function OZ(e){return e.tooltip.syncInteraction}var kZ=XM({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=bI(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:n,endIndex:r}=t.payload;n!=null&&(e.dataStartIndex=n),r!=null&&(e.dataEndIndex=r)}}}),{setChartData:AZ,setDataStartEndIndexes:jZ,setComputedData:MZ}=kZ.actions,NZ=kZ.reducer,PZ=[`x`,`y`];function FZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function IZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?FZ(Object(n),!0).forEach(function(t){LZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):FZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function LZ(e,t,n){return(t=RZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function RZ(e){var t=zZ(e,`string`);return typeof t==`symbol`?t:t+``}function zZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function BZ(e,t){if(e==null)return{};var n,r,i=VZ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function VZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function HZ(){var e=Q(sB),t=Q(lB),n=pA(),r=Q(cB),i=Q(tX),a=bF(),o=mF(),s=Q(e=>e.rootProps.className);(0,v.useEffect)(()=>{if(e==null)return OO;var s=(s,c,l)=>{if(t!==l&&e===s){if(r===`index`){var u;if(o&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,{x:f,y:p}=d,m=BZ(d,PZ),{x:h,y:g,width:_,height:v}=c.payload.sourceViewBox,y=IZ(IZ({},m),{},{x:o.x+(_?(f-h)/_:0)*o.width,y:o.y+(v?(p-g)/v:0)*o.height});n(IZ(IZ({},c),{},{payload:IZ(IZ({},c.payload),{},{coordinate:y})}))}else n(c);return}if(i!=null){var b;typeof r==`function`?b=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(b=i.find(e=>String(e.value)===c.payload.label));var{coordinate:x}=c.payload;if(b==null||c.payload.active===!1||x==null||o==null){n(sY({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}var{x:S,y:C}=x,w=Math.min(S,o.x+o.width),T=Math.min(C,o.y+o.height),E={x:a===`horizontal`?b.coordinate:w,y:a===`horizontal`?T:b.coordinate};n(sY({active:c.payload.active,coordinate:E,dataKey:c.payload.dataKey,index:String(b.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}};return xZ.on(SZ,s),()=>{xZ.off(SZ,s)}},[s,n,t,e,r,i,a,o])}function UZ(){var e=Q(sB),t=Q(lB),n=pA();(0,v.useEffect)(()=>{if(e==null)return OO;var r=(r,i,a)=>{t!==a&&e===r&&n(jZ(i))};return xZ.on(CZ,r),()=>{xZ.off(CZ,r)}},[n,t,e])}function WZ(){var e=pA();(0,v.useEffect)(()=>{e(DZ())},[e]),HZ(),UZ()}function GZ(e,t,n,r,i,a){var o=Q(n=>IX(n,e,t)),s=Q(lX),c=Q(lB),l=Q(sB),u=Q(cB),d=Q(OZ)?.active,f=mF();(0,v.useEffect)(()=>{if(!d&&l!=null&&c!=null){var e=sY({active:a,coordinate:n,dataKey:o,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:f,graphicalItemId:s});xZ.emit(SZ,l,e,c)}},[d,n,o,s,i,r,c,l,u,a,f])}function KZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?KZ(Object(n),!0).forEach(function(t){JZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function JZ(e,t,n){return(t=YZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YZ(e){var t=XZ(e,`string`);return typeof t==`symbol`?t:t+``}function XZ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ZZ(e){return e.dataKey}function QZ(e,t){return v.isValidElement(e)?v.cloneElement(e,t):typeof e==`function`?v.createElement(e,t):v.createElement(tL,t)}var $Z=[],eQ={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:`ease`,axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:`auto`,itemSorter:`name`,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:` : `,trigger:`hover`,useTranslate3d:!1,wrapperStyle:{}};function tQ(e){var t=$O(e,eQ),{active:n,allowEscapeViewBox:r,animationDuration:i,animationEasing:a,content:o,filterNull:s,isAnimationActive:c,offset:l,payloadUniqBy:u,position:d,reverseDirection:f,useTranslate3d:p,wrapperStyle:m,cursor:h,shared:g,trigger:_,defaultIndex:y,portal:b,axisId:x}=t,S=pA(),C=typeof y==`number`?String(y):y;(0,v.useEffect)(()=>{S(eY({shared:g,trigger:_,axisId:x,active:n,defaultIndex:C}))},[S,g,_,x,n,C]);var w=mF(),T=vL(),E=KJ(g),{activeIndex:D,isActive:O}=Q(e=>HX(e,E,_,C))??{},k=Q(e=>VX(e,E,_,C)),A=Q(e=>BX(e,E,_,C)),j=Q(e=>zX(e,E,_,C)),M=k,N=yZ(),P=n??O??!1,[ee,F]=WA([M,P]),I=E===`axis`?A:void 0;GZ(E,_,j,I,D,P);var te=b??N;if(te==null||w==null||E==null)return null;var L=M??$Z;P||(L=$Z),s&&L.length&&(L=aA(L.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),u,ZZ));var ne=L.length>0,re=qZ(qZ({},t),{},{payload:L,label:I,active:P,activeIndex:D,coordinate:j,accessibilityLayer:T}),R=v.createElement(_L,{allowEscapeViewBox:r,animationDuration:i,animationEasing:a,isAnimationActive:c,active:P,coordinate:j,hasPayload:ne,offset:l,position:d,reverseDirection:f,useTranslate3d:p,viewBox:w,wrapperStyle:m,lastBoundingBox:ee,innerRef:F,hasPortalFromProps:!!b},QZ(o,re));return v.createElement(v.Fragment,null,(0,Or.createPortal)(R,te),P&&v.createElement(_Z,{cursor:h,tooltipEventType:E,coordinate:j,payload:L,index:D}))}var nQ=e=>null;nQ.displayName=`Cell`;function rQ(e,t,n){return(t=iQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iQ(e){var t=aQ(e,`string`);return typeof t==`symbol`?t:t+``}function aQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var oQ=class{constructor(e){rQ(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function sQ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?sQ(Object(n),!0).forEach(function(t){lQ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sQ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lQ(e,t,n){return(t=uQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uQ(e){var t=dQ(e,`string`);return typeof t==`symbol`?t:t+``}function dQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var fQ=cQ({},{cacheSize:2e3,enableCache:!0}),pQ=new oQ(fQ.cacheSize),mQ={position:`absolute`,top:`-20000px`,left:0,padding:0,margin:0,border:`none`,whiteSpace:`pre`},hQ=`recharts_measurement_span`;function gQ(e,t){return`${e}|${t.fontSize||``}|${t.fontFamily||``}|${t.fontWeight||``}|${t.fontStyle||``}|${t.letterSpacing||``}|${t.textTransform||``}`}var _Q=(e,t)=>{try{var n=document.getElementById(hQ);n||(n=document.createElement(`span`),n.setAttribute(`id`,hQ),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,mQ,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},vQ=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||cL.isSsr)return{width:0,height:0};if(!fQ.enableCache)return _Q(e,t);var n=gQ(e,t),r=pQ.get(n);if(r)return r;var i=_Q(e,t);return pQ.set(n,i),i},yQ;function bQ(e,t,n){return(t=xQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xQ(e){var t=SQ(e,`string`);return typeof t==`symbol`?t:t+``}function SQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var CQ=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,wQ=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,TQ=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,EQ=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,DQ={cm:96/2.54,mm:96/25.4,pt:96/72,pc:16,in:96,Q:96/101.6,px:1},OQ=[`cm`,`mm`,`pt`,`pc`,`in`,`Q`,`px`];function kQ(e){return OQ.includes(e)}var AQ=`NaN`;function jQ(e,t){return e*DQ[t]}var MQ=class e{static parse(t){var[,n,r]=EQ.exec(t)??[];return n==null?e.NaN:new e(parseFloat(n),r??``)}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,gO(e)&&(this.unit=``),t!==``&&!TQ.test(t)&&(this.num=NaN,this.unit=``),kQ(t)&&(this.num=jQ(e,t),this.unit=`px`)}add(t){return this.unit===t.unit?new e(this.num+t.num,this.unit):new e(NaN,``)}subtract(t){return this.unit===t.unit?new e(this.num-t.num,this.unit):new e(NaN,``)}multiply(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num/t.num,this.unit||t.unit)}toString(){return`${this.num}${this.unit}`}isNaN(){return gO(this.num)}};yQ=MQ,bQ(MQ,`NaN`,new yQ(NaN,``));function NQ(e){if(e==null||e.includes(AQ))return AQ;for(var t=e;t.includes(`*`)||t.includes(`/`);){var[,n,r,i]=CQ.exec(t)??[],a=MQ.parse(n??``),o=MQ.parse(i??``),s=r===`*`?a.multiply(o):a.divide(o);if(s.isNaN())return AQ;t=t.replace(CQ,s.toString())}for(;t.includes(`+`)||/.-\d+(?:\.\d+)?/.test(t);){var[,c,l,u]=wQ.exec(t)??[],d=MQ.parse(c??``),f=MQ.parse(u??``),p=l===`+`?d.add(f):d.subtract(f);if(p.isNaN())return AQ;t=t.replace(wQ,p.toString())}return t}var PQ=/\(([^()]*)\)/;function FQ(e){for(var t=e,n;(n=PQ.exec(t))!=null;){var[,r]=n;t=t.replace(PQ,NQ(r))}return t}function IQ(e){var t=e.replace(/\s+/g,``);return t=FQ(t),t=NQ(t),t}function LQ(e){try{return IQ(e)}catch{return AQ}}function RQ(e){var t=LQ(e.slice(5,-1));return t===AQ?``:t}var zQ=[`x`,`y`,`lineHeight`,`capHeight`,`fill`,`scaleToFit`,`textAnchor`,`verticalAnchor`],BQ=[`dx`,`dy`,`angle`,`className`,`breakAll`];function VQ(){return VQ=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},VQ.apply(null,arguments)}function HQ(e,t){if(e==null)return{};var n,r,i=UQ(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function UQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var WQ=/[ \f\n\r\t\v\u2028\u2029]+/,GQ=e=>{var{children:t,breakAll:n,style:r}=e;try{var i=[];return TO(t)||(i=n?t.toString().split(``):t.toString().split(WQ)),{wordsWithComputedWidth:i.map(e=>({word:e,width:vQ(e,r).width})),spaceWidth:n?0:vQ(`\xA0`,r).width}}catch{return null}};function KQ(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}function qQ(e){return TO(e)||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var JQ=(e,t,n,r)=>e.reduce((e,i)=>{var{word:a,width:o}=i,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+n<Number(t)))s.words.push(a),s.width+=o+n;else{var c={words:[a],width:o};e.push(c)}return e},[]),YQ=e=>e.reduce((e,t)=>e.width>t.width?e:t),XQ=`…`,ZQ=(e,t,n,r,i,a,o,s)=>{var c=GQ({breakAll:n,style:r,children:e.slice(0,t)+XQ});if(!c)return[!1,[]];var l=JQ(c.wordsWithComputedWidth,a,o,s);return[l.length>i||YQ(l).width>Number(a),l]},QQ=(e,t,n,r,i)=>{var{maxLines:a,children:o,style:s,breakAll:c}=e,l=Z(a),u=String(o),d=JQ(t,r,n,i);if(!l||i||!(d.length>a||YQ(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),[_,v]=ZQ(u,g-1,c,s,a,r,n,i),[y]=ZQ(u,g,c,s,a,r,n,i);if(!_&&!y&&(f=g+1),_&&y&&(p=g-1),!_&&y){h=v;break}m++}return h||d},$Q=e=>[{words:TO(e)?[]:e.toString().split(WQ),width:void 0}],e$=e=>{var{width:t,scaleToFit:n,children:r,style:i,breakAll:a,maxLines:o}=e;if((t||n)&&!cL.isSsr){var s,c,l=GQ({breakAll:a,children:r,style:i});if(l){var{wordsWithComputedWidth:u,spaceWidth:d}=l;s=u,c=d}else return $Q(r);return QQ({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return $Q(r)},t$=`#808080`,n$={angle:0,breakAll:!1,capHeight:`0.71em`,fill:t$,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},r$=(0,v.forwardRef)((e,t)=>{var n=$O(e,n$),{x:r,y:i,lineHeight:a,capHeight:o,fill:s,scaleToFit:c,textAnchor:l,verticalAnchor:u}=n,d=HQ(n,zQ),f=(0,v.useMemo)(()=>e$({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:c,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,c,d.style,d.width]),{dx:p,dy:m,angle:h,className:g,breakAll:_}=d,y=HQ(d,BQ);if(!vO(r)||!vO(i)||f.length===0)return null;var b=Number(r)+(Z(p)?p:0),x=Number(i)+(Z(m)?m:0);if(!GN(b)||!GN(x))return null;var S;switch(u){case`start`:S=RQ(`calc(${o})`);break;case`middle`:S=RQ(`calc(${(f.length-1)/2} * -${a} + (${o} / 2))`);break;default:S=RQ(`calc(${f.length-1} * -${a})`)}var C=[],w=f[0];if(c&&w!=null){var T=w.width,{width:E}=d;C.push(`scale(${Z(E)&&Z(T)?E/T:1})`)}return h&&C.push(`rotate(${h}, ${b}, ${x})`),C.length&&(y.transform=C.join(` `)),v.createElement(`text`,VQ({},yE(y),{ref:t,x:b,y:x,className:Xt(`recharts-text`,g),textAnchor:l,fill:s.includes(`url`)?t$:s}),f.map((e,t)=>{var n=e.words.join(_?``:` `);return v.createElement(`tspan`,{x:b,dy:t===0?S:a,key:`${n}-${t}`},n)}))});r$.displayName=`Text`;function i$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i$(Object(n),!0).forEach(function(t){o$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o$(e,t,n){return(t=s$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s$(e){var t=c$(e,`string`);return typeof t==`symbol`?t:t+``}function c$(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var l$=e=>{var{viewBox:t,position:n,offset:r=0,parentViewBox:i,clamp:a}=e,{x:o,y:s,height:c,upperWidth:l,lowerWidth:u}=pF(t),d=o,f=o+(l-u)/2,p=(d+f)/2,m=(l+u)/2,h=d+l/2,g=c>=0?1:-1,_=g*r,v=g>0?`end`:`start`,y=g>0?`start`:`end`,b=l>=0?1:-1,x=b*r,S=b>0?`end`:`start`,C=b>0?`start`:`end`,w=i;if(n===`top`){var T={x:d+l/2,y:s-_,horizontalAnchor:`middle`,verticalAnchor:v};return a&&w&&(T.height=Math.max(s-w.y,0),T.width=l),T}if(n===`bottom`){var E={x:f+u/2,y:s+c+_,horizontalAnchor:`middle`,verticalAnchor:y};return a&&w&&(E.height=Math.max(w.y+w.height-(s+c),0),E.width=u),E}if(n===`left`){var D={x:p-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`};return a&&w&&(D.width=Math.max(D.x-w.x,0),D.height=c),D}if(n===`right`){var O={x:p+m+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`};return a&&w&&(O.width=Math.max(w.x+w.width-O.x,0),O.height=c),O}var k=a&&w?{width:m,height:c}:{};return n===`insideLeft`?a$({x:p+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`},k):n===`insideRight`?a$({x:p+m-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`},k):n===`insideTop`?a$({x:d+l/2,y:s+_,horizontalAnchor:`middle`,verticalAnchor:y},k):n===`insideBottom`?a$({x:f+u/2,y:s+c-_,horizontalAnchor:`middle`,verticalAnchor:v},k):n===`insideTopLeft`?a$({x:d+x,y:s+_,horizontalAnchor:C,verticalAnchor:y},k):n===`insideTopRight`?a$({x:d+l-x,y:s+_,horizontalAnchor:S,verticalAnchor:y},k):n===`insideBottomLeft`?a$({x:f+x,y:s+c-_,horizontalAnchor:C,verticalAnchor:v},k):n===`insideBottomRight`?a$({x:f+u-x,y:s+c-_,horizontalAnchor:S,verticalAnchor:v},k):n&&typeof n==`object`&&(Z(n.x)||_O(n.x))&&(Z(n.y)||_O(n.y))?a$({x:o+xO(n.x,m),y:s+xO(n.y,c),horizontalAnchor:`end`,verticalAnchor:`end`},k):a$({x:h,y:s+c/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},k)},u$=[`labelRef`],d$=[`content`];function f$(e,t){if(e==null)return{};var n,r,i=p$(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function p$(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function m$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?m$(Object(n),!0).forEach(function(t){g$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g$(e,t,n){return(t=_$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _$(e){var t=v$(e,`string`);return typeof t==`symbol`?t:t+``}function v$(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function y$(){return y$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y$.apply(null,arguments)}var b$=(0,v.createContext)(null),x$=e=>{var{x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o,children:s}=e,c=(0,v.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o}),[t,n,r,i,a,o]);return v.createElement(b$.Provider,{value:c},s)},S$=()=>{var e=(0,v.useContext)(b$),t=mF();return e||(t?pF(t):void 0)},C$=(0,v.createContext)(null),w$=()=>{var e=(0,v.useContext)(C$),t=Q(AB);return e||t},T$=e=>{var{value:t,formatter:n}=e,r=TO(e.children)?t:e.children;return typeof n==`function`?n(r):r},E$=e=>e!=null&&typeof e==`function`,D$=(e,t)=>hO(t-e)*Math.min(Math.abs(t-e),360),O$=(e,t,n,r,i)=>{var{offset:a,className:o}=e,{cx:s,cy:c,innerRadius:l,outerRadius:u,startAngle:d,endAngle:f,clockWise:p}=i,m=(l+u)/2,h=D$(d,f),g=h>=0?1:-1,_,y;switch(t){case`insideStart`:_=d+g*a,y=p;break;case`insideEnd`:_=f-g*a,y=!p;break;case`end`:_=f+g*a,y=p;break;default:throw Error(`Unsupported position ${t}`)}y=h<=0?y:!y;var b=lz(s,c,m,_),x=lz(s,c,m,_+(y?1:-1)*359),S=`M${b.x},${b.y}
162
162
  A${m},${m},0,1,${+!y},
163
- ${x.x},${x.y}`,C=hO(e.id)?uO(`recharts-radial-line-`):e.id;return v.createElement(`text`,l$({},r,{dominantBaseline:`central`,className:Xt(`recharts-radial-bar-label`,o)}),v.createElement(`defs`,null,v.createElement(`path`,{id:C,d:S})),v.createElement(`textPath`,{xlinkHref:`#${C}`},n))},y$=(e,t,n)=>{var{cx:r,cy:i,innerRadius:a,outerRadius:o,startAngle:s,endAngle:c}=e,l=(s+c)/2;if(n===`outside`){var{x:u,y:d}=$R(r,i,o+t,l);return{x:u,y:d,textAnchor:u>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var{x:f,y:p}=$R(r,i,(a+o)/2,l);return{x:f,y:p,textAnchor:`middle`,verticalAnchor:`middle`}},b$=e=>e!=null&&`cx`in e&&Z(e.cx),x$={angle:0,offset:5,zIndex:eB.label,position:`middle`,textBreakAll:!1};function S$(e){if(!b$(e))return e;var{cx:t,cy:n,outerRadius:r}=e,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function C$(e){var t=UO(e,x$),{viewBox:n,parentViewBox:r,position:i,value:a,children:o,content:s,className:c=``,textBreakAll:l,labelRef:u}=t,d=m$(),f=f$(),p=n==null?i===`center`?f:d??f:b$(n)?n:rF(n),m,h,g=S$(p);if(!p||hO(a)&&hO(o)&&!(0,v.isValidElement)(s)&&typeof s!=`function`)return null;var _=a$(a$({},t),{},{viewBox:p});if((0,v.isValidElement)(s)){var{labelRef:y}=_,b=n$(_,e$);return(0,v.cloneElement)(s,b)}if(typeof s==`function`){var{content:x}=_,S=n$(_,t$);if(m=(0,v.createElement)(s,S),(0,v.isValidElement)(m))return m}else m=h$(t);var C=lE(t);if(b$(p)){if(i===`insideStart`||i===`insideEnd`||i===`end`)return v$(t,i,m,C,p);h=y$(p,t.offset,t.position)}else{if(!g)return null;var w=$Q({viewBox:g,position:i,offset:t.offset,parentViewBox:b$(r)?void 0:r,clamp:!0});h=a$(a$({x:w.x,y:w.y,textAnchor:w.horizontalAnchor,verticalAnchor:w.verticalAnchor},w.width===void 0?{}:{width:w.width}),w.height===void 0?{}:{height:w.height})}return v.createElement(QX,{zIndex:t.zIndex},v.createElement(qQ,l$({ref:u,className:Xt(`recharts-label`,c)},C,h,{textAnchor:IQ(C.textAnchor)?C.textAnchor:h.textAnchor,breakAll:l}),m))}C$.displayName=`Label`;var w$=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?v.createElement(C$,l$({key:`label-implicit`},r)):cO(e)?v.createElement(C$,l$({key:`label-implicit`,value:e},r)):(0,v.isValidElement)(e)?e.type===C$?(0,v.cloneElement)(e,a$({key:`label-implicit`},r)):v.createElement(C$,l$({key:`label-implicit`,content:e},r)):g$(e)?v.createElement(C$,l$({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?v.createElement(C$,l$({},e,{key:`label-implicit`},r)):null};function T$(e){var{label:t,labelRef:n}=e;return w$(t,f$(),n)||null}var E$=[`valueAccessor`],D$=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function O$(){return O$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},O$.apply(null,arguments)}function k$(e,t){if(e==null)return{};var n,r,i=A$(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function A$(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var j$=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(LQ(t))return t},M$=(0,v.createContext)(void 0),N$=M$.Provider,P$=(0,v.createContext)(void 0);P$.Provider;function F$(){return(0,v.useContext)(M$)}function I$(){return(0,v.useContext)(P$)}function L$(e){var{valueAccessor:t=j$}=e,n=k$(e,E$),{dataKey:r,clockWise:i,id:a,textBreakAll:o,zIndex:s}=n,c=k$(n,D$),l=F$(),u=I$(),d=l||u;return!d||!d.length?null:v.createElement(QX,{zIndex:s??eB.label},v.createElement(yE,{className:`recharts-label-list`},d.map((e,i)=>{var s=hO(r)?t(e,i):HN(e.payload,r),l=hO(a)?{}:{id:`${a}-${i}`};return v.createElement(C$,O$({key:`label-${i}`},lE(e),c,l,{fill:n.fill??e.fill,parentViewBox:e.parentViewBox,value:s,textBreakAll:o,viewBox:e.viewBox,index:i,zIndex:0}))})))}L$.displayName=`LabelList`;function R$(e){var{label:t}=e;return t?t===!0?v.createElement(L$,{key:`labelList-implicit`}):v.isValidElement(t)||g$(t)?v.createElement(L$,{key:`labelList-implicit`,content:t}):typeof t==`object`?v.createElement(L$,O$({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}var z$=BM({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=uI(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=uI(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:B$,removeRadiusAxis:V$,addAngleAxis:H$,removeAngleAxis:U$}=z$.actions,W$=z$.reducer;function G$(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}var K$=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.suspense_list`),d=Symbol.for(`react.memo`),f=Symbol.for(`react.lazy`),p=Symbol.for(`react.view_transition`);function m(e){if(typeof e==`object`&&e){var m=e.$$typeof;switch(m){case t:switch(e=e.type,e){case r:case a:case i:case l:case u:case p:return e;default:switch(e&&=e.$$typeof,e){case s:case c:case f:case d:return e;case o:return e;default:return m}}case n:return m}}}e.isFragment=function(e){return m(e)===r}})),q$=o(((e,t)=>{t.exports=K$()}))(),J$=e=>typeof e==`string`?e:e?e.displayName||e.name||`Component`:``,Y$=null,X$=null,Z$=e=>{if(e===Y$&&Array.isArray(X$))return X$;var t=[];return v.Children.forEach(e,e=>{hO(e)||((0,q$.isFragment)(e)?t=t.concat(Z$(e.props.children)):t.push(e))}),X$=t,Y$=e,t};function Q$(e,t){var n=[],r=[];return r=Array.isArray(t)?t.map(e=>J$(e)):[J$(t)],Z$(e).forEach(e=>{var t=eO(e,`type.displayName`)||eO(e,`type.name`);t&&r.indexOf(t)!==-1&&n.push(e)}),n}function $$(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var e1,t1,n1,r1,i1;function a1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?a1(Object(n),!0).forEach(function(t){s1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function s1(e,t,n){return(t=c1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c1(e){var t=l1(e,`string`);return typeof t==`symbol`?t:t+``}function l1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function u1(){return u1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u1.apply(null,arguments)}function d1(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var f1=(e,t,n,r,i)=>{var a=n-r,o=iO(e1||=d1([`M `,`,`,``]),e,t);return o+=iO(t1||=d1([`L `,`,`,``]),e+n,t),o+=iO(n1||=d1([`L `,`,`,``]),e+n-a/2,t+i),o+=iO(r1||=d1([`L `,`,`,``]),e+n-a/2-r,t+i),o+=iO(i1||=d1([`L `,`,`,` Z`]),e,t),o},p1={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},m1=e=>{var t=UO(e,p1),{x:n,y:r,upperWidth:i,lowerWidth:a,height:o,className:s}=t,{animationEasing:c,animationDuration:l,animationBegin:u,isUpdateAnimationActive:d}=t,f=(0,v.useRef)(null),[p,m]=(0,v.useState)(-1),h=(0,v.useRef)(i),g=(0,v.useRef)(a),_=(0,v.useRef)(o),y=(0,v.useRef)(n),b=(0,v.useRef)(r),x=xR(e,`trapezoid-`);if((0,v.useEffect)(()=>{if(f.current&&f.current.getTotalLength)try{var e=f.current.getTotalLength();e&&m(e)}catch{}},[]),n!==+n||r!==+r||i!==+i||a!==+a||o!==+o||i===0&&a===0||o===0)return null;var S=Xt(`recharts-trapezoid`,s);if(!d)return v.createElement(`g`,null,v.createElement(`path`,u1({},lE(t),{className:S,d:f1(n,r,i,a,o)})));var C=h.current,w=g.current,T=_.current,E=y.current,D=b.current,O=`0px ${p===-1?1:p}px`,k=`${p}px ${p}px`,A=HL([`strokeDasharray`],l,c);return v.createElement(bR,{animationId:x,key:x,canBegin:p>0,duration:l,easing:c,isActive:d,begin:u},e=>{var s=pO(C,i,e),c=pO(w,a,e),l=pO(T,o,e),u=pO(E,n,e),d=pO(D,r,e);f.current&&(h.current=s,g.current=c,_.current=l,y.current=u,b.current=d);var p=e>0?{transition:A,strokeDasharray:k}:{strokeDasharray:O};return v.createElement(`path`,u1({},lE(t),{className:S,d:f1(u,d,s,c,l),ref:f,style:o1(o1({},p),t.style)}))})},h1=[`option`,`shapeType`,`activeClassName`,`inActiveClassName`];function g1(e,t){if(e==null)return{};var n,r,i=_1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _1(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function v1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?v1(Object(n),!0).forEach(function(t){b1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function b1(e,t,n){return(t=x1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x1(e){var t=S1(e,`string`);return typeof t==`symbol`?t:t+``}function S1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function C1(e,t){return y1(y1({},t),e)}function w1(e,t){return e===`symbols`}function T1(e){var{shapeType:t,elementProps:n}=e;switch(t){case`rectangle`:return v.createElement(GR,n);case`trapezoid`:return v.createElement(m1,n);case`sector`:return v.createElement(xz,n);case`symbols`:if(w1(t,n))return v.createElement(NO,n);break;case`curve`:return v.createElement(CL,n);default:return null}}function E1(e){return(0,v.isValidElement)(e)?e.props:e}function D1(e){var{option:t,shapeType:n,activeClassName:r=`recharts-active-shape`,inActiveClassName:i=`recharts-shape`}=e,a=g1(e,h1),o;if((0,v.isValidElement)(t))o=(0,v.cloneElement)(t,y1(y1({},a),E1(t)));else if(typeof t==`function`)o=t(a,a.index);else if($$(t)&&typeof t!=`boolean`){var s=C1(t,a);o=v.createElement(T1,{shapeType:n,elementProps:s})}else{var c=a;o=v.createElement(T1,{shapeType:n,elementProps:c})}return a.isActive?v.createElement(yE,{className:r},o):v.createElement(yE,{className:i},o)}var O1=(e,t,n)=>{var r=rA();return(i,a)=>o=>{e?.(i,a,o),r(GJ({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},k1=e=>{var t=rA();return(n,r)=>i=>{e?.(n,r,i),t(KJ())}},A1=(e,t,n)=>{var r=rA();return(i,a)=>o=>{e?.(i,a,o),r(JJ({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}};function j1(e){var{tooltipEntrySettings:t}=e,n=rA(),r=AP(),i=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{r||(i.current===null?n(VJ(t)):i.current!==t&&n(HJ({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,v.useLayoutEffect)(()=>()=>{i.current&&=(n(UJ(i.current)),null)},[n]),null}function M1(e){var{legendPayload:t}=e,n=rA(),r=AP(),i=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{r||(i.current===null?n(mI(t)):i.current!==t&&n(hI({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,v.useLayoutEffect)(()=>()=>{i.current&&=(n(gI(i.current)),null)},[n]),null}var N1=v.useId??(()=>{var[e]=v.useState(()=>uO(`uid-`));return e});function P1(e,t){var n=N1();return t||(e?`${e}-${n}`:n)}var F1=(0,v.createContext)(void 0),I1=e=>{var{id:t,type:n,children:r}=e,i=P1(`recharts-${n}`,t);return v.createElement(F1.Provider,{value:i},r(i))},L1=BM({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(uI(t.payload))},prepare:TM()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,i=dM(e).cartesianItems.indexOf(uI(n));i>-1&&(e.cartesianItems[i]=uI(r))},prepare:TM()},removeCartesianGraphicalItem:{reducer(e,t){var n=dM(e).cartesianItems.indexOf(uI(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:TM()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(uI(t.payload))},prepare:TM()},removePolarGraphicalItem:{reducer(e,t){var n=dM(e).polarItems.indexOf(uI(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:TM()},replacePolarGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,i=dM(e).polarItems.indexOf(uI(n));i>-1&&(e.polarItems[i]=uI(r))},prepare:TM()}}}),{addCartesianGraphicalItem:R1,replaceCartesianGraphicalItem:z1,removeCartesianGraphicalItem:B1,addPolarGraphicalItem:V1,removePolarGraphicalItem:H1,replacePolarGraphicalItem:U1}=L1.actions,W1=L1.reducer,G1=(0,v.memo)(e=>{var t=rA(),n=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{n.current===null?t(R1(e)):n.current!==e&&t(z1({prev:n.current,next:e})),n.current=e},[t,e]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(B1(n.current)),null)},[t]),null});function K1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function q1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?K1(Object(n),!0).forEach(function(t){J1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function J1(e,t,n){return(t=Y1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y1(e){var t=X1(e,`string`);return typeof t==`symbol`?t:t+``}function X1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Z1=BM({name:`cartesianAxis`,initialState:{xAxis:{},yAxis:{},zAxis:{}},reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=uI(t.payload)},prepare:TM()},replaceXAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.xAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.xAxis[n.id],e.xAxis[r.id]=uI(r))},prepare:TM()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:TM()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=uI(t.payload)},prepare:TM()},replaceYAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.yAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.yAxis[n.id],e.yAxis[r.id]=uI(r))},prepare:TM()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:TM()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=uI(t.payload)},prepare:TM()},replaceZAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.zAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.zAxis[n.id],e.zAxis[r.id]=uI(r))},prepare:TM()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:TM()},updateYAxisWidth(e,t){var{id:n,width:r}=t.payload,i=e.yAxis[n];if(i){var a=i.widthHistory||[];if(a.length===3&&a[0]===a[2]&&r===a[1]&&r!==i.width&&Math.abs(r-(a[0]??0))<=1)return;var o=[...a,r].slice(-3);e.yAxis[n]=q1(q1({},i),{},{width:r,widthHistory:o})}}}}),{addXAxis:Q1,replaceXAxis:$1,removeXAxis:e0,addYAxis:t0,replaceYAxis:n0,removeYAxis:r0,addZAxis:i0,replaceZAxis:a0,removeZAxis:o0,updateYAxisWidth:s0}=Z1.actions,c0=Z1.reducer,l0=$([$([EP],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),lP,uP],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),u0=()=>Q(l0),d0=(e,t,n)=>{var r=n??e;if(!hO(r))return dO(r,t,0)},f0=(e,t,n)=>{var r={},i=e.filter(TB),a=e.filter(e=>e.stackId==null),o=i.reduce((e,t)=>{var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},r),s=Object.entries(o).map(e=>{var[r,i]=e;return{stackId:r,dataKeys:i.map(e=>e.dataKey),barSize:d0(t,n,i[0]?.barSize)}}),c=a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>e!=null),barSize:d0(t,n,e.barSize)}));return[...s,...c]};function p0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?p0(Object(n),!0).forEach(function(t){h0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function h0(e,t,n){return(t=g0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g0(e){var t=_0(e,`string`);return typeof t==`symbol`?t:t+``}function _0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function v0(e,t,n,r,i){var a=r.length;if(!(a<1)){var o=dO(e,n,0,!0),s,c=[];if(FN(r[0]?.barSize)){var l=!1,u=n/a,d=r.reduce((e,t)=>e+(t.barSize||0),0);d+=(a-1)*o,d>=n&&(d-=(a-1)*o,o=0),d>=n&&u>0&&(l=!0,u*=.9,d=a*u);var f={offset:((n-d)/2>>0)-o,size:0};s=r.reduce((e,t)=>{var n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:f.offset+f.size+o,size:l?u:t.barSize??0}},r=[...e,n];return f=n.position,r},c)}else{var p=dO(t,n,0,!0);n-2*p-(a-1)*o<=0&&(o=0);var m=(n-2*p-(a-1)*o)/a;m>1&&(m>>=0);var h=FN(i)?Math.min(m,i):m;s=r.reduce((e,t,n)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p+(m+o)*n+(m-h)/2,size:h}}],c)}return s}}var y0=(e,t,n,r,i,a,o)=>{var s=hO(o)?t:o,c=v0(n,r,i===a?a:i,e,s);return i!==a&&c!=null&&(c=c.map(e=>m0(m0({},e),{},{position:m0(m0({},e.position),{},{offset:e.position.offset-i/2})}))),c},b0=(e,t)=>{var n=CB(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var i=e[r];if(i){var{stackedData:a}=i;if(a)return a.find(e=>e.key===n)}}}},x0=(e,t)=>{if(e!=null&&t!=null){var n=e.find(e=>e.stackId===t.stackId&&t.dataKey!=null&&e.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function S0(e,t){return e&&typeof e==`object`&&`zIndex`in e&&typeof e.zIndex==`number`&&FN(e.zIndex)?e.zIndex:t}var C0=e=>{var{chartData:t}=e,n=rA(),r=AP();return(0,v.useEffect)(()=>r?()=>{}:(n(bZ(t)),()=>{n(bZ(void 0))}),[t,n,r]),null},w0={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},T0=BM({name:`brush`,initialState:w0,reducers:{setBrushSettings(e,t){return t.payload==null?w0:t.payload}}}),{setBrushSettings:E0}=T0.actions,D0=T0.reducer;function O0(e){return(e%180+180)%180}var k0=function(e){var{width:t,height:n}=e,r=O0(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r<Math.PI-i?n/Math.sin(r):t/Math.cos(r);return Math.abs(a)},A0=BM({name:`referenceElements`,initialState:{dots:[],areas:[],lines:[]},reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=dM(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=dM(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(uI(t.payload))},removeLine:(e,t)=>{var n=dM(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:j0,removeDot:M0,addArea:N0,removeArea:P0,addLine:F0,removeLine:I0}=A0.actions,L0=A0.reducer,R0=(0,v.createContext)(void 0),z0=e=>{var{children:t}=e,[n]=(0,v.useState)(`${uO(`recharts`)}-clip`),r=u0();if(r==null)return null;var{x:i,y:a,width:o,height:s}=r;return v.createElement(R0.Provider,{value:n},v.createElement(`defs`,null,v.createElement(`clipPath`,{id:n},v.createElement(`rect`,{x:i,y:a,height:s,width:o}))),t)};function B0(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;r<e.length;r+=t){var i=e[r];i!==void 0&&n.push(i)}return n}function V0(e,t,n){return k0({width:e.width+t.width,height:e.height+t.height},n)}function H0(e,t,n){var r=n===`width`,{x:i,y:a,width:o,height:s}=e;return t===1?{start:r?i:a,end:r?i+o:a+s}:{start:r?i+o:a+s,end:r?i:a}}function U0(e,t,n,r,i){if(e*t<e*r||e*t>e*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function W0(e,t){return B0(e,t+1)}function G0(e,t,n,r,i){for(var a=(r||[]).slice(),{start:o,end:s}=t,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:B0(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||U0(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function K0(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var{start:o,end:s}=t,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||U0(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m<a&&(p=f(),p===0||p!==1);m+=c);if(d){for(var h=[],g=l;g<a;g+=c){var _=r[g];_!=null&&h.push(_)}return h}}return[]}function q0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function J0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?q0(Object(n),!0).forEach(function(t){Y0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Y0(e,t,n){return(t=X0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X0(e){var t=Z0(e,`string`);return typeof t==`symbol`?t:t+``}function Z0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Q0(e,t,n,r,i){for(var a=(r||[]).slice(),o=a.length,{start:s}=t,{end:c}=t,l=function(t){var r=a[t];if(r==null)return 1;var l=r,u,d=()=>(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=J0(J0({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=J0(J0({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&U0(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=J0(J0({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function $0(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,{start:c,end:l}=t;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=J0(J0({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&U0(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=J0(J0({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=J0(J0({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=J0(J0({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&U0(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=J0(J0({},a),{},{isShow:!0}))},h=0;h<p;h++)if(m(h))continue;return o}function e2(e,t,n){var{tick:r,ticks:i,viewBox:a,minTickGap:o,orientation:s,interval:c,tickFormatter:l,unit:u,angle:d}=e;if(!i||!i.length||!r)return[];if(Z(c)||QI.isSsr)return W0(i,Z(c)?c:0)??[];var f=[],p=s===`top`||s===`bottom`?`width`:`height`,m=u&&p===`width`?cQ(u,{fontSize:t,letterSpacing:n}):{width:0,height:0},h=(e,r)=>{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?V0(cQ(i,{fontSize:t,letterSpacing:n}),m,d):cQ(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?aO(_.coordinate-g.coordinate):1,y=H0(a,v,p);return c===`equidistantPreserveStart`?G0(v,y,h,i,o):c===`equidistantPreserveEnd`?K0(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?$0(v,y,h,i,o,c===`preserveStartEnd`):Q0(v,y,h,i,o),f.filter(e=>e.isShow))}var t2=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:i=0,tickMargin:a=0}=e,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>o&&(o=t.width)}});var s=n?n.getBoundingClientRect().width:0,c=i+a,l=o+c+s+(n?r:0);return Math.round(l)}return 0},n2=BM({name:`renderedTicks`,initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var{axisType:n,axisId:r,ticks:i}=t.payload;e[n][r]=uI(i)},removeRenderedTicks:(e,t)=>{var{axisType:n,axisId:r}=t.payload;delete e[n][r]}}}),{setRenderedTicks:r2,removeRenderedTicks:i2}=n2.actions,a2=n2.reducer,o2=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`,`axisId`];function s2(e,t){if(e==null)return{};var n,r,i=c2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function c2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function l2(){return l2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l2.apply(null,arguments)}function u2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?u2(Object(n),!0).forEach(function(t){f2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function f2(e,t,n){return(t=p2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p2(e){var t=m2(e,`string`);return typeof t==`symbol`?t:t+``}function m2(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var h2={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:`bottom`,ticks:[],stroke:`#666`,tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:`preserveEnd`,zIndex:eB.axis};function g2(e){var{x:t,y:n,width:r,height:i,orientation:a,mirror:o,axisLine:s,otherSvgProps:c}=e;if(!s)return null;var l=d2(d2(d2({},c),sE(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var u=+(a===`top`&&!o||a===`bottom`&&o);l=d2(d2({},l),{},{x1:t,y1:n+u*i,x2:t+r,y2:n+u*i})}else{var d=+(a===`left`&&!o||a===`right`&&o);l=d2(d2({},l),{},{x1:t+d*r,y1:n,x2:t+d*r,y2:n+i})}return v.createElement(`line`,l2({},l,{className:Xt(`recharts-cartesian-axis-line`,eO(s,`className`))}))}function _2(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=Z(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case`top`:l=u=e.coordinate,f=n+ +!s*i,d=f-h*g,m=d-h*c,p=_;break;case`left`:d=f=e.coordinate,u=t+ +!s*r,l=u-h*g,p=l-h*c,m=_;break;case`right`:d=f=e.coordinate,u=t+ +s*r,l=u+h*g,p=l+h*c,m=_;break;default:l=u=e.coordinate,f=n+ +s*i,d=f+h*g,m=d+h*c,p=_}return{line:{x1:l,y1:d,x2:u,y2:f},tick:{x:p,y:m}}}function v2(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function y2(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function b2(e){var{option:t,tickProps:n,value:r}=e,i,a=Xt(n.className,`recharts-cartesian-axis-tick-value`);if(v.isValidElement(t))i=v.cloneElement(t,d2(d2({},n),{},{className:a}));else if(typeof t==`function`)i=t(d2(d2({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=Xt(o,G$(t))),i=v.createElement(qQ,l2({},n,{className:o}),r)}return i}function x2(e){var{ticks:t,axisType:n,axisId:r}=e,i=rA();return(0,v.useEffect)(()=>r==null||n==null?vO:(i(r2({ticks:t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),axisId:r,axisType:n})),()=>{i(i2({axisId:r,axisType:n}))}),[i,t,r,n]),null}var S2=(0,v.forwardRef)((e,t)=>{var{ticks:n=[],tick:r,tickLine:i,stroke:a,tickFormatter:o,unit:s,padding:c,tickTextProps:l,orientation:u,mirror:d,x:f,y:p,width:m,height:h,tickSize:g,tickMargin:_,fontSize:y,letterSpacing:b,getTicksConfig:x,events:S,axisType:C,axisId:w}=e,T=e2(d2(d2({},x),{},{ticks:n}),y,b),E=sE(x),D=cE(r),O=IQ(E.textAnchor)?E.textAnchor:v2(u,d),k=y2(u,d),A={};typeof i==`object`&&(A=i);var j=d2(d2({},E),{},{fill:`none`},A),M=T.map(e=>d2({entry:e},_2(e,f,p,m,h,u,g,d,_))),N=M.map(e=>{var{entry:t,line:n}=e;return v.createElement(yE,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},i&&v.createElement(`line`,l2({},j,n,{className:Xt(`recharts-cartesian-axis-tick-line`,eO(i,`className`))})))}),P=M.map((e,t)=>{var{entry:n,tick:i}=e,u=d2(d2({},d2(d2(d2(d2({verticalAnchor:k},E),{},{textAnchor:O,stroke:`none`,fill:a},i),{},{index:t,payload:n,visibleTicksCount:T.length,tickFormatter:o,padding:c},l),{},{angle:l?.angle??E.angle??0})),D);return v.createElement(yE,l2({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},LO(S,n,t)),r&&v.createElement(b2,{option:r,tickProps:u,value:`${typeof o==`function`?o(n.value,t):n.value}${s||``}`}))});return v.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${C}-ticks`},v.createElement(x2,{ticks:T,axisId:w,axisType:C}),P.length>0&&v.createElement(QX,{zIndex:eB.label},v.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${C}-tick-labels`,ref:t},P)),N.length>0&&v.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${C}-tick-lines`},N))}),C2=(0,v.forwardRef)((e,t)=>{var{axisLine:n,width:r,height:i,className:a,hide:o,ticks:s,axisType:c,axisId:l}=e,u=s2(e,o2),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``),h=(0,v.useRef)(null);(0,v.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>t2({ticks:h.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var g=(0,v.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);h.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==d||a!==p)&&(f(i),m(a))}}},[d,p]);return o||r!=null&&r<=0||i!=null&&i<=0?null:v.createElement(QX,{zIndex:e.zIndex},v.createElement(yE,{className:Xt(`recharts-cartesian-axis`,a)},v.createElement(g2,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:sE(e)}),v.createElement(S2,{ref:g,axisType:c,events:u,fontSize:d,getTicksConfig:e,height:e.height,letterSpacing:p,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:l}),v.createElement(d$,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},v.createElement(T$,{label:e.label,labelRef:e.labelRef}),e.children)))}),w2=v.forwardRef((e,t)=>{var n=UO(e,h2);return v.createElement(C2,l2({},n,{ref:t}))});w2.displayName=`CartesianAxis`;var T2=[`x1`,`y1`,`x2`,`y2`,`key`],E2=[`offset`],D2=[`xAxisId`,`yAxisId`],O2=[`xAxisId`,`yAxisId`];function k2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function A2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?k2(Object(n),!0).forEach(function(t){j2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function j2(e,t,n){return(t=M2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M2(e){var t=N2(e,`string`);return typeof t==`symbol`?t:t+``}function N2(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function P2(){return P2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P2.apply(null,arguments)}function F2(e,t){if(e==null)return{};var n,r,i=I2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function I2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var L2=e=>{var{fill:t}=e;if(!t||t===`none`)return null;var{fillOpacity:n,x:r,y:i,width:a,height:o,ry:s}=e;return v.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function R2(e){var{option:t,lineItemProps:n}=e,r;if(v.isValidElement(t))r=v.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var{x1:i,y1:a,x2:o,y2:s,key:c}=n,l=sE(F2(n,T2))??{},{offset:u}=l,d=F2(l,E2);r=v.createElement(`line`,P2({},d,{x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function z2(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=F2(e,D2),c=i.map((e,i)=>{var a=A2(A2({},s),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${i}`,index:i});return v.createElement(R2,{key:`line-${i}`,option:r,lineItemProps:a})});return v.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},c)}function B2(e){var{y:t,height:n,vertical:r=!0,verticalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=F2(e,O2),c=i.map((e,i)=>{var a=A2(A2({},s),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${i}`,index:i});return v.createElement(R2,{option:r,lineItemProps:a,key:`line-${i}`})});return v.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},c)}function V2(e){var{horizontalFill:t,fillOpacity:n,x:r,y:i,width:a,height:o,horizontalPoints:s,horizontal:c=!0}=e;if(!c||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return v.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return v.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function H2(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:i,y:a,width:o,height:s,verticalPoints:c}=e;if(!t||!n||!n.length)return null;var l=c.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,t)=>{var c=l[t+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=t%n.length;return v.createElement(`rect`,{key:`react-${t}`,x:e,y:a,width:u,height:s,stroke:`none`,fill:n[d],fillOpacity:r,className:`recharts-cartesian-grid-bg`})});return v.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},u)}var U2=(e,t)=>{var{xAxis:n,width:r,height:i,offset:a}=e;return GN(e2(A2(A2(A2({},h2),n),{},{ticks:KN(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},W2=(e,t)=>{var{yAxis:n,width:r,height:i,offset:a}=e;return GN(e2(A2(A2(A2({},h2),n),{},{ticks:KN(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},G2={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:`#ccc`,fill:`none`,verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:eB.grid};function K2(e){var t=sF(),n=cF(),r=oF(),i=A2(A2({},UO(e,G2)),{},{x:Z(e.x)?e.x:r.left,y:Z(e.y)?e.y:r.top,width:Z(e.width)?e.width:r.width,height:Z(e.height)?e.height:r.height}),{xAxisId:a,yAxisId:o,x:s,y:c,width:l,height:u,syncWithTicks:d,horizontalValues:f,verticalValues:p}=i,m=AP(),h=Q(e=>DJ(e,`xAxis`,a,m)),g=Q(e=>DJ(e,`yAxis`,o,m));if(!IN(l)||!IN(u)||!Z(s)||!Z(c))return null;var _=i.verticalCoordinatesGenerator||U2,y=i.horizontalCoordinatesGenerator||W2,{horizontalPoints:b,verticalPoints:x}=i;if((!b||!b.length)&&typeof y==`function`){var S=f&&f.length,C=y({yAxis:g?A2(A2({},g),{},{ticks:S?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},S?!0:d);IP(Array.isArray(C),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof C}]`),Array.isArray(C)&&(b=C)}if((!x||!x.length)&&typeof _==`function`){var w=p&&p.length,T=_({xAxis:h?A2(A2({},h),{},{ticks:w?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);IP(Array.isArray(T),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(x=T)}return v.createElement(QX,{zIndex:i.zIndex},v.createElement(`g`,{className:`recharts-cartesian-grid`},v.createElement(L2,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),v.createElement(V2,P2({},i,{horizontalPoints:b})),v.createElement(H2,P2({},i,{verticalPoints:x})),v.createElement(z2,P2({},i,{offset:r,horizontalPoints:b,xAxis:h,yAxis:g})),v.createElement(B2,P2({},i,{offset:r,verticalPoints:x,xAxis:h,yAxis:g}))))}K2.displayName=`CartesianGrid`;var q2=BM({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:i}=t.payload;e[n]&&(e[n]=e[n].map(e=>e.dataKey===r.dataKey&&e.direction===r.direction?i:e))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(e=>e.dataKey!==r.dataKey||e.direction!==r.direction))}}}),{addErrorBar:J2,replaceErrorBar:Y2,removeErrorBar:X2}=q2.actions,Z2=q2.reducer,Q2=[`children`];function $2(e,t){if(e==null)return{};var n,r,i=e4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function e4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var t4=(0,v.createContext)({data:[],xAxisId:`xAxis-0`,yAxisId:`yAxis-0`,dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function n4(e){var{children:t}=e,n=$2(e,Q2);return v.createElement(t4.Provider,{value:n},t)}function r4(e,t){var n=Q(t=>AK(t,e)),r=Q(e=>NK(e,t)),i=n?.allowDataOverflow??OK.allowDataOverflow,a=r?.allowDataOverflow??jK.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function i4(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,i=u0(),{needClipX:a,needClipY:o,needClip:s}=r4(t,n);if(!s||!i)return null;var{x:c,y:l,width:u,height:d}=i;return v.createElement(`clipPath`,{id:`clipPath-${r}`},v.createElement(`rect`,{x:a?c:c-u/2,y:o?l:l-d/2,width:a?u:u*2,height:o?d:d*2}))}function a4(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function o4(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var s4=`Invariant failed`;function c4(e,t){if(!e)throw Error(s4)}function l4(){return l4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l4.apply(null,arguments)}function u4(e){return v.createElement(D1,l4({shapeType:`rectangle`,activeClassName:`recharts-active-bar`,inActiveClassName:`recharts-inactive-bar`},e))}var d4=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(Z(e))return e;var i=Z(n)||hO(n);return i?e(n,r):(!i&&c4(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},f4=(e,t,n)=>n,p4=$([VK,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),m4=$([p4],e=>e?.maxBarSize),h4=(e,t,n,r)=>r,g4=$([lF,VK,a4,o4,f4],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),_4=(e,t,n)=>{var r=lF(e),i=a4(e,t),a=o4(e,t);if(i!=null&&a!=null)return r===`horizontal`?dq(e,`yAxis`,a,n):dq(e,`xAxis`,i,n)},v4=$([g4,qz,(e,t)=>{var n=lF(e),r=a4(e,t),i=o4(e,t);if(r!=null&&i!=null)return n===`horizontal`?wJ(e,`xAxis`,r):wJ(e,`yAxis`,i)}],f0),y4=(e,t,n)=>{var r=p4(e,t);if(r==null)return 0;var i=a4(e,t),a=o4(e,t);if(i==null||a==null)return 0;var o=lF(e),s=Wz(e),{maxBarSize:c}=r,l=hO(c)?s:c,u,d;return o===`horizontal`?(u=AJ(e,`xAxis`,i,n),d=kJ(e,`xAxis`,i,n)):(u=AJ(e,`yAxis`,a,n),d=kJ(e,`yAxis`,a,n)),iP(u,d,!0)??l??0},b4=(e,t,n)=>{var r=lF(e),i=a4(e,t),a=o4(e,t);if(i!=null&&a!=null){var o,s;return r===`horizontal`?(o=AJ(e,`xAxis`,i,n),s=kJ(e,`xAxis`,i,n)):(o=AJ(e,`yAxis`,a,n),s=kJ(e,`yAxis`,a,n)),iP(o,s)}},x4=$([EP,OP,(e,t,n)=>{var r=a4(e,t);if(r!=null)return AJ(e,`xAxis`,r,n)},(e,t,n)=>{var r=o4(e,t);if(r!=null)return AJ(e,`yAxis`,r,n)},(e,t,n)=>{var r=a4(e,t);if(r!=null)return kJ(e,`xAxis`,r,n)},(e,t,n)=>{var r=o4(e,t);if(r!=null)return kJ(e,`yAxis`,r,n)},$([$([v4,Wz,Gz,Kz,y4,b4,m4],y0),p4],x0),lF,kz,b4,$([_4,p4],b0),p4,h4],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var{chartData:p,dataStartIndex:m,dataEndIndex:h}=c;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var{data:g}=d,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return r3({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),S4=[`index`];function C4(){return C4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},C4.apply(null,arguments)}function w4(e,t){if(e==null)return{};var n,r,i=T4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function T4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var E4=(0,v.createContext)(void 0),D4=e=>{var t=(0,v.useContext)(E4);if(t!=null)return t.stackId;if(e!=null)return XN(e)},O4=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,k4=e=>{var t=(0,v.useContext)(E4);if(t!=null){var{stackId:n}=t;return`url(#${O4(n,e)})`}},A4=e=>{var{index:t}=e,n=w4(e,S4),r=k4(t);return v.createElement(yE,C4({className:`recharts-bar-stack-layer`,clipPath:r},n))},j4=[`onMouseEnter`,`onMouseLeave`,`onClick`],M4=[`value`,`background`,`tooltipPosition`],N4=[`id`],P4=[`onMouseEnter`,`onClick`,`onMouseLeave`];function F4(){return F4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},F4.apply(null,arguments)}function I4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?I4(Object(n),!0).forEach(function(t){R4(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function R4(e,t,n){return(t=z4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z4(e){var t=B4(e,`string`);return typeof t==`symbol`?t:t+``}function B4(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function V4(e,t){if(e==null)return{};var n,r,i=H4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function H4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var U4=e=>{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:oP(n,t),payload:e}]},W4=v.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:s,tooltipType:c,id:l}=e,u={dataDefinedOnItem:void 0,getPosition:vO,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:oP(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return v.createElement(j1,{tooltipEntrySettings:u})});function G4(e){var t=Q(XY),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=V4(a,j4),u=O1(o,r,a.id),d=k1(s),f=A1(c,r,a.id);if(!i||n==null)return null;var p=cE(i);return v.createElement(QX,{zIndex:S0(i,eB.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=V4(e,M4);if(!o)return null;var m=u(e,n),h=d(e,n),g=f(e,n),_=L4(L4(L4(L4(L4({option:i,isActive:String(n)===t},c),{},{fill:`#eee`},o),p),LO(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return v.createElement(u4,F4({key:`background-bar-${n}`},_))}))}function K4(e){var{showLabels:t,children:n,rects:r}=e,i=r?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return L4(L4({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return v.createElement(N$,{value:t?i:void 0},n)}function q4(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=Q(XY),c=Q(QY),l=n&&String(i.originalDataIndex)===s&&(c==null||o===c),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!1);(0,v.useEffect)(()=>{var e;return l?(d(!0),e=requestAnimationFrame(()=>{p(!0)})):p(!1),()=>{cancelAnimationFrame(e)}},[l]);var m=(0,v.useCallback)(()=>{l||d(!1)},[l]),h=l&&f,g=l||u,_=l?n===!0?t:n:t,y=v.createElement(u4,F4({},r,{name:String(r.name)},i,{isActive:h,option:_,index:a,dataKey:o,onTransitionEnd:m}));return g?v.createElement(QX,{zIndex:eB.activeBar},v.createElement(A4,{index:i.originalDataIndex},y)):y}function J4(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return v.createElement(u4,F4({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function Y4(e){var{data:t,props:n}=e,r=sE(n)??{},{id:i}=r,a=V4(r,N4),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=V4(n,P4),p=O1(l,s,i),m=k1(d),h=A1(u,s,i);return t?v.createElement(v.Fragment,null,t.map((e,t)=>v.createElement(A4,F4({index:e.originalDataIndex,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},LO(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?v.createElement(q4,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):v.createElement(J4,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function X4(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,onAnimationEnd:l,onAnimationStart:u}=t,d=n.current,f=xR(t,`recharts-bar-`),[p,m]=(0,v.useState)(!1),h=!p,g=(0,v.useCallback)(()=>{typeof l==`function`&&l(),m(!1)},[l]),_=(0,v.useCallback)(()=>{typeof u==`function`&&u(),m(!0)},[u]);return v.createElement(K4,{showLabels:h,rects:r},v.createElement(bR,{animationId:f,begin:o,duration:s,isActive:a,easing:c,onAnimationEnd:g,onAnimationStart:_,key:f},e=>{var a=e===1?r:r?.map((t,n)=>{var r=d&&d[n];if(r)return L4(L4({},t),{},{x:pO(r.x,t.x,e),y:pO(r.y,t.y,e),width:pO(r.width,t.width,e),height:pO(r.height,t.height,e)});if(i===`horizontal`){var a=pO(0,t.height,e),o=pO(t.stackedBarStart,t.y,e);return L4(L4({},t),{},{y:o,height:a})}var s=pO(0,t.width,e),c=pO(t.stackedBarStart,t.x,e);return L4(L4({},t),{},{width:s,x:c})});return e>0&&(n.current=a??null),a==null?null:v.createElement(yE,null,v.createElement(Y4,{props:t,data:a}))}),v.createElement(R$,{label:t.label}),t.children)}function Z4(e){var t=(0,v.useRef)(null);return v.createElement(X4,{previousRectanglesRef:t,props:e})}var Q4=0,$4=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:HN(e,t)}},e3=class extends v.PureComponent{render(){var{hide:e,data:t,dataKey:n,className:r,xAxisId:i,yAxisId:a,needClip:o,background:s,id:c}=this.props;if(e||t==null)return null;var l=Xt(`recharts-bar`,r),u=c;return v.createElement(yE,{className:l,id:c},o&&v.createElement(`defs`,null,v.createElement(i4,{clipPathId:u,xAxisId:i,yAxisId:a})),v.createElement(yE,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},v.createElement(G4,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),v.createElement(Z4,this.props)))}},t3={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:Q4,xAxisId:0,yAxisId:0,zIndex:eB.bar};function n3(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u}=e,{needClip:d}=r4(t,n),f=uF(),p=AP(),m=Q$(e.children,KZ),h=Q(t=>x4(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,v.createElement(n4,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:$4,errorBarOffset:g},v.createElement(e3,F4({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function r3(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r,hasCustomShape:i},pos:a,bandSize:o,xAxis:s,yAxis:c,xAxisTicks:l,yAxisTicks:u,stackedData:d,displayedData:f,offset:p,cells:m,parentViewBox:h,dataStartIndex:g}=e,_=t===`horizontal`?c:s,v=d?_.scale.domain():null,y=QN({numericAxis:_}),b=_.scale.map(y);return f.map((e,f)=>{var _,x,S,C,w,T;if(d){var E=d[f+g];if(E==null)return null;_=qN(E,v)}else _=HN(e,n),Array.isArray(_)||(_=[y,_]);var D=d4(r,Q4)(_[1],f);if(t===`horizontal`){var O=c.scale.map(_[0]),k=c.scale.map(_[1]);if(O==null||k==null)return null;x=ZN({axis:s,ticks:l,bandSize:o,offset:a.offset,entry:e,index:f}),S=k??O??void 0,C=a.size;var A=O-k;if(w=oO(A)?0:A,T={x,y:p.top,width:C,height:p.height},Math.abs(D)>0&&Math.abs(w)<Math.abs(D)){var j=aO(w||D)*(Math.abs(D)-Math.abs(w));S-=j,w+=j}}else{var M=s.scale.map(_[0]),N=s.scale.map(_[1]);if(M==null||N==null)return null;if(x=M,S=ZN({axis:c,ticks:u,bandSize:o,offset:a.offset,entry:e,index:f}),C=N-M,w=a.size,T={x:p.left,y:S,width:p.width,height:w},Math.abs(D)>0&&Math.abs(C)<Math.abs(D)){var P=aO(C||D)*(Math.abs(D)-Math.abs(C));C+=P}}return x==null||S==null||C==null||w==null||!i&&(C===0||w===0)?null:L4(L4({},e),{},{stackedBarStart:b,x,y:S,width:C,height:w,value:d?_:_[1],payload:e,background:T,tooltipPosition:{x:x+C/2,y:S+w/2},parentViewBox:h,originalDataIndex:f},m&&m[f]&&m[f].props)}).filter(Boolean)}function i3(e){var t=UO(e,t3),n=D4(t.stackId),r=AP();return v.createElement(I1,{id:t.id,type:`bar`},e=>v.createElement(v.Fragment,null,v.createElement(M1,{legendPayload:U4(t)}),v.createElement(W4,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),v.createElement(G1,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null}),v.createElement(QX,{zIndex:t.zIndex},v.createElement(n3,F4({},t,{id:e})))))}var a3=v.memo(i3,FI);a3.displayName=`Bar`;var o3=[`domain`,`range`],s3=[`domain`,`range`];function c3(e,t){if(e==null)return{};var n,r,i=l3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function l3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function u3(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function d3(e,t){if(e===t)return!0;var{domain:n,range:r}=e,i=c3(e,o3),{domain:a,range:o}=t,s=c3(t,s3);return!u3(n,a)||!u3(r,o)?!1:FI(i,s)}var f3=[`type`],p3=[`dangerouslySetInnerHTML`,`ticks`,`scale`],m3=[`id`,`scale`];function h3(){return h3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h3.apply(null,arguments)}function g3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _3(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?g3(Object(n),!0).forEach(function(t){v3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function v3(e,t,n){return(t=y3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y3(e){var t=b3(e,`string`);return typeof t==`symbol`?t:t+``}function b3(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function x3(e,t){if(e==null)return{};var n,r,i=S3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function S3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function C3(e){var t=rA(),n=(0,v.useRef)(null),r=dF(),{type:i}=e,a=x3(e,f3),o=iB(r,`xAxis`,i),s=(0,v.useMemo)(()=>{if(o!=null)return _3(_3({},a),{},{type:o})},[a,o]);return(0,v.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(Q1(s)):n.current!==s&&t($1({prev:n.current,next:s})),n.current=s)},[s,t]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(e0(n.current)),null)},[t]),null}var w3=e=>{var{xAxisId:t,className:n}=e,r=Q(OP),i=AP(),a=`xAxis`,o=Q(e=>OJ(e,a,t,i)),s=Q(e=>gJ(e,t)),c=Q(e=>xJ(e,t)),l=Q(e=>kK(e,t));if(s==null||c==null||l==null)return null;var{dangerouslySetInnerHTML:u,ticks:d,scale:f}=e,p=x3(e,p3),{id:m,scale:h}=l,g=x3(l,m3);return v.createElement(w2,h3({},p,g,{x:c.x,y:c.y,width:s.width,height:s.height,className:Xt(`recharts-${a} ${a}`,n),viewBox:r,ticks:o,axisType:a,axisId:t}))},T3={allowDataOverflow:OK.allowDataOverflow,allowDecimals:OK.allowDecimals,allowDuplicatedCategory:OK.allowDuplicatedCategory,angle:OK.angle,axisLine:h2.axisLine,height:OK.height,hide:!1,includeHidden:OK.includeHidden,interval:OK.interval,label:!1,minTickGap:OK.minTickGap,mirror:OK.mirror,orientation:OK.orientation,padding:OK.padding,reversed:OK.reversed,scale:OK.scale,tick:OK.tick,tickCount:OK.tickCount,tickLine:h2.tickLine,tickSize:h2.tickSize,type:OK.type,niceTicks:OK.niceTicks,xAxisId:0},E3=v.memo(e=>{var t=UO(e,T3);return v.createElement(v.Fragment,null,v.createElement(C3,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),v.createElement(w3,t))},d3);E3.displayName=`XAxis`;var D3=[`type`],O3=[`dangerouslySetInnerHTML`,`ticks`,`scale`],k3=[`id`,`scale`];function A3(){return A3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},A3.apply(null,arguments)}function j3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function M3(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?j3(Object(n),!0).forEach(function(t){N3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function N3(e,t,n){return(t=P3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P3(e){var t=F3(e,`string`);return typeof t==`symbol`?t:t+``}function F3(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function I3(e,t){if(e==null)return{};var n,r,i=L3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function L3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function R3(e){var t=rA(),n=(0,v.useRef)(null),r=dF(),{type:i}=e,a=I3(e,D3),o=iB(r,`yAxis`,i),s=(0,v.useMemo)(()=>{if(o!=null)return M3(M3({},a),{},{type:o})},[o,a]);return(0,v.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(t0(s)):n.current!==s&&t(n0({prev:n.current,next:s})),n.current=s)},[s,t]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(r0(n.current)),null)},[t]),null}function z3(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=(0,v.useRef)(null),o=(0,v.useRef)(null),s=Q(OP),c=AP(),l=rA(),u=`yAxis`,d=Q(e=>CJ(e,t)),f=Q(e=>SJ(e,t)),p=Q(e=>OJ(e,u,t,c)),m=Q(e=>MK(e,t));if((0,v.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||g$(i)||(0,v.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(s0({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;var{dangerouslySetInnerHTML:h,ticks:g,scale:_}=e,y=I3(e,O3),{id:b,scale:x}=m,S=I3(m,k3);return v.createElement(w2,A3({},y,S,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:Xt(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u,axisId:t}))}var B3={allowDataOverflow:jK.allowDataOverflow,allowDecimals:jK.allowDecimals,allowDuplicatedCategory:jK.allowDuplicatedCategory,angle:jK.angle,axisLine:h2.axisLine,hide:!1,includeHidden:jK.includeHidden,interval:jK.interval,label:!1,minTickGap:jK.minTickGap,mirror:jK.mirror,orientation:jK.orientation,padding:jK.padding,reversed:jK.reversed,scale:jK.scale,tick:jK.tick,tickCount:jK.tickCount,tickLine:h2.tickLine,tickSize:h2.tickSize,type:jK.type,niceTicks:jK.niceTicks,width:jK.width,yAxisId:0},V3=v.memo(e=>{var t=UO(e,B3);return v.createElement(v.Fragment,null,v.createElement(R3,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),v.createElement(z3,t))},d3);V3.displayName=`YAxis`;var H3=$([(e,t)=>t,lF,bB,kB,UY,GY,CX,EP],FX);function U3(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function W3(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(U3(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var G3=vM(`mouseClick`),K3=EN();K3.startListening({actionCreator:G3,effect:(e,t)=>{var n=e.payload,r=H3(t.getState(),W3(n));r?.activeIndex!=null&&t.dispatch(XJ({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var q3=vM(`mouseMove`),J3=EN(),Y3=null,X3=null,Z3=null;J3.startListening({actionCreator:q3,effect:(e,t)=>{var n=e.payload,{throttleDelay:r,throttledEvents:i}=t.getState().eventSettings,a=i===`all`||i?.includes(`mousemove`);Y3!==null&&(cancelAnimationFrame(Y3),Y3=null),X3!==null&&(typeof r!=`number`||!a)&&(clearTimeout(X3),X3=null),Z3=W3(n);var o=()=>{var e=t.getState(),n=FJ(e,e.tooltip.settings.shared);if(!Z3){Y3=null,X3=null;return}if(n===`axis`){var r=H3(e,Z3);r?.activeIndex==null?t.dispatch(qJ()):t.dispatch(YJ({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}Y3=null,X3=null};if(!a){o();return}r===`raf`?Y3=requestAnimationFrame(o):typeof r==`number`&&X3===null&&(X3=setTimeout(o,r))}});function Q3(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<<CHILDREN>>`:t}var $3={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},e6=BM({name:`rootProps`,initialState:$3,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??$3.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),t6=e6.reducer,{updateOptions:n6}=e6.actions,r6=BM({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}}),{updatePolarOptions:i6}=r6.actions,a6=r6.reducer,o6=vM(`keyDown`),s6=vM(`focus`),c6=vM(`blur`),l6=EN(),u6=null,d6=null,f6=null;l6.startListening({actionCreator:o6,effect:(e,t)=>{f6=e.payload,u6!==null&&(cancelAnimationFrame(u6),u6=null);var{throttleDelay:n,throttledEvents:r}=t.getState().eventSettings,i=r===`all`||r.includes(`keydown`);d6!==null&&(typeof n!=`number`||!i)&&(clearTimeout(d6),d6=null);var a=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var{keyboardInteraction:n}=e.tooltip,r=f6;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=dY(n,jY(e),cq(e),BY(e)),a=i==null?-1:Number(i);if(!Number.isFinite(a)||a<0)return;var o=GY(e);if(r===`Enter`){var s=OX(e,`axis`,`hover`,String(n.index));t.dispatch(QJ({active:!n.active,activeIndex:n.index,activeCoordinate:s}));return}var c=jJ(e)===`left-to-right`?1:-1,l=a+(r===`ArrowRight`?1:-1)*c;if(o==null||l>=o.length||l<0)return;var u=OX(e,`axis`,`hover`,String(l));t.dispatch(QJ({active:!0,activeIndex:l.toString(),activeCoordinate:u}))}finally{u6=null,d6=null}};if(!i){a();return}n===`raf`?u6=requestAnimationFrame(a):typeof n==`number`&&d6===null&&(a(),f6=null,d6=setTimeout(()=>{f6?a():(d6=null,u6=null)},n))}}),l6.startListening({actionCreator:s6,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;if(!r.active&&r.index==null){var i=`0`,a=OX(n,`axis`,`hover`,String(i));t.dispatch(QJ({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),l6.startListening({actionCreator:c6,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;r.active&&t.dispatch(QJ({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function p6(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var m6=vM(`externalEvent`),h6=EN(),g6=new Map,_6=new Map,v6=new Map;h6.startListening({actionCreator:m6,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){var i=r.type,a=p6(r);v6.set(i,{handler:n,reactEvent:a});var o=g6.get(i);o!==void 0&&(cancelAnimationFrame(o),g6.delete(i));var{throttleDelay:s,throttledEvents:c}=t.getState().eventSettings,l=c,u=l===`all`||l?.includes(i),d=_6.get(i);d!==void 0&&(typeof s!=`number`||!u)&&(clearTimeout(d),_6.delete(i));var f=()=>{var e=v6.get(i);try{if(!e)return;var{handler:n,reactEvent:r}=e,a=t.getState(),o={activeCoordinate:tX(a),activeDataKey:QY(a),activeIndex:XY(a),activeLabel:ZY(a),activeTooltipIndex:XY(a),isTooltipActive:nX(a)};n&&n(o,r)}finally{g6.delete(i),_6.delete(i),v6.delete(i)}};if(!u){f();return}if(s===`raf`){var p=requestAnimationFrame(f);g6.set(i,p)}else if(typeof s==`number`){if(!_6.has(i)){f();var m=setTimeout(f,s);_6.set(i,m)}}else f()}}});var y6=$([$([hY],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),b6=vM(`touchMove`),x6=EN(),S6=null,C6=null,w6=null,T6=null;x6.startListening({actionCreator:b6,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){T6=p6(n);var{throttleDelay:r,throttledEvents:i}=t.getState().eventSettings,a=i===`all`||i.includes(`touchmove`);S6!==null&&(cancelAnimationFrame(S6),S6=null),C6!==null&&(typeof r!=`number`||!a)&&(clearTimeout(C6),C6=null),w6=Array.from(n.touches).map(e=>W3({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var o=()=>{if(T6!=null){var e=t.getState(),n=FJ(e,e.tooltip.settings.shared);if(n===`axis`){var r=w6?.[0];if(r==null){S6=null,C6=null;return}var i=H3(e,r);i?.activeIndex!=null&&t.dispatch(YJ({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=T6.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(hP),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=kY(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var{dataKey:u}=l,d=y6(e,s,c);t.dispatch(GJ({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}S6=null,C6=null}};if(!a){o();return}r===`raf`?S6=requestAnimationFrame(o):typeof r==`number`&&C6===null&&(o(),T6=null,C6=setTimeout(()=>{T6?o():(C6=null,S6=null)},r))}}});var E6={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},D6=BM({name:`eventSettings`,initialState:E6,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=uI(t.payload.throttledEvents))}}}),{setEventSettings:O6}=D6.actions,k6=D6.reducer,A6=HA({brush:D0,cartesianAxis:c0,chartData:CZ,errorBars:Z2,eventSettings:k6,graphicalItems:W1,layout:NN,legend:_I,options:gZ,polarAxis:W$,polarOptions:a6,referenceElements:L0,renderedTicks:a2,rootProps:t6,tooltip:$J,zIndex:ZX}),j6=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return AM({reducer:A6,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([K3.middleware,J3.middleware,l6.middleware,h6.middleware,x6.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(OM({type:`raf`}))},devTools:QI.devToolsEnabled&&{serialize:{replacer:Q3},name:`recharts-${t}`}})};function M6(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=AP(),a=(0,v.useRef)(null);if(i)return n;a.current??=j6(t,r);var o=eA;return v.createElement(MI,{context:o,store:a.current},n)}function N6(e){var{layout:t,margin:n}=e,r=rA(),i=AP();return(0,v.useEffect)(()=>{i||(r(AN(t)),r(kN(n)))},[r,i,t,n]),null}var P6=(0,v.memo)(N6,FI);function F6(e){var t=rA();return(0,v.useEffect)(()=>{t(n6(e))},[t,e]),null}var I6=(0,v.memo)(e=>{var t=rA();return(0,v.useEffect)(()=>{t(O6(e))},[t,e]),null},FI);function L6(e){var{zIndex:t,isPanorama:n}=e,r=(0,v.useRef)(null),i=rA();return(0,v.useLayoutEffect)(()=>(r.current&&i(YX({zIndex:t,element:r.current,isPanorama:n})),()=>{i(XX({zIndex:t,isPanorama:n}))}),[i,t,n]),v.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function R6(e){var{children:t,isPanorama:n}=e,r=Q(LX);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return v.createElement(v.Fragment,null,i.map(e=>v.createElement(L6,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>v.createElement(L6,{key:e,zIndex:e,isPanorama:n})))}var z6=[`children`];function B6(e,t){if(e==null)return{};var n,r,i=V6(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function V6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function H6(){return H6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},H6.apply(null,arguments)}var U6={width:`100%`,height:`100%`,display:`block`},W6=(0,v.forwardRef)((e,t)=>{var n=sF(),r=cF(),i=cL();if(!IN(n)||!IN(r))return null;var{children:a,otherAttributes:o,title:s,desc:c}=e,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),v.createElement(mE,H6({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:U6,ref:t}),a)}),G6=e=>{var{children:t}=e,n=Q(MP);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return v.createElement(mE,{width:r,height:i,x:o,y:a},t)},K6=(0,v.forwardRef)((e,t)=>{var{children:n}=e,r=B6(e,z6);return AP()?v.createElement(G6,null,v.createElement(R6,{isPanorama:!0},n)):v.createElement(W6,H6({ref:t},r),v.createElement(R6,{isPanorama:!1},n))});function q6(){var e=rA(),[t,n]=(0,v.useState)(null),r=Q(dP);return(0,v.useEffect)(()=>{if(t!=null){var n=t.getBoundingClientRect().width/t.offsetWidth;FN(n)&&n!==r&&e(MN(n))}},[t,e,r]),n}function J6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Y6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?J6(Object(n),!0).forEach(function(t){X6(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J6(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function X6(e,t,n){return(t=Z6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z6(e){var t=Q6(e,`string`);return typeof t==`symbol`?t:t+``}function Q6(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function $6(){return $6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$6.apply(null,arguments)}var e8=()=>(PZ(),null);function t8(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var n8=(0,v.forwardRef)((e,t)=>{var n=(0,v.useRef)(null),[r,i]=(0,v.useState)({containerWidth:t8(e.style?.width),containerHeight:t8(e.style?.height)}),a=(0,v.useCallback)((e,t)=>{i(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),o=(0,v.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null&&typeof ResizeObserver<`u`){var{width:r,height:i}=e.getBoundingClientRect();a(r,i);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var{width:n,height:r}=t.contentRect;a(n,r)}});o.observe(e),n.current=o}},[t,a]);return(0,v.useEffect)(()=>()=>{n.current?.disconnect()},[a]),v.createElement(v.Fragment,null,v.createElement(mF,{width:r.containerWidth,height:r.containerHeight}),v.createElement(`div`,$6({ref:o},e)))}),r8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r}=e,[i,a]=(0,v.useState)({containerWidth:t8(n),containerHeight:t8(r)}),o=(0,v.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,v.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var{width:n,height:r}=e.getBoundingClientRect();o(n,r)}},[t,o]);return v.createElement(v.Fragment,null,v.createElement(mF,{width:i.containerWidth,height:i.containerHeight}),v.createElement(`div`,$6({ref:s},e)))}),i8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r}=e;return v.createElement(v.Fragment,null,v.createElement(mF,{width:n,height:r}),v.createElement(`div`,$6({ref:t},e)))}),a8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r}=e;return typeof n==`string`||typeof r==`string`?v.createElement(r8,$6({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?v.createElement(i8,$6({},e,{width:n,height:r,ref:t})):v.createElement(v.Fragment,null,v.createElement(mF,{width:n,height:r}),v.createElement(`div`,$6({ref:t},e)))});function o8(e){return e?n8:a8}var s8=(0,v.forwardRef)((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:s,onMouseDown:c,onMouseEnter:l,onMouseLeave:u,onMouseMove:d,onMouseUp:f,onTouchEnd:p,onTouchMove:m,onTouchStart:h,style:g,width:_,responsive:y,dispatchTouchEvents:b=!0}=e,x=(0,v.useRef)(null),S=rA(),[C,w]=(0,v.useState)(null),[T,E]=(0,v.useState)(null),D=q6(),O=eF(),k=O?.width>0?O.width:_,A=O?.height>0?O.height:i,j=(0,v.useCallback)(e=>{D(e),typeof t==`function`&&t(e),w(e),E(e),e!=null&&(x.current=e)},[D,t,w,E]),M=(0,v.useCallback)(e=>{S(G3(e)),S(m6({handler:a,reactEvent:e}))},[S,a]),N=(0,v.useCallback)(e=>{S(q3(e)),S(m6({handler:l,reactEvent:e}))},[S,l]),P=(0,v.useCallback)(e=>{S(qJ()),S(m6({handler:u,reactEvent:e}))},[S,u]),ee=(0,v.useCallback)(e=>{S(q3(e)),S(m6({handler:d,reactEvent:e}))},[S,d]),F=(0,v.useCallback)(()=>{S(s6())},[S]),I=(0,v.useCallback)(()=>{S(c6())},[S]),te=(0,v.useCallback)(e=>{S(o6(e.key))},[S]),L=(0,v.useCallback)(e=>{S(m6({handler:o,reactEvent:e}))},[S,o]),ne=(0,v.useCallback)(e=>{S(m6({handler:s,reactEvent:e}))},[S,s]),re=(0,v.useCallback)(e=>{S(m6({handler:c,reactEvent:e}))},[S,c]),R=(0,v.useCallback)(e=>{S(m6({handler:f,reactEvent:e}))},[S,f]),ie=(0,v.useCallback)(e=>{S(m6({handler:h,reactEvent:e}))},[S,h]),ae=(0,v.useCallback)(e=>{b&&S(b6(e)),S(m6({handler:m,reactEvent:e}))},[S,b,m]),oe=(0,v.useCallback)(e=>{S(m6({handler:p,reactEvent:e}))},[S,p]),se=o8(y);return v.createElement(cZ.Provider,{value:C},v.createElement(bE.Provider,{value:T},v.createElement(se,{width:k??g?.width,height:A??g?.height,className:Xt(`recharts-wrapper`,r),style:Y6({position:`relative`,cursor:`default`,width:k,height:A},g),onClick:M,onContextMenu:L,onDoubleClick:ne,onFocus:F,onBlur:I,onKeyDown:te,onMouseDown:re,onMouseEnter:N,onMouseLeave:P,onMouseMove:ee,onMouseUp:R,onTouchEnd:oe,onTouchMove:ae,onTouchStart:ie,ref:j},v.createElement(e8,null),n)))}),c8=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function l8(e,t){if(e==null)return{};var n,r,i=u8(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function u8(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var d8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r,responsive:i,children:a,className:o,style:s,compact:c,title:l,desc:u}=e,d=sE(l8(e,c8));return c?v.createElement(v.Fragment,null,v.createElement(mF,{width:n,height:r}),v.createElement(K6,{otherAttributes:d,title:l,desc:u},a)):v.createElement(s8,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},v.createElement(K6,{otherAttributes:d,title:l,desc:u,ref:t},v.createElement(z0,null,a)))});function f8(){return f8=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f8.apply(null,arguments)}function p8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m8(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?p8(Object(n),!0).forEach(function(t){h8(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p8(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function h8(e,t,n){return(t=g8(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g8(e){var t=_8(e,`string`);return typeof t==`symbol`?t:t+``}function _8(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var v8=m8({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},E6),y8=(0,v.forwardRef)(function(e,t){var n=UO(e.categoricalChartProps,v8),{chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,categoricalChartProps:s}=e,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return v.createElement(M6,{preloadedState:{options:c},reduxStoreName:s.id??r},v.createElement(C0,{chartData:s.data}),v.createElement(P6,{layout:n.layout,margin:n.margin}),v.createElement(I6,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),v.createElement(F6,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),v.createElement(d8,f8({},n,{ref:t})))}),b8=[`axis`,`item`],x8=(0,v.forwardRef)((e,t)=>v.createElement(y8,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:b8,tooltipPayloadSearcher:mZ,categoricalChartProps:e,ref:t})),S8={light:``,dark:`.dark`},C8={width:320,height:200},w8=v.createContext(null);function T8(){let e=v.useContext(w8);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function E8({id:e,className:t,children:n,config:r,initialDimension:i=C8,...a}){let o=v.useId(),s=`chart-${e??o.replace(/:/g,``)}`;return(0,H.jsx)(w8.Provider,{value:{config:r},children:(0,H.jsxs)(`div`,{"data-slot":`chart`,"data-chart":s,className:V(`flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden`,t),...a,children:[(0,H.jsx)(D8,{id:s,config:r}),(0,H.jsx)(nF,{initialDimension:i,children:n})]})})}var D8=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme??e.color);return n.length?(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(S8).map(([t,r])=>`
163
+ ${x.x},${x.y}`,C=TO(e.id)?bO(`recharts-radial-line-`):e.id;return v.createElement(`text`,y$({},r,{dominantBaseline:`central`,className:Xt(`recharts-radial-bar-label`,o)}),v.createElement(`defs`,null,v.createElement(`path`,{id:C,d:S})),v.createElement(`textPath`,{xlinkHref:`#${C}`},n))},k$=(e,t,n)=>{var{cx:r,cy:i,innerRadius:a,outerRadius:o,startAngle:s,endAngle:c}=e,l=(s+c)/2;if(n===`outside`){var{x:u,y:d}=lz(r,i,o+t,l);return{x:u,y:d,textAnchor:u>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var{x:f,y:p}=lz(r,i,(a+o)/2,l);return{x:f,y:p,textAnchor:`middle`,verticalAnchor:`middle`}},A$=e=>e!=null&&`cx`in e&&Z(e.cx),j$={angle:0,offset:5,zIndex:uB.label,position:`middle`,textBreakAll:!1};function M$(e){if(!A$(e))return e;var{cx:t,cy:n,outerRadius:r}=e,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function N$(e){var t=$O(e,j$),{viewBox:n,parentViewBox:r,position:i,value:a,children:o,content:s,className:c=``,textBreakAll:l,labelRef:u}=t,d=w$(),f=S$(),p=n==null?i===`center`?f:d??f:A$(n)?n:pF(n),m,h,g=M$(p);if(!p||TO(a)&&TO(o)&&!(0,v.isValidElement)(s)&&typeof s!=`function`)return null;var _=h$(h$({},t),{},{viewBox:p});if((0,v.isValidElement)(s)){var{labelRef:y}=_,b=f$(_,u$);return(0,v.cloneElement)(s,b)}if(typeof s==`function`){var{content:x}=_,S=f$(_,d$);if(m=(0,v.createElement)(s,S),(0,v.isValidElement)(m))return m}else m=T$(t);var C=yE(t);if(A$(p)){if(i===`insideStart`||i===`insideEnd`||i===`end`)return O$(t,i,m,C,p);h=k$(p,t.offset,t.position)}else{if(!g)return null;var w=l$({viewBox:g,position:i,offset:t.offset,parentViewBox:A$(r)?void 0:r,clamp:!0});h=h$(h$({x:w.x,y:w.y,textAnchor:w.horizontalAnchor,verticalAnchor:w.verticalAnchor},w.width===void 0?{}:{width:w.width}),w.height===void 0?{}:{height:w.height})}return v.createElement(cZ,{zIndex:t.zIndex},v.createElement(r$,y$({ref:u,className:Xt(`recharts-label`,c)},C,h,{textAnchor:KQ(C.textAnchor)?C.textAnchor:h.textAnchor,breakAll:l}),m))}N$.displayName=`Label`;var P$=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?v.createElement(N$,y$({key:`label-implicit`},r)):vO(e)?v.createElement(N$,y$({key:`label-implicit`,value:e},r)):(0,v.isValidElement)(e)?e.type===N$?(0,v.cloneElement)(e,h$({key:`label-implicit`},r)):v.createElement(N$,y$({key:`label-implicit`,content:e},r)):E$(e)?v.createElement(N$,y$({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?v.createElement(N$,y$({},e,{key:`label-implicit`},r)):null};function F$(e){var{label:t,labelRef:n}=e;return P$(t,S$(),n)||null}var I$=[`valueAccessor`],L$=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function R$(){return R$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},R$.apply(null,arguments)}function z$(e,t){if(e==null)return{};var n,r,i=B$(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function B$(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var V$=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(qQ(t))return t},H$=(0,v.createContext)(void 0),U$=H$.Provider,W$=(0,v.createContext)(void 0);W$.Provider;function G$(){return(0,v.useContext)(H$)}function K$(){return(0,v.useContext)(W$)}function q$(e){var{valueAccessor:t=V$}=e,n=z$(e,I$),{dataKey:r,clockWise:i,id:a,textBreakAll:o,zIndex:s}=n,c=z$(n,L$),l=G$(),u=K$(),d=l||u;return!d||!d.length?null:v.createElement(cZ,{zIndex:s??uB.label},v.createElement(kE,{className:`recharts-label-list`},d.map((e,i)=>{var s=TO(r)?t(e,i):QN(e.payload,r),l=TO(a)?{}:{id:`${a}-${i}`};return v.createElement(N$,R$({key:`label-${i}`},yE(e),c,l,{fill:n.fill??e.fill,parentViewBox:e.parentViewBox,value:s,textBreakAll:o,viewBox:e.viewBox,index:i,zIndex:0}))})))}q$.displayName=`LabelList`;function J$(e){var{label:t}=e;return t?t===!0?v.createElement(q$,{key:`labelList-implicit`}):v.isValidElement(t)||E$(t)?v.createElement(q$,{key:`labelList-implicit`,content:t}):typeof t==`object`?v.createElement(q$,R$({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}var Y$=XM({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=bI(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=bI(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:X$,removeRadiusAxis:Z$,addAngleAxis:Q$,removeAngleAxis:$$}=Y$.actions,e1=Y$.reducer;function t1(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}var n1=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.suspense_list`),d=Symbol.for(`react.memo`),f=Symbol.for(`react.lazy`),p=Symbol.for(`react.view_transition`);function m(e){if(typeof e==`object`&&e){var m=e.$$typeof;switch(m){case t:switch(e=e.type,e){case r:case a:case i:case l:case u:case p:return e;default:switch(e&&=e.$$typeof,e){case s:case c:case f:case d:return e;case o:return e;default:return m}}case n:return m}}}e.isFragment=function(e){return m(e)===r}})),r1=o(((e,t)=>{t.exports=n1()}))(),i1=e=>typeof e==`string`?e:e?e.displayName||e.name||`Component`:``,a1=null,o1=null,s1=e=>{if(e===a1&&Array.isArray(o1))return o1;var t=[];return v.Children.forEach(e,e=>{TO(e)||((0,r1.isFragment)(e)?t=t.concat(s1(e.props.children)):t.push(e))}),o1=t,a1=e,t};function c1(e,t){var n=[],r=[];return r=Array.isArray(t)?t.map(e=>i1(e)):[i1(t)],s1(e).forEach(e=>{var t=uO(e,`type.displayName`)||uO(e,`type.name`);t&&r.indexOf(t)!==-1&&n.push(e)}),n}function l1(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}var u1,d1,f1,p1,m1;function h1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function g1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?h1(Object(n),!0).forEach(function(t){_1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _1(e,t,n){return(t=v1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v1(e){var t=y1(e,`string`);return typeof t==`symbol`?t:t+``}function y1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function b1(){return b1=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b1.apply(null,arguments)}function x1(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var S1=(e,t,n,r,i)=>{var a=n-r,o=mO(u1||=x1([`M `,`,`,``]),e,t);return o+=mO(d1||=x1([`L `,`,`,``]),e+n,t),o+=mO(f1||=x1([`L `,`,`,``]),e+n-a/2,t+i),o+=mO(p1||=x1([`L `,`,`,``]),e+n-a/2-r,t+i),o+=mO(m1||=x1([`L `,`,`,` Z`]),e,t),o},C1={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},w1=e=>{var t=$O(e,C1),{x:n,y:r,upperWidth:i,lowerWidth:a,height:o,className:s}=t,{animationEasing:c,animationDuration:l,animationBegin:u,isUpdateAnimationActive:d}=t,f=(0,v.useRef)(null),[p,m]=(0,v.useState)(-1),h=(0,v.useRef)(i),g=(0,v.useRef)(a),_=(0,v.useRef)(o),y=(0,v.useRef)(n),b=(0,v.useRef)(r),x=jR(e,`trapezoid-`);if((0,v.useEffect)(()=>{if(f.current&&f.current.getTotalLength)try{var e=f.current.getTotalLength();e&&m(e)}catch{}},[]),n!==+n||r!==+r||i!==+i||a!==+a||o!==+o||i===0&&a===0||o===0)return null;var S=Xt(`recharts-trapezoid`,s);if(!d)return v.createElement(`g`,null,v.createElement(`path`,b1({},yE(t),{className:S,d:S1(n,r,i,a,o)})));var C=h.current,w=g.current,T=_.current,E=y.current,D=b.current,O=`0px ${p===-1?1:p}px`,k=`${p}px ${p}px`,A=QL([`strokeDasharray`],l,c);return v.createElement(AR,{animationId:x,key:x,canBegin:p>0,duration:l,easing:c,isActive:d,begin:u},e=>{var s=CO(C,i,e),c=CO(w,a,e),l=CO(T,o,e),u=CO(E,n,e),d=CO(D,r,e);f.current&&(h.current=s,g.current=c,_.current=l,y.current=u,b.current=d);var p=e>0?{transition:A,strokeDasharray:k}:{strokeDasharray:O};return v.createElement(`path`,b1({},yE(t),{className:S,d:S1(u,d,s,c,l),ref:f,style:g1(g1({},p),t.style)}))})},T1=[`option`,`shapeType`,`activeClassName`,`inActiveClassName`];function E1(e,t){if(e==null)return{};var n,r,i=D1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function D1(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function O1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function k1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?O1(Object(n),!0).forEach(function(t){A1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function A1(e,t,n){return(t=j1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j1(e){var t=M1(e,`string`);return typeof t==`symbol`?t:t+``}function M1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function N1(e,t){return k1(k1({},t),e)}function P1(e,t){return e===`symbols`}function F1(e){var{shapeType:t,elementProps:n}=e;switch(t){case`rectangle`:return v.createElement(tz,n);case`trapezoid`:return v.createElement(w1,n);case`sector`:return v.createElement(jz,n);case`symbols`:if(P1(t,n))return v.createElement(UO,n);break;case`curve`:return v.createElement(NL,n);default:return null}}function I1(e){return(0,v.isValidElement)(e)?e.props:e}function L1(e){var{option:t,shapeType:n,activeClassName:r=`recharts-active-shape`,inActiveClassName:i=`recharts-shape`}=e,a=E1(e,T1),o;if((0,v.isValidElement)(t))o=(0,v.cloneElement)(t,k1(k1({},a),I1(t)));else if(typeof t==`function`)o=t(a,a.index);else if(l1(t)&&typeof t!=`boolean`){var s=N1(t,a);o=v.createElement(F1,{shapeType:n,elementProps:s})}else{var c=a;o=v.createElement(F1,{shapeType:n,elementProps:c})}return a.isActive?v.createElement(kE,{className:r},o):v.createElement(kE,{className:i},o)}var R1=(e,t,n)=>{var r=pA();return(i,a)=>o=>{e?.(i,a,o),r(tY({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},z1=e=>{var t=pA();return(n,r)=>i=>{e?.(n,r,i),t(nY())}},B1=(e,t,n)=>{var r=pA();return(i,a)=>o=>{e?.(i,a,o),r(iY({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}};function V1(e){var{tooltipEntrySettings:t}=e,n=pA(),r=BP(),i=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{r||(i.current===null?n(ZJ(t)):i.current!==t&&n(QJ({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,v.useLayoutEffect)(()=>()=>{i.current&&=(n($J(i.current)),null)},[n]),null}function H1(e){var{legendPayload:t}=e,n=pA(),r=BP(),i=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{r||(i.current===null?n(wI(t)):i.current!==t&&n(TI({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,v.useLayoutEffect)(()=>()=>{i.current&&=(n(EI(i.current)),null)},[n]),null}var U1=v.useId??(()=>{var[e]=v.useState(()=>bO(`uid-`));return e});function W1(e,t){var n=U1();return t||(e?`${e}-${n}`:n)}var G1=(0,v.createContext)(void 0),K1=e=>{var{id:t,type:n,children:r}=e,i=W1(`recharts-${n}`,t);return v.createElement(G1.Provider,{value:i},r(i))},q1=XM({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(bI(t.payload))},prepare:FM()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,i=xM(e).cartesianItems.indexOf(bI(n));i>-1&&(e.cartesianItems[i]=bI(r))},prepare:FM()},removeCartesianGraphicalItem:{reducer(e,t){var n=xM(e).cartesianItems.indexOf(bI(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:FM()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(bI(t.payload))},prepare:FM()},removePolarGraphicalItem:{reducer(e,t){var n=xM(e).polarItems.indexOf(bI(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:FM()},replacePolarGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,i=xM(e).polarItems.indexOf(bI(n));i>-1&&(e.polarItems[i]=bI(r))},prepare:FM()}}}),{addCartesianGraphicalItem:J1,replaceCartesianGraphicalItem:Y1,removeCartesianGraphicalItem:X1,addPolarGraphicalItem:Z1,removePolarGraphicalItem:Q1,replacePolarGraphicalItem:$1}=q1.actions,e0=q1.reducer,t0=(0,v.memo)(e=>{var t=pA(),n=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{n.current===null?t(J1(e)):n.current!==e&&t(Y1({prev:n.current,next:e})),n.current=e},[t,e]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(X1(n.current)),null)},[t]),null});function n0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function r0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?n0(Object(n),!0).forEach(function(t){i0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):n0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i0(e,t,n){return(t=a0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a0(e){var t=o0(e,`string`);return typeof t==`symbol`?t:t+``}function o0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var s0=XM({name:`cartesianAxis`,initialState:{xAxis:{},yAxis:{},zAxis:{}},reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=bI(t.payload)},prepare:FM()},replaceXAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.xAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.xAxis[n.id],e.xAxis[r.id]=bI(r))},prepare:FM()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:FM()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=bI(t.payload)},prepare:FM()},replaceYAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.yAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.yAxis[n.id],e.yAxis[r.id]=bI(r))},prepare:FM()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:FM()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=bI(t.payload)},prepare:FM()},replaceZAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.zAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.zAxis[n.id],e.zAxis[r.id]=bI(r))},prepare:FM()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:FM()},updateYAxisWidth(e,t){var{id:n,width:r}=t.payload,i=e.yAxis[n];if(i){var a=i.widthHistory||[];if(a.length===3&&a[0]===a[2]&&r===a[1]&&r!==i.width&&Math.abs(r-(a[0]??0))<=1)return;var o=[...a,r].slice(-3);e.yAxis[n]=r0(r0({},i),{},{width:r,widthHistory:o})}}}}),{addXAxis:c0,replaceXAxis:l0,removeXAxis:u0,addYAxis:d0,replaceYAxis:f0,removeYAxis:p0,addZAxis:m0,replaceZAxis:h0,removeZAxis:g0,updateYAxisWidth:_0}=s0.actions,v0=s0.reducer,y0=$([$([IP],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),yP,bP],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),b0=()=>Q(y0),x0=(e,t,n)=>{var r=n??e;if(!TO(r))return xO(r,t,0)},S0=(e,t,n)=>{var r={},i=e.filter(FB),a=e.filter(e=>e.stackId==null),o=i.reduce((e,t)=>{var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},r),s=Object.entries(o).map(e=>{var[r,i]=e;return{stackId:r,dataKeys:i.map(e=>e.dataKey),barSize:x0(t,n,i[0]?.barSize)}}),c=a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>e!=null),barSize:x0(t,n,e.barSize)}));return[...s,...c]};function C0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function w0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?C0(Object(n),!0).forEach(function(t){T0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function T0(e,t,n){return(t=E0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E0(e){var t=D0(e,`string`);return typeof t==`symbol`?t:t+``}function D0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function O0(e,t,n,r,i){var a=r.length;if(!(a<1)){var o=xO(e,n,0,!0),s,c=[];if(GN(r[0]?.barSize)){var l=!1,u=n/a,d=r.reduce((e,t)=>e+(t.barSize||0),0);d+=(a-1)*o,d>=n&&(d-=(a-1)*o,o=0),d>=n&&u>0&&(l=!0,u*=.9,d=a*u);var f={offset:((n-d)/2>>0)-o,size:0};s=r.reduce((e,t)=>{var n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:f.offset+f.size+o,size:l?u:t.barSize??0}},r=[...e,n];return f=n.position,r},c)}else{var p=xO(t,n,0,!0);n-2*p-(a-1)*o<=0&&(o=0);var m=(n-2*p-(a-1)*o)/a;m>1&&(m>>=0);var h=GN(i)?Math.min(m,i):m;s=r.reduce((e,t,n)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p+(m+o)*n+(m-h)/2,size:h}}],c)}return s}}var k0=(e,t,n,r,i,a,o)=>{var s=TO(o)?t:o,c=O0(n,r,i===a?a:i,e,s);return i!==a&&c!=null&&(c=c.map(e=>w0(w0({},e),{},{position:w0(w0({},e.position),{},{offset:e.position.offset-i/2})}))),c},A0=(e,t)=>{var n=NB(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var i=e[r];if(i){var{stackedData:a}=i;if(a)return a.find(e=>e.key===n)}}}},j0=(e,t)=>{if(e!=null&&t!=null){var n=e.find(e=>e.stackId===t.stackId&&t.dataKey!=null&&e.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function M0(e,t){return e&&typeof e==`object`&&`zIndex`in e&&typeof e.zIndex==`number`&&GN(e.zIndex)?e.zIndex:t}var N0=e=>{var{chartData:t}=e,n=pA(),r=BP();return(0,v.useEffect)(()=>r?()=>{}:(n(AZ(t)),()=>{n(AZ(void 0))}),[t,n,r]),null},P0={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},F0=XM({name:`brush`,initialState:P0,reducers:{setBrushSettings(e,t){return t.payload==null?P0:t.payload}}}),{setBrushSettings:I0}=F0.actions,L0=F0.reducer;function R0(e){return(e%180+180)%180}var z0=function(e){var{width:t,height:n}=e,r=R0(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r<Math.PI-i?n/Math.sin(r):t/Math.cos(r);return Math.abs(a)},B0=XM({name:`referenceElements`,initialState:{dots:[],areas:[],lines:[]},reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=xM(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=xM(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(bI(t.payload))},removeLine:(e,t)=>{var n=xM(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:V0,removeDot:H0,addArea:U0,removeArea:W0,addLine:G0,removeLine:K0}=B0.actions,q0=B0.reducer,J0=(0,v.createContext)(void 0),Y0=e=>{var{children:t}=e,[n]=(0,v.useState)(`${bO(`recharts`)}-clip`),r=b0();if(r==null)return null;var{x:i,y:a,width:o,height:s}=r;return v.createElement(J0.Provider,{value:n},v.createElement(`defs`,null,v.createElement(`clipPath`,{id:n},v.createElement(`rect`,{x:i,y:a,height:s,width:o}))),t)};function X0(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;r<e.length;r+=t){var i=e[r];i!==void 0&&n.push(i)}return n}function Z0(e,t,n){return z0({width:e.width+t.width,height:e.height+t.height},n)}function Q0(e,t,n){var r=n===`width`,{x:i,y:a,width:o,height:s}=e;return t===1?{start:r?i:a,end:r?i+o:a+s}:{start:r?i+o:a+s,end:r?i:a}}function $0(e,t,n,r,i){if(e*t<e*r||e*t>e*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function e2(e,t){return X0(e,t+1)}function t2(e,t,n,r,i){for(var a=(r||[]).slice(),{start:o,end:s}=t,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:X0(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||$0(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function n2(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var{start:o,end:s}=t,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||$0(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m<a&&(p=f(),p===0||p!==1);m+=c);if(d){for(var h=[],g=l;g<a;g+=c){var _=r[g];_!=null&&h.push(_)}return h}}return[]}function r2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?r2(Object(n),!0).forEach(function(t){a2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function a2(e,t,n){return(t=o2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o2(e){var t=s2(e,`string`);return typeof t==`symbol`?t:t+``}function s2(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c2(e,t,n,r,i){for(var a=(r||[]).slice(),o=a.length,{start:s}=t,{end:c}=t,l=function(t){var r=a[t];if(r==null)return 1;var l=r,u,d=()=>(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=i2(i2({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=i2(i2({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&$0(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=i2(i2({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function l2(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,{start:c,end:l}=t;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=i2(i2({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&$0(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=i2(i2({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=i2(i2({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=i2(i2({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&$0(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=i2(i2({},a),{},{isShow:!0}))},h=0;h<p;h++)if(m(h))continue;return o}function u2(e,t,n){var{tick:r,ticks:i,viewBox:a,minTickGap:o,orientation:s,interval:c,tickFormatter:l,unit:u,angle:d}=e;if(!i||!i.length||!r)return[];if(Z(c)||cL.isSsr)return e2(i,Z(c)?c:0)??[];var f=[],p=s===`top`||s===`bottom`?`width`:`height`,m=u&&p===`width`?vQ(u,{fontSize:t,letterSpacing:n}):{width:0,height:0},h=(e,r)=>{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?Z0(vQ(i,{fontSize:t,letterSpacing:n}),m,d):vQ(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?hO(_.coordinate-g.coordinate):1,y=Q0(a,v,p);return c===`equidistantPreserveStart`?t2(v,y,h,i,o):c===`equidistantPreserveEnd`?n2(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?l2(v,y,h,i,o,c===`preserveStartEnd`):c2(v,y,h,i,o),f.filter(e=>e.isShow))}var d2=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:i=0,tickMargin:a=0}=e,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>o&&(o=t.width)}});var s=n?n.getBoundingClientRect().width:0,c=i+a,l=o+c+s+(n?r:0);return Math.round(l)}return 0},f2=XM({name:`renderedTicks`,initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var{axisType:n,axisId:r,ticks:i}=t.payload;e[n][r]=bI(i)},removeRenderedTicks:(e,t)=>{var{axisType:n,axisId:r}=t.payload;delete e[n][r]}}}),{setRenderedTicks:p2,removeRenderedTicks:m2}=f2.actions,h2=f2.reducer,g2=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`,`axisId`];function _2(e,t){if(e==null)return{};var n,r,i=v2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function v2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function y2(){return y2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y2.apply(null,arguments)}function b2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function x2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?b2(Object(n),!0).forEach(function(t){S2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function S2(e,t,n){return(t=C2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C2(e){var t=w2(e,`string`);return typeof t==`symbol`?t:t+``}function w2(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var T2={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:`bottom`,ticks:[],stroke:`#666`,tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:`preserveEnd`,zIndex:uB.axis};function E2(e){var{x:t,y:n,width:r,height:i,orientation:a,mirror:o,axisLine:s,otherSvgProps:c}=e;if(!s)return null;var l=x2(x2(x2({},c),_E(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var u=+(a===`top`&&!o||a===`bottom`&&o);l=x2(x2({},l),{},{x1:t,y1:n+u*i,x2:t+r,y2:n+u*i})}else{var d=+(a===`left`&&!o||a===`right`&&o);l=x2(x2({},l),{},{x1:t+d*r,y1:n,x2:t+d*r,y2:n+i})}return v.createElement(`line`,y2({},l,{className:Xt(`recharts-cartesian-axis-line`,uO(s,`className`))}))}function D2(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=Z(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case`top`:l=u=e.coordinate,f=n+ +!s*i,d=f-h*g,m=d-h*c,p=_;break;case`left`:d=f=e.coordinate,u=t+ +!s*r,l=u-h*g,p=l-h*c,m=_;break;case`right`:d=f=e.coordinate,u=t+ +s*r,l=u+h*g,p=l+h*c,m=_;break;default:l=u=e.coordinate,f=n+ +s*i,d=f+h*g,m=d+h*c,p=_}return{line:{x1:l,y1:d,x2:u,y2:f},tick:{x:p,y:m}}}function O2(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function k2(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function A2(e){var{option:t,tickProps:n,value:r}=e,i,a=Xt(n.className,`recharts-cartesian-axis-tick-value`);if(v.isValidElement(t))i=v.cloneElement(t,x2(x2({},n),{},{className:a}));else if(typeof t==`function`)i=t(x2(x2({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=Xt(o,t1(t))),i=v.createElement(r$,y2({},n,{className:o}),r)}return i}function j2(e){var{ticks:t,axisType:n,axisId:r}=e,i=pA();return(0,v.useEffect)(()=>r==null||n==null?OO:(i(p2({ticks:t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),axisId:r,axisType:n})),()=>{i(m2({axisId:r,axisType:n}))}),[i,t,r,n]),null}var M2=(0,v.forwardRef)((e,t)=>{var{ticks:n=[],tick:r,tickLine:i,stroke:a,tickFormatter:o,unit:s,padding:c,tickTextProps:l,orientation:u,mirror:d,x:f,y:p,width:m,height:h,tickSize:g,tickMargin:_,fontSize:y,letterSpacing:b,getTicksConfig:x,events:S,axisType:C,axisId:w}=e,T=u2(x2(x2({},x),{},{ticks:n}),y,b),E=_E(x),D=vE(r),O=KQ(E.textAnchor)?E.textAnchor:O2(u,d),k=k2(u,d),A={};typeof i==`object`&&(A=i);var j=x2(x2({},E),{},{fill:`none`},A),M=T.map(e=>x2({entry:e},D2(e,f,p,m,h,u,g,d,_))),N=M.map(e=>{var{entry:t,line:n}=e;return v.createElement(kE,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},i&&v.createElement(`line`,y2({},j,n,{className:Xt(`recharts-cartesian-axis-tick-line`,uO(i,`className`))})))}),P=M.map((e,t)=>{var{entry:n,tick:i}=e,u=x2(x2({},x2(x2(x2(x2({verticalAnchor:k},E),{},{textAnchor:O,stroke:`none`,fill:a},i),{},{index:t,payload:n,visibleTicksCount:T.length,tickFormatter:o,padding:c},l),{},{angle:l?.angle??E.angle??0})),D);return v.createElement(kE,y2({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},qO(S,n,t)),r&&v.createElement(A2,{option:r,tickProps:u,value:`${typeof o==`function`?o(n.value,t):n.value}${s||``}`}))});return v.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${C}-ticks`},v.createElement(j2,{ticks:T,axisId:w,axisType:C}),P.length>0&&v.createElement(cZ,{zIndex:uB.label},v.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${C}-tick-labels`,ref:t},P)),N.length>0&&v.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${C}-tick-lines`},N))}),N2=(0,v.forwardRef)((e,t)=>{var{axisLine:n,width:r,height:i,className:a,hide:o,ticks:s,axisType:c,axisId:l}=e,u=_2(e,g2),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``),h=(0,v.useRef)(null);(0,v.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>d2({ticks:h.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var g=(0,v.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);h.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==d||a!==p)&&(f(i),m(a))}}},[d,p]);return o||r!=null&&r<=0||i!=null&&i<=0?null:v.createElement(cZ,{zIndex:e.zIndex},v.createElement(kE,{className:Xt(`recharts-cartesian-axis`,a)},v.createElement(E2,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:_E(e)}),v.createElement(M2,{ref:g,axisType:c,events:u,fontSize:d,getTicksConfig:e,height:e.height,letterSpacing:p,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:l}),v.createElement(x$,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},v.createElement(F$,{label:e.label,labelRef:e.labelRef}),e.children)))}),P2=v.forwardRef((e,t)=>{var n=$O(e,T2);return v.createElement(N2,y2({},n,{ref:t}))});P2.displayName=`CartesianAxis`;var F2=[`x1`,`y1`,`x2`,`y2`,`key`],I2=[`offset`],L2=[`xAxisId`,`yAxisId`],R2=[`xAxisId`,`yAxisId`];function z2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function B2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?z2(Object(n),!0).forEach(function(t){V2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function V2(e,t,n){return(t=H2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H2(e){var t=U2(e,`string`);return typeof t==`symbol`?t:t+``}function U2(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function W2(){return W2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},W2.apply(null,arguments)}function G2(e,t){if(e==null)return{};var n,r,i=K2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function K2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var q2=e=>{var{fill:t}=e;if(!t||t===`none`)return null;var{fillOpacity:n,x:r,y:i,width:a,height:o,ry:s}=e;return v.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function J2(e){var{option:t,lineItemProps:n}=e,r;if(v.isValidElement(t))r=v.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var{x1:i,y1:a,x2:o,y2:s,key:c}=n,l=_E(G2(n,F2))??{},{offset:u}=l,d=G2(l,I2);r=v.createElement(`line`,W2({},d,{x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function Y2(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=G2(e,L2),c=i.map((e,i)=>{var a=B2(B2({},s),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${i}`,index:i});return v.createElement(J2,{key:`line-${i}`,option:r,lineItemProps:a})});return v.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},c)}function X2(e){var{y:t,height:n,vertical:r=!0,verticalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=G2(e,R2),c=i.map((e,i)=>{var a=B2(B2({},s),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${i}`,index:i});return v.createElement(J2,{option:r,lineItemProps:a,key:`line-${i}`})});return v.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},c)}function Z2(e){var{horizontalFill:t,fillOpacity:n,x:r,y:i,width:a,height:o,horizontalPoints:s,horizontal:c=!0}=e;if(!c||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return v.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return v.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function Q2(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:i,y:a,width:o,height:s,verticalPoints:c}=e;if(!t||!n||!n.length)return null;var l=c.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,t)=>{var c=l[t+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=t%n.length;return v.createElement(`rect`,{key:`react-${t}`,x:e,y:a,width:u,height:s,stroke:`none`,fill:n[d],fillOpacity:r,className:`recharts-cartesian-grid-bg`})});return v.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},u)}var $2=(e,t)=>{var{xAxis:n,width:r,height:i,offset:a}=e;return tP(u2(B2(B2(B2({},T2),n),{},{ticks:nP(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},e4=(e,t)=>{var{yAxis:n,width:r,height:i,offset:a}=e;return tP(u2(B2(B2(B2({},T2),n),{},{ticks:nP(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},t4={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:`#ccc`,fill:`none`,verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:uB.grid};function n4(e){var t=_F(),n=vF(),r=gF(),i=B2(B2({},$O(e,t4)),{},{x:Z(e.x)?e.x:r.left,y:Z(e.y)?e.y:r.top,width:Z(e.width)?e.width:r.width,height:Z(e.height)?e.height:r.height}),{xAxisId:a,yAxisId:o,x:s,y:c,width:l,height:u,syncWithTicks:d,horizontalValues:f,verticalValues:p}=i,m=BP(),h=Q(e=>LJ(e,`xAxis`,a,m)),g=Q(e=>LJ(e,`yAxis`,o,m));if(!KN(l)||!KN(u)||!Z(s)||!Z(c))return null;var _=i.verticalCoordinatesGenerator||$2,y=i.horizontalCoordinatesGenerator||e4,{horizontalPoints:b,verticalPoints:x}=i;if((!b||!b.length)&&typeof y==`function`){var S=f&&f.length,C=y({yAxis:g?B2(B2({},g),{},{ticks:S?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},S?!0:d);KP(Array.isArray(C),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof C}]`),Array.isArray(C)&&(b=C)}if((!x||!x.length)&&typeof _==`function`){var w=p&&p.length,T=_({xAxis:h?B2(B2({},h),{},{ticks:w?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);KP(Array.isArray(T),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(x=T)}return v.createElement(cZ,{zIndex:i.zIndex},v.createElement(`g`,{className:`recharts-cartesian-grid`},v.createElement(q2,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),v.createElement(Z2,W2({},i,{horizontalPoints:b})),v.createElement(Q2,W2({},i,{verticalPoints:x})),v.createElement(Y2,W2({},i,{offset:r,horizontalPoints:b,xAxis:h,yAxis:g})),v.createElement(X2,W2({},i,{offset:r,verticalPoints:x,xAxis:h,yAxis:g}))))}n4.displayName=`CartesianGrid`;var r4=XM({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:i}=t.payload;e[n]&&(e[n]=e[n].map(e=>e.dataKey===r.dataKey&&e.direction===r.direction?i:e))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(e=>e.dataKey!==r.dataKey||e.direction!==r.direction))}}}),{addErrorBar:i4,replaceErrorBar:a4,removeErrorBar:o4}=r4.actions,s4=r4.reducer,c4=[`children`];function l4(e,t){if(e==null)return{};var n,r,i=u4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function u4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var d4=(0,v.createContext)({data:[],xAxisId:`xAxis-0`,yAxisId:`yAxis-0`,dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function f4(e){var{children:t}=e,n=l4(e,c4);return v.createElement(d4.Provider,{value:n},t)}function p4(e,t){var n=Q(t=>BK(t,e)),r=Q(e=>UK(e,t)),i=n?.allowDataOverflow??RK.allowDataOverflow,a=r?.allowDataOverflow??VK.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function m4(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,i=b0(),{needClipX:a,needClipY:o,needClip:s}=p4(t,n);if(!s||!i)return null;var{x:c,y:l,width:u,height:d}=i;return v.createElement(`clipPath`,{id:`clipPath-${r}`},v.createElement(`rect`,{x:a?c:c-u/2,y:o?l:l-d/2,width:a?u:u*2,height:o?d:d*2}))}function h4(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function g4(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var _4=`Invariant failed`;function v4(e,t){if(!e)throw Error(_4)}function y4(){return y4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y4.apply(null,arguments)}function b4(e){return v.createElement(L1,y4({shapeType:`rectangle`,activeClassName:`recharts-active-bar`,inActiveClassName:`recharts-inactive-bar`},e))}var x4=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(Z(e))return e;var i=Z(n)||TO(n);return i?e(n,r):(!i&&v4(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},S4=(e,t,n)=>n,C4=$([ZK,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),w4=$([C4],e=>e?.maxBarSize),T4=(e,t,n,r)=>r,E4=$([yF,ZK,h4,g4,S4],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),D4=(e,t,n)=>{var r=yF(e),i=h4(e,t),a=g4(e,t);if(i!=null&&a!=null)return r===`horizontal`?xq(e,`yAxis`,a,n):xq(e,`xAxis`,i,n)},O4=$([E4,rB,(e,t)=>{var n=yF(e),r=h4(e,t),i=g4(e,t);if(r!=null&&i!=null)return n===`horizontal`?PJ(e,`xAxis`,r):PJ(e,`yAxis`,i)}],S0),k4=(e,t,n)=>{var r=C4(e,t);if(r==null)return 0;var i=h4(e,t),a=g4(e,t);if(i==null||a==null)return 0;var o=yF(e),s=eB(e),{maxBarSize:c}=r,l=TO(c)?s:c,u,d;return o===`horizontal`?(u=BJ(e,`xAxis`,i,n),d=zJ(e,`xAxis`,i,n)):(u=BJ(e,`yAxis`,a,n),d=zJ(e,`yAxis`,a,n)),mP(u,d,!0)??l??0},A4=(e,t,n)=>{var r=yF(e),i=h4(e,t),a=g4(e,t);if(i!=null&&a!=null){var o,s;return r===`horizontal`?(o=BJ(e,`xAxis`,i,n),s=zJ(e,`xAxis`,i,n)):(o=BJ(e,`yAxis`,a,n),s=zJ(e,`yAxis`,a,n)),mP(o,s)}},j4=$([IP,RP,(e,t,n)=>{var r=h4(e,t);if(r!=null)return BJ(e,`xAxis`,r,n)},(e,t,n)=>{var r=g4(e,t);if(r!=null)return BJ(e,`yAxis`,r,n)},(e,t,n)=>{var r=h4(e,t);if(r!=null)return zJ(e,`xAxis`,r,n)},(e,t,n)=>{var r=g4(e,t);if(r!=null)return zJ(e,`yAxis`,r,n)},$([$([O4,eB,tB,nB,k4,A4,w4],k0),C4],j0),yF,zz,A4,$([D4,C4],A0),C4,T4],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var{chartData:p,dataStartIndex:m,dataEndIndex:h}=c;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var{data:g}=d,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return p3({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),M4=[`index`];function N4(){return N4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},N4.apply(null,arguments)}function P4(e,t){if(e==null)return{};var n,r,i=F4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function F4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var I4=(0,v.createContext)(void 0),L4=e=>{var t=(0,v.useContext)(I4);if(t!=null)return t.stackId;if(e!=null)return oP(e)},R4=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,z4=e=>{var t=(0,v.useContext)(I4);if(t!=null){var{stackId:n}=t;return`url(#${R4(n,e)})`}},B4=e=>{var{index:t}=e,n=P4(e,M4),r=z4(t);return v.createElement(kE,N4({className:`recharts-bar-stack-layer`,clipPath:r},n))},V4=[`onMouseEnter`,`onMouseLeave`,`onClick`],H4=[`value`,`background`,`tooltipPosition`],U4=[`id`],W4=[`onMouseEnter`,`onClick`,`onMouseLeave`];function G4(){return G4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G4.apply(null,arguments)}function K4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function q4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?K4(Object(n),!0).forEach(function(t){J4(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function J4(e,t,n){return(t=Y4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y4(e){var t=X4(e,`string`);return typeof t==`symbol`?t:t+``}function X4(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Z4(e,t){if(e==null)return{};var n,r,i=Q4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Q4(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var $4=e=>{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:gP(n,t),payload:e}]},e3=v.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:s,tooltipType:c,id:l}=e,u={dataDefinedOnItem:void 0,getPosition:OO,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:gP(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return v.createElement(V1,{tooltipEntrySettings:u})});function t3(e){var t=Q(oX),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=Z4(a,V4),u=R1(o,r,a.id),d=z1(s),f=B1(c,r,a.id);if(!i||n==null)return null;var p=vE(i);return v.createElement(cZ,{zIndex:M0(i,uB.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=Z4(e,H4);if(!o)return null;var m=u(e,n),h=d(e,n),g=f(e,n),_=q4(q4(q4(q4(q4({option:i,isActive:String(n)===t},c),{},{fill:`#eee`},o),p),qO(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return v.createElement(b4,G4({key:`background-bar-${n}`},_))}))}function n3(e){var{showLabels:t,children:n,rects:r}=e,i=r?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return q4(q4({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return v.createElement(U$,{value:t?i:void 0},n)}function r3(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=Q(oX),c=Q(cX),l=n&&String(i.originalDataIndex)===s&&(c==null||o===c),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!1);(0,v.useEffect)(()=>{var e;return l?(d(!0),e=requestAnimationFrame(()=>{p(!0)})):p(!1),()=>{cancelAnimationFrame(e)}},[l]);var m=(0,v.useCallback)(()=>{l||d(!1)},[l]),h=l&&f,g=l||u,_=l?n===!0?t:n:t,y=v.createElement(b4,G4({},r,{name:String(r.name)},i,{isActive:h,option:_,index:a,dataKey:o,onTransitionEnd:m}));return g?v.createElement(cZ,{zIndex:uB.activeBar},v.createElement(B4,{index:i.originalDataIndex},y)):y}function i3(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return v.createElement(b4,G4({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function a3(e){var{data:t,props:n}=e,r=_E(n)??{},{id:i}=r,a=Z4(r,U4),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=Z4(n,W4),p=R1(l,s,i),m=z1(d),h=B1(u,s,i);return t?v.createElement(v.Fragment,null,t.map((e,t)=>v.createElement(B4,G4({index:e.originalDataIndex,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},qO(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?v.createElement(r3,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):v.createElement(i3,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function o3(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,onAnimationEnd:l,onAnimationStart:u}=t,d=n.current,f=jR(t,`recharts-bar-`),[p,m]=(0,v.useState)(!1),h=!p,g=(0,v.useCallback)(()=>{typeof l==`function`&&l(),m(!1)},[l]),_=(0,v.useCallback)(()=>{typeof u==`function`&&u(),m(!0)},[u]);return v.createElement(n3,{showLabels:h,rects:r},v.createElement(AR,{animationId:f,begin:o,duration:s,isActive:a,easing:c,onAnimationEnd:g,onAnimationStart:_,key:f},e=>{var a=e===1?r:r?.map((t,n)=>{var r=d&&d[n];if(r)return q4(q4({},t),{},{x:CO(r.x,t.x,e),y:CO(r.y,t.y,e),width:CO(r.width,t.width,e),height:CO(r.height,t.height,e)});if(i===`horizontal`){var a=CO(0,t.height,e),o=CO(t.stackedBarStart,t.y,e);return q4(q4({},t),{},{y:o,height:a})}var s=CO(0,t.width,e),c=CO(t.stackedBarStart,t.x,e);return q4(q4({},t),{},{width:s,x:c})});return e>0&&(n.current=a??null),a==null?null:v.createElement(kE,null,v.createElement(a3,{props:t,data:a}))}),v.createElement(J$,{label:t.label}),t.children)}function s3(e){var t=(0,v.useRef)(null);return v.createElement(o3,{previousRectanglesRef:t,props:e})}var c3=0,l3=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:QN(e,t)}},u3=class extends v.PureComponent{render(){var{hide:e,data:t,dataKey:n,className:r,xAxisId:i,yAxisId:a,needClip:o,background:s,id:c}=this.props;if(e||t==null)return null;var l=Xt(`recharts-bar`,r),u=c;return v.createElement(kE,{className:l,id:c},o&&v.createElement(`defs`,null,v.createElement(m4,{clipPathId:u,xAxisId:i,yAxisId:a})),v.createElement(kE,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},v.createElement(t3,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),v.createElement(s3,this.props)))}},d3={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:c3,xAxisId:0,yAxisId:0,zIndex:uB.bar};function f3(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u}=e,{needClip:d}=p4(t,n),f=bF(),p=BP(),m=c1(e.children,nQ),h=Q(t=>j4(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,v.createElement(f4,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:l3,errorBarOffset:g},v.createElement(u3,G4({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function p3(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r,hasCustomShape:i},pos:a,bandSize:o,xAxis:s,yAxis:c,xAxisTicks:l,yAxisTicks:u,stackedData:d,displayedData:f,offset:p,cells:m,parentViewBox:h,dataStartIndex:g}=e,_=t===`horizontal`?c:s,v=d?_.scale.domain():null,y=cP({numericAxis:_}),b=_.scale.map(y);return f.map((e,f)=>{var _,x,S,C,w,T;if(d){var E=d[f+g];if(E==null)return null;_=rP(E,v)}else _=QN(e,n),Array.isArray(_)||(_=[y,_]);var D=x4(r,c3)(_[1],f);if(t===`horizontal`){var O=c.scale.map(_[0]),k=c.scale.map(_[1]);if(O==null||k==null)return null;x=sP({axis:s,ticks:l,bandSize:o,offset:a.offset,entry:e,index:f}),S=k??O??void 0,C=a.size;var A=O-k;if(w=gO(A)?0:A,T={x,y:p.top,width:C,height:p.height},Math.abs(D)>0&&Math.abs(w)<Math.abs(D)){var j=hO(w||D)*(Math.abs(D)-Math.abs(w));S-=j,w+=j}}else{var M=s.scale.map(_[0]),N=s.scale.map(_[1]);if(M==null||N==null)return null;if(x=M,S=sP({axis:c,ticks:u,bandSize:o,offset:a.offset,entry:e,index:f}),C=N-M,w=a.size,T={x:p.left,y:S,width:p.width,height:w},Math.abs(D)>0&&Math.abs(C)<Math.abs(D)){var P=hO(C||D)*(Math.abs(D)-Math.abs(C));C+=P}}return x==null||S==null||C==null||w==null||!i&&(C===0||w===0)?null:q4(q4({},e),{},{stackedBarStart:b,x,y:S,width:C,height:w,value:d?_:_[1],payload:e,background:T,tooltipPosition:{x:x+C/2,y:S+w/2},parentViewBox:h,originalDataIndex:f},m&&m[f]&&m[f].props)}).filter(Boolean)}function m3(e){var t=$O(e,d3),n=L4(t.stackId),r=BP();return v.createElement(K1,{id:t.id,type:`bar`},e=>v.createElement(v.Fragment,null,v.createElement(H1,{legendPayload:$4(t)}),v.createElement(e3,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),v.createElement(t0,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null}),v.createElement(cZ,{zIndex:t.zIndex},v.createElement(f3,G4({},t,{id:e})))))}var h3=v.memo(m3,GI);h3.displayName=`Bar`;var g3=[`domain`,`range`],_3=[`domain`,`range`];function v3(e,t){if(e==null)return{};var n,r,i=y3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function y3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function b3(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function x3(e,t){if(e===t)return!0;var{domain:n,range:r}=e,i=v3(e,g3),{domain:a,range:o}=t,s=v3(t,_3);return!b3(n,a)||!b3(r,o)?!1:GI(i,s)}var S3=[`type`],C3=[`dangerouslySetInnerHTML`,`ticks`,`scale`],w3=[`id`,`scale`];function T3(){return T3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},T3.apply(null,arguments)}function E3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function D3(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?E3(Object(n),!0).forEach(function(t){O3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function O3(e,t,n){return(t=k3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k3(e){var t=A3(e,`string`);return typeof t==`symbol`?t:t+``}function A3(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function j3(e,t){if(e==null)return{};var n,r,i=M3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function M3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function N3(e){var t=pA(),n=(0,v.useRef)(null),r=xF(),{type:i}=e,a=j3(e,S3),o=mB(r,`xAxis`,i),s=(0,v.useMemo)(()=>{if(o!=null)return D3(D3({},a),{},{type:o})},[a,o]);return(0,v.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(c0(s)):n.current!==s&&t(l0({prev:n.current,next:s})),n.current=s)},[s,t]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(u0(n.current)),null)},[t]),null}var P3=e=>{var{xAxisId:t,className:n}=e,r=Q(RP),i=BP(),a=`xAxis`,o=Q(e=>RJ(e,a,t,i)),s=Q(e=>EJ(e,t)),c=Q(e=>jJ(e,t)),l=Q(e=>zK(e,t));if(s==null||c==null||l==null)return null;var{dangerouslySetInnerHTML:u,ticks:d,scale:f}=e,p=j3(e,C3),{id:m,scale:h}=l,g=j3(l,w3);return v.createElement(P2,T3({},p,g,{x:c.x,y:c.y,width:s.width,height:s.height,className:Xt(`recharts-${a} ${a}`,n),viewBox:r,ticks:o,axisType:a,axisId:t}))},F3={allowDataOverflow:RK.allowDataOverflow,allowDecimals:RK.allowDecimals,allowDuplicatedCategory:RK.allowDuplicatedCategory,angle:RK.angle,axisLine:T2.axisLine,height:RK.height,hide:!1,includeHidden:RK.includeHidden,interval:RK.interval,label:!1,minTickGap:RK.minTickGap,mirror:RK.mirror,orientation:RK.orientation,padding:RK.padding,reversed:RK.reversed,scale:RK.scale,tick:RK.tick,tickCount:RK.tickCount,tickLine:T2.tickLine,tickSize:T2.tickSize,type:RK.type,niceTicks:RK.niceTicks,xAxisId:0},I3=v.memo(e=>{var t=$O(e,F3);return v.createElement(v.Fragment,null,v.createElement(N3,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),v.createElement(P3,t))},x3);I3.displayName=`XAxis`;var L3=[`type`],R3=[`dangerouslySetInnerHTML`,`ticks`,`scale`],z3=[`id`,`scale`];function B3(){return B3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B3.apply(null,arguments)}function V3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function H3(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?V3(Object(n),!0).forEach(function(t){U3(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function U3(e,t,n){return(t=W3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function W3(e){var t=G3(e,`string`);return typeof t==`symbol`?t:t+``}function G3(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function K3(e,t){if(e==null)return{};var n,r,i=q3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function q3(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function J3(e){var t=pA(),n=(0,v.useRef)(null),r=xF(),{type:i}=e,a=K3(e,L3),o=mB(r,`yAxis`,i),s=(0,v.useMemo)(()=>{if(o!=null)return H3(H3({},a),{},{type:o})},[o,a]);return(0,v.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(d0(s)):n.current!==s&&t(f0({prev:n.current,next:s})),n.current=s)},[s,t]),(0,v.useLayoutEffect)(()=>()=>{n.current&&=(t(p0(n.current)),null)},[t]),null}function Y3(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=(0,v.useRef)(null),o=(0,v.useRef)(null),s=Q(RP),c=BP(),l=pA(),u=`yAxis`,d=Q(e=>NJ(e,t)),f=Q(e=>MJ(e,t)),p=Q(e=>RJ(e,u,t,c)),m=Q(e=>HK(e,t));if((0,v.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||E$(i)||(0,v.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(_0({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;var{dangerouslySetInnerHTML:h,ticks:g,scale:_}=e,y=K3(e,R3),{id:b,scale:x}=m,S=K3(m,z3);return v.createElement(P2,B3({},y,S,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:Xt(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u,axisId:t}))}var X3={allowDataOverflow:VK.allowDataOverflow,allowDecimals:VK.allowDecimals,allowDuplicatedCategory:VK.allowDuplicatedCategory,angle:VK.angle,axisLine:T2.axisLine,hide:!1,includeHidden:VK.includeHidden,interval:VK.interval,label:!1,minTickGap:VK.minTickGap,mirror:VK.mirror,orientation:VK.orientation,padding:VK.padding,reversed:VK.reversed,scale:VK.scale,tick:VK.tick,tickCount:VK.tickCount,tickLine:T2.tickLine,tickSize:T2.tickSize,type:VK.type,niceTicks:VK.niceTicks,width:VK.width,yAxisId:0},Z3=v.memo(e=>{var t=$O(e,X3);return v.createElement(v.Fragment,null,v.createElement(J3,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),v.createElement(Y3,t))},x3);Z3.displayName=`YAxis`;var Q3=$([(e,t)=>t,yF,AB,zB,$Y,tX,NX,IP],GX);function $3(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function e6(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if($3(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var t6=OM(`mouseClick`),n6=IN();n6.startListening({actionCreator:t6,effect:(e,t)=>{var n=e.payload,r=Q3(t.getState(),e6(n));r?.activeIndex!=null&&t.dispatch(oY({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var r6=OM(`mouseMove`),i6=IN(),a6=null,o6=null,s6=null;i6.startListening({actionCreator:r6,effect:(e,t)=>{var n=e.payload,{throttleDelay:r,throttledEvents:i}=t.getState().eventSettings,a=i===`all`||i?.includes(`mousemove`);a6!==null&&(cancelAnimationFrame(a6),a6=null),o6!==null&&(typeof r!=`number`||!a)&&(clearTimeout(o6),o6=null),s6=e6(n);var o=()=>{var e=t.getState(),n=GJ(e,e.tooltip.settings.shared);if(!s6){a6=null,o6=null;return}if(n===`axis`){var r=Q3(e,s6);r?.activeIndex==null?t.dispatch(rY()):t.dispatch(aY({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}a6=null,o6=null};if(!a){o();return}r===`raf`?a6=requestAnimationFrame(o):typeof r==`number`&&o6===null&&(o6=setTimeout(o,r))}});function c6(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<<CHILDREN>>`:t}var l6={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},u6=XM({name:`rootProps`,initialState:l6,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??l6.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),d6=u6.reducer,{updateOptions:f6}=u6.actions,p6=XM({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}}),{updatePolarOptions:m6}=p6.actions,h6=p6.reducer,g6=OM(`keyDown`),_6=OM(`focus`),v6=OM(`blur`),y6=IN(),b6=null,x6=null,S6=null;y6.startListening({actionCreator:g6,effect:(e,t)=>{S6=e.payload,b6!==null&&(cancelAnimationFrame(b6),b6=null);var{throttleDelay:n,throttledEvents:r}=t.getState().eventSettings,i=r===`all`||r.includes(`keydown`);x6!==null&&(typeof n!=`number`||!i)&&(clearTimeout(x6),x6=null);var a=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var{keyboardInteraction:n}=e.tooltip,r=S6;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=xY(n,VY(e),vq(e),XY(e)),a=i==null?-1:Number(i);if(!Number.isFinite(a)||a<0)return;var o=tX(e);if(r===`Enter`){var s=RX(e,`axis`,`hover`,String(n.index));t.dispatch(cY({active:!n.active,activeIndex:n.index,activeCoordinate:s}));return}var c=VJ(e)===`left-to-right`?1:-1,l=a+(r===`ArrowRight`?1:-1)*c;if(o==null||l>=o.length||l<0)return;var u=RX(e,`axis`,`hover`,String(l));t.dispatch(cY({active:!0,activeIndex:l.toString(),activeCoordinate:u}))}finally{b6=null,x6=null}};if(!i){a();return}n===`raf`?b6=requestAnimationFrame(a):typeof n==`number`&&x6===null&&(a(),S6=null,x6=setTimeout(()=>{S6?a():(x6=null,b6=null)},n))}}),y6.startListening({actionCreator:_6,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;if(!r.active&&r.index==null){var i=`0`,a=RX(n,`axis`,`hover`,String(i));t.dispatch(cY({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),y6.startListening({actionCreator:v6,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;r.active&&t.dispatch(cY({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function C6(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var w6=OM(`externalEvent`),T6=IN(),E6=new Map,D6=new Map,O6=new Map;T6.startListening({actionCreator:w6,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){var i=r.type,a=C6(r);O6.set(i,{handler:n,reactEvent:a});var o=E6.get(i);o!==void 0&&(cancelAnimationFrame(o),E6.delete(i));var{throttleDelay:s,throttledEvents:c}=t.getState().eventSettings,l=c,u=l===`all`||l?.includes(i),d=D6.get(i);d!==void 0&&(typeof s!=`number`||!u)&&(clearTimeout(d),D6.delete(i));var f=()=>{var e=O6.get(i);try{if(!e)return;var{handler:n,reactEvent:r}=e,a=t.getState(),o={activeCoordinate:dX(a),activeDataKey:cX(a),activeIndex:oX(a),activeLabel:sX(a),activeTooltipIndex:oX(a),isTooltipActive:fX(a)};n&&n(o,r)}finally{E6.delete(i),D6.delete(i),O6.delete(i)}};if(!u){f();return}if(s===`raf`){var p=requestAnimationFrame(f);E6.set(i,p)}else if(typeof s==`number`){if(!D6.has(i)){f();var m=setTimeout(f,s);D6.set(i,m)}}else f()}}});var k6=$([$([TY],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),A6=OM(`touchMove`),j6=IN(),M6=null,N6=null,P6=null,F6=null;j6.startListening({actionCreator:A6,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){F6=C6(n);var{throttleDelay:r,throttledEvents:i}=t.getState().eventSettings,a=i===`all`||i.includes(`touchmove`);M6!==null&&(cancelAnimationFrame(M6),M6=null),N6!==null&&(typeof r!=`number`||!a)&&(clearTimeout(N6),N6=null),P6=Array.from(n.touches).map(e=>e6({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var o=()=>{if(F6!=null){var e=t.getState(),n=GJ(e,e.tooltip.settings.shared);if(n===`axis`){var r=P6?.[0];if(r==null){M6=null,N6=null;return}var i=Q3(e,r);i?.activeIndex!=null&&t.dispatch(aY({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=F6.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(TP),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=zY(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var{dataKey:u}=l,d=k6(e,s,c);t.dispatch(tY({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}M6=null,N6=null}};if(!a){o();return}r===`raf`?M6=requestAnimationFrame(o):typeof r==`number`&&N6===null&&(o(),F6=null,N6=setTimeout(()=>{F6?o():(N6=null,M6=null)},r))}}});var I6={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},L6=XM({name:`eventSettings`,initialState:I6,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=bI(t.payload.throttledEvents))}}}),{setEventSettings:R6}=L6.actions,z6=L6.reducer,B6=QA({brush:L0,cartesianAxis:v0,chartData:NZ,errorBars:s4,eventSettings:z6,graphicalItems:e0,layout:UN,legend:DI,options:EZ,polarAxis:e1,polarOptions:h6,referenceElements:q0,renderedTicks:h2,rootProps:d6,tooltip:lY,zIndex:sZ}),V6=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return BM({reducer:B6,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([n6.middleware,i6.middleware,y6.middleware,T6.middleware,j6.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(RM({type:`raf`}))},devTools:cL.devToolsEnabled&&{serialize:{replacer:c6},name:`recharts-${t}`}})};function H6(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=BP(),a=(0,v.useRef)(null);if(i)return n;a.current??=V6(t,r);var o=uA;return v.createElement(HI,{context:o,store:a.current},n)}function U6(e){var{layout:t,margin:n}=e,r=pA(),i=BP();return(0,v.useEffect)(()=>{i||(r(BN(t)),r(zN(n)))},[r,i,t,n]),null}var W6=(0,v.memo)(U6,GI);function G6(e){var t=pA();return(0,v.useEffect)(()=>{t(f6(e))},[t,e]),null}var K6=(0,v.memo)(e=>{var t=pA();return(0,v.useEffect)(()=>{t(R6(e))},[t,e]),null},GI);function q6(e){var{zIndex:t,isPanorama:n}=e,r=(0,v.useRef)(null),i=pA();return(0,v.useLayoutEffect)(()=>(r.current&&i(aZ({zIndex:t,element:r.current,isPanorama:n})),()=>{i(oZ({zIndex:t,isPanorama:n}))}),[i,t,n]),v.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function J6(e){var{children:t,isPanorama:n}=e,r=Q(qX);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return v.createElement(v.Fragment,null,i.map(e=>v.createElement(q6,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>v.createElement(q6,{key:e,zIndex:e,isPanorama:n})))}var Y6=[`children`];function X6(e,t){if(e==null)return{};var n,r,i=Z6(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Z6(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Q6(){return Q6=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Q6.apply(null,arguments)}var $6={width:`100%`,height:`100%`,display:`block`},e8=(0,v.forwardRef)((e,t)=>{var n=_F(),r=vF(),i=vL();if(!KN(n)||!KN(r))return null;var{children:a,otherAttributes:o,title:s,desc:c}=e,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),v.createElement(wE,Q6({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:$6,ref:t}),a)}),t8=e=>{var{children:t}=e,n=Q(HP);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return v.createElement(wE,{width:r,height:i,x:o,y:a},t)},n8=(0,v.forwardRef)((e,t)=>{var{children:n}=e,r=X6(e,Y6);return BP()?v.createElement(t8,null,v.createElement(J6,{isPanorama:!0},n)):v.createElement(e8,Q6({ref:t},r),v.createElement(J6,{isPanorama:!1},n))});function r8(){var e=pA(),[t,n]=(0,v.useState)(null),r=Q(xP);return(0,v.useEffect)(()=>{if(t!=null){var n=t.getBoundingClientRect().width/t.offsetWidth;GN(n)&&n!==r&&e(HN(n))}},[t,e,r]),n}function i8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a8(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?i8(Object(n),!0).forEach(function(t){o8(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i8(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o8(e,t,n){return(t=s8(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s8(e){var t=c8(e,`string`);return typeof t==`symbol`?t:t+``}function c8(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function l8(){return l8=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l8.apply(null,arguments)}var u8=()=>(WZ(),null);function d8(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var f8=(0,v.forwardRef)((e,t)=>{var n=(0,v.useRef)(null),[r,i]=(0,v.useState)({containerWidth:d8(e.style?.width),containerHeight:d8(e.style?.height)}),a=(0,v.useCallback)((e,t)=>{i(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),o=(0,v.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null&&typeof ResizeObserver<`u`){var{width:r,height:i}=e.getBoundingClientRect();a(r,i);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var{width:n,height:r}=t.contentRect;a(n,r)}});o.observe(e),n.current=o}},[t,a]);return(0,v.useEffect)(()=>()=>{n.current?.disconnect()},[a]),v.createElement(v.Fragment,null,v.createElement(wF,{width:r.containerWidth,height:r.containerHeight}),v.createElement(`div`,l8({ref:o},e)))}),p8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r}=e,[i,a]=(0,v.useState)({containerWidth:d8(n),containerHeight:d8(r)}),o=(0,v.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,v.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var{width:n,height:r}=e.getBoundingClientRect();o(n,r)}},[t,o]);return v.createElement(v.Fragment,null,v.createElement(wF,{width:i.containerWidth,height:i.containerHeight}),v.createElement(`div`,l8({ref:s},e)))}),m8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r}=e;return v.createElement(v.Fragment,null,v.createElement(wF,{width:n,height:r}),v.createElement(`div`,l8({ref:t},e)))}),h8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r}=e;return typeof n==`string`||typeof r==`string`?v.createElement(p8,l8({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?v.createElement(m8,l8({},e,{width:n,height:r,ref:t})):v.createElement(v.Fragment,null,v.createElement(wF,{width:n,height:r}),v.createElement(`div`,l8({ref:t},e)))});function g8(e){return e?f8:h8}var _8=(0,v.forwardRef)((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:s,onMouseDown:c,onMouseEnter:l,onMouseLeave:u,onMouseMove:d,onMouseUp:f,onTouchEnd:p,onTouchMove:m,onTouchStart:h,style:g,width:_,responsive:y,dispatchTouchEvents:b=!0}=e,x=(0,v.useRef)(null),S=pA(),[C,w]=(0,v.useState)(null),[T,E]=(0,v.useState)(null),D=r8(),O=uF(),k=O?.width>0?O.width:_,A=O?.height>0?O.height:i,j=(0,v.useCallback)(e=>{D(e),typeof t==`function`&&t(e),w(e),E(e),e!=null&&(x.current=e)},[D,t,w,E]),M=(0,v.useCallback)(e=>{S(t6(e)),S(w6({handler:a,reactEvent:e}))},[S,a]),N=(0,v.useCallback)(e=>{S(r6(e)),S(w6({handler:l,reactEvent:e}))},[S,l]),P=(0,v.useCallback)(e=>{S(rY()),S(w6({handler:u,reactEvent:e}))},[S,u]),ee=(0,v.useCallback)(e=>{S(r6(e)),S(w6({handler:d,reactEvent:e}))},[S,d]),F=(0,v.useCallback)(()=>{S(_6())},[S]),I=(0,v.useCallback)(()=>{S(v6())},[S]),te=(0,v.useCallback)(e=>{S(g6(e.key))},[S]),L=(0,v.useCallback)(e=>{S(w6({handler:o,reactEvent:e}))},[S,o]),ne=(0,v.useCallback)(e=>{S(w6({handler:s,reactEvent:e}))},[S,s]),re=(0,v.useCallback)(e=>{S(w6({handler:c,reactEvent:e}))},[S,c]),R=(0,v.useCallback)(e=>{S(w6({handler:f,reactEvent:e}))},[S,f]),ie=(0,v.useCallback)(e=>{S(w6({handler:h,reactEvent:e}))},[S,h]),ae=(0,v.useCallback)(e=>{b&&S(A6(e)),S(w6({handler:m,reactEvent:e}))},[S,b,m]),oe=(0,v.useCallback)(e=>{S(w6({handler:p,reactEvent:e}))},[S,p]),se=g8(y);return v.createElement(vZ.Provider,{value:C},v.createElement(AE.Provider,{value:T},v.createElement(se,{width:k??g?.width,height:A??g?.height,className:Xt(`recharts-wrapper`,r),style:a8({position:`relative`,cursor:`default`,width:k,height:A},g),onClick:M,onContextMenu:L,onDoubleClick:ne,onFocus:F,onBlur:I,onKeyDown:te,onMouseDown:re,onMouseEnter:N,onMouseLeave:P,onMouseMove:ee,onMouseUp:R,onTouchEnd:oe,onTouchMove:ae,onTouchStart:ie,ref:j},v.createElement(u8,null),n)))}),v8=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function y8(e,t){if(e==null)return{};var n,r,i=b8(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function b8(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var x8=(0,v.forwardRef)((e,t)=>{var{width:n,height:r,responsive:i,children:a,className:o,style:s,compact:c,title:l,desc:u}=e,d=_E(y8(e,v8));return c?v.createElement(v.Fragment,null,v.createElement(wF,{width:n,height:r}),v.createElement(n8,{otherAttributes:d,title:l,desc:u},a)):v.createElement(_8,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},v.createElement(n8,{otherAttributes:d,title:l,desc:u,ref:t},v.createElement(Y0,null,a)))});function S8(){return S8=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},S8.apply(null,arguments)}function C8(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function w8(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?C8(Object(n),!0).forEach(function(t){T8(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C8(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function T8(e,t,n){return(t=E8(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E8(e){var t=D8(e,`string`);return typeof t==`symbol`?t:t+``}function D8(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var O8=w8({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},I6),k8=(0,v.forwardRef)(function(e,t){var n=$O(e.categoricalChartProps,O8),{chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,categoricalChartProps:s}=e,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return v.createElement(H6,{preloadedState:{options:c},reduxStoreName:s.id??r},v.createElement(N0,{chartData:s.data}),v.createElement(W6,{layout:n.layout,margin:n.margin}),v.createElement(K6,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),v.createElement(G6,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),v.createElement(x8,S8({},n,{ref:t})))}),A8=[`axis`,`item`],j8=(0,v.forwardRef)((e,t)=>v.createElement(k8,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:A8,tooltipPayloadSearcher:wZ,categoricalChartProps:e,ref:t})),M8={light:``,dark:`.dark`},N8={width:320,height:200},P8=v.createContext(null);function F8(){let e=v.useContext(P8);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function I8({id:e,className:t,children:n,config:r,initialDimension:i=N8,...a}){let o=v.useId(),s=`chart-${e??o.replace(/:/g,``)}`;return(0,H.jsx)(P8.Provider,{value:{config:r},children:(0,H.jsxs)(`div`,{"data-slot":`chart`,"data-chart":s,className:V(`flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden`,t),...a,children:[(0,H.jsx)(L8,{id:s,config:r}),(0,H.jsx)(fF,{initialDimension:i,children:n})]})})}var L8=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme??e.color);return n.length?(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(M8).map(([t,r])=>`
164
164
  ${r} [data-chart=${e}] {
165
165
  ${n.map(([e,n])=>{let r=n.theme?.[t]??n.color;return r?` --color-${e}: ${r};`:null}).join(`
166
166
  `)}
167
167
  }
168
168
  `).join(`
169
- `)}}):null},O8=GZ;function k8({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f}){let{config:p}=T8(),m=v.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=`${f??e?.dataKey??e?.name??`value`}`,r=A8(p,e,n),a=!f&&typeof o==`string`?p[o]?.label??o:r?.label;return s?(0,H.jsx)(`div`,{className:V(`font-medium`,c),children:s(a,t)}):a?(0,H.jsx)(`div`,{className:V(`font-medium`,c),children:a}):null},[o,s,t,i,c,p,f]);if(!e||!t?.length)return null;let h=t.length===1&&r!==`dot`;return(0,H.jsxs)(`div`,{className:V(`grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl`,n),children:[h?null:m,(0,H.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=`${d??e.name??e.dataKey??`value`}`,i=A8(p,e,n),o=u??e.payload?.fill??e.color;return(0,H.jsx)(`div`,{className:V(`flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground`,r===`dot`&&`items-center`),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,H.jsxs)(H.Fragment,{children:[i?.icon?(0,H.jsx)(i.icon,{}):!a&&(0,H.jsx)(`div`,{className:V(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":r===`dot`,"w-1":r===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":r===`dashed`,"my-0.5":h&&r===`dashed`}),style:{"--color-bg":o,"--color-border":o}}),(0,H.jsxs)(`div`,{className:V(`flex flex-1 justify-between leading-none`,h?`items-end`:`items-center`),children:[(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[h?m:null,(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:i?.label??e.name})]}),e.value!=null&&(0,H.jsx)(`span`,{className:`font-mono font-medium text-foreground tabular-nums`,children:typeof e.value==`number`?e.value.toLocaleString():String(e.value)})]})]})},t)})})]})}function A8(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}function j8({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card`,className:V(`flex min-w-0 flex-col gap-3 rounded-xl border border-border bg-card p-4 text-card-foreground`,e),...t})}function M8({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-header`,className:V(`grid gap-1`,e),...t})}function N8({className:e,...t}){return(0,H.jsx)(`h3`,{"data-slot":`card-title`,className:V(`text-sm font-semibold leading-snug`,e),...t})}function P8({className:e,...t}){return(0,H.jsx)(`p`,{"data-slot":`card-description`,className:V(`text-xs text-muted-foreground`,e),...t})}function F8({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-content`,className:V(`min-w-0`,e),...t})}function I8({title:e,summary:t,emptyText:n,table:r,children:i,className:a,interactive:o=!1}){return(0,H.jsxs)(j8,{className:a,children:[(0,H.jsxs)(M8,{children:[(0,H.jsx)(N8,{children:e}),t&&!n?(0,H.jsx)(P8,{children:t}):null]}),(0,H.jsx)(F8,{children:n?(0,H.jsx)(`p`,{className:`flex min-h-40 items-center text-sm text-muted-foreground`,children:n}):(0,H.jsxs)(H.Fragment,{children:[o?i:(0,H.jsx)(`div`,{"aria-hidden":`true`,children:i}),(0,H.jsxs)(`table`,{className:`sr-only`,children:[(0,H.jsx)(`caption`,{children:e}),(0,H.jsx)(`thead`,{children:(0,H.jsx)(`tr`,{children:r.columns.map(e=>(0,H.jsx)(`th`,{scope:`col`,children:e},e))})}),(0,H.jsx)(`tbody`,{children:r.rows.map((e,t)=>(0,H.jsx)(`tr`,{children:e.map((e,t)=>(0,H.jsx)(`td`,{children:e},t))},t))})]})]})})]})}var L8={pending:`var(--status-info)`,applied:`var(--status-success)`,rejected:`var(--destructive)`,stale:`var(--status-warning)`,undone:`var(--muted-foreground)`};function R8({proposals:e}){let t=Y(),n=NT(e).map(e=>({...e,label:t(e.state)})),r={count:{label:t(`Proposals`),color:`var(--chart-1)`}},i=n[0]?.count??0;return(0,H.jsx)(I8,{title:t(`Proposal pipeline`),summary:Gb(t(`{total} proposals, {pending} waiting for a decision`),{total:e.length,pending:i}),emptyText:e.length===0?t(`No proposals yet.`):``,table:{columns:[t(`State`),t(`Proposals`)],rows:n.map(e=>[e.label,e.count])},children:(0,H.jsx)(E8,{config:r,className:`aspect-auto h-44 w-full`,children:(0,H.jsxs)(x8,{data:n,layout:`vertical`,accessibilityLayer:!1,margin:{top:0,right:28,left:0,bottom:0},children:[(0,H.jsx)(E3,{type:`number`,hide:!0,allowDecimals:!1}),(0,H.jsx)(V3,{type:`category`,dataKey:`label`,width:104,tickLine:!1,axisLine:!1}),(0,H.jsx)(O8,{cursor:{fill:`var(--interactive-hover)`},content:(0,H.jsx)(k8,{hideLabel:!0,nameKey:`count`})}),(0,H.jsxs)(a3,{dataKey:`count`,fill:`var(--color-count)`,radius:[0,2,2,0],children:[n.map(e=>(0,H.jsx)(KZ,{fill:L8[e.state]??`var(--color-count)`},e.state)),(0,H.jsx)(L$,{dataKey:`count`,position:`right`,className:`fill-foreground`})]})]})})})}var z8=`var(--status-success)`,B8=`var(--destructive)`;function V8(){let e=Y();return{succeeded:{label:e(`Successful`),color:z8},failed:{label:e(`Failed`),color:B8}}}var H8={stroke:`var(--card)`,strokeWidth:1};function U8(){let e=Y(),t=[{label:e(`Successful`),background:z8},{label:e(`Failed`),background:B8}];return(0,H.jsx)(`ul`,{className:`flex flex-wrap items-center justify-center gap-4 pt-3 text-xs`,children:t.map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.background}}),e.label]},e.label))})}var W8=26;function G8({skills:e,total:t,shown:n,onShown:r,onOpen:i,className:a}){let o=Y(),s=V8(),c=e.slice(0,n).map(jT),l=c[0],u=e=>{let t=e?.payload;t&&i(t)};return(0,H.jsxs)(I8,{className:a,interactive:!0,title:o(`Most used skills`),summary:l?Gb(o(`{name} leads with {uses} uses. Click a bar to open the skill.`),{name:l.name,uses:l.uses}):void 0,emptyText:c.length===0?o(`No skill was used in the last 30 days.`):``,table:{columns:[o(`Skill`),o(`Uses`),o(`Failed`)],rows:c.map(e=>[e.name,e.uses,e.failed])},children:[(0,H.jsxs)(`div`,{className:V(`flex gap-2`,c.length>16&&`overflow-y-auto overscroll-contain pt-8`),style:c.length>16?{maxHeight:`448px`}:void 0,children:[(0,H.jsx)(`ol`,{className:`w-[6.5rem] shrink-0`,"aria-label":o(`Most used skills`),children:c.map(e=>(0,H.jsx)(`li`,{className:`flex h-[26px] items-center justify-end`,children:(0,H.jsx)(Hp,{content:e.name,className:`min-w-0 max-w-full`,children:(0,H.jsx)(`button`,{type:`button`,className:`block max-w-full truncate rounded-sm text-end text-xs hover:underline focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>i(e),children:e.name})})},`${e.name}\n${e.path??``}`))}),(0,H.jsx)(`div`,{"aria-hidden":`true`,className:`min-w-0 flex-1`,children:(0,H.jsx)(E8,{config:s,className:`aspect-auto w-full`,style:{height:`${c.length*W8}px`},children:(0,H.jsxs)(x8,{data:c,layout:`vertical`,accessibilityLayer:!1,margin:{top:0,right:8,left:0,bottom:0},children:[(0,H.jsx)(E3,{type:`number`,hide:!0,allowDecimals:!1}),(0,H.jsx)(V3,{type:`category`,dataKey:`name`,hide:!0}),(0,H.jsx)(O8,{cursor:{fill:`var(--interactive-hover)`},content:(0,H.jsx)(k8,{})}),(0,H.jsx)(a3,{dataKey:`succeeded`,stackId:`uses`,fill:`var(--color-succeeded)`,cursor:`pointer`,onClick:u,...H8}),(0,H.jsx)(a3,{dataKey:`failed`,stackId:`uses`,fill:`var(--color-failed)`,radius:[0,2,2,0],cursor:`pointer`,onClick:u,...H8})]})})})]}),(0,H.jsx)(`div`,{"aria-hidden":`true`,children:(0,H.jsx)(U8,{})}),t>8?(0,H.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,"aria-live":`polite`,children:Gb(o(`Showing {shown} of {total}`),{shown:c.length,total:t})}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[c.length<e.length?(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>r(zT(n,e.length)),children:o(`Show more`)}):null,c.length>8?(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>r(8),children:o(`Show less`)}):null]})]}):null]})}function K8(e){let[t,n]=(0,v.useState)(8);return(0,H.jsx)(G8,{...e,shown:t,onShown:n})}var q8=e=>{let t=Math.ceil(Math.max(0,...e.map(e=>e.uses))*1.25);return Math.max(28,String(t).length*7+10)};function J8({rows:e,bucket:t,period:n,title:r,className:i}){let a=Y(),o=V8(),s=nm(),c=t??`day`,l=e.map(jT),u=e.reduce((e,t)=>e+t.uses,0),d=e.reduce((e,t)=>e+t.failed,0),f=e=>YT(c,String(e),!1,s),p=t?e=>YT(c,String(e),!0,s):f,m={uses:ex(u),failed:ex(d)},h=a(t?`No uses in this period. Bars appear after OMMS records turns.`:`No uses in the last 30 days. Bars appear after OMMS records turns.`);return(0,H.jsxs)(I8,{className:i,title:r,summary:n?Gb(a(`{period}: {uses} uses, {failed} with a failed tool call`),{period:n,...m}):Gb(a(`{uses} uses, {failed} with a failed tool call`),m),emptyText:AT(e)?h:``,table:{columns:[a(VT[c]),a(`Uses`),a(`Failed`)],rows:e.map(e=>[p(e.key),e.uses,e.failed])},children:[(0,H.jsx)(E8,{config:o,className:`aspect-auto h-44 w-full`,children:(0,H.jsxs)(x8,{data:l,accessibilityLayer:!1,margin:{top:4,right:0,left:0},children:[(0,H.jsx)(K2,{vertical:!1}),(0,H.jsx)(E3,{dataKey:`key`,tickLine:!1,axisLine:!1,minTickGap:c===`day`?24:8,tickFormatter:f}),(0,H.jsx)(V3,{width:q8(e),tickLine:!1,axisLine:!1,allowDecimals:!1,tickCount:3}),(0,H.jsx)(O8,{cursor:{fill:`var(--interactive-hover)`},content:(0,H.jsx)(k8,{labelFormatter:p})}),(0,H.jsx)(a3,{dataKey:`succeeded`,stackId:`uses`,fill:`var(--color-succeeded)`,...H8}),(0,H.jsx)(a3,{dataKey:`failed`,stackId:`uses`,fill:`var(--color-failed)`,radius:[2,2,0,0],...H8})]})}),(0,H.jsx)(U8,{})]})}var Y8={months:[],years:[]},X8=`The use charts appear after OMMS records agent turns that use a skill.`;function Z8(e,t,n){return e.bucket===`year`?`${n(`No skill uses are recorded yet.`)} ${n(X8)}`:e.bucket===`day`&&!e.month?n(`No skill uses are recorded in the last 30 days. The use charts appear after OMMS records agent turns that use a skill.`):`${Gb(n(`No skill uses are recorded in {period}.`),{period:t})} ${n(X8)}`}function Q8({activity:e,range:t,shownRange:n=t,loading:r,error:i,proposals:a,onOpen:o,onRange:s}){let c=Y(),l=nm(),u=e!==null&&AT(e.series),d=e?XT(n,e.series,l,c):``,f=n.bucket===`day`&&!n.month,p=r&&e!==null,m=V(`transition-opacity duration-150`,p&&`opacity-60`);return(0,H.jsxs)(`section`,{id:`skills-section-activity`,className:`scroll-mt-4 space-y-3`,"aria-labelledby":`skills-activity-title`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,H.jsx)(`h2`,{id:`skills-activity-title`,className:`text-section-title font-semibold`,children:c(`Activity`)}),(0,H.jsx)(tE,{range:t,available:e?.available??Y8,currentYear:new Date().getUTCFullYear(),loading:p,onChange:s})]}),i?(0,H.jsxs)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:[c(`Activity could not load.`),` `,i]}):null,e===null&&!i?(0,H.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),c(`Loading…`)]}):null,(0,H.jsxs)(`div`,{"aria-busy":p||void 0,className:`space-y-3`,children:[e?(0,H.jsx)(`dl`,{className:V(`flex flex-wrap gap-x-6 gap-y-1 text-sm`,m),children:[[f?c(`Uses in 30 days`):Gb(c(`Uses in {period}`),{period:d}),e.totals.uses],[c(`Failed turns`),e.totals.failed],[c(`Active skills`),e.totals.activeSkills]].map(([e,t])=>(0,H.jsxs)(`div`,{className:`flex items-baseline gap-1.5`,children:[(0,H.jsx)(`dt`,{className:`text-muted-foreground`,children:e}),(0,H.jsx)(`dd`,{className:`font-semibold tabular-nums`,children:ex(Number(t))})]},e))}):null,e&&u?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:Z8(n,d,c)}):null,(0,H.jsxs)(`div`,{className:`grid grid-cols-1 items-start gap-3 lg:grid-cols-2`,children:[e&&!u?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(J8,{className:V(`lg:col-span-2`,m),rows:e.series,bucket:e.bucket,period:d,title:c(BT[e.bucket])}),(0,H.jsx)(K8,{className:m,skills:e.topSkills,total:e.topTotal,onOpen:o},UT(n))]}):null,(0,H.jsx)(R8,{proposals:a})]})]})]})}function $8({proposals:e,onOpen:t,reloadKey:n}){let[r,i]=(0,v.useState)(()=>WT(fi(IT,IT))),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!0);return(0,v.useEffect)(()=>{let e=!0;return u(!0),Wb.activity({...HT(r),top:100}).then(t=>{if(!e)return;if(!t.ok){c(t.error),u(!1);return}let n=DT(t.data),a=GT(r,n.available);if(a!==r){mi(IT,UT(a)),i(a);return}o({range:r,activity:n}),c(``),u(!1)}),()=>{e=!1}},[r,n]),(0,H.jsx)(Q8,{activity:a?.activity??null,range:r,shownRange:a?.range??r,loading:l,error:s,proposals:e,onOpen:t,onRange:e=>{mi(IT,UT(e)),i(e)}})}var e5={all:`All ({count})`,"not-modified":`Not modified ({count})`,modified:`Modified ({count})`,suggested:`Suggested ({count})`},t5={all:{idle:`border-input bg-card text-muted-foreground hover:bg-interactive-hover`,chosen:`border-primary/40 bg-selection text-foreground`},"not-modified":{idle:`border-status-info/35 bg-status-info/5 text-status-info hover:bg-status-info/15`,chosen:`border-status-info/70 bg-status-info/20 text-status-info`},modified:{idle:`border-status-success/35 bg-status-success/5 text-status-success hover:bg-status-success/15`,chosen:`border-status-success/70 bg-status-success/20 text-status-success`},suggested:{idle:`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))] hover:brightness-110`,chosen:`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))]`}};function n5(e){let t=td(`Suggested`);return{backgroundColor:`oklch(0.72 0.14 ${t} / ${e?.3:.1})`,borderColor:`oklch(0.72 0.14 ${t} / ${e?.8:.4})`,"--keyword-hue":String(t)}}var r5={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function i5({value:e,counts:t,onChange:n}){let r=Y(),i=(0,v.useRef)([]),a=e=>{i.current[e]?.focus(),n(pT[e])};return(0,H.jsx)(`div`,{role:`radiogroup`,"aria-label":r(`Show skills by modification`),className:`inline-flex flex-wrap gap-1.5`,onKeyDown:t=>{let n=r5[t.key];if(!n)return;t.preventDefault();let r=getComputedStyle(t.currentTarget).direction===`rtl`,i=t.key===`ArrowLeft`||t.key===`ArrowRight`,o=r&&i?-n:n,s=pT.indexOf(e);a((s+o+pT.length)%pT.length)},children:pT.map((n,o)=>(0,H.jsx)(`button`,{ref:e=>{i.current[o]=e},type:`button`,role:`radio`,"aria-checked":e===n,tabIndex:e===n?0:-1,className:V(`min-h-9 rounded-[10px] border px-3 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring`,e===n?t5[n].chosen:t5[n].idle),style:n===`suggested`?n5(e===n):void 0,onClick:()=>a(o),children:Gb(r(e5[n]),{count:ex(t[n])})},n))})}function a5({className:e,...t}){return(0,H.jsx)(`nav`,{"data-slot":`pagination`,className:V(`mx-auto flex w-full justify-center`,e),...t})}function o5({className:e,...t}){return(0,H.jsx)(`ul`,{"data-slot":`pagination-content`,className:V(`flex flex-row flex-wrap items-center justify-center gap-1`,e),...t})}function s5({...e}){return(0,H.jsx)(`li`,{"data-slot":`pagination-item`,...e})}function c5({className:e,isActive:t,size:n=`icon-sm`,disabled:r,...i}){return(0,H.jsx)(`button`,{type:`button`,"aria-current":t?`page`:void 0,"aria-disabled":r||void 0,disabled:r,"data-slot":`pagination-button`,"data-active":t,className:V(Va({variant:t?`outline`:`ghost`,size:n}),`tabular-nums`,t&&`border-primary/40 bg-selection`,e),...i})}function l5({className:e,label:t,...n}){return(0,H.jsxs)(`span`,{"data-slot":`pagination-ellipsis`,className:V(`flex size-8 items-center justify-center`,e),...n,children:[(0,H.jsx)(xe,{className:`size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`sr-only`,children:t})]})}var u5=[3,5,10,25,50,100],d5=(e,t)=>Array.from({length:t-e+1},(t,n)=>e+n);function f5(e,t,n=1){if(t<=1)return[];if(t<=n*2+5)return d5(1,t);let r=Math.max(e-n,1),i=Math.min(e+n,t),a=r>2,o=i<t-1,s=3+n*2;return!a&&o?[...d5(1,s),`...`,t]:a&&!o?[1,`...`,...d5(t-s+1,t)]:[1,`...`,...d5(r,i),`...`,t]}var p5=(e,t)=>Math.max(1,Math.ceil(Math.max(0,e)/Math.max(1,t))),m5=(e,t,n)=>Math.min(Math.max(1,Math.floor(e)||1),p5(t,n));function h5(e,t,n){let r=m5(e,n,t),i=n===0?0:(r-1)*t+1;return{page:r,pageCount:p5(n,t),from:i,to:Math.min(n,r*t),total:n}}function g5(e,t,n){let r=h5(t,n,e.length);return{...r,items:e.slice(Math.max(0,r.from-1),r.to)}}function _5(e,t,n,r){let{from:i,to:a}=h5(e,t,n);return!r||n===0?{offset:Math.max(0,i-1),limit:t}:{offset:n-a,limit:a-i+1}}function v5(e){let t=[...u5];return t.includes(e)?t:[...t,e].sort((e,t)=>e-t)}function y5(e,t){let n=Number.parseInt(e.trim(),10);return Number.isNaN(n)||n<1?t:Math.min(n,200)}function b5(e,t,n,r){let i=n===`asc`?1:-1,a=e=>+!!r?.(e);return e.map((e,t)=>({item:e,index:t})).sort((e,n)=>a(e.item)-a(n.item)||(a(e.item)?0:i*t(e.item,n.item))||e.index-n.index).map(({item:e})=>e)}function x5(e){try{let t=localStorage.getItem(e);if(!t)return null;let n=JSON.parse(t),r=n.perPage===void 0?void 0:y5(String(n.perPage),5),i=n.order===`asc`||n.order===`desc`?n.order:void 0;return{perPage:r,sort:typeof n.sort==`string`?n.sort:void 0,order:i}}catch{return null}}function S5(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function C5(e,t){try{if(localStorage.getItem(e)!==null)return;let n=x5(t);if(!n)return;let r=n.perPage===5?void 0:n.perPage;if(r===void 0&&n.sort===void 0&&n.order===void 0)return;S5(e,{perPage:r,sort:n.sort,order:n.order})}catch{}}function w5(e,t){return e.key===t?e:{page:1,key:t}}function T5(e,t,n){let r=e.find(n=>n.value===e.find(e=>e.value===t)?.flip);return r?{sort:r.value,order:r.first}:{sort:t,order:n===`asc`?`desc`:`asc`}}function E5({view:e}){let t=Y(),n=(0,v.useRef)(null),r=(0,v.useRef)(!1);(0,v.useEffect)(()=>{r.current&&(r.current=!1,n.current?.querySelector(`[aria-current="page"]`)?.focus())},[e.page]);let i=f5(e.page,e.pageCount);if(i.length===0)return null;let a=t=>{r.current=t===1||t===e.pageCount,e.setPage(t)};return(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 pt-1`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground tabular-nums`,children:Gb(t(`Showing {from} to {to} of {total} results`),{from:e.from,to:e.to,total:e.total})}),(0,H.jsx)(a5,{ref:n,"aria-label":t(`pagination`),children:(0,H.jsxs)(o5,{children:[(0,H.jsx)(s5,{children:(0,H.jsxs)(c5,{size:`sm`,className:`gap-1 px-2.5`,"aria-label":t(`Go to previous page`),disabled:e.page<=1,onClick:()=>a(e.page-1),children:[(0,H.jsx)(se,{className:`rtl:-scale-x-100`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`hidden sm:inline`,children:t(`Previous`)})]})}),i.map((n,r)=>n===`...`?(0,H.jsx)(s5,{children:(0,H.jsx)(l5,{label:t(`More pages`)})},`gap-${r}`):(0,H.jsx)(s5,{children:(0,H.jsx)(c5,{isActive:n===e.page,"aria-label":Gb(t(`Go to page {page}`),{page:n}),onClick:()=>n===e.page?void 0:a(n),children:n})},n)),(0,H.jsx)(s5,{children:(0,H.jsxs)(c5,{size:`sm`,className:`gap-1 px-2.5`,"aria-label":t(`Go to next page`),disabled:e.page>=e.pageCount,onClick:()=>a(e.page+1),children:[(0,H.jsx)(`span`,{className:`hidden sm:inline`,children:t(`Next`)}),(0,H.jsx)(ce,{className:`rtl:-scale-x-100`,"aria-hidden":`true`})]})})]})})]})}var D5=()=>(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`hidden text-muted-foreground/50 sm:inline`,children:`|`});function O5({view:e,totalLabel:t}){let n=Y(),[r,i]=(0,v.useState)(null),a=()=>{if(r===null)return;let t=y5(r,e.perPage);i(null),t!==e.perPage&&e.setPerPage(t)},o=e=>{e.key===`Enter`&&a()},s=e.order===`asc`,c=s?ee:M;return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-2 text-sm text-muted-foreground`,children:[(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{children:n(`Show`)}),(0,H.jsx)(Dr,{className:`h-8 w-fit`,value:e.perPage,"aria-label":n(`Results per page`),onChange:t=>e.setPerPage(Number(t.target.value)),children:v5(e.perPage).map(e=>(0,H.jsx)(`option`,{value:e,children:e},e))}),(0,H.jsx)(`span`,{children:n(`results`)})]}),(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(D5,{}),(0,H.jsx)(`span`,{children:n(`Custom:`)}),(0,H.jsx)(ad,{type:`number`,inputMode:`numeric`,min:1,max:200,className:`h-8 w-20 tabular-nums`,value:r??String(e.perPage),"aria-label":n(`Custom results per page`),onChange:e=>i(e.target.value),onKeyDown:o,onBlur:a})]}),e.sorts.length>0?(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(D5,{}),(0,H.jsx)(`span`,{children:n(`Sort by`)}),(0,H.jsx)(Dr,{className:`h-8 w-fit`,value:e.sort,"aria-label":n(`Sort by`),onChange:t=>{let n=e.sorts.find(e=>e.value===t.target.value);n&&e.setSort(n.value,n.first)},children:e.sorts.map(e=>(0,H.jsx)(`option`,{value:e.value,children:n(e.label)},e.value))}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-label":n(s?`Sort descending`:`Sort ascending`),title:n(s?`Sort descending`:`Sort ascending`),onClick:()=>{let t=T5(e.sorts,e.sort,e.order);e.setSort(t.sort,t.order)},children:(0,H.jsx)(c,{className:`size-3.5`,"aria-hidden":`true`})})]}):null,(0,H.jsx)(`span`,{className:`ms-auto tabular-nums`,children:t})]})}function k5({view:e,totalLabel:t,children:n}){return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(O5,{view:e,totalLabel:t}),n,(0,H.jsx)(E5,{view:e})]})}function A5(e,t){let{perPage:n,...r}=e;return t?{perPage:n,...r}:r}function j5(e,t,n=5){let r=x5(e),i=t.find(e=>e.value===r?.sort)??t[0];return{perPage:r?.perPage??n,sort:i.value,order:(r?.sort===i.value?r.order:void 0)??i.first}}function M5({storageKey:e,total:t,sorts:n,resetKey:r=``,legacyKey:i,defaultPerPage:a}){let[o,s]=(0,v.useState)(()=>(i&&C5(e,i),j5(e,n,a))),[c,l]=(0,v.useState)(()=>x5(e)?.perPage!==void 0),[u,d]=(0,v.useState)({page:1,key:r}),f=w5(u,r);f!==u&&d(f);let p=h5(f.page,o.perPage,t),m=(t,n=c)=>{s(t),l(n),S5(e,A5(t,n)),d({page:1,key:r})};return{...p,...o,sorts:n,setPage:e=>d({page:e,key:r}),setPerPage:e=>m({...o,perPage:e},!0),setSort:(e,t)=>m({...o,sort:e,order:t})}}function N5({items:e,sorts:t,...n}){let r=M5({...n,sorts:t,total:e.length}),{compare:i,last:a}=t.find(e=>e.value===r.sort)??t[0];return{view:r,pageItems:(0,v.useMemo)(()=>b5(e,i,r.order,a),[e,i,a,r.order]).slice(Math.max(0,r.from-1),r.to)}}var P5=(e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}),F5=[{value:`uses`,label:`Most used`,first:`desc`,compare:(e,t)=>e.uses-t.uses},{value:`attention`,label:`Needs attention`,first:`desc`,compare:(e,t)=>e.attention-t.attention},{value:`name`,label:`Name (A–Z)`,first:`asc`,compare:P5},{value:`lastUsed`,label:`Last used`,first:`desc`,compare:(e,t)=>(e.lastUsedAt??0)-(t.lastUsedAt??0),last:e=>e.lastUsedAt===null},{value:`failed`,label:`Failed turns`,first:`desc`,compare:(e,t)=>e.failedTurns-t.failedTurns},{value:`lastModified`,label:`Last modified`,first:`desc`,compare:(e,t)=>(e.lastAppliedAt??0)-(t.lastAppliedAt??0),last:e=>e.lastAppliedAt===null}],I5=(e,t)=>(e.errorLine??``).localeCompare(t.errorLine??``,void 0,{sensitivity:`base`}),L5=[{value:`calls`,label:`Most calls`,first:`desc`,compare:(e,t)=>e.calls-t.calls},{value:`lastSeen`,label:`Last seen`,first:`desc`,compare:(e,t)=>e.lastSeenAt-t.lastSeenAt},{value:`tool`,label:`Tool (A–Z)`,first:`asc`,compare:(e,t)=>P5(e,t)||I5(e,t)}],R5=[`pending`,`applied`,`rejected`,`stale`,`undone`],z5=(e,t)=>e.updatedAt-t.updatedAt,B5=[{value:`newest`,label:`Newest`,first:`desc`,flip:`oldest`,compare:z5},{value:`oldest`,label:`Oldest`,first:`asc`,flip:`newest`,compare:z5},{value:`state`,label:`State`,first:`asc`,compare:(e,t)=>R5.indexOf(e.state)-R5.indexOf(t.state)},{value:`skill`,label:`Skill`,first:`asc`,compare:(e,t)=>P5({name:e.skillName},{name:t.skillName})}],V5=[{value:`newest`,label:`Newest`,first:`desc`,flip:`oldest`},{value:`oldest`,label:`Oldest`,first:`asc`,flip:`newest`}],H5=e=>e.order===`asc`;function U5({label:e,colourKey:t=e,className:n}){let r=td(t);return(0,H.jsx)(`span`,{className:V(`inline-flex min-h-6 max-w-full items-center rounded-[7px] border px-2 text-xs break-words`,`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))]`,n),style:{backgroundColor:`oklch(0.72 0.14 ${r} / 0.18)`,borderColor:`oklch(0.72 0.14 ${r} / 0.45)`,"--keyword-hue":String(r)},children:e})}function W5(e){return[`Tool: ${e.name}`,`Error: ${e.error??`(no error text recorded)`}`,`Input: ${e.input}`].join(`
170
- `)}function G5({call:e}){let t=Y(),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(!1),c=e.input.length>400,l=c&&!n?e.input.slice(0,400)+`…`:e.input;async function u(){try{await navigator.clipboard.writeText(W5(e)),s(!1),a(!0),window.setTimeout(()=>a(!1),2e3)}catch{a(!1),s(!0),window.setTimeout(()=>s(!1),4e3)}}return(0,H.jsxs)(`div`,{className:`min-w-0 space-y-1.5 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsxs)(`p`,{className:`flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`font-mono`,dir:`ltr`,children:e.name}),(0,H.jsx)(`span`,{dir:`ltr`,children:Gb(t(`Position {position}`),{position:e.position})}),`createdAt`in e?(0,H.jsx)(`span`,{children:Qp(e.createdAt)}):null,`projectName`in e&&e.projectName?(0,H.jsx)(`bdi`,{children:e.projectName}):null]}),(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:e.error??(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:t(`No error text recorded`)})}),(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-h-64 overflow-y-auto rounded-lg bg-secondary px-2.5 py-2 font-mono text-xs whitespace-pre-wrap [overflow-wrap:anywhere]`,children:l}),e.inputCut?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`The server sent the first 20000 characters of this input.`)}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[c?(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>r(e=>!e),children:t(n?`Show less input`:`Show full input`)}):null,(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>void u(),children:[i?(0,H.jsx)(ae,{"aria-hidden":`true`}):(0,H.jsx)(_e,{"aria-hidden":`true`}),(0,H.jsx)(`span`,{role:`status`,children:t(i?`Copied`:`Copy`)})]}),o?(0,H.jsx)(`span`,{role:`status`,className:`self-center text-xs text-destructive-label`,children:t(`Could not copy`)}):null]})]})}function K5({title:e,calls:t,totalCount:n,loading:r,loadError:i,onClose:a}){let o=Y();return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>void(!e&&a()),children:(0,H.jsxs)(q,{className:`sm:max-w-2xl`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:e}),n!==void 0&&t.length>0?(0,H.jsx)(Gl,{children:Gb(o(n===1?`{count} call is in this group; showing the latest {shown}.`:`{count} calls are in this group; showing the latest {shown}.`),{count:n,shown:t.length})}):null]}),i?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:o(`The failed calls could not be loaded.`)}),(0,H.jsx)(Ul,{children:(0,H.jsx)(K,{type:`button`,variant:`outline`,onClick:a,children:o(`Close`)})})]}):r?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`Loading…`)}):(0,H.jsx)(`div`,{className:`space-y-3`,children:t.map(e=>(0,H.jsx)(G5,{call:e},`turnId`in e?`${e.turnId}-${e.position}`:e.position))})]})})}function q5({turn:e}){let t=Gb(Y()(e.failedToolCalls===1?`{count} failed tool call`:`{count} failed tool calls`),{count:e.failedToolCalls}),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)([]),[c,l]=(0,v.useState)(``);async function u(){r(!0),a(!0),l(``);let t=await Wb.turnFailures(e.id);if(a(!1),!t.ok){l(t.error);return}s(t.data.failures)}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{type:`button`,variant:`link`,"aria-haspopup":`dialog`,className:`h-auto p-0 text-xs font-normal text-destructive-label underline decoration-dotted underline-offset-2`,onClick:()=>void u(),children:t}),n?(0,H.jsx)(K5,{title:t,calls:o,loading:i,loadError:c,onClose:()=>r(!1)}):null]})}function J5({turns:e}){let t=Y();return e.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`No recorded turns.`)}):(0,H.jsx)(`ul`,{className:`space-y-3`,children:e.map(e=>(0,H.jsxs)(`li`,{className:`min-w-0 space-y-1 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsx)(`p`,{className:`line-clamp-3 break-words text-sm`,dir:`auto`,children:e.promptPreview||t(`(empty prompt)`)}),(0,H.jsxs)(`p`,{className:`flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:Qp(e.createdAt)}),(0,H.jsx)(`span`,{dir:`ltr`,children:e.host}),e.projectName?(0,H.jsx)(`bdi`,{children:e.projectName}):null,e.failedToolCalls>0?(0,H.jsx)(q5,{turn:e}):null]})]},e.id))})}function Y5(e,t,n){let r=e.length>3;return!r||!t?{canExpand:r,moreCount:r?Math.min(e.length,6)-3:0,...g5(e,1,3)}:{canExpand:r,moreCount:0,...g5(e,n,6)}}function X5({turns:e,expanded:t,page:n,onToggle:r,onPage:i}){let a=Y(),o=(0,v.useId)(),s=Y5(e,t,n),c=t?le:oe;return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`div`,{id:o,children:(0,H.jsx)(J5,{turns:s.items})}),s.canExpand?(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,"aria-expanded":t,"aria-controls":o,onClick:r,children:[(0,H.jsx)(c,{"aria-hidden":`true`}),t?a(`Show less`):Gb(a(`Show {count} more`),{count:s.moreCount})]}):null,t?(0,H.jsx)(E5,{view:{...s,setPage:i}}):null]})}function Z5({turns:e}){let[t,n]=(0,v.useState)(!1),[r,i]=(0,v.useState)(1);return(0,H.jsx)(X5,{turns:e,expanded:t,page:r,onToggle:()=>{n(e=>!e),i(1)},onPage:i})}var Q5={add:`bg-status-success/15 text-status-success`,del:`bg-destructive/10 text-destructive-label`,hunk:`text-status-info`,ctx:`text-muted-foreground`};function $5({diff:e,label:t}){return(0,H.jsx)(`pre`,{dir:`ltr`,tabIndex:0,"aria-label":t,className:`max-h-96 overflow-auto rounded-lg border border-border bg-background py-1 font-mono text-xs leading-5`,children:Yb(e).map((e,t)=>(0,H.jsx)(`code`,{"data-line":e.kind,className:V(`block px-2 whitespace-pre-wrap break-words`,Q5[e.kind]),children:e.text||` `},t))})}function e7({detail:e}){let t=Y();if(e===null)return(0,H.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}),t(`Loading the proposal…`)]});if(e.status===`failed`)return(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:t(`The proposal could not be loaded. Select Show less, then Show more to try again.`)});let{proposal:n,evidence:r}=e;return(0,H.jsxs)(H.Fragment,{children:[n.diff?(0,H.jsx)($5,{diff:n.diff,label:t(`Changes to SKILL.md`)}):(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-h-96 overflow-auto rounded-lg border border-border bg-background p-2 font-mono text-xs`,children:n.content}),n.evidenceTurnIds.length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`h4`,{className:`text-sm font-medium`,children:t(`Evidence turns`)}),(0,H.jsx)(Z5,{turns:r})]}):null]})}async function t7(e,t=Wb.proposal){let n=await t(e);return n.ok?{status:`ready`,proposal:n.data.proposal,evidence:n.data.evidence}:{status:`failed`}}function n7(e,t,n=null){let[r,i]=(0,v.useState)(n),a=r?.status===`ready`;return(0,v.useEffect)(()=>{if(!t||a)return;let n=!0;return t7(e).then(e=>{n&&i(e)}),()=>{n=!1,i(e=>e?.status===`ready`?e:null)}},[t,a,e]),r}function r7(e,t){return e===`state-write-failed`?{message:`The state could not be saved, so SKILL.md is as it was. Try again.`,reload:!0}:{message:t,reload:!1}}function i7({savedContent:e}){let t=Y();return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(`p`,{className:`text-sm`,children:t(`Undo stopped because the file changed. This is the content OMMS saved:`)}),e===null?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`No content was saved.`)}):(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-h-72 overflow-auto rounded-lg border border-border bg-background p-2 font-mono text-xs`,children:e})]})}var a7=(e,t)=>({...e,state:`stale`,updatedAt:t}),o7={applied:`Applied {date}`,rejected:`Rejected {date}`,undone:`Undone {date}`,stale:`Stale since {date}`};function s7({proposal:e}){let t=Y(),n=e.state===`pending`?null:o7[e.state];return(0,H.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:Gb(t(`Created {date}`),{date:Qp(e.createdAt)})}),n?(0,H.jsx)(`span`,{children:Gb(t(n),{date:Qp(e.updatedAt)})}):null]})}function c7({proposal:e}){let t=Y(),{added:n,removed:r}=e;return n===0&&r===0?null:(0,H.jsxs)(`span`,{dir:`ltr`,className:`inline-flex w-fit items-center gap-1 rounded-[7px] border border-border bg-background px-2 font-mono text-xs tabular-nums leading-5`,children:[(0,H.jsx)(`span`,{className:`sr-only`,children:Gb(t(`{added} lines added, {removed} lines removed`),{added:n,removed:r})}),(0,H.jsxs)(`span`,{"aria-hidden":`true`,className:`text-status-success`,children:[`+`,n]}),(0,H.jsxs)(`span`,{"aria-hidden":`true`,className:`text-destructive-label`,children:[`−`,r]}),(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-muted-foreground`,children:t(`lines`)})]})}function l7({proposal:e,onChange:t,initiallyOpen:n=!1,initialDetail:r=null}){let i=Y(),a=qb(e),o=e.state===`pending`,s=(0,v.useId)(),c=(0,v.useId)(),l=e.canUndo!==!1,[u,d]=(0,v.useState)(n),f=u?le:oe,p=n7(e.id,u,r),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)(``),[y,b]=(0,v.useState)(void 0);async function x(n){h(!0),_(``),b(void 0);let r=await n();if(h(!1),r.ok)t(Zb(r.data.proposal));else{let n=r7(r.code,r.error);_(i(n.message)),n.reload&&Wb.proposal(e.id).then(e=>{e.ok&&t(Zb(e.data.proposal))}),r.code===`changed`&&b(r.savedContent??null),r.code===`stale`&&t(a7(e,Date.now()))}}return(0,H.jsxs)(`article`,{className:`min-w-0 space-y-3 rounded-xl border border-border bg-card p-3`,children:[(0,H.jsxs)(`header`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(`h3`,{className:`min-w-0 break-words text-sm font-semibold`,children:e.skillName}),(0,H.jsx)(U5,{label:i(a),colourKey:a}),(0,H.jsx)(U5,{label:i(e.kind===`new`?`New skill`:`Improvement`),colourKey:e.kind}),(0,H.jsx)(s7,{proposal:e})]}),e.summary?(0,H.jsx)(`p`,{className:V(`break-words text-sm`,u?``:`line-clamp-2`),dir:`auto`,children:e.summary}):null,(0,H.jsx)(c7,{proposal:e}),e.state===`stale`?(0,H.jsx)(lx,{tone:`warning`,children:(0,H.jsx)(`p`,{children:i(`Stale: the file changed since this draft`)})}):null,(0,H.jsx)(`div`,{id:c,hidden:!u,className:`space-y-3`,children:u?(0,H.jsx)(e7,{detail:p}):null}),o||e.state===`applied`?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:m,onClick:()=>void x(()=>Wb.apply(e.id)),children:[(0,H.jsx)(ae,{"aria-hidden":`true`}),i(`Apply`)]}),(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`sm`,disabled:m,onClick:()=>void x(()=>Wb.reject(e.id)),children:[(0,H.jsx)(qt,{"aria-hidden":`true`}),i(`Reject`)]})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:m||!l,"aria-describedby":l?void 0:s,onClick:()=>void x(()=>Wb.undo(e.id)),children:[(0,H.jsx)(Vt,{"aria-hidden":`true`}),i(`Undo`)]}),l?null:(0,H.jsx)(`span`,{id:s,className:`self-center text-xs text-muted-foreground`,children:i(`Revert the newer change first.`)})]})}):null,g?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:g}):null,y===void 0?null:(0,H.jsx)(i7,{savedContent:y}),$b(e)?(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,"aria-expanded":u,"aria-controls":c,onClick:()=>d(e=>!e),children:[(0,H.jsx)(f,{"aria-hidden":`true`}),i(u?`Show less`:`Show more`)]}):null]})}var u7=`omms-list-pending-v2`,d7=`omms-list-recent-v2`,f7=`omms-list-skill-proposals-v2`,p7={[u7]:`omms-list-pending`,[d7]:`omms-list-recent`,[f7]:`omms-list-skill-proposals`};function m7({storageKey:e,proposals:t,onChange:n}){let r=Y(),{view:i,pageItems:a}=N5({storageKey:e,legacyKey:p7[e],items:t,sorts:B5,defaultPerPage:3});return(0,H.jsx)(k5,{view:i,totalLabel:Gb(r(i.total===1?`{count} proposal`:`{count} proposals`),{count:i.total}),children:(0,H.jsx)(`div`,{className:`space-y-3`,children:a.map(e=>(0,H.jsx)(l7,{proposal:e,onChange:n},e.id))})})}function h7(){let[e,t]=(0,v.useState)({kind:`none`});return{value:e,clear:()=>t({kind:`none`}),show:e=>{e.ok?t(e.code===`no-change`?{kind:`no-change`}:{kind:`none`}):t(e.code===`not-configured`?{kind:`not-configured`}:{kind:`error`,text:e.error})}}}function g7({notice:e}){let t=Y();if(e.kind===`none`)return null;if(e.kind===`no-change`)return(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:t(`No change proposed`)});if(e.kind===`error`)return(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:e.text});let n=`${J.settings}#settings-section-external-api`;return(0,H.jsxs)(lx,{tone:`info`,children:[(0,H.jsx)(`p`,{children:t(`Drafting needs the external API. Set it up first.`)}),(0,H.jsx)(`a`,{className:`underline`,href:n,onClick:e=>{e.preventDefault(),_f(n)},children:t(`External API`)})]})}var _7=[`manual`,`automatic`];function v7({mode:e,disabled:t,confirming:n,onSelect:r,onConfirm:i,onCancel:a}){let o=Y();return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`div`,{role:`radiogroup`,"aria-label":o(`Mode`),className:`inline-flex gap-1.5`,children:_7.map(n=>(0,H.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===n,disabled:t,className:V(`min-h-9 rounded-[10px] border px-3 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring disabled:opacity-50`,e===n?`border-primary/40 bg-selection text-foreground`:`border-input bg-card text-muted-foreground hover:bg-interactive-hover`),onClick:()=>r(n),children:o(n===`manual`?`Manual`:`Automatic`)},n))}),n?(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:o(`Turn on Automatic mode for this skill?`)}),(0,H.jsx)(`p`,{children:o(`OMMS will change this SKILL.md file without asking. It drafts an improvement after 10 new uses and at least 24 hours, then applies it. Each change can be undone.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,size:`sm`,disabled:t,onClick:i,children:o(`Turn on Automatic`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:a,children:o(`Cancel`)})]})]}):null]})}function y7({mode:e,disabled:t,onChoose:n}){let[r,i]=(0,v.useState)(!1);return(0,H.jsx)(v7,{mode:e,disabled:t,confirming:r,onSelect:t=>{t!==e&&(t===`automatic`?i(!0):(i(!1),n(t)))},onConfirm:()=>{i(!1),n(`automatic`)},onCancel:()=>i(!1)})}function b7({at:e,className:t}){let n=Gb(Y()(`Modified on {date}`),{date:Qp(e)});return(0,H.jsx)(Hp,{content:n,className:t,children:(0,H.jsxs)(`span`,{tabIndex:0,className:`inline-flex rounded-full text-status-success focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(fe,{className:`size-4`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`sr-only`,children:n})]})})}var x7=`omms-explain-failures-confirmed`;function S7(){try{return window.localStorage.getItem(x7)===`1`}catch{return!1}}function C7(){try{window.localStorage.setItem(x7,`1`)}catch{}}function w7(e,t){return[(0,H.jsx)(`p`,{children:e(`This sends the failure groups (tool names, error text and input excerpts of up to 500 characters) and this skill's SKILL.md to the external API model.`)},`what`),t?(0,H.jsx)(`p`,{children:e(`The text is sent as stored, after <private> removal and secret redaction.`)},`redact`):(0,H.jsx)(`p`,{children:e(`Warning: redaction is off. The text may hold secrets that were not removed.`)},`no-redact`)]}function T7(e,t){switch(t){case`skill`:return e(`Skill fix`);case`harness`:return e(`Host or harness bug`);case`environment`:return e(`Environment problem`);default:return e(`Unknown`)}}function E7({cause:e}){let t=Y();return(0,H.jsxs)(`li`,{className:`space-y-1.5 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:T7(t,e.kind)}),(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:e.explanation}),e.actions.length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`Suggested actions`)}),(0,H.jsx)(`ul`,{className:`list-disc space-y-0.5 ps-5 text-sm`,children:e.actions.map((e,t)=>(0,H.jsx)(`li`,{dir:`auto`,children:e},t))})]}):null]})}function D7({skill:e,groups:t}){let n=Y(),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(null);(0,v.useEffect)(()=>{let e=!0;return Wb.stats().then(t=>{e&&(t.ok?i({recording:t.data.recording,redact:t.data.redact}):o(!0))}),()=>{e=!1}},[]);async function _(){c(!0),f(``),m(!1);let t=await Wb.explainFailures(e.path,e.name);if(c(!1),!t.ok){t.code===`not-configured`?m(!0):f(t.error);return}g(t.data.explanation)}let y=t!==null&&t.length===0,b=r!==null&&!r.recording,x=s||t===null||r===null&&!a||b||y,S=r?.redact===!0;function C(){if(!x){if(S7()){_();return}u(!0)}}return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:x,onClick:C,children:[(0,H.jsx)(At,{"aria-hidden":`true`}),n(`Explain failures`)]}),s?(0,H.jsxs)(`span`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),n(`Explaining… This can take a few minutes.`)]}):b?(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:n(`Skill learning must be on to explain failures.`)}):y?(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:n(`No failure groups to explain.`)}):null,(0,H.jsx)(Wv,{label:n(`About Explain failures`),children:(0,H.jsx)(`div`,{className:`space-y-1.5`,children:w7(n,S)})})]}),p?(0,H.jsxs)(lx,{tone:`info`,children:[(0,H.jsx)(`p`,{children:n(`Explaining needs the external API. Set it up first.`)}),(0,H.jsx)(`a`,{className:`underline`,href:`${J.settings}#settings-section-external-api`,onClick:e=>{e.preventDefault(),_f(`${J.settings}#settings-section-external-api`)},children:n(`External API`)})]}):null,d?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:d}):null,h?(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:h.summary}),(0,H.jsx)(`ul`,{className:`space-y-2`,children:h.causes.map((e,t)=>(0,H.jsx)(E7,{cause:e},t))}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`The labels and suggestions are leads from the error text only; the model cannot see the host's code.`)})]}):null,(0,H.jsx)(zl,{open:l,onOpenChange:e=>{e||u(!1)},children:(0,H.jsxs)(q,{children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:n(`Send failures to the external API?`)}),(0,H.jsx)(Gl,{children:n(`Nothing is sent until you confirm. Nothing is saved.`)})]}),(0,H.jsx)(lx,{tone:S?`warning`:`danger`,children:(0,H.jsx)(`div`,{className:`space-y-1.5`,children:w7(n,S)})}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,onClick:()=>u(!1),children:n(`Cancel`)}),(0,H.jsx)(K,{type:`button`,onClick:()=>{C7(),u(!1),_()},children:n(`Explain failures`)})]})]})})]})}var O7=`omms-list-skill-failures`;function k7(e,t){return`${t.name} — ${t.errorLine??e(`no error text`)}`}function A7({skill:e,reloadKey:t}){let n=Y(),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(null),{view:l,pageItems:u}=N5({storageKey:O7,items:r??[],sorts:L5});return(0,v.useEffect)(()=>{let t=!0;return Wb.skillFailures(e.path,e.name).then(e=>{if(t){if(!e.ok)return o(e.error);o(``),i(e.data.groups)}}),()=>{t=!1}},[e.path,e.name,t]),(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`skill-failures-title`,children:[(0,H.jsx)(`h3`,{id:`skill-failures-title`,className:`text-section-title font-semibold`,children:n(`Failures`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Failed calls that count against this skill, grouped by tool and first error line.`)}),(0,H.jsx)(D7,{skill:e,groups:r}),a?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:a}):r===null?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Loading…`)}):r.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`No failed tool calls are recorded for this skill.`)}):(0,H.jsx)(k5,{view:l,totalLabel:Gb(n(l.total===1?`{count} failure group`:`{count} failure groups`),{count:l.total}),children:(0,H.jsx)(`ul`,{className:`space-y-3`,children:u.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsxs)(`button`,{type:`button`,"aria-haspopup":`dialog`,onClick:()=>c(e),className:`flex w-full cursor-pointer items-start gap-2 rounded-xl border border-border bg-card px-3 py-2.5 text-start hover:bg-interactive-hover`,children:[(0,H.jsx)(ce,{className:`rtl:-scale-x-100 mt-0.5 size-4 shrink-0`,"aria-hidden":`true`}),(0,H.jsxs)(`span`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,H.jsx)(`span`,{className:`block break-words text-sm`,dir:`auto`,children:k7(n,e)}),(0,H.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[Gb(n(e.calls===1?e.turns===1?`{calls} call over {turns} turn`:`{calls} call over {turns} turns`:e.turns===1?`{calls} calls over {turns} turn`:`{calls} calls over {turns} turns`),{calls:e.calls,turns:e.turns}),` · `,Gb(n(`Last seen {date}`),{date:Qp(e.lastSeenAt)})]})]})]})},`${e.name}\u0000${e.errorLine??``}`))})}),s?(0,H.jsx)(K5,{title:k7(n,s),calls:s.latest,totalCount:s.calls,loading:!1,loadError:``,onClose:()=>c(null)}):null]})}var j7=e=>e.kind===`applied`&&e.appliedBy===`automatic`?`applied automatically`:e.kind;function M7({entry:e,confirming:t,working:n,locked:r,onAsk:i,onConfirm:a,onCancel:o}){let s=Y(),c=(0,v.useId)(),l=j7(e),u=e.added>0||e.removed>0;return(0,H.jsxs)(`li`,{className:`relative min-w-0 space-y-1.5`,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`absolute -start-[21.5px] top-1.5 size-2.5 rounded-full border-2 border-background`,style:{backgroundColor:`oklch(0.66 0.14 ${td(l)})`}}),(0,H.jsxs)(`p`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(U5,{label:s(l),colourKey:l}),(0,H.jsx)(`time`,{dateTime:new Date(e.at).toISOString(),className:`text-xs text-muted-foreground`,children:Qp(e.at)}),u?(0,H.jsxs)(`span`,{className:`font-mono text-xs tabular-nums`,dir:`ltr`,"aria-label":Gb(s(`{added} lines added, {removed} lines removed`),{added:e.added,removed:e.removed}),children:[(0,H.jsxs)(`span`,{className:`text-status-success`,children:[`+`,e.added]}),` `,(0,H.jsxs)(`span`,{className:`text-destructive-label`,children:[`−`,e.removed]})]}):null]}),e.summary?(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:e.summary}):null,e.kind===`applied`?(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-0.5`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:!e.canUndo||r||t,"aria-describedby":e.canUndo?void 0:c,onClick:i,children:[(0,H.jsx)(Vt,{"aria-hidden":`true`}),s(`Revert to before this change`)]}),e.canUndo?null:(0,H.jsx)(`span`,{id:c,className:`text-xs text-muted-foreground`,children:s(`Revert the newer change first.`)}),n?(0,H.jsxs)(`span`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),s(`Reverting…`)]}):null]}):null,t?(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:s(`Revert this change?`)}),(0,H.jsx)(`p`,{children:s(`OMMS restores SKILL.md as it was before this change.`)}),e.laterAppliedCount>0?(0,H.jsx)(`p`,{className:`font-medium`,children:Gb(s(e.laterAppliedCount===1?`Reverting this also removes {count} later change.`:`Reverting this also removes {count} later changes.`),{count:e.laterAppliedCount})}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,size:`sm`,disabled:n||r,onClick:a,children:s(`Revert`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:o,children:s(`Cancel`)})]})]}):null]})}function N7(e){let t=Y(),{view:n,entries:r,loaded:i,error:a,notice:o,refreshing:s=!1}=e;return(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`skill-history-title`,children:[(0,H.jsx)(`h3`,{id:`skill-history-title`,className:`text-section-title font-semibold`,children:t(`History`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Each proposal, apply, reject and undo of this skill. Revert an applied change to restore SKILL.md as it was before it.`)}),o?.tone===`done`?(0,H.jsx)(`p`,{role:`status`,className:`text-sm text-status-success`,children:t(`Reverted. SKILL.md is back to the version before that change.`)}):null,o?.tone===`error`?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:o.text}),o.savedContent===void 0?null:(0,H.jsx)(i7,{savedContent:o.savedContent})]}):null,a?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:a}):i?n.total===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`No history yet.`)}):(0,H.jsx)(k5,{view:n,totalLabel:Gb(t(n.total===1?`{count} entry`:`{count} entries`),{count:n.total}),children:(0,H.jsx)(`ol`,{"aria-busy":s,className:`ms-1.5 space-y-4 border-s border-border ps-4 transition-opacity ${s?`opacity-60`:``}`,children:r.map(t=>(0,H.jsx)(M7,{entry:t,confirming:e.confirmId===t.id,working:e.workingId===t.id,locked:e.workingId!==null||s,onAsk:()=>e.onAsk(t),onConfirm:()=>e.onConfirm(t),onCancel:e.onCancel},t.id))})}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Loading…`)})]})}function P7({skill:e,reloadKey:t,onChanged:n}){let[r,i]=(0,v.useState)(0),[a,o]=(0,v.useState)([]),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(null),b=M5({storageKey:`omms-list-skill-history`,total:r,sorts:V5}),x=H5(b),{offset:S,limit:C}=_5(b.page,b.perPage,r,x),w=`${e.path}|${e.name}|${C}|${S}|${x}|${t}`;(0,v.useEffect)(()=>{let t=!0;return Wb.history(e.path,e.name,{limit:C,offset:S}).then(e=>{if(!t)return;if(c(!0),!e.ok)return f(e.error);let n=kT(e.data);f(``),i(n.total);let r=n.entries.slice(0,C);o(x?r.reverse():r),u(w)}),()=>{t=!1}},[e.path,e.name,C,S,x,t,w]);async function T(e){m(null),g(e.id),y(null);let t=await Wb.undo(e.proposalId);if(g(null),t.ok){y({tone:`done`}),n();return}y({tone:`error`,text:t.error,...t.code===`changed`?{savedContent:t.savedContent??null}:{}})}return(0,H.jsx)(N7,{view:b,entries:a,loaded:s,error:d,confirmId:p,workingId:h,notice:_,refreshing:s&&l!==w,onAsk:e=>{y(null),m(e.id)},onConfirm:e=>void T(e),onCancel:()=>m(null)})}var F7=[{id:`skill-section-uses`,title:`Uses in the last 30 days`},{id:`skill-section-mode`,title:`Mode`},{id:`skill-section-proposals`,title:`Proposals`},{id:`skill-section-history`,title:`History`},{id:`skill-section-turns`,title:`Recent turns`},{id:`skill-section-failures`,title:`Failures`}];function I7({onBack:e,hasMode:t=!0}){let n=Y(),r=t?F7:F7.filter(e=>e.id!==`skill-section-mode`);return(0,H.jsx)(ty,{storageKey:`omms-skill-toc-open`,sections:r,back:{label:n(`All skills`),onBack:e}})}function L7({skill:e,reloadKey:t}){let n=Y(),[r,i]=(0,v.useState)(0),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(``),l=M5({storageKey:`omms-list-skill-turns`,total:r,sorts:V5}),u=H5(l),{offset:d,limit:f}=_5(l.page,l.perPage,r,u);return(0,v.useEffect)(()=>{let t=!0;return Wb.skill(e.path,e.name,{limit:f,offset:d}).then(e=>{if(!t)return;if(!e.ok)return c(e.error);let n=(e.data.recentTurns??[]).slice(0,f);c(``),i(e.data.turnTotal??n.length),o(u?n.reverse():n)}),()=>{t=!1}},[e.path,e.name,f,d,u,t]),(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`skill-turns-title`,children:[(0,H.jsx)(`h3`,{id:`skill-turns-title`,className:`text-section-title font-semibold`,children:n(`Recent turns`)}),s?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:s}):a===null?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Loading…`)}):r===0?(0,H.jsx)(J5,{turns:[]}):(0,H.jsx)(k5,{view:l,totalLabel:Gb(n(r===1?`{count} turn`:`{count} turns`),{count:r}),children:(0,H.jsx)(J5,{turns:a})})]})}var R7=e=>e.ok?``:e.error;function z7(e,t){t.setDetail(t=>t&&{...t,proposals:t.proposals.map(t=>t.id===e.id?e:t)}),t.bumpHistory(),t.reload()}function B7({skill:e,onBack:t,onChanged:n}){let r=Y(),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(e.mode),[f,p]=(0,v.useState)(``),m=h7(),[h,g]=(0,v.useState)(0),_=(0,v.useCallback)(async()=>{let t=await Wb.skill(e.path,e.name,{limit:1,offset:0});t.ok&&a(t.data),s(R7(t))},[e.path,e.name]),y=()=>{g(e=>e+1),_(),n()};(0,v.useEffect)(()=>{_()},[_]);async function b(){l(!0),m.clear();let t=await Wb.draftImprovement(e.path??e.name);l(!1),m.show(t),t.ok&&y()}async function x(t){if(!e.path)return;p(``);let r=await Wb.setMode(e.path,t);r.ok?(d(t),n()):p(r.error)}let S=e=>z7(e,{setDetail:a,bumpHistory:()=>g(e=>e+1),reload:()=>void _()}),C=i?.proposals??[],w=i?.skill??e;return(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsx)(I7,{onBack:t,hasMode:!!e.path}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:t,children:[(0,H.jsx)(N,{className:`rtl:-scale-x-100`,"aria-hidden":`true`}),r(`All skills`)]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(`h2`,{className:`min-w-0 break-words text-section-title font-semibold`,children:e.name}),w.modified&&w.lastAppliedAt!==null?(0,H.jsx)(b7,{at:w.lastAppliedAt}):null,e.suggested?(0,H.jsx)(U5,{label:r(`Suggested`),colourKey:`Suggested`}):null,(0,H.jsx)(U5,{label:r(u===`manual`?`Manual`:`Automatic`),colourKey:u})]}),e.path?(0,H.jsx)(`p`,{dir:`ltr`,className:`break-all font-mono text-xs text-start text-muted-foreground`,children:e.path}):(0,H.jsx)(lx,{tone:`info`,children:(0,H.jsx)(`p`,{children:r(`Not in a watched folder`)})}),(0,H.jsx)(`dl`,{className:`grid max-w-xl grid-cols-1 gap-3 text-sm sm:grid-cols-3`,children:[[r(`Uses in 30 days`),ex(e.uses)],[r(`Failed turns`),ex(e.failedTurns)],[r(`Last use`),e.lastUsedAt?Qp(e.lastUsedAt):r(`Never`)]].map(([e,t])=>(0,H.jsxs)(`div`,{className:`rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:e}),(0,H.jsx)(`dd`,{className:`font-medium`,children:t})]},e))})]}),i?(0,H.jsx)(`div`,{id:`skill-section-uses`,className:`scroll-mt-4`,children:(0,H.jsx)(J8,{className:`max-w-3xl`,rows:CT(ST(i.daily)),title:r(`Uses in the last 30 days`)})}):null,e.path?(0,H.jsxs)(`section`,{id:`skill-section-mode`,className:`scroll-mt-4 space-y-3`,"aria-label":r(`Mode`),children:[(0,H.jsx)(`h3`,{className:`text-section-title font-semibold`,children:r(`Mode`)}),(0,H.jsx)(y7,{mode:u,disabled:c,onChoose:e=>void x(e)}),f?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:f}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 pt-1`,children:[(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:c,onClick:()=>void b(),children:[(0,H.jsx)(At,{"aria-hidden":`true`}),r(`Draft improvement`)]}),c?(0,H.jsxs)(`span`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),r(`Drafting… This can take a few minutes.`)]}):null]}),(0,H.jsx)(g7,{notice:m.value})]}):null,(0,H.jsxs)(`section`,{id:`skill-section-proposals`,className:`scroll-mt-4 space-y-3`,"aria-labelledby":`skill-proposals-title`,children:[(0,H.jsx)(`h3`,{id:`skill-proposals-title`,className:`text-section-title font-semibold`,children:r(`Proposals`)}),o?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:o}):C.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`No proposals yet.`)}):(0,H.jsx)(m7,{storageKey:f7,proposals:C,onChange:S})]}),(0,H.jsx)(`div`,{id:`skill-section-history`,className:`scroll-mt-4`,children:(0,H.jsx)(P7,{skill:e,reloadKey:h,onChanged:y})}),(0,H.jsx)(`div`,{id:`skill-section-turns`,className:`scroll-mt-4`,children:(0,H.jsx)(L7,{skill:e,reloadKey:h})}),(0,H.jsx)(`div`,{id:`skill-section-failures`,className:`scroll-mt-4`,children:(0,H.jsx)(A7,{skill:e,reloadKey:h})})]})}function V7({folders:e,onChanged:t}){let n=Y(),{snapshot:r,busy:i,save:a}=px(),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(``),u=e.map(e=>e.path),d=r?.settings.skillFolders?.source===`global`;async function f(e){l(``);let n=await a({skillFolders:e});n?l(n):(s(``),t())}return(0,H.jsxs)(`section`,{id:`skills-section-folders`,className:`scroll-mt-4 space-y-3`,"aria-label":n(`Watched folders`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:n(`Watched folders`)}),d?(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>void f(null),children:[(0,H.jsx)(wt,{"aria-hidden":`true`}),n(`Reset default`)]}):null]}),e.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`No folders are watched.`)}):(0,H.jsx)(`ul`,{className:`space-y-3`,children:e.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-center gap-3 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`p`,{dir:`ltr`,className:`break-all font-mono text-xs text-start`,children:e.path}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.exists?Gb(n(e.skills===1?`{count} skill`:`{count} skills`),{count:e.skills}):n(`Folder not found`)})]}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:i,"aria-label":Gb(n(`Remove folder {path}`),{path:e.path}),title:n(`Remove folder`),onClick:()=>void f(rx(u,e.path)),children:(0,H.jsx)(qt,{"aria-hidden":`true`})})]},e.path))}),(0,H.jsxs)(`form`,{className:`flex flex-wrap items-center gap-3`,onSubmit:e=>{e.preventDefault(),o.trim()&&f(nx(u,o))},children:[(0,H.jsx)(ad,{dir:`ltr`,className:`max-w-md flex-1 basis-60`,value:o,placeholder:`~/.agents/skills`,"aria-label":n(`Folder path`),onChange:e=>s(e.target.value)}),(0,H.jsxs)(K,{type:`submit`,variant:`outline`,size:`sm`,disabled:i||!o.trim(),children:[(0,H.jsx)(ke,{"aria-hidden":`true`}),n(`Add folder`)]})]}),c?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:c}):null]})}function H7({idea:e,folders:t,onDrafted:n}){let r=Y(),[i,a]=(0,v.useState)(t[0]?.path??``),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(null),u=h7();async function d(){s(!0),u.clear();let t=await Wb.draftNew(e,i);s(!1),u.show(t),t.ok&&t.data.proposal&&(l(Zb(t.data.proposal)),n())}return(0,H.jsxs)(`li`,{className:`min-w-0 space-y-3 rounded-xl border border-border bg-card p-3`,children:[(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`h3`,{className:`break-words text-sm font-semibold`,children:e.name}),(0,H.jsx)(`p`,{className:`text-sm`,dir:`auto`,children:e.description}),e.reason?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,dir:`auto`,children:e.reason}):null,e.evidenceTurnIds.length>0?(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[r(`Evidence turns`),`:`,` `,(0,H.jsx)(`bdi`,{dir:`ltr`,children:e.evidenceTurnIds.map(e=>`T${e}`).join(`, `)})]}):null]}),c?(0,H.jsx)(l7,{proposal:c,onChange:l}):(0,H.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3`,children:[(0,H.jsxs)(`label`,{className:`min-w-0 max-w-full space-y-1 text-sm`,children:[(0,H.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:r(`Folder for the new skill`)}),(0,H.jsx)(Dr,{value:i,disabled:o,"aria-label":r(`Folder for the new skill`),onChange:e=>a(e.target.value),children:t.map(e=>(0,H.jsx)(`option`,{value:e.path,children:e.path},e.path))})]}),(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:o||!i,onClick:()=>void d(),children:[(0,H.jsx)(At,{"aria-hidden":`true`}),r(`Draft skill`)]})]}),(0,H.jsx)(g7,{notice:u.value})]})}function U7({folders:e,onDrafted:t}){let n=Y(),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!1),s=h7();async function c(){o(!0),s.clear();let e=await Wb.ideas();o(!1),s.show(e),e.ok&&i(e.data.ideas)}return(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-label":n(`New skill ideas`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:a,onClick:()=>void c(),children:[(0,H.jsx)(Ge,{"aria-hidden":`true`}),n(`Find new skill ideas`)]}),a?(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:n(`Looking…`)}):null]}),(0,H.jsx)(g7,{notice:s.value}),r&&r.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`No new skill ideas in the recorded turns.`)}):null,r&&r.length>0?(0,H.jsx)(`ul`,{className:`space-y-3`,children:r.map(n=>(0,H.jsx)(H7,{idea:n,folders:e,onDrafted:t},n.name))}):null]})}function W7(e,t){return e.path?t.filter(t=>e.path.startsWith(t.path)).sort((e,t)=>t.path.length-e.path.length)[0]?.path??null:null}function G7({skills:e,folders:t,onOpen:n}){let r=Y();return(0,H.jsx)(`ul`,{className:`space-y-3`,children:e.map(e=>{let i=W7(e,t);return(0,H.jsxs)(`li`,{className:`relative`,children:[(0,H.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`w-full min-w-0 space-y-1.5 rounded-xl border border-border bg-card px-3 py-2.5 text-start transition-colors duration-150 hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsxs)(`span`,{className:V(`flex flex-wrap items-center gap-2`,e.modified&&`ps-6`),children:[(0,H.jsx)(`span`,{className:`min-w-0 break-words text-sm font-semibold`,children:e.name}),e.suggested?(0,H.jsx)(U5,{label:r(`Suggested`),colourKey:`Suggested`}):null,(0,H.jsx)(U5,{label:r(e.mode===`manual`?`Manual`:`Automatic`),colourKey:e.mode}),e.notInWatchedFolder?(0,H.jsx)(U5,{label:r(`Not in a watched folder`),colourKey:`not-watched`}):null]}),(0,H.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[i?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`bdi`,{dir:`ltr`,className:`break-all`,children:i}),` · `]}):null,r(`Uses`),` `,ex(e.uses),` · `,r(`Failed turns`),` `,ex(e.failedTurns),` · `,r(`Attention`),` `,e.attention.toFixed(2),` ·`,` `,r(`Last use`),` `,e.lastUsedAt?Qp(e.lastUsedAt):r(`Never`)]})]}),e.modified&&e.lastAppliedAt!==null?(0,H.jsx)(b7,{at:e.lastAppliedAt,className:`absolute start-3 top-3`}):null]},e.path??`name:${e.name}`)})})}function K7({skills:e,folders:t,query:n,modifiedFilter:r=`all`,onOpen:i}){let a=Y(),{view:o,pageItems:s}=N5({storageKey:`omms-list-skills`,items:e,sorts:F5,resetKey:`${r}|${n.trim().toLowerCase()}`});return(0,H.jsx)(k5,{view:o,totalLabel:Gb(a(o.total===1?`{count} skill`:`{count} skills`),{count:o.total}),children:(0,H.jsx)(G7,{skills:s,folders:t,onOpen:i})})}var q7=`${J.settings}#settings-section-skill-learning`;function J7(e,t,n,r){return e.trim()?t===0?`No skill matches this name.`:`No skill matches this name in this tab.`:n>0&&r===`modified`?`No skill has been modified yet.`:n>0&&r===`not-modified`?`Every skill has been modified.`:n>0&&r===`suggested`?`No skill is suggested for a change yet.`:`No skills found in the watched folders.`}function Y7({overview:e,turns:t,pending:n,recent:r,error:i,query:a,modifiedFilter:o=`all`,reloadKey:s=0,onQuery:c,onModifiedFilter:l=()=>{},onOpen:u,onPendingChange:d,onRecentChange:f,onReload:p}){let m=Y(),h=e?.skills??[],g=Kb(h,a),_=gT(g,o),v=e?.folders??[],y=t=>{let n=(e?.skills??[]).find(e=>t.path?e.path===t.path:e.name===t.name);n&&u(n)};return(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsx)(ty,{storageKey:`omms-skills-toc-open`,sections:dT}),(0,H.jsxs)(`div`,{className:`max-w-3xl space-y-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(`p`,{children:m(`Skill learning watches how your agents use your skills on Pi, OpenCode and Claude Code. It ranks each skill by use and failed tool calls, and drafts better versions from real turns.`)}),(0,H.jsx)(`p`,{children:m(`Every draft is a proposal with a diff. Nothing changes a SKILL.md file until you apply it, unless you set that skill to Automatic. Undo restores the previous version.`)})]}),e&&!e.recording?(0,H.jsxs)(lx,{tone:`info`,children:[(0,H.jsx)(`p`,{children:m(`Nothing is recorded yet. Agent turns are recorded only after you turn it on.`)}),(0,H.jsx)(`a`,{className:`underline`,href:q7,onClick:e=>{e.preventDefault(),_f(q7)},children:m(`Open the Skill learning card`)})]}):null,i?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:i}):null,(0,H.jsx)($8,{proposals:[...n,...r],onOpen:y,reloadKey:s}),(0,H.jsxs)(`section`,{id:`skills-section-ranked`,className:`scroll-mt-4 space-y-3`,"aria-label":m(`Skills`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:m(`Ranked skills`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[h.length>0?(0,H.jsx)(i5,{value:o,counts:hT(h),onChange:l}):null,(0,H.jsx)(ad,{type:`search`,className:`w-72 max-w-full`,value:a,"aria-label":m(`Filter skills by name`),placeholder:m(`Filter skills by name`),onChange:e=>c(e.target.value)})]})]}),e&&e.recording&&t===0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`No turns are recorded yet.`)}),(0,H.jsx)(dx,{onEnd:p})]}):null,e&&_.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(J7(a,g.length,h.length,o))}):null,_.length>0?(0,H.jsx)(K7,{skills:_,folders:v,query:a,modifiedFilter:o,onOpen:u}):null]}),(0,H.jsxs)(`section`,{id:`skills-section-pending`,className:`scroll-mt-4 space-y-3`,"aria-label":m(`Pending proposals`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:m(`Pending proposals`)}),n.length>0?(0,H.jsx)(m7,{storageKey:u7,proposals:n,onChange:d}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`No proposals are waiting.`)})]}),(0,H.jsxs)(`section`,{id:`skills-section-recent`,className:`scroll-mt-4 space-y-3`,"aria-label":m(`Recent proposals`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:m(`Recent proposals`)}),r.length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`Each card shows when the proposal was created and when it was last applied, rejected or undone.`)}),(0,H.jsx)(m7,{storageKey:d7,proposals:r,onChange:f})]}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`No proposals have been decided yet.`)})]}),e?.recording?(0,H.jsx)(U7,{folders:v,onDrafted:p}):null,(0,H.jsx)(V7,{folders:v,onChanged:p})]})}function X7(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)([]),[o,s]=(0,v.useState)([]),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(_T),[m,h]=(0,v.useState)(null),[g,_]=(0,v.useState)(0),y=(0,v.useCallback)(async()=>{let[e,n,i]=await Promise.all([Wb.overview(),Wb.stats(),Wb.proposals()]);if(e.ok?(t(e.data),l(``)):l(e.error),n.ok&&r(n.data.turns),i.ok){let e=i.data.proposals;a(e.filter(e=>e.state===`pending`)),s(Jb(e))}},[]);(0,v.useEffect)(()=>{y()},[y]);let b=()=>{_(e=>e+1),y()},x=yf();return(0,v.useEffect)(()=>{x.includes(`#skills-section-`)&&h(null)},[x]),m?(0,H.jsx)(B7,{skill:m,onBack:()=>{h(null),b()},onChanged:()=>void y()}):(0,H.jsx)(Y7,{overview:e,turns:n,pending:i,recent:o,error:c,query:u,modifiedFilter:f,reloadKey:g,onQuery:d,onModifiedFilter:e=>{p(e),vT(e)},onOpen:h,onPendingChange:e=>a(t=>t.map(t=>t.id===e.id?e:t)),onRecentChange:e=>s(t=>t.map(t=>t.id===e.id?e:t)),onReload:b})}function Z7({...e}){let t=vp();return(0,H.jsx)(ai,{theme:t,className:`toaster group`,style:{"--normal-bg":`var(--color-popover)`,"--normal-text":`var(--color-popover-foreground)`,"--normal-border":`var(--color-border)`},icons:{loading:(0,H.jsx)(Je,{className:`size-4 animate-spin`}),success:(0,H.jsx)(fe,{className:`size-4`}),error:(0,H.jsx)(ot,{className:`size-4`}),info:(0,H.jsx)(Be,{className:`size-4`}),warning:(0,H.jsx)(Bt,{className:`size-4`})},...e})}function Q7(e,t,n){return e?t:n}function $7(e,t,n){return Zd.map(r=>{let i=Qv(r.title,e);return r.id===`shared`?{id:r.id,label:i,avatar:(0,H.jsx)(Qx,{className:`size-5 rounded-md`,iconClassName:`size-3`}),items:Qd.map(t=>({id:t.id,label:Qv(t.title,e)}))}:{id:r.id,label:i,avatar:(0,H.jsx)(Zx,{host:r.id,look:t[r.id],className:`size-5 rounded-md text-[9px]`}),warning:n}})}function e9(e){let{looks:t}=qx(),n=vC();return{memoryViewId:fd(yf().split(`#`)[0]),memoryWarningLabel:Qv(`Memories not saved`,e),memorySections:$7(e,t,n?.ok===!1)}}var t9=[``,`feature`,`bug-fix`,`refactor`,`architecture`,`rule`,`documentation`,`discussion`,`analysis`,`configuration`];function n9(){let{t:e,language:t}=G(),n=bf(),r=e9(t),[i,a]=(0,v.useState)(!1),o=sa(),s=ca();(0,v.useEffect)(()=>{let e=vf();(async()=>{await o.loadTags(),await o.loadMemories(),await o.loadStats(),await o.checkMigrationStatus(),await o.checkAuthWarning()})();let t=setInterval(()=>{o.loadStats(),!o.isSearching&&n===`project`&&o.loadMemories()},3e4);return()=>{e(),clearInterval(t)}},[]);let c=s.loadUserProfile;(0,v.useEffect)(()=>{n===`profile`&&c()},[n,c]);function l(e){e!==t&&(na(e),o.loadMemories(),o.loadStats(),n===`profile`&&s.loadUserProfile())}function u(e){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),_f(J.home))}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Z7,{richColors:!0,position:`bottom-right`}),(0,H.jsxs)(`div`,{className:`flex min-h-svh bg-background text-foreground overflow-x-clip`,children:[(0,H.jsx)(Mp,{open:i,onOpenChange:a,currentView:n,brand:e(`brand`),projectLabel:e(`tab-project`),profileLabel:e(`tab-profile`),chatLabel:e(`nav-chat`),skillsLabel:e(`nav-skills`),profileSections:[{id:`profile-preferences`,label:e(`profile-preferences`)},{id:`profile-patterns`,label:e(`profile-patterns`)},{id:`profile-workflows`,label:e(`profile-workflows`)}],skillsSections:fT(t),memoryLabel:Qv(`Memory`,t),...r,settingsSections:Xv.map(e=>({id:e.id,label:Qv(e.title,t)})),langLabel:t.toUpperCase(),languageLabel:e(`nav-language`),themeLabel:e(`nav-theme`),settingsLabel:e(`nav-settings`),closeLabel:e(`nav-close`),collapseLabel:e(`nav-collapse`),expandLabel:e(`nav-expand`),onLanguageSelect:l}),(0,H.jsxs)(`div`,{"data-tooltip-bounds":!0,className:`flex min-w-0 flex-1 flex-col`,children:[(0,H.jsxs)(`div`,{className:`sticky top-0 z-30 flex items-center gap-2 border-b border-border bg-background/95 px-3 py-2 backdrop-blur md:hidden`,children:[(0,H.jsx)(K,{variant:`ghost`,size:`icon-sm`,className:`min-h-11 min-w-11`,onClick:()=>a(!0),"aria-label":e(`nav-menu`),children:(0,H.jsx)(Xe,{className:`size-4`})}),(0,H.jsx)(`a`,{href:J.home,className:`min-w-0`,onClick:u,children:(0,H.jsx)(Kd,{brand:e(`brand`)})})]}),(0,H.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl flex-1 space-y-4 p-4 md:p-6`,children:[o.showAuthWarning?(0,H.jsxs)(N_,{variant:`destructive`,children:[(0,H.jsx)(Bt,{}),(0,H.jsx)(P_,{children:e(`auth-warning-text`)})]}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`h1`,{className:`text-page-title font-semibold text-foreground`,children:n===`project`?e(`tab-project`):n===`profile`?e(`tab-profile`):n===`memory`?Qv(`Memory`,t):e(n===`chat`?`nav-chat`:n===`skills`?`nav-skills`:`nav-settings`)}),n===`project`?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:e(`text-total`,{count:Q7(o.isSearching,o.totalItems,o.statsTotal)})}),o.refreshing?(0,H.jsx)(Ye,{className:`size-3.5 animate-spin`}):null]}):null]}),n===`project`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3 rounded-xl border border-border bg-card p-3`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 max-w-full space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`tag-filter`,children:e(`label-tag`)}),(0,H.jsxs)(Dr,{id:`tag-filter`,className:`w-64 max-w-full`,value:o.selectedTag,onChange:e=>o.onTagFilterChange(e.currentTarget.value),children:[(0,H.jsx)(`option`,{value:``,children:e(`opt-all-tags`)}),o.tags.map(e=>(0,H.jsx)(`option`,{value:e.tag,children:e.displayName||e.tag},e.tag))]})]}),(0,H.jsxs)(`div`,{className:`min-w-0 max-w-full space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`keyword-filter`,children:e(`label-label-filter`)}),(0,H.jsxs)(Dr,{id:`keyword-filter`,className:`w-56 max-w-full`,value:o.selectedKeyword.toLowerCase(),onChange:e=>o.onKeywordFilterChange(e.currentTarget.value),children:[(0,H.jsx)(`option`,{value:``,children:e(`opt-all-labels`)}),o.selectedKeyword&&!o.keywords.some(e=>e.keyword===o.selectedKeyword.toLowerCase())?(0,H.jsxs)(`option`,{value:o.selectedKeyword.toLowerCase(),children:[o.selectedKeyword,` (0)`]}):null,o.keywords.map(e=>(0,H.jsxs)(`option`,{value:e.keyword,children:[e.keyword,` (`,e.count,`)`]},e.keyword))]})]}),(0,H.jsxs)(`div`,{className:`flex flex-1 items-end gap-1.5 min-w-0 basis-56`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`search-input`,className:`sr-only`,children:e(`placeholder-search`)}),(0,H.jsx)(ad,{id:`search-input`,placeholder:e(`placeholder-search`),value:o.searchInput,onChange:e=>o.setSearchInput(e.target.value),onKeyDown:e=>e.key===`Enter`&&o.performSearch()})]}),(0,H.jsx)(K,{variant:`outline`,size:`icon`,onClick:o.performSearch,children:(0,H.jsx)(Et,{className:`size-4`})}),o.isSearching?(0,H.jsx)(K,{variant:`outline`,size:`icon`,onClick:o.clearSearch,children:(0,H.jsx)(qt,{className:`size-4`})}):null]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,H.jsx)(Hp,{content:e(`tooltip-cleanup`),children:(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:o.runCleanup,children:[(0,H.jsx)(zt,{className:`size-3.5`}),e(`btn-cleanup`)]})}),(0,H.jsx)(Hp,{content:e(`tooltip-deduplicate`),children:(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:o.runDeduplication,children:[(0,H.jsx)(xt,{className:`size-3.5`}),e(`btn-deduplicate`)]})})]}),o.selectedIds.size>0?(0,H.jsxs)(`div`,{className:`flex w-full flex-wrap items-center gap-2 border-t border-border pt-3`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`text-selected`,{count:o.selectedIds.size})}),(0,H.jsx)(K,{variant:`secondary`,size:`xs`,onClick:o.selectAllCurrentPage,children:e(`btn-select-all`)}),(0,H.jsx)(K,{variant:`destructive`,size:`xs`,onClick:o.bulkDelete,children:e(`btn-delete-selected`)}),(0,H.jsx)(K,{variant:`ghost`,size:`xs`,onClick:o.deselectAll,children:e(`btn-deselect-all`)})]}):null]}),o.migrationNeeded?(0,H.jsxs)(N_,{variant:`destructive`,className:`space-y-3`,children:[(0,H.jsx)(Bt,{}),(0,H.jsxs)(P_,{className:`space-y-3`,children:[(0,H.jsx)(`p`,{children:o.migrationMessage||e(`migration-mismatch`)}),(0,H.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,H.jsx)(Qo,{checked:o.migrationConfirmed,onCheckedChange:e=>o.setMigrationConfirmed(e===!0),className:`mt-0.5`}),(0,H.jsx)(`span`,{children:e(`migration-understand`)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(K,{variant:`destructive`,size:`sm`,disabled:!o.migrationConfirmed,onClick:()=>o.runMigration(`fresh-start`),children:e(`btn-fresh-start`)}),(0,H.jsx)(K,{variant:`secondary`,size:`sm`,disabled:!o.migrationConfirmed,onClick:()=>o.runMigration(`re-embed`),children:e(`btn-reembed`)})]})]})]}):null,(0,H.jsx)(w_,{memories:o.memories,selectedIds:o.selectedIds,currentPage:o.currentPage,totalPages:o.totalPages,totalItems:o.totalItems,isSearching:o.isSearching,loading:o.loadingMemories,error:o.memoriesError,onSelect:o.onSelect,onPageChange:e=>{let t=o.currentPage+e;o.setCurrentPage(t),o.loadMemories({page:t})},onPin:o.pinMemory,onUnpin:o.unpinMemory,onEdit:o.openEdit,onDeleteMemory:o.deleteMemory,onDeletePrompt:o.deletePrompt,activeKeyword:o.selectedKeyword,onKeywordClick:e=>o.onKeywordFilterChange(o.selectedKeyword.toLowerCase()===e.toLowerCase()?``:e)}),(0,H.jsxs)(`section`,{className:`rounded-xl border border-border bg-card p-4 space-y-3`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold text-muted-foreground`,children:e(`section-add`)}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:o.addMemory,children:[(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-tag`,children:e(`label-tag`)}),(0,H.jsxs)(Dr,{id:`add-tag`,required:!0,className:`w-full`,value:o.addTag,onChange:e=>o.setAddTag(e.target.value),children:[(0,H.jsx)(`option`,{value:``,children:e(`opt-select-tag`)}),o.tags.map(e=>(0,H.jsx)(`option`,{value:e.tag,children:e.displayName||e.tag},e.tag))]})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-type`,children:e(`label-type`)}),(0,H.jsx)(Dr,{id:`add-type`,className:`w-full`,value:o.addType,onChange:e=>o.setAddType(e.target.value),children:t9.map(t=>(0,H.jsx)(`option`,{value:t,children:e(t?`opt-${t}`:`opt-other`)},t||`other`))})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-tags`,children:e(`label-tags`)}),(0,H.jsx)(ad,{id:`add-tags`,placeholder:e(`placeholder-tags`),value:o.addTags,onChange:e=>o.setAddTags(e.target.value)})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-content`,children:e(`label-content`)}),(0,H.jsx)(Ip,{id:`add-content`,rows:4,required:!0,placeholder:e(`placeholder-content`),value:o.addContent,onChange:e=>o.setAddContent(e.target.value)})]}),(0,H.jsxs)(K,{type:`submit`,children:[(0,H.jsx)(vt,{className:`size-3.5`}),e(`btn-add-memory`)]})]})]})]}):n===`memory`?(0,H.jsx)(gw,{}):n===`chat`?(0,H.jsx)(uT,{}):n===`skills`?(0,H.jsx)(X7,{}):n===`settings`?(0,H.jsx)(vx,{}):(0,H.jsx)(Jv,{profile:s.userProfile,loading:s.loadingProfile,onRefresh:s.refreshProfile,onCleanup:()=>s.setAiCleanupOpen(!0),onCategoryCleanup:()=>s.setCategoryCleanupOpen(!0),categoryCleanupOpen:s.categoryCleanupOpen})]})]})]}),(0,H.jsx)(Lp,{open:o.editOpen,onOpenChange:o.setEditOpen,content:o.editContent,onSave:o.saveEdit}),(0,H.jsx)(Yv,{open:o.tagMigrationOpen,onOpenChange:e=>{e||_i(o.tagMigrationCount),o.setTagMigrationOpen(e)},count:o.tagMigrationCount,onComplete:()=>{vi(),o.loadMemories(),o.loadStats()}}),(0,H.jsx)(Yu,{open:s.aiCleanupOpen,onOpenChange:s.setAiCleanupOpen,onMinimise:s.minimiseAiCleanup,profile:s.userProfile,onApplied:s.loadUserProfile}),s.aiCleanupMinimised?(0,H.jsx)(Xu,{onOpen:()=>s.setAiCleanupOpen(!0),onGone:s.dismissAiCleanupPill}):null,(0,H.jsx)(cd,{open:s.categoryCleanupOpen,onOpenChange:s.setCategoryCleanupOpen,onApplied:s.loadUserProfile})]})}_p();var r9=document.getElementById(`app`);if(!r9)throw Error(`Root element #app not found`);(0,y.createRoot)(r9).render((0,H.jsx)(v.StrictMode,{children:(0,H.jsx)(oa,{children:(0,H.jsx)(n9,{})})}));
169
+ `)}}):null},R8=tQ;function z8({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f}){let{config:p}=F8(),m=v.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=`${f??e?.dataKey??e?.name??`value`}`,r=B8(p,e,n),a=!f&&typeof o==`string`?p[o]?.label??o:r?.label;return s?(0,H.jsx)(`div`,{className:V(`font-medium`,c),children:s(a,t)}):a?(0,H.jsx)(`div`,{className:V(`font-medium`,c),children:a}):null},[o,s,t,i,c,p,f]);if(!e||!t?.length)return null;let h=t.length===1&&r!==`dot`;return(0,H.jsxs)(`div`,{className:V(`grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl`,n),children:[h?null:m,(0,H.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=`${d??e.name??e.dataKey??`value`}`,i=B8(p,e,n),o=u??e.payload?.fill??e.color;return(0,H.jsx)(`div`,{className:V(`flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground`,r===`dot`&&`items-center`),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,H.jsxs)(H.Fragment,{children:[i?.icon?(0,H.jsx)(i.icon,{}):!a&&(0,H.jsx)(`div`,{className:V(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":r===`dot`,"w-1":r===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":r===`dashed`,"my-0.5":h&&r===`dashed`}),style:{"--color-bg":o,"--color-border":o}}),(0,H.jsxs)(`div`,{className:V(`flex flex-1 justify-between leading-none`,h?`items-end`:`items-center`),children:[(0,H.jsxs)(`div`,{className:`grid gap-1.5`,children:[h?m:null,(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:i?.label??e.name})]}),e.value!=null&&(0,H.jsx)(`span`,{className:`font-mono font-medium text-foreground tabular-nums`,children:typeof e.value==`number`?e.value.toLocaleString():String(e.value)})]})]})},t)})})]})}function B8(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}function V8({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card`,className:V(`flex min-w-0 flex-col gap-3 rounded-xl border border-border bg-card p-4 text-card-foreground`,e),...t})}function H8({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-header`,className:V(`grid gap-1`,e),...t})}function U8({className:e,...t}){return(0,H.jsx)(`h3`,{"data-slot":`card-title`,className:V(`text-sm font-semibold leading-snug`,e),...t})}function W8({className:e,...t}){return(0,H.jsx)(`p`,{"data-slot":`card-description`,className:V(`text-xs text-muted-foreground`,e),...t})}function G8({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-content`,className:V(`min-w-0`,e),...t})}function K8({title:e,summary:t,emptyText:n,table:r,children:i,className:a,interactive:o=!1}){return(0,H.jsxs)(V8,{className:a,children:[(0,H.jsxs)(H8,{children:[(0,H.jsx)(U8,{children:e}),t&&!n?(0,H.jsx)(W8,{children:t}):null]}),(0,H.jsx)(G8,{children:n?(0,H.jsx)(`p`,{className:`flex min-h-40 items-center text-sm text-muted-foreground`,children:n}):(0,H.jsxs)(H.Fragment,{children:[o?i:(0,H.jsx)(`div`,{"aria-hidden":`true`,children:i}),(0,H.jsxs)(`table`,{className:`sr-only`,children:[(0,H.jsx)(`caption`,{children:e}),(0,H.jsx)(`thead`,{children:(0,H.jsx)(`tr`,{children:r.columns.map(e=>(0,H.jsx)(`th`,{scope:`col`,children:e},e))})}),(0,H.jsx)(`tbody`,{children:r.rows.map((e,t)=>(0,H.jsx)(`tr`,{children:e.map((e,t)=>(0,H.jsx)(`td`,{children:e},t))},t))})]})]})})]})}var q8={pending:`var(--status-info)`,applied:`var(--status-success)`,rejected:`var(--destructive)`,stale:`var(--status-warning)`,undone:`var(--muted-foreground)`};function J8({proposals:e}){let t=Y(),n=UT(e).map(e=>({...e,label:t(e.state)})),r={count:{label:t(`Proposals`),color:`var(--chart-1)`}},i=n[0]?.count??0;return(0,H.jsx)(K8,{title:t(`Proposal pipeline`),summary:Gb(t(`{total} proposals, {pending} waiting for a decision`),{total:e.length,pending:i}),emptyText:e.length===0?t(`No proposals yet.`):``,table:{columns:[t(`State`),t(`Proposals`)],rows:n.map(e=>[e.label,e.count])},children:(0,H.jsx)(I8,{config:r,className:`aspect-auto h-44 w-full`,children:(0,H.jsxs)(j8,{data:n,layout:`vertical`,accessibilityLayer:!1,margin:{top:0,right:28,left:0,bottom:0},children:[(0,H.jsx)(I3,{type:`number`,hide:!0,allowDecimals:!1}),(0,H.jsx)(Z3,{type:`category`,dataKey:`label`,width:104,tickLine:!1,axisLine:!1}),(0,H.jsx)(R8,{cursor:{fill:`var(--interactive-hover)`},content:(0,H.jsx)(z8,{hideLabel:!0,nameKey:`count`})}),(0,H.jsxs)(h3,{dataKey:`count`,fill:`var(--color-count)`,radius:[0,2,2,0],children:[n.map(e=>(0,H.jsx)(nQ,{fill:q8[e.state]??`var(--color-count)`},e.state)),(0,H.jsx)(q$,{dataKey:`count`,position:`right`,className:`fill-foreground`})]})]})})})}var Y8=`var(--status-success)`,X8=`var(--destructive)`;function Z8(){let e=Y();return{succeeded:{label:e(`Successful`),color:Y8},failed:{label:e(`Failed`),color:X8}}}var Q8={stroke:`var(--card)`,strokeWidth:1};function $8(){let e=Y(),t=[{label:e(`Successful`),background:Y8},{label:e(`Failed`),background:X8}];return(0,H.jsx)(`ul`,{className:`flex flex-wrap items-center justify-center gap-4 pt-3 text-xs`,children:t.map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.background}}),e.label]},e.label))})}var e5=26;function t5({skills:e,total:t,shown:n,onShown:r,onOpen:i,className:a}){let o=Y(),s=Z8(),c=e.slice(0,n).map(VT),l=c[0],u=e=>{let t=e?.payload;t&&i(t)};return(0,H.jsxs)(K8,{className:a,interactive:!0,title:o(`Most used skills`),summary:l?Gb(o(`{name} leads with {uses} uses. Click a bar to open the skill.`),{name:l.name,uses:l.uses}):void 0,emptyText:c.length===0?o(`No skill was used in the last 30 days.`):``,table:{columns:[o(`Skill`),o(`Uses`),o(`Failed`)],rows:c.map(e=>[e.name,e.uses,e.failed])},children:[(0,H.jsxs)(`div`,{className:V(`flex gap-2`,c.length>16&&`overflow-y-auto overscroll-contain pt-8`),style:c.length>16?{maxHeight:`448px`}:void 0,children:[(0,H.jsx)(`ol`,{className:`w-[6.5rem] shrink-0`,"aria-label":o(`Most used skills`),children:c.map(e=>(0,H.jsx)(`li`,{className:`flex h-[26px] items-center justify-end`,children:(0,H.jsx)(Hp,{content:e.name,className:`min-w-0 max-w-full`,children:(0,H.jsx)(`button`,{type:`button`,className:`block max-w-full truncate rounded-sm text-end text-xs hover:underline focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>i(e),children:e.name})})},`${e.name}\n${e.path??``}`))}),(0,H.jsx)(`div`,{"aria-hidden":`true`,className:`min-w-0 flex-1`,children:(0,H.jsx)(I8,{config:s,className:`aspect-auto w-full`,style:{height:`${c.length*e5}px`},children:(0,H.jsxs)(j8,{data:c,layout:`vertical`,accessibilityLayer:!1,margin:{top:0,right:8,left:0,bottom:0},children:[(0,H.jsx)(I3,{type:`number`,hide:!0,allowDecimals:!1}),(0,H.jsx)(Z3,{type:`category`,dataKey:`name`,hide:!0}),(0,H.jsx)(R8,{cursor:{fill:`var(--interactive-hover)`},content:(0,H.jsx)(z8,{})}),(0,H.jsx)(h3,{dataKey:`succeeded`,stackId:`uses`,fill:`var(--color-succeeded)`,cursor:`pointer`,onClick:u,...Q8}),(0,H.jsx)(h3,{dataKey:`failed`,stackId:`uses`,fill:`var(--color-failed)`,radius:[0,2,2,0],cursor:`pointer`,onClick:u,...Q8})]})})})]}),(0,H.jsx)(`div`,{"aria-hidden":`true`,children:(0,H.jsx)($8,{})}),t>8?(0,H.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,"aria-live":`polite`,children:Gb(o(`Showing {shown} of {total}`),{shown:c.length,total:t})}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[c.length<e.length?(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>r(YT(n,e.length)),children:o(`Show more`)}):null,c.length>8?(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>r(8),children:o(`Show less`)}):null]})]}):null]})}function n5(e){let[t,n]=(0,v.useState)(8);return(0,H.jsx)(t5,{...e,shown:t,onShown:n})}var r5=e=>{let t=Math.ceil(Math.max(0,...e.map(e=>e.uses))*1.25);return Math.max(28,String(t).length*7+10)};function i5({rows:e,bucket:t,period:n,title:r,className:i}){let a=Y(),o=Z8(),s=nm(),c=t??`day`,l=e.map(VT),u=e.reduce((e,t)=>e+t.uses,0),d=e.reduce((e,t)=>e+t.failed,0),f=e=>aE(c,String(e),!1,s),p=t?e=>aE(c,String(e),!0,s):f,m={uses:ex(u),failed:ex(d)},h=a(t?`No uses in this period. Bars appear after OMMS records turns.`:`No uses in the last 30 days. Bars appear after OMMS records turns.`);return(0,H.jsxs)(K8,{className:i,title:r,summary:n?Gb(a(`{period}: {uses} uses, {failed} with a failed tool call`),{period:n,...m}):Gb(a(`{uses} uses, {failed} with a failed tool call`),m),emptyText:BT(e)?h:``,table:{columns:[a(ZT[c]),a(`Uses`),a(`Failed`)],rows:e.map(e=>[p(e.key),e.uses,e.failed])},children:[(0,H.jsx)(I8,{config:o,className:`aspect-auto h-44 w-full`,children:(0,H.jsxs)(j8,{data:l,accessibilityLayer:!1,margin:{top:4,right:0,left:0},children:[(0,H.jsx)(n4,{vertical:!1}),(0,H.jsx)(I3,{dataKey:`key`,tickLine:!1,axisLine:!1,minTickGap:c===`day`?24:8,tickFormatter:f}),(0,H.jsx)(Z3,{width:r5(e),tickLine:!1,axisLine:!1,allowDecimals:!1,tickCount:3}),(0,H.jsx)(R8,{cursor:{fill:`var(--interactive-hover)`},content:(0,H.jsx)(z8,{labelFormatter:p})}),(0,H.jsx)(h3,{dataKey:`succeeded`,stackId:`uses`,fill:`var(--color-succeeded)`,...Q8}),(0,H.jsx)(h3,{dataKey:`failed`,stackId:`uses`,fill:`var(--color-failed)`,radius:[2,2,0,0],...Q8})]})}),(0,H.jsx)($8,{})]})}var a5={months:[],years:[]},o5=`The use charts appear after OMMS records agent turns that use a skill.`;function s5(e,t,n){return e.bucket===`year`?`${n(`No skill uses are recorded yet.`)} ${n(o5)}`:e.bucket===`day`&&!e.month?n(`No skill uses are recorded in the last 30 days. The use charts appear after OMMS records agent turns that use a skill.`):`${Gb(n(`No skill uses are recorded in {period}.`),{period:t})} ${n(o5)}`}function c5({activity:e,range:t,shownRange:n=t,loading:r,error:i,proposals:a,onOpen:o,onRange:s}){let c=Y(),l=nm(),u=e!==null&&BT(e.series),d=e?oE(n,e.series,l,c):``,f=n.bucket===`day`&&!n.month,p=r&&e!==null,m=V(`transition-opacity duration-150`,p&&`opacity-60`);return(0,H.jsxs)(`section`,{id:`skills-section-activity`,className:`scroll-mt-4 space-y-3`,"aria-labelledby":`skills-activity-title`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,H.jsx)(`h2`,{id:`skills-activity-title`,className:`text-section-title font-semibold`,children:c(`Activity`)}),(0,H.jsx)(dE,{range:t,available:e?.available??a5,currentYear:new Date().getUTCFullYear(),loading:p,onChange:s})]}),i?(0,H.jsxs)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:[c(`Activity could not load.`),` `,i]}):null,e===null&&!i?(0,H.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),c(`Loading…`)]}):null,(0,H.jsxs)(`div`,{"aria-busy":p||void 0,className:`space-y-3`,children:[e?(0,H.jsx)(`dl`,{className:V(`flex flex-wrap gap-x-6 gap-y-1 text-sm`,m),children:[[f?c(`Uses in 30 days`):Gb(c(`Uses in {period}`),{period:d}),e.totals.uses],[c(`Failed turns`),e.totals.failed],[c(`Active skills`),e.totals.activeSkills]].map(([e,t])=>(0,H.jsxs)(`div`,{className:`flex items-baseline gap-1.5`,children:[(0,H.jsx)(`dt`,{className:`text-muted-foreground`,children:e}),(0,H.jsx)(`dd`,{className:`font-semibold tabular-nums`,children:ex(Number(t))})]},e))}):null,e&&u?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s5(n,d,c)}):null,(0,H.jsxs)(`div`,{className:`grid grid-cols-1 items-start gap-3 lg:grid-cols-2`,children:[e&&!u?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(i5,{className:V(`lg:col-span-2`,m),rows:e.series,bucket:e.bucket,period:d,title:c(XT[e.bucket])}),(0,H.jsx)(n5,{className:m,skills:e.topSkills,total:e.topTotal,onOpen:o},$T(n))]}):null,(0,H.jsx)(J8,{proposals:a})]})]})]})}function l5({proposals:e,onOpen:t,reloadKey:n}){let[r,i]=(0,v.useState)(()=>eE(fi(KT,KT))),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(``),[l,u]=(0,v.useState)(!0);return(0,v.useEffect)(()=>{let e=!0;return u(!0),Wb.activity({...QT(r),top:100}).then(t=>{if(!e)return;if(!t.ok){c(t.error),u(!1);return}let n=LT(t.data),a=tE(r,n.available);if(a!==r){mi(KT,$T(a)),i(a);return}o({range:r,activity:n}),c(``),u(!1)}),()=>{e=!1}},[r,n]),(0,H.jsx)(c5,{activity:a?.activity??null,range:r,shownRange:a?.range??r,loading:l,error:s,proposals:e,onOpen:t,onRange:e=>{mi(KT,$T(e)),i(e)}})}var u5={all:`All ({count})`,"not-modified":`Not modified ({count})`,modified:`Modified ({count})`,suggested:`Suggested ({count})`},d5={all:{idle:`border-input bg-card text-muted-foreground hover:bg-interactive-hover`,chosen:`border-primary/40 bg-selection text-foreground`},"not-modified":{idle:`border-status-info/35 bg-status-info/5 text-status-info hover:bg-status-info/15`,chosen:`border-status-info/70 bg-status-info/20 text-status-info`},modified:{idle:`border-status-success/35 bg-status-success/5 text-status-success hover:bg-status-success/15`,chosen:`border-status-success/70 bg-status-success/20 text-status-success`},suggested:{idle:`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))] hover:brightness-110`,chosen:`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))]`}};function f5(e){let t=td(`Suggested`);return{backgroundColor:`oklch(0.72 0.14 ${t} / ${e?.3:.1})`,borderColor:`oklch(0.72 0.14 ${t} / ${e?.8:.4})`,"--keyword-hue":String(t)}}var p5={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};function m5({value:e,counts:t,onChange:n}){let r=Y(),i=(0,v.useRef)([]),a=e=>{i.current[e]?.focus(),n(CT[e])};return(0,H.jsx)(`div`,{role:`radiogroup`,"aria-label":r(`Show skills by modification`),className:`inline-flex flex-wrap gap-1.5`,onKeyDown:t=>{let n=p5[t.key];if(!n)return;t.preventDefault();let r=getComputedStyle(t.currentTarget).direction===`rtl`,i=t.key===`ArrowLeft`||t.key===`ArrowRight`,o=r&&i?-n:n,s=CT.indexOf(e);a((s+o+CT.length)%CT.length)},children:CT.map((n,o)=>(0,H.jsx)(`button`,{ref:e=>{i.current[o]=e},type:`button`,role:`radio`,"aria-checked":e===n,tabIndex:e===n?0:-1,className:V(`min-h-9 rounded-[10px] border px-3 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring`,e===n?d5[n].chosen:d5[n].idle),style:n===`suggested`?f5(e===n):void 0,onClick:()=>a(o),children:Gb(r(u5[n]),{count:ex(t[n])})},n))})}function h5({className:e,...t}){return(0,H.jsx)(`nav`,{"data-slot":`pagination`,className:V(`mx-auto flex w-full justify-center`,e),...t})}function g5({className:e,...t}){return(0,H.jsx)(`ul`,{"data-slot":`pagination-content`,className:V(`flex flex-row flex-wrap items-center justify-center gap-1`,e),...t})}function _5({...e}){return(0,H.jsx)(`li`,{"data-slot":`pagination-item`,...e})}function v5({className:e,isActive:t,size:n=`icon-sm`,disabled:r,...i}){return(0,H.jsx)(`button`,{type:`button`,"aria-current":t?`page`:void 0,"aria-disabled":r||void 0,disabled:r,"data-slot":`pagination-button`,"data-active":t,className:V(Va({variant:t?`outline`:`ghost`,size:n}),`tabular-nums`,t&&`border-primary/40 bg-selection`,e),...i})}function y5({className:e,label:t,...n}){return(0,H.jsxs)(`span`,{"data-slot":`pagination-ellipsis`,className:V(`flex size-8 items-center justify-center`,e),...n,children:[(0,H.jsx)(xe,{className:`size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`sr-only`,children:t})]})}var b5=[3,5,10,25,50,100],x5=(e,t)=>Array.from({length:t-e+1},(t,n)=>e+n);function S5(e,t,n=1){if(t<=1)return[];if(t<=n*2+5)return x5(1,t);let r=Math.max(e-n,1),i=Math.min(e+n,t),a=r>2,o=i<t-1,s=3+n*2;return!a&&o?[...x5(1,s),`...`,t]:a&&!o?[1,`...`,...x5(t-s+1,t)]:[1,`...`,...x5(r,i),`...`,t]}var C5=(e,t)=>Math.max(1,Math.ceil(Math.max(0,e)/Math.max(1,t))),w5=(e,t,n)=>Math.min(Math.max(1,Math.floor(e)||1),C5(t,n));function T5(e,t,n){let r=w5(e,n,t),i=n===0?0:(r-1)*t+1;return{page:r,pageCount:C5(n,t),from:i,to:Math.min(n,r*t),total:n}}function E5(e,t,n){let r=T5(t,n,e.length);return{...r,items:e.slice(Math.max(0,r.from-1),r.to)}}function D5(e,t,n,r){let{from:i,to:a}=T5(e,t,n);return!r||n===0?{offset:Math.max(0,i-1),limit:t}:{offset:n-a,limit:a-i+1}}function O5(e){let t=[...b5];return t.includes(e)?t:[...t,e].sort((e,t)=>e-t)}function k5(e,t){let n=Number.parseInt(e.trim(),10);return Number.isNaN(n)||n<1?t:Math.min(n,200)}function A5(e,t,n,r){let i=n===`asc`?1:-1,a=e=>+!!r?.(e);return e.map((e,t)=>({item:e,index:t})).sort((e,n)=>a(e.item)-a(n.item)||(a(e.item)?0:i*t(e.item,n.item))||e.index-n.index).map(({item:e})=>e)}function j5(e){try{let t=localStorage.getItem(e);if(!t)return null;let n=JSON.parse(t),r=n.perPage===void 0?void 0:k5(String(n.perPage),5),i=n.order===`asc`||n.order===`desc`?n.order:void 0;return{perPage:r,sort:typeof n.sort==`string`?n.sort:void 0,order:i}}catch{return null}}function M5(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function N5(e,t){try{if(localStorage.getItem(e)!==null)return;let n=j5(t);if(!n)return;let r=n.perPage===5?void 0:n.perPage;if(r===void 0&&n.sort===void 0&&n.order===void 0)return;M5(e,{perPage:r,sort:n.sort,order:n.order})}catch{}}function P5(e,t){return e.key===t?e:{page:1,key:t}}function F5(e,t,n){let r=e.find(n=>n.value===e.find(e=>e.value===t)?.flip);return r?{sort:r.value,order:r.first}:{sort:t,order:n===`asc`?`desc`:`asc`}}function I5({view:e}){let t=Y(),n=(0,v.useRef)(null),r=(0,v.useRef)(!1);(0,v.useEffect)(()=>{r.current&&(r.current=!1,n.current?.querySelector(`[aria-current="page"]`)?.focus())},[e.page]);let i=S5(e.page,e.pageCount);if(i.length===0)return null;let a=t=>{r.current=t===1||t===e.pageCount,e.setPage(t)};return(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-3 pt-1`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground tabular-nums`,children:Gb(t(`Showing {from} to {to} of {total} results`),{from:e.from,to:e.to,total:e.total})}),(0,H.jsx)(h5,{ref:n,"aria-label":t(`pagination`),children:(0,H.jsxs)(g5,{children:[(0,H.jsx)(_5,{children:(0,H.jsxs)(v5,{size:`sm`,className:`gap-1 px-2.5`,"aria-label":t(`Go to previous page`),disabled:e.page<=1,onClick:()=>a(e.page-1),children:[(0,H.jsx)(se,{className:`rtl:-scale-x-100`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`hidden sm:inline`,children:t(`Previous`)})]})}),i.map((n,r)=>n===`...`?(0,H.jsx)(_5,{children:(0,H.jsx)(y5,{label:t(`More pages`)})},`gap-${r}`):(0,H.jsx)(_5,{children:(0,H.jsx)(v5,{isActive:n===e.page,"aria-label":Gb(t(`Go to page {page}`),{page:n}),onClick:()=>n===e.page?void 0:a(n),children:n})},n)),(0,H.jsx)(_5,{children:(0,H.jsxs)(v5,{size:`sm`,className:`gap-1 px-2.5`,"aria-label":t(`Go to next page`),disabled:e.page>=e.pageCount,onClick:()=>a(e.page+1),children:[(0,H.jsx)(`span`,{className:`hidden sm:inline`,children:t(`Next`)}),(0,H.jsx)(ce,{className:`rtl:-scale-x-100`,"aria-hidden":`true`})]})})]})})]})}var L5=()=>(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`hidden text-muted-foreground/50 sm:inline`,children:`|`});function R5({view:e,totalLabel:t}){let n=Y(),[r,i]=(0,v.useState)(null),a=()=>{if(r===null)return;let t=k5(r,e.perPage);i(null),t!==e.perPage&&e.setPerPage(t)},o=e=>{e.key===`Enter`&&a()},s=e.order===`asc`,c=s?ee:M;return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-2 text-sm text-muted-foreground`,children:[(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{children:n(`Show`)}),(0,H.jsx)(Dr,{className:`h-8 w-fit`,value:e.perPage,"aria-label":n(`Results per page`),onChange:t=>e.setPerPage(Number(t.target.value)),children:O5(e.perPage).map(e=>(0,H.jsx)(`option`,{value:e,children:e},e))}),(0,H.jsx)(`span`,{children:n(`results`)})]}),(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(L5,{}),(0,H.jsx)(`span`,{children:n(`Custom:`)}),(0,H.jsx)(ad,{type:`number`,inputMode:`numeric`,min:1,max:200,className:`h-8 w-20 tabular-nums`,value:r??String(e.perPage),"aria-label":n(`Custom results per page`),onChange:e=>i(e.target.value),onKeyDown:o,onBlur:a})]}),e.sorts.length>0?(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(L5,{}),(0,H.jsx)(`span`,{children:n(`Sort by`)}),(0,H.jsx)(Dr,{className:`h-8 w-fit`,value:e.sort,"aria-label":n(`Sort by`),onChange:t=>{let n=e.sorts.find(e=>e.value===t.target.value);n&&e.setSort(n.value,n.first)},children:e.sorts.map(e=>(0,H.jsx)(`option`,{value:e.value,children:n(e.label)},e.value))}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`icon-sm`,"aria-label":n(s?`Sort descending`:`Sort ascending`),title:n(s?`Sort descending`:`Sort ascending`),onClick:()=>{let t=F5(e.sorts,e.sort,e.order);e.setSort(t.sort,t.order)},children:(0,H.jsx)(c,{className:`size-3.5`,"aria-hidden":`true`})})]}):null,(0,H.jsx)(`span`,{className:`ms-auto tabular-nums`,children:t})]})}function z5({view:e,totalLabel:t,children:n}){return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(R5,{view:e,totalLabel:t}),n,(0,H.jsx)(I5,{view:e})]})}function B5(e,t){let{perPage:n,...r}=e;return t?{perPage:n,...r}:r}function V5(e,t,n=5){let r=j5(e),i=t.find(e=>e.value===r?.sort)??t[0];return{perPage:r?.perPage??n,sort:i.value,order:(r?.sort===i.value?r.order:void 0)??i.first}}function H5({storageKey:e,total:t,sorts:n,resetKey:r=``,legacyKey:i,defaultPerPage:a}){let[o,s]=(0,v.useState)(()=>(i&&N5(e,i),V5(e,n,a))),[c,l]=(0,v.useState)(()=>j5(e)?.perPage!==void 0),[u,d]=(0,v.useState)({page:1,key:r}),f=P5(u,r);f!==u&&d(f);let p=T5(f.page,o.perPage,t),m=(t,n=c)=>{s(t),l(n),M5(e,B5(t,n)),d({page:1,key:r})};return{...p,...o,sorts:n,setPage:e=>d({page:e,key:r}),setPerPage:e=>m({...o,perPage:e},!0),setSort:(e,t)=>m({...o,sort:e,order:t})}}function U5({items:e,sorts:t,...n}){let r=H5({...n,sorts:t,total:e.length}),{compare:i,last:a}=t.find(e=>e.value===r.sort)??t[0];return{view:r,pageItems:(0,v.useMemo)(()=>A5(e,i,r.order,a),[e,i,a,r.order]).slice(Math.max(0,r.from-1),r.to)}}var W5=(e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}),G5=[{value:`uses`,label:`Most used`,first:`desc`,compare:(e,t)=>e.uses-t.uses},{value:`attention`,label:`Needs attention`,first:`desc`,compare:(e,t)=>e.attention-t.attention},{value:`name`,label:`Name (A–Z)`,first:`asc`,compare:W5},{value:`lastUsed`,label:`Last used`,first:`desc`,compare:(e,t)=>(e.lastUsedAt??0)-(t.lastUsedAt??0),last:e=>e.lastUsedAt===null},{value:`failed`,label:`Failed turns`,first:`desc`,compare:(e,t)=>e.failedTurns-t.failedTurns},{value:`lastModified`,label:`Last modified`,first:`desc`,compare:(e,t)=>(e.lastAppliedAt??0)-(t.lastAppliedAt??0),last:e=>e.lastAppliedAt===null}],K5=(e,t)=>(e.errorLine??``).localeCompare(t.errorLine??``,void 0,{sensitivity:`base`}),q5=[{value:`calls`,label:`Most calls`,first:`desc`,compare:(e,t)=>e.calls-t.calls},{value:`lastSeen`,label:`Last seen`,first:`desc`,compare:(e,t)=>e.lastSeenAt-t.lastSeenAt},{value:`tool`,label:`Tool (A–Z)`,first:`asc`,compare:(e,t)=>W5(e,t)||K5(e,t)}],J5=[`pending`,`applied`,`rejected`,`stale`,`undone`],Y5=(e,t)=>e.updatedAt-t.updatedAt,X5=[{value:`newest`,label:`Newest`,first:`desc`,flip:`oldest`,compare:Y5},{value:`oldest`,label:`Oldest`,first:`asc`,flip:`newest`,compare:Y5},{value:`state`,label:`State`,first:`asc`,compare:(e,t)=>J5.indexOf(e.state)-J5.indexOf(t.state)},{value:`skill`,label:`Skill`,first:`asc`,compare:(e,t)=>W5({name:e.skillName},{name:t.skillName})}],Z5=[{value:`newest`,label:`Newest`,first:`desc`,flip:`oldest`},{value:`oldest`,label:`Oldest`,first:`asc`,flip:`newest`}],Q5=e=>e.order===`asc`;function $5({label:e,colourKey:t=e,className:n}){let r=td(t);return(0,H.jsx)(`span`,{className:V(`inline-flex min-h-6 max-w-full items-center rounded-[7px] border px-2 text-xs break-words`,`[color:oklch(0.42_0.13_var(--keyword-hue))] dark:[color:oklch(0.8_0.13_var(--keyword-hue))]`,n),style:{backgroundColor:`oklch(0.72 0.14 ${r} / 0.18)`,borderColor:`oklch(0.72 0.14 ${r} / 0.45)`,"--keyword-hue":String(r)},children:e})}function e7(e){return[`Tool: ${e.name}`,`Error: ${e.error??`(no error text recorded)`}`,`Input: ${e.input}`].join(`
170
+ `)}function t7({call:e}){let t=Y(),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(!1),c=e.input.length>400,l=c&&!n?e.input.slice(0,400)+`…`:e.input;async function u(){try{await navigator.clipboard.writeText(e7(e)),s(!1),a(!0),window.setTimeout(()=>a(!1),2e3)}catch{a(!1),s(!0),window.setTimeout(()=>s(!1),4e3)}}return(0,H.jsxs)(`div`,{className:`min-w-0 space-y-1.5 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsxs)(`p`,{className:`flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`font-mono`,dir:`ltr`,children:e.name}),(0,H.jsx)(`span`,{dir:`ltr`,children:Gb(t(`Position {position}`),{position:e.position})}),`createdAt`in e?(0,H.jsx)(`span`,{children:Qp(e.createdAt)}):null,`projectName`in e&&e.projectName?(0,H.jsx)(`bdi`,{children:e.projectName}):null]}),(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:e.error??(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:t(`No error text recorded`)})}),(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-h-64 overflow-y-auto rounded-lg bg-secondary px-2.5 py-2 font-mono text-xs whitespace-pre-wrap [overflow-wrap:anywhere]`,children:l}),e.inputCut?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`The server sent the first 20000 characters of this input.`)}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[c?(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>r(e=>!e),children:t(n?`Show less input`:`Show full input`)}):null,(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>void u(),children:[i?(0,H.jsx)(ae,{"aria-hidden":`true`}):(0,H.jsx)(_e,{"aria-hidden":`true`}),(0,H.jsx)(`span`,{role:`status`,children:t(i?`Copied`:`Copy`)})]}),o?(0,H.jsx)(`span`,{role:`status`,className:`self-center text-xs text-destructive-label`,children:t(`Could not copy`)}):null]})]})}function n7({title:e,calls:t,totalCount:n,loading:r,loadError:i,onClose:a}){let o=Y();return(0,H.jsx)(zl,{open:!0,onOpenChange:e=>void(!e&&a()),children:(0,H.jsxs)(q,{className:`sm:max-w-2xl`,children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:e}),n!==void 0&&t.length>0?(0,H.jsx)(Gl,{children:Gb(o(n===1?`{count} call is in this group; showing the latest {shown}.`:`{count} calls are in this group; showing the latest {shown}.`),{count:n,shown:t.length})}):null]}),i?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:o(`The failed calls could not be loaded.`)}),(0,H.jsx)(Ul,{children:(0,H.jsx)(K,{type:`button`,variant:`outline`,onClick:a,children:o(`Close`)})})]}):r?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o(`Loading…`)}):(0,H.jsx)(`div`,{className:`space-y-3`,children:t.map(e=>(0,H.jsx)(t7,{call:e},`turnId`in e?`${e.turnId}-${e.position}`:e.position))})]})})}function r7({turn:e}){let t=Gb(Y()(e.failedToolCalls===1?`{count} failed tool call`:`{count} failed tool calls`),{count:e.failedToolCalls}),[n,r]=(0,v.useState)(!1),[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)([]),[c,l]=(0,v.useState)(``);async function u(){r(!0),a(!0),l(``);let t=await Wb.turnFailures(e.id);if(a(!1),!t.ok){l(t.error);return}s(t.data.failures)}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{type:`button`,variant:`link`,"aria-haspopup":`dialog`,className:`h-auto p-0 text-xs font-normal text-destructive-label underline decoration-dotted underline-offset-2`,onClick:()=>void u(),children:t}),n?(0,H.jsx)(n7,{title:t,calls:o,loading:i,loadError:c,onClose:()=>r(!1)}):null]})}function i7({turns:e}){let t=Y();return e.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`No recorded turns.`)}):(0,H.jsx)(`ul`,{className:`space-y-3`,children:e.map(e=>(0,H.jsxs)(`li`,{className:`min-w-0 space-y-1 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsx)(`p`,{className:`line-clamp-3 break-words text-sm`,dir:`auto`,children:e.promptPreview||t(`(empty prompt)`)}),(0,H.jsxs)(`p`,{className:`flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:Qp(e.createdAt)}),(0,H.jsx)(`span`,{dir:`ltr`,children:e.host}),e.projectName?(0,H.jsx)(`bdi`,{children:e.projectName}):null,e.failedToolCalls>0?(0,H.jsx)(r7,{turn:e}):null]})]},e.id))})}function a7(e,t,n){let r=e.length>3;return!r||!t?{canExpand:r,moreCount:r?Math.min(e.length,6)-3:0,...E5(e,1,3)}:{canExpand:r,moreCount:0,...E5(e,n,6)}}function o7({turns:e,expanded:t,page:n,onToggle:r,onPage:i}){let a=Y(),o=(0,v.useId)(),s=a7(e,t,n),c=t?le:oe;return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`div`,{id:o,children:(0,H.jsx)(i7,{turns:s.items})}),s.canExpand?(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,"aria-expanded":t,"aria-controls":o,onClick:r,children:[(0,H.jsx)(c,{"aria-hidden":`true`}),t?a(`Show less`):Gb(a(`Show {count} more`),{count:s.moreCount})]}):null,t?(0,H.jsx)(I5,{view:{...s,setPage:i}}):null]})}function s7({turns:e}){let[t,n]=(0,v.useState)(!1),[r,i]=(0,v.useState)(1);return(0,H.jsx)(o7,{turns:e,expanded:t,page:r,onToggle:()=>{n(e=>!e),i(1)},onPage:i})}var c7={add:`bg-status-success/15 text-status-success`,del:`bg-destructive/10 text-destructive-label`,hunk:`text-status-info`,ctx:`text-muted-foreground`};function l7({diff:e,label:t}){return(0,H.jsx)(`pre`,{dir:`ltr`,tabIndex:0,"aria-label":t,className:`max-h-96 overflow-auto rounded-lg border border-border bg-background py-1 font-mono text-xs leading-5`,children:Yb(e).map((e,t)=>(0,H.jsx)(`code`,{"data-line":e.kind,className:V(`block px-2 whitespace-pre-wrap break-words`,c7[e.kind]),children:e.text||` `},t))})}function u7({detail:e}){let t=Y();if(e===null)return(0,H.jsxs)(`p`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}),t(`Loading the proposal…`)]});if(e.status===`failed`)return(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:t(`The proposal could not be loaded. Select Show less, then Show more to try again.`)});let{proposal:n,evidence:r}=e;return(0,H.jsxs)(H.Fragment,{children:[n.diff?(0,H.jsx)(l7,{diff:n.diff,label:t(`Changes to SKILL.md`)}):(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-h-96 overflow-auto rounded-lg border border-border bg-background p-2 font-mono text-xs`,children:n.content}),n.evidenceTurnIds.length>0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`h4`,{className:`text-sm font-medium`,children:t(`Evidence turns`)}),(0,H.jsx)(s7,{turns:r})]}):null]})}async function d7(e,t=Wb.proposal){let n=await t(e);return n.ok?{status:`ready`,proposal:n.data.proposal,evidence:n.data.evidence}:{status:`failed`}}function f7(e,t,n=null){let[r,i]=(0,v.useState)(n),a=r?.status===`ready`;return(0,v.useEffect)(()=>{if(!t||a)return;let n=!0;return d7(e).then(e=>{n&&i(e)}),()=>{n=!1,i(e=>e?.status===`ready`?e:null)}},[t,a,e]),r}function p7(e,t){return e===`state-write-failed`?{message:`The state could not be saved, so SKILL.md is as it was. Try again.`,reload:!0}:{message:t,reload:!1}}function m7({savedContent:e}){let t=Y();return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(`p`,{className:`text-sm`,children:t(`Undo stopped because the file changed. This is the content OMMS saved:`)}),e===null?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`No content was saved.`)}):(0,H.jsx)(`pre`,{dir:`ltr`,className:`max-h-72 overflow-auto rounded-lg border border-border bg-background p-2 font-mono text-xs`,children:e})]})}var h7=(e,t)=>({...e,state:`stale`,updatedAt:t}),g7={applied:`Applied {date}`,rejected:`Rejected {date}`,undone:`Undone {date}`,stale:`Stale since {date}`};function _7({proposal:e}){let t=Y(),n=e.state===`pending`?null:g7[e.state];return(0,H.jsxs)(`span`,{className:`flex flex-wrap gap-x-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:Gb(t(`Created {date}`),{date:Qp(e.createdAt)})}),n?(0,H.jsx)(`span`,{children:Gb(t(n),{date:Qp(e.updatedAt)})}):null]})}function v7({proposal:e}){let t=Y(),{added:n,removed:r}=e;return n===0&&r===0?null:(0,H.jsxs)(`span`,{dir:`ltr`,className:`inline-flex w-fit items-center gap-1 rounded-[7px] border border-border bg-background px-2 font-mono text-xs tabular-nums leading-5`,children:[(0,H.jsx)(`span`,{className:`sr-only`,children:Gb(t(`{added} lines added, {removed} lines removed`),{added:n,removed:r})}),(0,H.jsxs)(`span`,{"aria-hidden":`true`,className:`text-status-success`,children:[`+`,n]}),(0,H.jsxs)(`span`,{"aria-hidden":`true`,className:`text-destructive-label`,children:[`−`,r]}),(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-muted-foreground`,children:t(`lines`)})]})}function y7({proposal:e,onChange:t,initiallyOpen:n=!1,initialDetail:r=null}){let i=Y(),a=qb(e),o=e.state===`pending`,s=(0,v.useId)(),c=(0,v.useId)(),l=e.canUndo!==!1,[u,d]=(0,v.useState)(n),f=u?le:oe,p=f7(e.id,u,r),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)(``),[y,b]=(0,v.useState)(void 0);async function x(n){h(!0),_(``),b(void 0);let r=await n();if(h(!1),r.ok)t(Zb(r.data.proposal));else{let n=p7(r.code,r.error);_(i(n.message)),n.reload&&Wb.proposal(e.id).then(e=>{e.ok&&t(Zb(e.data.proposal))}),r.code===`changed`&&b(r.savedContent??null),r.code===`stale`&&t(h7(e,Date.now()))}}return(0,H.jsxs)(`article`,{className:`min-w-0 space-y-3 rounded-xl border border-border bg-card p-3`,children:[(0,H.jsxs)(`header`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(`h3`,{className:`min-w-0 break-words text-sm font-semibold`,children:e.skillName}),(0,H.jsx)($5,{label:i(a),colourKey:a}),(0,H.jsx)($5,{label:i(e.kind===`new`?`New skill`:`Improvement`),colourKey:e.kind}),(0,H.jsx)(_7,{proposal:e})]}),e.summary?(0,H.jsx)(`p`,{className:V(`break-words text-sm`,u?``:`line-clamp-2`),dir:`auto`,children:e.summary}):null,(0,H.jsx)(v7,{proposal:e}),e.state===`stale`?(0,H.jsx)(lx,{tone:`warning`,children:(0,H.jsx)(`p`,{children:i(`Stale: the file changed since this draft`)})}):null,(0,H.jsx)(`div`,{id:c,hidden:!u,className:`space-y-3`,children:u?(0,H.jsx)(u7,{detail:p}):null}),o||e.state===`applied`?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:o?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:m,onClick:()=>void x(()=>Wb.apply(e.id)),children:[(0,H.jsx)(ae,{"aria-hidden":`true`}),i(`Apply`)]}),(0,H.jsxs)(K,{type:`button`,variant:`destructive`,size:`sm`,disabled:m,onClick:()=>void x(()=>Wb.reject(e.id)),children:[(0,H.jsx)(qt,{"aria-hidden":`true`}),i(`Reject`)]})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:m||!l,"aria-describedby":l?void 0:s,onClick:()=>void x(()=>Wb.undo(e.id)),children:[(0,H.jsx)(Vt,{"aria-hidden":`true`}),i(`Undo`)]}),l?null:(0,H.jsx)(`span`,{id:s,className:`self-center text-xs text-muted-foreground`,children:i(`Revert the newer change first.`)})]})}):null,g?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:g}):null,y===void 0?null:(0,H.jsx)(m7,{savedContent:y}),$b(e)?(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,"aria-expanded":u,"aria-controls":c,onClick:()=>d(e=>!e),children:[(0,H.jsx)(f,{"aria-hidden":`true`}),i(u?`Show less`:`Show more`)]}):null]})}var b7=`omms-list-pending-v2`,x7=`omms-list-recent-v2`,S7=`omms-list-skill-proposals-v2`,C7={[b7]:`omms-list-pending`,[x7]:`omms-list-recent`,[S7]:`omms-list-skill-proposals`};function w7({storageKey:e,proposals:t,onChange:n}){let r=Y(),{view:i,pageItems:a}=U5({storageKey:e,legacyKey:C7[e],items:t,sorts:X5,defaultPerPage:3});return(0,H.jsx)(z5,{view:i,totalLabel:Gb(r(i.total===1?`{count} proposal`:`{count} proposals`),{count:i.total}),children:(0,H.jsx)(`div`,{className:`space-y-3`,children:a.map(e=>(0,H.jsx)(y7,{proposal:e,onChange:n},e.id))})})}function T7(){let[e,t]=(0,v.useState)({kind:`none`});return{value:e,clear:()=>t({kind:`none`}),show:e=>{e.ok?t(e.code===`no-change`?{kind:`no-change`}:{kind:`none`}):t(e.code===`not-configured`?{kind:`not-configured`}:{kind:`error`,text:e.error})}}}function E7({notice:e}){let t=Y();if(e.kind===`none`)return null;if(e.kind===`no-change`)return(0,H.jsx)(`p`,{role:`status`,className:`text-sm`,children:t(`No change proposed`)});if(e.kind===`error`)return(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:e.text});let n=`${J.settings}#settings-section-external-api`;return(0,H.jsxs)(lx,{tone:`info`,children:[(0,H.jsx)(`p`,{children:t(`Drafting needs the external API. Set it up first.`)}),(0,H.jsx)(`a`,{className:`underline`,href:n,onClick:e=>{e.preventDefault(),_f(n)},children:t(`External API`)})]})}var D7=[`manual`,`automatic`];function O7({mode:e,disabled:t,confirming:n,onSelect:r,onConfirm:i,onCancel:a}){let o=Y();return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`div`,{role:`radiogroup`,"aria-label":o(`Mode`),className:`inline-flex gap-1.5`,children:D7.map(n=>(0,H.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e===n,disabled:t,className:V(`min-h-9 rounded-[10px] border px-3 text-ui transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-ring disabled:opacity-50`,e===n?`border-primary/40 bg-selection text-foreground`:`border-input bg-card text-muted-foreground hover:bg-interactive-hover`),onClick:()=>r(n),children:o(n===`manual`?`Manual`:`Automatic`)},n))}),n?(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:o(`Turn on Automatic mode for this skill?`)}),(0,H.jsx)(`p`,{children:o(`OMMS will change this SKILL.md file without asking. It drafts an improvement after 10 new uses and at least 24 hours, then applies it. Each change can be undone.`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,size:`sm`,disabled:t,onClick:i,children:o(`Turn on Automatic`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:a,children:o(`Cancel`)})]})]}):null]})}function k7({mode:e,disabled:t,onChoose:n}){let[r,i]=(0,v.useState)(!1);return(0,H.jsx)(O7,{mode:e,disabled:t,confirming:r,onSelect:t=>{t!==e&&(t===`automatic`?i(!0):(i(!1),n(t)))},onConfirm:()=>{i(!1),n(`automatic`)},onCancel:()=>i(!1)})}function A7({at:e,className:t}){let n=Gb(Y()(`Modified on {date}`),{date:Qp(e)});return(0,H.jsx)(Hp,{content:n,className:t,children:(0,H.jsxs)(`span`,{tabIndex:0,className:`inline-flex rounded-full text-status-success focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsx)(fe,{className:`size-4`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`sr-only`,children:n})]})})}var j7=`omms-explain-failures-confirmed`;function M7(){try{return window.localStorage.getItem(j7)===`1`}catch{return!1}}function N7(){try{window.localStorage.setItem(j7,`1`)}catch{}}function P7(e,t){return[(0,H.jsx)(`p`,{children:e(`This sends the failure groups (tool names, error text and input excerpts of up to 500 characters) and this skill's SKILL.md to the external API model.`)},`what`),t?(0,H.jsx)(`p`,{children:e(`The text is sent as stored, after <private> removal and secret redaction.`)},`redact`):(0,H.jsx)(`p`,{children:e(`Warning: redaction is off. The text may hold secrets that were not removed.`)},`no-redact`)]}function F7(e,t){switch(t){case`skill`:return e(`Skill fix`);case`harness`:return e(`Host or harness bug`);case`environment`:return e(`Environment problem`);default:return e(`Unknown`)}}function I7({cause:e}){let t=Y();return(0,H.jsxs)(`li`,{className:`space-y-1.5 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:F7(t,e.kind)}),(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:e.explanation}),e.actions.length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t(`Suggested actions`)}),(0,H.jsx)(`ul`,{className:`list-disc space-y-0.5 ps-5 text-sm`,children:e.actions.map((e,t)=>(0,H.jsx)(`li`,{dir:`auto`,children:e},t))})]}):null]})}function L7({skill:e,groups:t}){let n=Y(),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(null);(0,v.useEffect)(()=>{let e=!0;return Wb.stats().then(t=>{e&&(t.ok?i({recording:t.data.recording,redact:t.data.redact}):o(!0))}),()=>{e=!1}},[]);async function _(){c(!0),f(``),m(!1);let t=await Wb.explainFailures(e.path,e.name);if(c(!1),!t.ok){t.code===`not-configured`?m(!0):f(t.error);return}g(t.data.explanation)}let y=t!==null&&t.length===0,b=r!==null&&!r.recording,x=s||t===null||r===null&&!a||b||y,S=r?.redact===!0;function C(){if(!x){if(M7()){_();return}u(!0)}}return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:x,onClick:C,children:[(0,H.jsx)(At,{"aria-hidden":`true`}),n(`Explain failures`)]}),s?(0,H.jsxs)(`span`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),n(`Explaining… This can take a few minutes.`)]}):b?(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:n(`Skill learning must be on to explain failures.`)}):y?(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:n(`No failure groups to explain.`)}):null,(0,H.jsx)(Wv,{label:n(`About Explain failures`),children:(0,H.jsx)(`div`,{className:`space-y-1.5`,children:P7(n,S)})})]}),p?(0,H.jsxs)(lx,{tone:`info`,children:[(0,H.jsx)(`p`,{children:n(`Explaining needs the external API. Set it up first.`)}),(0,H.jsx)(`a`,{className:`underline`,href:`${J.settings}#settings-section-external-api`,onClick:e=>{e.preventDefault(),_f(`${J.settings}#settings-section-external-api`)},children:n(`External API`)})]}):null,d?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:d}):null,h?(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:h.summary}),(0,H.jsx)(`ul`,{className:`space-y-2`,children:h.causes.map((e,t)=>(0,H.jsx)(I7,{cause:e},t))}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`The labels and suggestions are leads from the error text only; the model cannot see the host's code.`)})]}):null,(0,H.jsx)(zl,{open:l,onOpenChange:e=>{e||u(!1)},children:(0,H.jsxs)(q,{children:[(0,H.jsxs)(Hl,{children:[(0,H.jsx)(Wl,{children:n(`Send failures to the external API?`)}),(0,H.jsx)(Gl,{children:n(`Nothing is sent until you confirm. Nothing is saved.`)})]}),(0,H.jsx)(lx,{tone:S?`warning`:`danger`,children:(0,H.jsx)(`div`,{className:`space-y-1.5`,children:P7(n,S)})}),(0,H.jsxs)(Ul,{children:[(0,H.jsx)(K,{type:`button`,variant:`outline`,onClick:()=>u(!1),children:n(`Cancel`)}),(0,H.jsx)(K,{type:`button`,onClick:()=>{N7(),u(!1),_()},children:n(`Explain failures`)})]})]})})]})}var R7=`omms-list-skill-failures`;function z7(e,t){return`${t.name} — ${t.errorLine??e(`no error text`)}`}function B7({skill:e,reloadKey:t}){let n=Y(),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(``),[s,c]=(0,v.useState)(null),{view:l,pageItems:u}=U5({storageKey:R7,items:r??[],sorts:q5});return(0,v.useEffect)(()=>{let t=!0;return Wb.skillFailures(e.path,e.name).then(e=>{if(t){if(!e.ok)return o(e.error);o(``),i(e.data.groups)}}),()=>{t=!1}},[e.path,e.name,t]),(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`skill-failures-title`,children:[(0,H.jsx)(`h3`,{id:`skill-failures-title`,className:`text-section-title font-semibold`,children:n(`Failures`)}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`Failed calls that count against this skill, grouped by tool and first error line.`)}),(0,H.jsx)(L7,{skill:e,groups:r}),a?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:a}):r===null?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Loading…`)}):r.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`No failed tool calls are recorded for this skill.`)}):(0,H.jsx)(z5,{view:l,totalLabel:Gb(n(l.total===1?`{count} failure group`:`{count} failure groups`),{count:l.total}),children:(0,H.jsx)(`ul`,{className:`space-y-3`,children:u.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsxs)(`button`,{type:`button`,"aria-haspopup":`dialog`,onClick:()=>c(e),className:`flex w-full cursor-pointer items-start gap-2 rounded-xl border border-border bg-card px-3 py-2.5 text-start hover:bg-interactive-hover`,children:[(0,H.jsx)(ce,{className:`rtl:-scale-x-100 mt-0.5 size-4 shrink-0`,"aria-hidden":`true`}),(0,H.jsxs)(`span`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,H.jsx)(`span`,{className:`block break-words text-sm`,dir:`auto`,children:z7(n,e)}),(0,H.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[Gb(n(e.calls===1?e.turns===1?`{calls} call over {turns} turn`:`{calls} call over {turns} turns`:e.turns===1?`{calls} calls over {turns} turn`:`{calls} calls over {turns} turns`),{calls:e.calls,turns:e.turns}),` · `,Gb(n(`Last seen {date}`),{date:Qp(e.lastSeenAt)})]})]})]})},`${e.name}\u0000${e.errorLine??``}`))})}),s?(0,H.jsx)(n7,{title:z7(n,s),calls:s.latest,totalCount:s.calls,loading:!1,loadError:``,onClose:()=>c(null)}):null]})}var V7=e=>e.kind===`applied`&&e.appliedBy===`automatic`?`applied automatically`:e.kind;function H7({entry:e,confirming:t,working:n,locked:r,onAsk:i,onConfirm:a,onCancel:o}){let s=Y(),c=(0,v.useId)(),l=V7(e),u=e.added>0||e.removed>0;return(0,H.jsxs)(`li`,{className:`relative min-w-0 space-y-1.5`,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`absolute -start-[21.5px] top-1.5 size-2.5 rounded-full border-2 border-background`,style:{backgroundColor:`oklch(0.66 0.14 ${td(l)})`}}),(0,H.jsxs)(`p`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)($5,{label:s(l),colourKey:l}),(0,H.jsx)(`time`,{dateTime:new Date(e.at).toISOString(),className:`text-xs text-muted-foreground`,children:Qp(e.at)}),u?(0,H.jsxs)(`span`,{className:`font-mono text-xs tabular-nums`,dir:`ltr`,"aria-label":Gb(s(`{added} lines added, {removed} lines removed`),{added:e.added,removed:e.removed}),children:[(0,H.jsxs)(`span`,{className:`text-status-success`,children:[`+`,e.added]}),` `,(0,H.jsxs)(`span`,{className:`text-destructive-label`,children:[`−`,e.removed]})]}):null]}),e.summary?(0,H.jsx)(`p`,{className:`break-words text-sm`,dir:`auto`,children:e.summary}):null,e.kind===`applied`?(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-0.5`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:!e.canUndo||r||t,"aria-describedby":e.canUndo?void 0:c,onClick:i,children:[(0,H.jsx)(Vt,{"aria-hidden":`true`}),s(`Revert to before this change`)]}),e.canUndo?null:(0,H.jsx)(`span`,{id:c,className:`text-xs text-muted-foreground`,children:s(`Revert the newer change first.`)}),n?(0,H.jsxs)(`span`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),s(`Reverting…`)]}):null]}):null,t?(0,H.jsxs)(lx,{tone:`warning`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:s(`Revert this change?`)}),(0,H.jsx)(`p`,{children:s(`OMMS restores SKILL.md as it was before this change.`)}),e.laterAppliedCount>0?(0,H.jsx)(`p`,{className:`font-medium`,children:Gb(s(e.laterAppliedCount===1?`Reverting this also removes {count} later change.`:`Reverting this also removes {count} later changes.`),{count:e.laterAppliedCount})}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 pt-1`,children:[(0,H.jsx)(K,{type:`button`,size:`sm`,disabled:n||r,onClick:a,children:s(`Revert`)}),(0,H.jsx)(K,{type:`button`,variant:`outline`,size:`sm`,onClick:o,children:s(`Cancel`)})]})]}):null]})}function U7(e){let t=Y(),{view:n,entries:r,loaded:i,error:a,notice:o,refreshing:s=!1}=e;return(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`skill-history-title`,children:[(0,H.jsx)(`h3`,{id:`skill-history-title`,className:`text-section-title font-semibold`,children:t(`History`)}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Each proposal, apply, reject and undo of this skill. Revert an applied change to restore SKILL.md as it was before it.`)}),o?.tone===`done`?(0,H.jsx)(`p`,{role:`status`,className:`text-sm text-status-success`,children:t(`Reverted. SKILL.md is back to the version before that change.`)}):null,o?.tone===`error`?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:o.text}),o.savedContent===void 0?null:(0,H.jsx)(m7,{savedContent:o.savedContent})]}):null,a?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:a}):i?n.total===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`No history yet.`)}):(0,H.jsx)(z5,{view:n,totalLabel:Gb(t(n.total===1?`{count} entry`:`{count} entries`),{count:n.total}),children:(0,H.jsx)(`ol`,{"aria-busy":s,className:`ms-1.5 space-y-4 border-s border-border ps-4 transition-opacity ${s?`opacity-60`:``}`,children:r.map(t=>(0,H.jsx)(H7,{entry:t,confirming:e.confirmId===t.id,working:e.workingId===t.id,locked:e.workingId!==null||s,onAsk:()=>e.onAsk(t),onConfirm:()=>e.onConfirm(t),onCancel:e.onCancel},t.id))})}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`Loading…`)})]})}function W7({skill:e,reloadKey:t,onChanged:n}){let[r,i]=(0,v.useState)(0),[a,o]=(0,v.useState)([]),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(null),b=H5({storageKey:`omms-list-skill-history`,total:r,sorts:Z5}),x=Q5(b),{offset:S,limit:C}=D5(b.page,b.perPage,r,x),w=`${e.path}|${e.name}|${C}|${S}|${x}|${t}`;(0,v.useEffect)(()=>{let t=!0;return Wb.history(e.path,e.name,{limit:C,offset:S}).then(e=>{if(!t)return;if(c(!0),!e.ok)return f(e.error);let n=zT(e.data);f(``),i(n.total);let r=n.entries.slice(0,C);o(x?r.reverse():r),u(w)}),()=>{t=!1}},[e.path,e.name,C,S,x,t,w]);async function T(e){m(null),g(e.id),y(null);let t=await Wb.undo(e.proposalId);if(g(null),t.ok){y({tone:`done`}),n();return}y({tone:`error`,text:t.error,...t.code===`changed`?{savedContent:t.savedContent??null}:{}})}return(0,H.jsx)(U7,{view:b,entries:a,loaded:s,error:d,confirmId:p,workingId:h,notice:_,refreshing:s&&l!==w,onAsk:e=>{y(null),m(e.id)},onConfirm:e=>void T(e),onCancel:()=>m(null)})}var G7=[{id:`skill-section-uses`,title:`Uses in the last 30 days`},{id:`skill-section-mode`,title:`Mode`},{id:`skill-section-proposals`,title:`Proposals`},{id:`skill-section-history`,title:`History`},{id:`skill-section-turns`,title:`Recent turns`},{id:`skill-section-failures`,title:`Failures`}];function K7({onBack:e,hasMode:t=!0}){let n=Y(),r=t?G7:G7.filter(e=>e.id!==`skill-section-mode`);return(0,H.jsx)(ty,{storageKey:`omms-skill-toc-open`,sections:r,back:{label:n(`All skills`),onBack:e}})}function q7({skill:e,reloadKey:t}){let n=Y(),[r,i]=(0,v.useState)(0),[a,o]=(0,v.useState)(null),[s,c]=(0,v.useState)(``),l=H5({storageKey:`omms-list-skill-turns`,total:r,sorts:Z5}),u=Q5(l),{offset:d,limit:f}=D5(l.page,l.perPage,r,u);return(0,v.useEffect)(()=>{let t=!0;return Wb.skill(e.path,e.name,{limit:f,offset:d}).then(e=>{if(!t)return;if(!e.ok)return c(e.error);let n=(e.data.recentTurns??[]).slice(0,f);c(``),i(e.data.turnTotal??n.length),o(u?n.reverse():n)}),()=>{t=!1}},[e.path,e.name,f,d,u,t]),(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`skill-turns-title`,children:[(0,H.jsx)(`h3`,{id:`skill-turns-title`,className:`text-section-title font-semibold`,children:n(`Recent turns`)}),s?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:s}):a===null?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`Loading…`)}):r===0?(0,H.jsx)(i7,{turns:[]}):(0,H.jsx)(z5,{view:l,totalLabel:Gb(n(r===1?`{count} turn`:`{count} turns`),{count:r}),children:(0,H.jsx)(i7,{turns:a})})]})}var J7=e=>e.ok?``:e.error;function Y7(e,t){t.setDetail(t=>t&&{...t,proposals:t.proposals.map(t=>t.id===e.id?e:t)}),t.bumpHistory(),t.reload()}function X7({skill:e,onBack:t,onChanged:n}){let r=Y(),[i,a]=(0,v.useState)(null),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(e.mode),[f,p]=(0,v.useState)(``),m=T7(),[h,g]=(0,v.useState)(0),_=(0,v.useCallback)(async()=>{let t=await Wb.skill(e.path,e.name,{limit:1,offset:0});t.ok&&a(t.data),s(J7(t))},[e.path,e.name]),y=()=>{g(e=>e+1),_(),n()};(0,v.useEffect)(()=>{_()},[_]);async function b(){l(!0),m.clear();let t=await Wb.draftImprovement(e.path??e.name);l(!1),m.show(t),t.ok&&y()}async function x(t){if(!e.path)return;p(``);let r=await Wb.setMode(e.path,t);r.ok?(d(t),n()):p(r.error)}let S=e=>Y7(e,{setDetail:a,bumpHistory:()=>g(e=>e+1),reload:()=>void _()}),C=i?.proposals??[],w=i?.skill??e;return(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsx)(K7,{onBack:t,hasMode:!!e.path}),(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,onClick:t,children:[(0,H.jsx)(N,{className:`rtl:-scale-x-100`,"aria-hidden":`true`}),r(`All skills`)]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(`h2`,{className:`min-w-0 break-words text-section-title font-semibold`,children:e.name}),w.modified&&w.lastAppliedAt!==null?(0,H.jsx)(A7,{at:w.lastAppliedAt}):null,e.suggested?(0,H.jsx)($5,{label:r(`Suggested`),colourKey:`Suggested`}):null,(0,H.jsx)($5,{label:r(u===`manual`?`Manual`:`Automatic`),colourKey:u})]}),e.path?(0,H.jsx)(`p`,{dir:`ltr`,className:`break-all font-mono text-xs text-start text-muted-foreground`,children:e.path}):(0,H.jsx)(lx,{tone:`info`,children:(0,H.jsx)(`p`,{children:r(`Not in a watched folder`)})}),(0,H.jsx)(`dl`,{className:`grid max-w-xl grid-cols-1 gap-3 text-sm sm:grid-cols-3`,children:[[r(`Uses in 30 days`),ex(e.uses)],[r(`Failed turns`),ex(e.failedTurns)],[r(`Last use`),e.lastUsedAt?Qp(e.lastUsedAt):r(`Never`)]].map(([e,t])=>(0,H.jsxs)(`div`,{className:`rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsx)(`dt`,{className:`text-xs text-muted-foreground`,children:e}),(0,H.jsx)(`dd`,{className:`font-medium`,children:t})]},e))})]}),i?(0,H.jsx)(`div`,{id:`skill-section-uses`,className:`scroll-mt-4`,children:(0,H.jsx)(i5,{className:`max-w-3xl`,rows:NT(MT(i.daily)),title:r(`Uses in the last 30 days`)})}):null,e.path?(0,H.jsxs)(`section`,{id:`skill-section-mode`,className:`scroll-mt-4 space-y-3`,"aria-label":r(`Mode`),children:[(0,H.jsx)(`h3`,{className:`text-section-title font-semibold`,children:r(`Mode`)}),(0,H.jsx)(k7,{mode:u,disabled:c,onChoose:e=>void x(e)}),f?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:f}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 pt-1`,children:[(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:c,onClick:()=>void b(),children:[(0,H.jsx)(At,{"aria-hidden":`true`}),r(`Draft improvement`)]}),c?(0,H.jsxs)(`span`,{role:`status`,className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(Ye,{className:`size-4 animate-spin`,"aria-hidden":`true`}),r(`Drafting… This can take a few minutes.`)]}):null]}),(0,H.jsx)(E7,{notice:m.value})]}):null,(0,H.jsxs)(`section`,{id:`skill-section-proposals`,className:`scroll-mt-4 space-y-3`,"aria-labelledby":`skill-proposals-title`,children:[(0,H.jsx)(`h3`,{id:`skill-proposals-title`,className:`text-section-title font-semibold`,children:r(`Proposals`)}),o?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:o}):C.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`No proposals yet.`)}):(0,H.jsx)(w7,{storageKey:S7,proposals:C,onChange:S})]}),(0,H.jsx)(`div`,{id:`skill-section-history`,className:`scroll-mt-4`,children:(0,H.jsx)(W7,{skill:e,reloadKey:h,onChanged:y})}),(0,H.jsx)(`div`,{id:`skill-section-turns`,className:`scroll-mt-4`,children:(0,H.jsx)(q7,{skill:e,reloadKey:h})}),(0,H.jsx)(`div`,{id:`skill-section-failures`,className:`scroll-mt-4`,children:(0,H.jsx)(B7,{skill:e,reloadKey:h})})]})}function Z7({folders:e,onChanged:t}){let n=Y(),{snapshot:r,busy:i,save:a}=px(),[o,s]=(0,v.useState)(``),[c,l]=(0,v.useState)(``),u=e.map(e=>e.path),d=r?.settings.skillFolders?.source===`global`;async function f(e){l(``);let n=await a({skillFolders:e});n?l(n):(s(``),t())}return(0,H.jsxs)(`section`,{id:`skills-section-folders`,className:`scroll-mt-4 space-y-3`,"aria-label":n(`Watched folders`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:n(`Watched folders`)}),d?(0,H.jsxs)(K,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>void f(null),children:[(0,H.jsx)(wt,{"aria-hidden":`true`}),n(`Reset default`)]}):null]}),e.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`No folders are watched.`)}):(0,H.jsx)(`ul`,{className:`space-y-3`,children:e.map(e=>(0,H.jsxs)(`li`,{className:`flex min-w-0 items-center gap-3 rounded-xl border border-border bg-card px-3 py-2.5`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`p`,{dir:`ltr`,className:`break-all font-mono text-xs text-start`,children:e.path}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.exists?Gb(n(e.skills===1?`{count} skill`:`{count} skills`),{count:e.skills}):n(`Folder not found`)})]}),(0,H.jsx)(K,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:i,"aria-label":Gb(n(`Remove folder {path}`),{path:e.path}),title:n(`Remove folder`),onClick:()=>void f(rx(u,e.path)),children:(0,H.jsx)(qt,{"aria-hidden":`true`})})]},e.path))}),(0,H.jsxs)(`form`,{className:`flex flex-wrap items-center gap-3`,onSubmit:e=>{e.preventDefault(),o.trim()&&f(nx(u,o))},children:[(0,H.jsx)(ad,{dir:`ltr`,className:`max-w-md flex-1 basis-60`,value:o,placeholder:`~/.agents/skills`,"aria-label":n(`Folder path`),onChange:e=>s(e.target.value)}),(0,H.jsxs)(K,{type:`submit`,variant:`outline`,size:`sm`,disabled:i||!o.trim(),children:[(0,H.jsx)(ke,{"aria-hidden":`true`}),n(`Add folder`)]})]}),c?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:c}):null]})}function Q7({idea:e,folders:t,onDrafted:n}){let r=Y(),[i,a]=(0,v.useState)(t[0]?.path??``),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(null),u=T7();async function d(){s(!0),u.clear();let t=await Wb.draftNew(e,i);s(!1),u.show(t),t.ok&&t.data.proposal&&(l(Zb(t.data.proposal)),n())}return(0,H.jsxs)(`li`,{className:`min-w-0 space-y-3 rounded-xl border border-border bg-card p-3`,children:[(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`h3`,{className:`break-words text-sm font-semibold`,children:e.name}),(0,H.jsx)(`p`,{className:`text-sm`,dir:`auto`,children:e.description}),e.reason?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,dir:`auto`,children:e.reason}):null,e.evidenceTurnIds.length>0?(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[r(`Evidence turns`),`:`,` `,(0,H.jsx)(`bdi`,{dir:`ltr`,children:e.evidenceTurnIds.map(e=>`T${e}`).join(`, `)})]}):null]}),c?(0,H.jsx)(y7,{proposal:c,onChange:l}):(0,H.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3`,children:[(0,H.jsxs)(`label`,{className:`min-w-0 max-w-full space-y-1 text-sm`,children:[(0,H.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:r(`Folder for the new skill`)}),(0,H.jsx)(Dr,{value:i,disabled:o,"aria-label":r(`Folder for the new skill`),onChange:e=>a(e.target.value),children:t.map(e=>(0,H.jsx)(`option`,{value:e.path,children:e.path},e.path))})]}),(0,H.jsxs)(K,{type:`button`,size:`sm`,disabled:o||!i,onClick:()=>void d(),children:[(0,H.jsx)(At,{"aria-hidden":`true`}),r(`Draft skill`)]})]}),(0,H.jsx)(E7,{notice:u.value})]})}function $7({folders:e,onDrafted:t}){let n=Y(),[r,i]=(0,v.useState)(null),[a,o]=(0,v.useState)(!1),s=T7();async function c(){o(!0),s.clear();let e=await Wb.ideas();o(!1),s.show(e),e.ok&&i(e.data.ideas)}return(0,H.jsxs)(`section`,{className:`space-y-3`,"aria-label":n(`New skill ideas`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsxs)(K,{type:`button`,variant:`outline`,size:`sm`,disabled:a,onClick:()=>void c(),children:[(0,H.jsx)(Ge,{"aria-hidden":`true`}),n(`Find new skill ideas`)]}),a?(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:n(`Looking…`)}):null]}),(0,H.jsx)(E7,{notice:s.value}),r&&r.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`No new skill ideas in the recorded turns.`)}):null,r&&r.length>0?(0,H.jsx)(`ul`,{className:`space-y-3`,children:r.map(n=>(0,H.jsx)(Q7,{idea:n,folders:e,onDrafted:t},n.name))}):null]})}function e9(e,t){return e.path?t.filter(t=>e.path.startsWith(t.path)).sort((e,t)=>t.path.length-e.path.length)[0]?.path??null:null}function t9({skills:e,folders:t,onOpen:n}){let r=Y();return(0,H.jsx)(`ul`,{className:`space-y-3`,children:e.map(e=>{let i=e9(e,t);return(0,H.jsxs)(`li`,{className:`relative`,children:[(0,H.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`w-full min-w-0 space-y-1.5 rounded-xl border border-border bg-card px-3 py-2.5 text-start transition-colors duration-150 hover:bg-interactive-hover focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,H.jsxs)(`span`,{className:V(`flex flex-wrap items-center gap-2`,e.modified&&`ps-6`),children:[(0,H.jsx)(`span`,{className:`min-w-0 break-words text-sm font-semibold`,children:e.name}),e.suggested?(0,H.jsx)($5,{label:r(`Suggested`),colourKey:`Suggested`}):null,(0,H.jsx)($5,{label:r(e.mode===`manual`?`Manual`:`Automatic`),colourKey:e.mode}),e.notInWatchedFolder?(0,H.jsx)($5,{label:r(`Not in a watched folder`),colourKey:`not-watched`}):null]}),(0,H.jsxs)(`span`,{className:`block text-xs text-muted-foreground`,children:[i?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`bdi`,{dir:`ltr`,className:`break-all`,children:i}),` · `]}):null,r(`Uses`),` `,ex(e.uses),` · `,r(`Failed turns`),` `,ex(e.failedTurns),` · `,r(`Attention`),` `,e.attention.toFixed(2),` ·`,` `,r(`Last use`),` `,e.lastUsedAt?Qp(e.lastUsedAt):r(`Never`)]})]}),e.modified&&e.lastAppliedAt!==null?(0,H.jsx)(A7,{at:e.lastAppliedAt,className:`absolute start-3 top-3`}):null]},e.path??`name:${e.name}`)})})}function n9({skills:e,folders:t,query:n,modifiedFilter:r=`all`,onOpen:i}){let a=Y(),{view:o,pageItems:s}=U5({storageKey:`omms-list-skills`,items:e,sorts:G5,resetKey:`${r}|${n.trim().toLowerCase()}`});return(0,H.jsx)(z5,{view:o,totalLabel:Gb(a(o.total===1?`{count} skill`:`{count} skills`),{count:o.total}),children:(0,H.jsx)(t9,{skills:s,folders:t,onOpen:i})})}var r9=`${J.settings}#settings-section-skill-learning`;function i9(e,t,n,r){return e.trim()?t===0?`No skill matches this name.`:`No skill matches this name in this tab.`:n>0&&r===`modified`?`No skill has been modified yet.`:n>0&&r===`not-modified`?`Every skill has been modified.`:n>0&&r===`suggested`?`No skill is suggested for a change yet.`:`No skills found in the watched folders.`}function a9({overview:e,turns:t,pending:n,recent:r,error:i,query:a,modifiedFilter:o=`all`,reloadKey:s=0,onQuery:c,onModifiedFilter:l=()=>{},onOpen:u,onPendingChange:d,onRecentChange:f,onReload:p}){let m=Y(),h=e?.skills??[],g=Kb(h,a),_=ET(g,o),v=e?.folders??[],y=t=>{let n=(e?.skills??[]).find(e=>t.path?e.path===t.path:e.name===t.name);n&&u(n)};return(0,H.jsxs)(`div`,{className:`space-y-8`,children:[(0,H.jsx)(ty,{storageKey:`omms-skills-toc-open`,sections:xT}),(0,H.jsxs)(`div`,{className:`max-w-3xl space-y-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(`p`,{children:m(`Skill learning watches how your agents use your skills on Pi, OpenCode and Claude Code. It ranks each skill by use and failed tool calls, and drafts better versions from real turns.`)}),(0,H.jsx)(`p`,{children:m(`Every draft is a proposal with a diff. Nothing changes a SKILL.md file until you apply it, unless you set that skill to Automatic. Undo restores the previous version.`)})]}),e&&!e.recording?(0,H.jsxs)(lx,{tone:`info`,children:[(0,H.jsx)(`p`,{children:m(`Nothing is recorded yet. Agent turns are recorded only after you turn it on.`)}),(0,H.jsx)(`a`,{className:`underline`,href:r9,onClick:e=>{e.preventDefault(),_f(r9)},children:m(`Open the Skill learning card`)})]}):null,i?(0,H.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive-label`,children:i}):null,(0,H.jsx)(l5,{proposals:[...n,...r],onOpen:y,reloadKey:s}),(0,H.jsxs)(`section`,{id:`skills-section-ranked`,className:`scroll-mt-4 space-y-3`,"aria-label":m(`Skills`),children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:m(`Ranked skills`)}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[h.length>0?(0,H.jsx)(m5,{value:o,counts:TT(h),onChange:l}):null,(0,H.jsx)(ad,{type:`search`,className:`w-72 max-w-full`,value:a,"aria-label":m(`Filter skills by name`),placeholder:m(`Filter skills by name`),onChange:e=>c(e.target.value)})]})]}),e&&e.recording&&t===0?(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`No turns are recorded yet.`)}),(0,H.jsx)(dx,{onEnd:p})]}):null,e&&_.length===0?(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(i9(a,g.length,h.length,o))}):null,_.length>0?(0,H.jsx)(n9,{skills:_,folders:v,query:a,modifiedFilter:o,onOpen:u}):null]}),(0,H.jsxs)(`section`,{id:`skills-section-pending`,className:`scroll-mt-4 space-y-3`,"aria-label":m(`Pending proposals`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:m(`Pending proposals`)}),n.length>0?(0,H.jsx)(w7,{storageKey:b7,proposals:n,onChange:d}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`No proposals are waiting.`)})]}),(0,H.jsxs)(`section`,{id:`skills-section-recent`,className:`scroll-mt-4 space-y-3`,"aria-label":m(`Recent proposals`),children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold`,children:m(`Recent proposals`)}),r.length>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`Each card shows when the proposal was created and when it was last applied, rejected or undone.`)}),(0,H.jsx)(w7,{storageKey:x7,proposals:r,onChange:f})]}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m(`No proposals have been decided yet.`)})]}),e?.recording?(0,H.jsx)($7,{folders:v,onDrafted:p}):null,(0,H.jsx)(Z7,{folders:v,onChanged:p})]})}function o9(){let[e,t]=(0,v.useState)(null),[n,r]=(0,v.useState)(null),[i,a]=(0,v.useState)([]),[o,s]=(0,v.useState)([]),[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(DT),[m,h]=(0,v.useState)(null),[g,_]=(0,v.useState)(0),y=(0,v.useCallback)(async()=>{let[e,n,i]=await Promise.all([Wb.overview(),Wb.stats(),Wb.proposals()]);if(e.ok?(t(e.data),l(``)):l(e.error),n.ok&&r(n.data.turns),i.ok){let e=i.data.proposals;a(e.filter(e=>e.state===`pending`)),s(Jb(e))}},[]);(0,v.useEffect)(()=>{y()},[y]);let b=()=>{_(e=>e+1),y()},x=yf();return(0,v.useEffect)(()=>{x.includes(`#skills-section-`)&&h(null)},[x]),m?(0,H.jsx)(X7,{skill:m,onBack:()=>{h(null),b()},onChanged:()=>void y()}):(0,H.jsx)(a9,{overview:e,turns:n,pending:i,recent:o,error:c,query:u,modifiedFilter:f,reloadKey:g,onQuery:d,onModifiedFilter:e=>{p(e),OT(e)},onOpen:h,onPendingChange:e=>a(t=>t.map(t=>t.id===e.id?e:t)),onRecentChange:e=>s(t=>t.map(t=>t.id===e.id?e:t)),onReload:b})}function s9({...e}){let t=vp();return(0,H.jsx)(ai,{theme:t,className:`toaster group`,style:{"--normal-bg":`var(--color-popover)`,"--normal-text":`var(--color-popover-foreground)`,"--normal-border":`var(--color-border)`},icons:{loading:(0,H.jsx)(Je,{className:`size-4 animate-spin`}),success:(0,H.jsx)(fe,{className:`size-4`}),error:(0,H.jsx)(ot,{className:`size-4`}),info:(0,H.jsx)(Be,{className:`size-4`}),warning:(0,H.jsx)(Bt,{className:`size-4`})},...e})}function c9(e,t,n){return e?t:n}function l9(e,t,n){return Zd.map(r=>{let i=Qv(r.title,e);return r.id===`shared`?{id:r.id,label:i,avatar:(0,H.jsx)(Qx,{className:`size-5 rounded-md`,iconClassName:`size-3`}),items:Qd.map(t=>({id:t.id,label:Qv(t.title,e)}))}:{id:r.id,label:i,avatar:(0,H.jsx)(Zx,{host:r.id,look:t[r.id],className:`size-5 rounded-md text-[9px]`}),warning:n}})}function u9(e){let{looks:t}=qx(),n=vC();return{memoryViewId:fd(yf().split(`#`)[0]),memoryWarningLabel:Qv(`Memories not saved`,e),memorySections:l9(e,t,n?.ok===!1)}}var d9=[``,`feature`,`bug-fix`,`refactor`,`architecture`,`rule`,`documentation`,`discussion`,`analysis`,`configuration`];function f9(){let{t:e,language:t}=G(),n=bf(),r=u9(t),[i,a]=(0,v.useState)(!1),o=sa(),s=ca();(0,v.useEffect)(()=>{let e=vf();(async()=>{await o.loadTags(),await o.loadMemories(),await o.loadStats(),await o.checkMigrationStatus(),await o.checkAuthWarning()})();let t=setInterval(()=>{o.loadStats(),!o.isSearching&&n===`project`&&o.loadMemories()},3e4);return()=>{e(),clearInterval(t)}},[]);let c=s.loadUserProfile;(0,v.useEffect)(()=>{n===`profile`&&c()},[n,c]);function l(e){e!==t&&(na(e),o.loadMemories(),o.loadStats(),n===`profile`&&s.loadUserProfile())}function u(e){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),_f(J.home))}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(s9,{richColors:!0,position:`bottom-right`}),(0,H.jsxs)(`div`,{className:`flex min-h-svh bg-background text-foreground overflow-x-clip`,children:[(0,H.jsx)(Mp,{open:i,onOpenChange:a,currentView:n,brand:e(`brand`),projectLabel:e(`tab-project`),profileLabel:e(`tab-profile`),chatLabel:e(`nav-chat`),skillsLabel:e(`nav-skills`),profileSections:[{id:`profile-preferences`,label:e(`profile-preferences`)},{id:`profile-patterns`,label:e(`profile-patterns`)},{id:`profile-workflows`,label:e(`profile-workflows`)}],skillsSections:ST(t),memoryLabel:Qv(`Memory`,t),...r,settingsSections:Xv.map(e=>({id:e.id,label:Qv(e.title,t)})),langLabel:t.toUpperCase(),languageLabel:e(`nav-language`),themeLabel:e(`nav-theme`),settingsLabel:e(`nav-settings`),closeLabel:e(`nav-close`),collapseLabel:e(`nav-collapse`),expandLabel:e(`nav-expand`),onLanguageSelect:l}),(0,H.jsxs)(`div`,{"data-tooltip-bounds":!0,className:`flex min-w-0 flex-1 flex-col`,children:[(0,H.jsxs)(`div`,{className:`sticky top-0 z-30 flex items-center gap-2 border-b border-border bg-background/95 px-3 py-2 backdrop-blur md:hidden`,children:[(0,H.jsx)(K,{variant:`ghost`,size:`icon-sm`,className:`min-h-11 min-w-11`,onClick:()=>a(!0),"aria-label":e(`nav-menu`),children:(0,H.jsx)(Xe,{className:`size-4`})}),(0,H.jsx)(`a`,{href:J.home,className:`min-w-0`,onClick:u,children:(0,H.jsx)(Kd,{brand:e(`brand`)})})]}),(0,H.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl flex-1 space-y-4 p-4 md:p-6`,children:[o.showAuthWarning?(0,H.jsxs)(N_,{variant:`destructive`,children:[(0,H.jsx)(Bt,{}),(0,H.jsx)(P_,{children:e(`auth-warning-text`)})]}):null,(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,H.jsx)(`h1`,{className:`text-page-title font-semibold text-foreground`,children:n===`project`?e(`tab-project`):n===`profile`?e(`tab-profile`):n===`memory`?Qv(`Memory`,t):e(n===`chat`?`nav-chat`:n===`skills`?`nav-skills`:`nav-settings`)}),n===`project`?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:e(`text-total`,{count:c9(o.isSearching,o.totalItems,o.statsTotal)})}),o.refreshing?(0,H.jsx)(Ye,{className:`size-3.5 animate-spin`}):null]}):null]}),n===`project`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3 rounded-xl border border-border bg-card p-3`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 max-w-full space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`tag-filter`,children:e(`label-tag`)}),(0,H.jsxs)(Dr,{id:`tag-filter`,className:`w-64 max-w-full`,value:o.selectedTag,onChange:e=>o.onTagFilterChange(e.currentTarget.value),children:[(0,H.jsx)(`option`,{value:``,children:e(`opt-all-tags`)}),o.tags.map(e=>(0,H.jsx)(`option`,{value:e.tag,children:e.displayName||e.tag},e.tag))]})]}),(0,H.jsxs)(`div`,{className:`min-w-0 max-w-full space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`keyword-filter`,children:e(`label-label-filter`)}),(0,H.jsxs)(Dr,{id:`keyword-filter`,className:`w-56 max-w-full`,value:o.selectedKeyword.toLowerCase(),onChange:e=>o.onKeywordFilterChange(e.currentTarget.value),children:[(0,H.jsx)(`option`,{value:``,children:e(`opt-all-labels`)}),o.selectedKeyword&&!o.keywords.some(e=>e.keyword===o.selectedKeyword.toLowerCase())?(0,H.jsxs)(`option`,{value:o.selectedKeyword.toLowerCase(),children:[o.selectedKeyword,` (0)`]}):null,o.keywords.map(e=>(0,H.jsxs)(`option`,{value:e.keyword,children:[e.keyword,` (`,e.count,`)`]},e.keyword))]})]}),(0,H.jsxs)(`div`,{className:`flex flex-1 items-end gap-1.5 min-w-0 basis-56`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`search-input`,className:`sr-only`,children:e(`placeholder-search`)}),(0,H.jsx)(ad,{id:`search-input`,placeholder:e(`placeholder-search`),value:o.searchInput,onChange:e=>o.setSearchInput(e.target.value),onKeyDown:e=>e.key===`Enter`&&o.performSearch()})]}),(0,H.jsx)(K,{variant:`outline`,size:`icon`,onClick:o.performSearch,children:(0,H.jsx)(Et,{className:`size-4`})}),o.isSearching?(0,H.jsx)(K,{variant:`outline`,size:`icon`,onClick:o.clearSearch,children:(0,H.jsx)(qt,{className:`size-4`})}):null]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,H.jsx)(Hp,{content:e(`tooltip-cleanup`),children:(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:o.runCleanup,children:[(0,H.jsx)(zt,{className:`size-3.5`}),e(`btn-cleanup`)]})}),(0,H.jsx)(Hp,{content:e(`tooltip-deduplicate`),children:(0,H.jsxs)(K,{variant:`outline`,size:`sm`,onClick:o.runDeduplication,children:[(0,H.jsx)(xt,{className:`size-3.5`}),e(`btn-deduplicate`)]})})]}),o.selectedIds.size>0?(0,H.jsxs)(`div`,{className:`flex w-full flex-wrap items-center gap-2 border-t border-border pt-3`,children:[(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`text-selected`,{count:o.selectedIds.size})}),(0,H.jsx)(K,{variant:`secondary`,size:`xs`,onClick:o.selectAllCurrentPage,children:e(`btn-select-all`)}),(0,H.jsx)(K,{variant:`destructive`,size:`xs`,onClick:o.bulkDelete,children:e(`btn-delete-selected`)}),(0,H.jsx)(K,{variant:`ghost`,size:`xs`,onClick:o.deselectAll,children:e(`btn-deselect-all`)})]}):null]}),o.migrationNeeded?(0,H.jsxs)(N_,{variant:`destructive`,className:`space-y-3`,children:[(0,H.jsx)(Bt,{}),(0,H.jsxs)(P_,{className:`space-y-3`,children:[(0,H.jsx)(`p`,{children:o.migrationMessage||e(`migration-mismatch`)}),(0,H.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,H.jsx)(Qo,{checked:o.migrationConfirmed,onCheckedChange:e=>o.setMigrationConfirmed(e===!0),className:`mt-0.5`}),(0,H.jsx)(`span`,{children:e(`migration-understand`)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(K,{variant:`destructive`,size:`sm`,disabled:!o.migrationConfirmed,onClick:()=>o.runMigration(`fresh-start`),children:e(`btn-fresh-start`)}),(0,H.jsx)(K,{variant:`secondary`,size:`sm`,disabled:!o.migrationConfirmed,onClick:()=>o.runMigration(`re-embed`),children:e(`btn-reembed`)})]})]})]}):null,(0,H.jsx)(w_,{memories:o.memories,selectedIds:o.selectedIds,currentPage:o.currentPage,totalPages:o.totalPages,totalItems:o.totalItems,isSearching:o.isSearching,loading:o.loadingMemories,error:o.memoriesError,onSelect:o.onSelect,onPageChange:e=>{let t=o.currentPage+e;o.setCurrentPage(t),o.loadMemories({page:t})},onPin:o.pinMemory,onUnpin:o.unpinMemory,onEdit:o.openEdit,onDeleteMemory:o.deleteMemory,onDeletePrompt:o.deletePrompt,activeKeyword:o.selectedKeyword,onKeywordClick:e=>o.onKeywordFilterChange(o.selectedKeyword.toLowerCase()===e.toLowerCase()?``:e)}),(0,H.jsxs)(`section`,{className:`rounded-xl border border-border bg-card p-4 space-y-3`,children:[(0,H.jsx)(`h2`,{className:`text-section-title font-semibold text-muted-foreground`,children:e(`section-add`)}),(0,H.jsxs)(`form`,{className:`space-y-3`,onSubmit:o.addMemory,children:[(0,H.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-tag`,children:e(`label-tag`)}),(0,H.jsxs)(Dr,{id:`add-tag`,required:!0,className:`w-full`,value:o.addTag,onChange:e=>o.setAddTag(e.target.value),children:[(0,H.jsx)(`option`,{value:``,children:e(`opt-select-tag`)}),o.tags.map(e=>(0,H.jsx)(`option`,{value:e.tag,children:e.displayName||e.tag},e.tag))]})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-type`,children:e(`label-type`)}),(0,H.jsx)(Dr,{id:`add-type`,className:`w-full`,value:o.addType,onChange:e=>o.setAddType(e.target.value),children:d9.map(t=>(0,H.jsx)(`option`,{value:t,children:e(t?`opt-${t}`:`opt-other`)},t||`other`))})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-tags`,children:e(`label-tags`)}),(0,H.jsx)(ad,{id:`add-tags`,placeholder:e(`placeholder-tags`),value:o.addTags,onChange:e=>o.setAddTags(e.target.value)})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(Fp,{htmlFor:`add-content`,children:e(`label-content`)}),(0,H.jsx)(Ip,{id:`add-content`,rows:4,required:!0,placeholder:e(`placeholder-content`),value:o.addContent,onChange:e=>o.setAddContent(e.target.value)})]}),(0,H.jsxs)(K,{type:`submit`,children:[(0,H.jsx)(vt,{className:`size-3.5`}),e(`btn-add-memory`)]})]})]})]}):n===`memory`?(0,H.jsx)(Ew,{}):n===`chat`?(0,H.jsx)(bT,{}):n===`skills`?(0,H.jsx)(o9,{}):n===`settings`?(0,H.jsx)(vx,{}):(0,H.jsx)(Jv,{profile:s.userProfile,loading:s.loadingProfile,onRefresh:s.refreshProfile,onCleanup:()=>s.setAiCleanupOpen(!0),onCategoryCleanup:()=>s.setCategoryCleanupOpen(!0),categoryCleanupOpen:s.categoryCleanupOpen})]})]})]}),(0,H.jsx)(Lp,{open:o.editOpen,onOpenChange:o.setEditOpen,content:o.editContent,onSave:o.saveEdit}),(0,H.jsx)(Yv,{open:o.tagMigrationOpen,onOpenChange:e=>{e||_i(o.tagMigrationCount),o.setTagMigrationOpen(e)},count:o.tagMigrationCount,onComplete:()=>{vi(),o.loadMemories(),o.loadStats()}}),(0,H.jsx)(Yu,{open:s.aiCleanupOpen,onOpenChange:s.setAiCleanupOpen,onMinimise:s.minimiseAiCleanup,profile:s.userProfile,onApplied:s.loadUserProfile}),s.aiCleanupMinimised?(0,H.jsx)(Xu,{onOpen:()=>s.setAiCleanupOpen(!0),onGone:s.dismissAiCleanupPill}):null,(0,H.jsx)(cd,{open:s.categoryCleanupOpen,onOpenChange:s.setCategoryCleanupOpen,onApplied:s.loadUserProfile})]})}var p9=new Set([`Shift`,`Control`,`Alt`,`Meta`]);function m9(e,t){return t.type===`pointerdown`?`typing`:t.type!==`keydown`||!t.key?e:t.key===`Tab`?`keyboard`:p9.has(t.key)?e:t.inTextField?`typing`:e}function h9(e){return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement}function g9(){if(typeof document>`u`)return()=>{};let e=document.documentElement,t=`keyboard`;e.dataset.focusMode=t;let n=n=>{let r=m9(t,{type:n.type,key:n instanceof KeyboardEvent?n.key:void 0,inTextField:h9(n.target)});r!==t&&(t=r,e.dataset.focusMode=t)};return document.addEventListener(`keydown`,n,!0),document.addEventListener(`pointerdown`,n,!0),()=>{document.removeEventListener(`keydown`,n,!0),document.removeEventListener(`pointerdown`,n,!0)}}_p(),g9();var _9=document.getElementById(`app`);if(!_9)throw Error(`Root element #app not found`);(0,y.createRoot)(_9).render((0,H.jsx)(v.StrictMode,{children:(0,H.jsx)(oa,{children:(0,H.jsx)(f9,{})})}));